cannot load custom indicator ‘ATR’ [4002]

 

Hallo,

leider habe ich noch nicht sehr viel Erfahrung mit MT5 und bleibe häufig bereits an Kleinigkeiten hängen.

Ich versuche den ATR Indikator in meinen EA für MT5 einzubinden.

Der (Standardindikator) “ATR.mq5” befindet sich direkt im Verzeichnis \MQL5\Indicators.

MT5 findet ihn auch und hat mich per Meldung zunächst aufgefordert, ihn zu kompilieren, was ich gemacht habe.

Im EA habe ich ihn so in die OnInit()-Funktion eingebunden:

int OnInit()
  {
   double ATR = iCustom(NULL,0,"ATR",_Symbol,1,14); 
   return(0);
  }

Der EA kompiliert damit ohne Fehler.

Nachdem zunächst die Fehlermeldung “cannot load custom indicator ‘ATR’ [4804] kam, habe ich den fehlenden Parameter um “_Symbol” ergänzt.

Nun kommt die Fehlermeldung “cannot load custom indicator ‘ATR’ [4002]

Kann mit bitte jemand etwas helfen, damit der Indikator geladen werden kann, z.B.

- Stimmt die Anzahl Parameter ("1" für die Vorperiode, "14" für den ATR-Zeitraum)?

- Ist “_Symbol” richtig eingefügt ?

- Habe ich sonst etwas übersehen ?

 Vielen Dank für Eure Unterstützung.


 

 

In die oninit kommt das handle des indicator, dort musst du den array dann als serie setzen

in die on tick dann das copy buffer, dann kannst du die werte auslesen

 
TraderMQL:

Hallo,

leider habe ich noch nicht sehr viel Erfahrung mit MT5 und bleibe häufig bereits an Kleinigkeiten hängen.

Ich versuche den ATR Indikator in meinen EA für MT5 einzubinden.

Der (Standardindikator) “ATR.mq5” befindet sich direkt im Verzeichnis \MQL5\Indicators.

MT5 findet ihn auch und hat mich per Meldung zunächst aufgefordert, ihn zu kompilieren, was ich gemacht habe.

Im EA habe ich ihn so in die OnInit()-Funktion eingebunden:

Der EA kompiliert damit ohne Fehler.

Nachdem zunächst die Fehlermeldung “cannot load custom indicator ‘ATR’ [4804] kam, habe ich den fehlenden Parameter um “_Symbol” ergänzt.

Nun kommt die Fehlermeldung “cannot load custom indicator ‘ATR’ [4002]

Kann mit bitte jemand etwas helfen, damit der Indikator geladen werden kann, z.B.

- Stimmt die Anzahl Parameter ("1" für die Vorperiode, "14" für den ATR-Zeitraum)?

- Ist “_Symbol” richtig eingefügt ?

- Habe ich sonst etwas übersehen ?

 Vielen Dank für Eure Unterstützung.


 

Im Editor stell den Kursor auf iCustom und drück die Zaubertaste F1 - dort studiere das Beispiel, es zeigt wie's man es machen kann/soll/muss!!

Ist viel schneller, als hier auf eine Antwort warten und es gibt mehr Details!

 

Ich würde auf den integrierten ATR zugreifen, es sei denn du hast was an dem ATR geändert, den du mit iCustom() aufrufst.

Der Code ist trivial:

//+------------------------------------------------------------------+
input    int   inp_ATR_Period = 20;    // ATR period

//+------------------------------------------------------------------+
int      haATR;      // ATR hande
double   buATR[];    // ATR buffer
int      toCopy=3;   // bars to copy

//+------------------------------------------------------------------+
int OnInit()
{
   ArraySetAsSeries(buATR,true);
   haATR=iATR(_Symbol,_Period,inp_ATR_Period);
   if(haATR==INVALID_HANDLE)
      return(INIT_FAILED);

   return(INIT_SUCCEEDED);
}

//+------------------------------------------------------------------+
void OnTick()
{
   CopyBuffer(haATR,0,0,toCopy,buATR);
/*
   und hier kannst du auf die werte des atr zugreifen
   wie zB Zeile 28
*/
   Comment("ATR: ", DoubleToString(buATR[0],_Digits));
}
 
Otto Pauser:

Ich würde auf den integrierten ATR zugreifen, es sei denn du hast was an dem ATR geändert, den du mit iCustom() aufrufst.

Der Code ist trivial:


Hallo zusammen,

vielen Dank für Eure Antworten, insbesondere an Otto für den Code, das hilft doch sehr, als Anfänger die Zusammenhänge ein bisschen besser zu erkennen, da sich so die Puzzleteile etwas zusammenfügen. Und man lernt dann etwas besser die Funktionweise zu verstehen, für das nächste Mal.

Ich habe es nun eingebaut, klappt prima, vielen Dank für die schnelle und hilfreiche Unterstützung !


 

Grund der Beschwerde: