Checken ob es offene Trades gibt

 

Hallo,


ich habe mich heute am Beispiel hier versucht: https://www.mql5.com/de/articles/100

Eigentlich ist diese Funktion ja eingebaut, aber sie scheint nicht zu laufen. Hier sieht man, dass trotzdem neue Order ausgeführt werden:


Was ist an dem Code fehlerhaft?

Schrittweiser Leitfaden für Anfänger zum Schreiben eines Expert Advisors in MQL5
Schrittweiser Leitfaden für Anfänger zum Schreiben eines Expert Advisors in MQL5
  • www.mql5.com
Die Programmierung des Expert Advisors in MQL5 ist einfach und kann problemlos erlernt werden. In diesem Leitfaden werden nacheinander die zum Schreiben eines einfachen Expert Advisors auf Grundlage einer entwickelten Handels-Strategie erforderlichen, grundlegenden Schritte erklärt. Es werden hier die Struktur eines Expert Advisors, die Verwendung eingebauter technischer Indikatoren und Handels-Funktionen, die Details des Fehlersuch(Debug)-Modus und die Verwendung des Strategie-Testers präsentiert.
 
BlauesQ:

Hallo,


ich habe mich heute am Beispiel hier versucht: https://www.mql5.com/de/articles/100

Eigentlich ist diese Funktion ja eingebaut, aber sie scheint nicht zu laufen. Hier sieht man, dass trotzdem neue Order ausgeführt werden:


Was ist an dem Code fehlerhaft?

ich verstehe nicht was du meinst

 

Hm er hat mein Bild nicht mit eingefügt.

Na ja im Beispiel sollen nur neue Order ausgeführt werden, wenn es nicht derzeit aktive gibt. Macht er aber trotzdem. Es sind aktive Buy und Sell aktiv und er schiebt trotzdem neue nach. Siehe Bild.

Dateien:
Capture.PNG  10 kb
 

Außerdem sollen ja nur neue Positionen geöffnet werden, wenn es ein neues Bar gibt. Auch das ignoriert er, siehe H1 Chart:

Dateien:
Capture2.PNG  26 kb
 
BlauesQ:

Außerdem sollen ja nur neue Positionen geöffnet werden, wenn es ein neues Bar gibt. Auch das ignoriert er, siehe H1 Chart:

Das muss man ihm natürlich alles sagen, ob man das bei den ea machen kann weis ich nicht

 
Ja das steht ja auch alles so im Code! Siehe Beispiel
 

Ich denke ich erkenne das Problem:

Beispiel: H1 ist gewählt. Wenn es einen TakeProfit oder StopLoss gibt innerhalb eines Candlesticks, dann führt er danach ungefiltert neue Trades aus. Dann erkennt er nicht, das es bereits existierende Positionen gibt.

Ich müsste nun wohl eine Funktion einbauen, die ptüft, ob ein SL/TP ausgelöst wurde und dann mittels return; zurückspringt. Damit würde wohl sichergestellt werden, dass der Barcheck ausgeführt wird.

 
Die Kontrolle der offenen Positionen beginnt mit PositionsTotal(), auf Netting-Konten gibt es max 1, auf Hedging-Konten eventuell mehr.
Dokumentation zu MQL5: Handelsfunktionen / PositionsTotal
Dokumentation zu MQL5: Handelsfunktionen / PositionsTotal
  • www.mql5.com
PositionsTotal - Handelsfunktionen - Nachschlagewerk MQL5 - Nachschlagewerk über die Sprache des algothitmischen/automatischen Handels für MetaTrader 5
 
Danke dir, hilft schon mal etwas. Jedoch kann es auch mal vorkommen, dass ich mehrere Strategien gleichzeitig fahre und mehrere Positionen offen sind.
 
BlauesQ:
Danke dir, hilft schon mal etwas. Jedoch kann es auch mal vorkommen, dass ich mehrere Strategien gleichzeitig fahre und mehrere Positionen offen sind.

die kann man anhand der Magic Number selektieren

dafür ist diese da

 
Auch wenn ich offene Positionen abfrage, wenn ein SL/TP ausgelöst wird, ignoriert er einfach ALLES. Ich versteh es nicht. Ich habe mehrere Alerts eingebaut, die mir vor dem Auslösen eine Nachricht geben sollen. Auch diese erscheinen nicht. Anbei mal der Code
Dateien:
BB_MA_1.mq5  22 kb