Technische Frage, zeitliche Präzision Ordermanagement bei Handelssystemen mit mehreren EA's

 

Hallo,

meine Frage richtet sich eher Trader mit technischer Erfahrung bei der Performance.

Mir ist beim Beobachten der Trades im Demokonto aufgefallen, dass manchmalder Trailing-Stop erst geschätzte 1,5 Sekunden nach Erreichen des gesetzten Levels nachgezogen oder der Teilverkauf leicht verspätet durchgeführt wurde.

Da würde ich gerne als Beispiel mein eben fertiggestelltes Handelssetup verwenden:

Ich habe:

  1. 24 Multi-Currency-EA's (Scalper, in 24 Charts platziert), die Trades nach verschiedenen Strategien  erstellen,  inkl. SL und TP 
  2. Um das Ordermanagement aller offenen Trades (Trailing, Break-even, Teilverkauf) kümmert sich ein einziger EA, es sind durchschnittlich bis zu 10 Trades zugleich offen
  3. Um das Moneymanagement aller offenen Trades (z. B. Schließen bei Currency-basket in Loss, Gesamtsumme im Profit etc.) kümmert sich ein weiterer EA 

Hier meine Fragen:

  • Wenn das Nachziehen des Trailing-Stops verspätet durchgeführt wird, was ist der Grund dafür? 
  • Wäre eine versteckte Trailingstop-Linie zeitlich präziser als das Nachziehen des SL beim Broker?
  • Wäre die Performance besser, wenn jeder der 24 EAs ein eigenes Ordermanagement hätte?

Ich würde mich freuen, wenn Ihr dazu ein paar Erfahrungen mit mir teilen würdet.

Vielen Dank!

Werner

 

Hi,

wieso hast Du das Order-/Moneymanagement in eigene EA's ausgegliedert?

Bei meinen EA's wird der TrailingStop bei jedem Tick geprüft und ggf. angepasst.

Wenn Du 24 EA's am Laufen hast und ein TP-EA sich (sequentiell) um alle offenen Trades kümmert, wird immer ein gewisser zeitlicher Verzug drin sein.

Die Frage ist noch, was (und wie oft) den TP-EA triggert...


VG

 
liju1970:

Hi,

Da, glaube ich, gibt es ein arges Missverständnis...

wieso hast Du das Order-/Moneymanagement in eigene EA's ausgegliedert?

Bei meinen EA's wird der TrailingStop bei jedem Tick geprüft und ggf. angepasst. Bei mir doch auch. Jeder Tick im Chart löst den Check für das Ordermanagement aus.

Wenn Du 24 EA's am Laufen hast und ein TP-EA sich (sequentiell) um alle offenen Trades kümmert, wird immer ein gewisser zeitlicher Verzug drin sein. Die EAs für den Entry erstellen SL und TP damit die Orders nicht schutzlos im Markt sind. Nicht nur TP.
Und ein separater EA übernimmt das Ordermanagement (Trailing, BE, Teilverkauf).

Wie gesagt, es können mal bis zu 10 Orders geöffnet sein. Meistens jedoch weniger. Also, relativ wenig Arbeit für den Ordermanagement-EA.

Die Frage ist noch, was (und wie oft) den TP-EA triggert...   Jeder Preistick im EURUSD. Und ich bin relativ sicher, dass während der Haupthandelszeit genügend Ticks zustande kommen um mehrmals in der Sekunde das Tick-Event auszulösen.


VG

Genau darum geht es jetzt, herauszufinden, ob es performanter ist, jeden EA mit Ordermanagement auszustatten oder nur einen einzigen, der sich dann um alle offenen Orders kümmert.


Die Schleife selektiert jede einzelne Order und prüft, ob die Bedingungen zum Anpassen der Order gegeben sind. Bei 24 EAs würden  24 Schleifen die offenen Orders prüfen. Ich könnte mir vorstellen, dass das mehr Rechenarbeit ist.

Moneymanagement in einem EA ist meiner Meinung nach schon sinnvoll weil Summen aus allen offenen Orders ermittelt werden. Warum auch sollten 24 EAs die Summen ermitteln.

Gruß Werner

 
fintrad0:

Genau darum geht es jetzt, herauszufinden, ob es performanter ist, jeden EA mit Ordermanagement auszustatten oder nur einen einzigen, der sich dann um alle offenen Orders kümmert.

Na dann ist doch klar, was zu tun ist! Aber vergiss nicht, ein EA 'erwacht' immer erst durch einen neuen Tick, alternativ müsste man einen Timer verwenden: https://www.mql5.com/de/docs/eventfunctions

Dokumentation zu MQL5: Arbeit mit Ereignissen
Dokumentation zu MQL5: Arbeit mit Ereignissen
  • www.mql5.com
Funktionen für die Arbeit mit Benutzerereignissen und Ereignissen des Timers . Ausser dieser Funktionen gibt es auch Sonderfunktionen für die Verarbeitung Vorwegparameter.
 
Carl Schreiber:

Na dann ist doch klar, was zu tun ist! Aber vergiss nicht, ein EA 'erwacht' immer erst durch einen neuen Tick, alternativ müsste man einen Timer verwenden: https://www.mql5.com/de/docs/eventfunctions

Carl, mir ist das leider nicht klar. Wie würdest Du meine Situation einschätzen?

Ich will auch keine unnötige Rechenarbeit produzieren. Abgesehen davon, habe ich mit einem Timer auch keine Erfahrung.

Ich habe auch noch keinen Code gesehen, der ein Timer-Event für das Ordermanagement verwendet. 

Der EURUSD müsste doch während der Haupthandelszeit ausreichend Ticks erzeugen um nicht eine Pause von ~1,5 Sekunden machen zu müssen. Dachte ich zumindest.

Wie gesagt, ich kann es nicht einschätzen, welcher Weg effizienter ist und deswegen bin ich auf das Wissen von erfahrenen Tradern angewiesen. 

Gruß Werner

 

Also, pragmatischer Ansatz:

-Codeprofiler nutzen und schauen, welche Funktionen/Prozeduren/Events am häufigsten aufgerufen werden

-Code optimieren (Programmschleifen abbrechen, falls ein weiteres loopen keinen Sinn mehr macht)

-auf Fehler (Laufzeitfehler, Fehler bei Positionsänderung) prüfen (Logfiles)


Bei meinen Tests kam es öfters zu Fehlern bei Positionsänderungen...


VG

 
liju1970:

Also, pragmatischer Ansatz:

-Codeprofiler nutzen und schauen, welche Funktionen/Prozeduren/Events am häufigsten aufgerufen werden

-Code optimieren (Programmschleifen abbrechen, falls ein weiteres loopen keinen Sinn mehr macht)

-auf Fehler (Laufzeitfehler, Fehler bei Positionsänderung) prüfen (Logfiles)


Bei meinen Tests kam es öfters zu Fehlern bei Positionsänderungen...


VG

Danke!

Grund der Beschwerde: