"EA not closing position | ADX SAR MA"

 

Could someone please help me to understand why my EA is not closing the position?

if (type == (long)POSITION_TYPE_BUY && rt[0].close < ma[0] || rt[0].close < sar[0] || adx_main[0] < 25)
    signal = true;

if(type==(long)POSITION_TYPE_SELL && rt[0].close > ma[0] || rt[0].close > sar[0] || adx_main[0] < 25)
      signal=true;

The EA shall check - in a long situtation -  if the CLOSE is either below the MA[10] or below the SAR or the ADX have fallen below 25.

See attached screenshot. My expectation would is that the code shall close the position on the 22nd of Oct 2015 EURUSD (Daily).

Thanks for the support!
Dokumentation zu MQL5: Konstanten, Enumerationen und Strukturen / Handelskonstanten / Eigenschaften der Positionen
Dokumentation zu MQL5: Konstanten, Enumerationen und Strukturen / Handelskonstanten / Eigenschaften der Positionen
  • www.mql5.com
Eigenschaften der Positionen - Handelskonstanten - Konstanten, Enumerationen und Strukturen - Nachschlagewerk MQL5 - Nachschlagewerk über die Sprache des algothitmischen/automatischen Handels für MetaTrader 5
Dateien:
EA_failure.jpg  285 kb
 

Hallo,

  1. Wir können hier Deutsch reden :)
  2. Überprüf die Klammersetzung das (long) wandelt nur POSITION_TYPE_SELL um!
  3. Wenn das Problem in den beiden if liegt, dann verwende den Debugger (s.u.) markiere die einzelnen Elemente der if und hole sie mit Shift+F9 ins Fenster des Debuggers und schau ob sie sind wie beabsichtigt:

    https://www.metatrader5.com/de/metaeditor/help/development/debug
    Zur Fehlerbehebung von MQL5-Programmen (Debugging) : https://www.mql5.com/de/articles/654
    Einführung in MQL5: Schreiben eines einfachen Expert Advisor und benutzerdefinierten Indikators, Siehe Ende: Starten und Debuggen     https://www.mql5.com/de/articles/35
    Die Fehlerverarbeitung und Protokollierung in MQL5:     https://www.mql5.com/de/articles/2041
    https://www.mql5.com/de/articles/272
    Fehler finden und Protokollierung     https://www.mql5.com/de/articles/150

Übrigens, es gibt fast nicht, was nicht schon für MQ programmiert wurde,
also vielleicht erst einmal suchen, statt es selber versuchen, kopieren ist viel schneller als probieren.

Code-Debugging - Programme entwickeln - MetaEditor Hilfe
  • www.metatrader5.com
MetaEditor hat einen eingebauten Debugger, mit dem Sie die Programmausführung Schritt für Schritt (durch einzelne Funktionen) ü...
 
FH215:

Could someone please help me to understand why my EA is not closing the position?

if (type == (long)POSITION_TYPE_BUY && rt[0].close < ma[0] || rt[0].close < sar[0] || adx_main[0] < 25)
    signal = true;

if(type==(long)POSITION_TYPE_SELL && rt[0].close > ma[0] || rt[0].close > sar[0] || adx_main[0] < 25)
      signal=true;

The EA shall check - in a long situtation -  if the CLOSE is either below the MA[10] or below the SAR or the ADX have fallen below 25.

See attached screenshot. My expectation would is that the code shall close the position on the 22nd of Oct 2015 EURUSD (Daily).

Thanks for the support!

Hallo,

zu wenig Code. Da fällt noch Close Funktion.

Grund der Beschwerde: