Einzelnen Beitrag anzeigen
  #5 (permalink)  
Alt 23.07.20
Benutzerbild von Indikator-Trading
Indikator-Trading Indikator-Trading ist offline
Premium Mitglied
 
Registriert seit: May 2020
Ort: Bielefeld
Beiträge: 345
Indikator-Trading befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Aber ist es normal, dass ein EA im normalen MT4 Gebrauch nicht richtig funktioniert bzw. nicht verwendet werden sollte?
Ein gut programmierter EA läuft auch noch nach einem Absturz neu Neustart des MT weiter mit den offenen Positionen.
Da in den meisten EAs allerdings das Management der offenen Orders über lokal definierte Variablen im EA gelöst wird, werden diese noch offene Positionen im Markt nicht als ihre erkennen und auch nicht Managen.

Wenn dein EA also nicht läuft, dann liegt das nicht am MT4 sondern an der Programmierung vom EA.

Was du nicht machen solltest, ist vom einem Benutzerprofil zum anderen zu wechseln. Offene Orders aus deinem Demokonto kann dein Livekonto natürlich nicht kennen.

Zitat:
... technischen Aufbau des MT nicht möglich ... EA also neu einlesen Ein Chart mit EA darf deshalb nicht angefasst werden.
Leider nicht richtig. Ich habe einen EA der nur auf einem Chart ist (egal welches Symbol und egal welcher TimeFrame) und die Märkte mit den TF tradet, welche für den EA gerade einstellt sind.

Bei jeder Grundfunktion (SendOrder , OrderModify, iCustom, ....) wird immer auch das Symbol als Parameter mitgegeben. In einem einfachen EA tradest du ja immer das Symbol, auf welchem der EA gerade läuft. Dann übergibst du ja 'NULL', 'Symbol()' oder '_Symbol'. Natürlich kannst du da auch ein Symbol eines anderen Marktes übergeben, also "DAX30", "EURUSD" usw.
Das Gleiche gilt für Indikatoren und deren TimeFrames, welche du auch als Parameter übergibst. Im Simplen EA ist das häufig '0' oder Period(), was nichts anderes bedeutet, als das der Indikator auf dem aktuell eingestellten TimeFrame arbeiten soll. Definiere also dein Symbol und dein TimeFrame und stelle dein EA auf eine universelle Bearbeitung von beliebigen Symbolen ein.
Je nach Umfang von deinem EA ist das nicht wenig arbeit, aber durchaus machbar. Ich habe einen EA, welcher beliebig viele Forexmärkte auf diese Art handelt und auch nur einmal auf einen beliebigen Chart sitzen muss.

Und noch was:
Bid, Ask, Bars usw. darfst du natürlich nicht mehr nutzen. Im MT4 musst du dann alles nötige über MarketInfo() abfragen.

Ich habe den Start der Kontrolle meiner Positionen aus allen Märkten dann auch in eine TimerFunktion ausgelagert.
Typischerweise machen das ja alle in der OnTick()-Funktion, was ja solange ok ist, solange du nur das Symbol handeln willst, auf dem der EA gerade läuft. Für die universelle Anwendung eines EAs würde ich das aber nicht machen, da man nie weiß wann der nächste Tick mal kommt.

Das alles ist aber eher nichts für einen Anfänger im Programmieren, bei dem der EA sowieso noch nicht so richtig läuft.

Gruß Timo