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
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)); }
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 !
![MQL5 - Sprache von Handelsstrategien, eingebaut ins Kundenterminal MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
- Freie Handelsapplikationen
- Über 8.000 Signale zum Kopieren
- Wirtschaftsnachrichten für die Lage an den Finanzmärkte
Sie stimmen der Website-Richtlinie und den Nutzungsbedingungen zu.
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.