- iAC
- iAD
- iADX
- iADXWilder
- iAlligator
- iAMA
- iAO
- iATR
- iBearsPower
- iBands
- iBullsPower
- iCCI
- iChaikin
- iCustom
- iDEMA
- iDeMarker
- iEnvelopes
- iForce
- iFractals
- iFrAMA
- iGator
- iIchimoku
- iBWMFI
- iMomentum
- iMFI
- iMA
- iOsMA
- iMACD
- iOBV
- iSAR
- iRSI
- iRVI
- iStdDev
- iStochastic
- iTEMA
- iTriX
- iWPR
- iVIDyA
- iVolumes
iCustom
Gibt das Handle des angegebenen Benutzerindikators zurück.
int iCustom(
|
Prameter
symbol
[in] Symbolname des Instrumentes, dessen Daten für Berechnung des Indikators verwendet werden. NULL bedeutet das laufende Symbol.
period
[in] Wert der Periode kann einer der Enumerationswerte ENUM_TIMEFRAMES sein, 0 bedeutet das laufende Timeframe.
name
[in] Nutzerdefinierter Indikatorname. Wenn der Backslash '\' vor dem Namen des nutzerdefinierten Indikators angezeigt wird, wird die EX5-Indikator-Datei relativ zum MQL5-Stammordner durchsucht. Bei einem Aufruf von iCustom(Symbol(), Periode(), "\FirstIndicator"...) wird daher der Indikator MQL5\FirstIndicator.ex5 geladen. Wenn die Datei unter diesem Pfad nicht gefunden wird, wird der Fehler 4802 (ERR_INDICATOR_CANNOT_CREATE) ausgeworfen.
Beginnt der Pfad nicht mit '\', wird der Indikator wie folgt gesucht und geladen:
- Zuerst wird die EX5-Datei des Indikators in dem Ordner gesucht, in dem sich die EX5-Datei des aufrufenden Programms befindet. Liegt zum Beispiel CrossMA.EX5 EA in MQL5\Experts\MyExperts und sie enthält den Aufruf iCustom(Symbol(), Periode(), "SecondIndicator"...), wird in diesem Fall der Indikator hier MQL5\Experts\MyExperts\SecondIndicator.ex5 gesucht.
- Wenn der Indikator nicht im gleichen Verzeichnis gefunden wird, erfolgt die Suche relativ zum Stammverzeichnis des Indikators MQL5\Indicators. Mit anderen Worten, es wird die Datei MQL5\Indicators\SecondIndicator.ex5 gesucht. Wenn der Indikator immer noch nicht gefunden wurde, gibt die Funktion INVALID_HANDLE zurück und der Fehler 4802 (ERR_INDICATOR_CANNOT_CREATE) wird ausgeworfen.
Wenn der Pfad zum Indikator auf ein Unterverzeichnis (z.B. MyIndicators\ThirdIndicator) zeigt, wird zunächst die Suche im aufrufenden Programmordner (der EA befindet sich in MQL5\Experts\MyExperts) in MQL5\Experts\MyExperts\MyIndicators\ThirdIndicator.ex5 durchgeführt. Wenn dies nicht erfolgreich ist, wird die Datei hier MQL5\Indicators\MyIndicators\ThirdIndicator.ex5 gesucht. Achten Sie darauf, den doppelten umgekehrten Schrägstrich '\\' als Trennzeichen im Pfad zu verwenden, z.B. iCustom(Symbol(), Punkt(), "MeineIndikatoren\\DritterIndikator"...)
...
[in] input-Parameter eines Benutzerindikators, die durch Kommas getrennt sind. Typ und Parameterfolge müssen entsprechen. Wenn Parameter nicht angegeben werden, werden Default-Werte verwendet.
Rückgabewert
Gibt das Handle des angegebenen technischen Indikators zurück, beim Misserfolg gibt INVALID_HANDLE zurück.
Hinweis
Benutzeranzeiger muss kompiliert werden (Datei mit Verbreitung EX5) und sich im Verzeichnis MQL5/Indicators des Client-Terminals oder in einem eingebettetenen Verzeichnis befinden.
Die für Testenerforderliche Indikatoren werden automatisch aus Aufruf der Funktionen iCustom() bestimmt, wenn der entsprechende Parameter von der Konstantzeile vorgegeben ist. Für andere Fälle (Verwendung der Funktion IndicatorCreate() oder Verwendung einer nicht Konstantzeile im Parameter, der den Namen des Indikator vorgibt) ist diese Eigenschaft #property tester_indicator erforderlich :
#property tester_indicator "indicator_name.ex5" |
Wenn die erste Aufrufform im Indikator verwendet wird, kann beim Ablauf des Benutzerindikators im Registerblatt "Parameters" Daten für seine Berechnung angegeben werden. Wenn der Parameter "Apply to" explizit nicht ausgewählt ist, wird die Berechnung mit den Werten "Close" durchgeführt.
Beim Aufruf eines Benutzerindikators aus dem mql5-Programm kann Parameter Applied_Price oder handle eines anderen Parameters am letzten nach aller vom Benutzerindikator vorausgesehenen Eingabevariablen übertragen werden.
Sehen Sie auch
Programmeigenschaften, Zugang zu Zeitreihen und Indikatoren, IndicatorCreate(), IndicatorRelease()
Beispiel:
#property indicator_separate_window
|