Custom Indicator in EA funktioniert nicht

 

Hallo.

Ich versuche derzeit, nen eigenen Oszillator in nen eigenen EA ein zu baun. Sind beide im Anhang. Hab Anleitungen und Deklarationen und was weiß ich Alles bestimmt 10x durch geguckt. Immer wird im MT4 bei den Werten der eigenen Oszillatoren 0 angezeigt. Fehlermeldungen oder Warnungen gibts Keine. Das müsste doch eigentlich Alles richtig sein.

Diese MAs A und B sollen vom EA benutzt werden. Aber der zeigt bei Ihren Werten, bzw. bei den Buffern immer 0 an.

A = iMA(Symbol(),0,MAa_Period,MAa_ChartShift,MAa_Method,MAa_Price,i);

B = iMA(Symbol(),0,MAb_Period,MAb_ChartShift,MAb_Method,MAb_Price,i);


Hier die externen Variablen und Deklarationen der beiden MAs im EA. Das ist doch Alles eigentlich richtig oder nicht?

extern int MA_M_a_Period=4;
extern int MA_M_a_ChartShift=0;
input ENUM_MA_METHOD MA_M_a_Method=MODE_SMA;
input ENUM_APPLIED_PRICE MA_M_a_Price=PRICE_CLOSE;

extern int MA_M_b_Period=8;
extern int MA_M_b_ChartShift=0;
input ENUM_MA_METHOD MA_M_b_Method=MODE_SMA;
input ENUM_APPLIED_PRICE MA_M_b_Price=PRICE_CLOSE;


MAdMA_M_A = iCustom(Symbol(),TF_Trading,

"MAdMA_SEP",
MA_M_a_Period,
MA_M_a_ChartShift,
MA_M_a_Method,
MA_M_a_Price,

MA_M_b_Period,
MA_M_b_ChartShift,
MA_M_b_Method,
MA_M_b_Price,
0,// Line-Index
1// Shift
);

MAdMA_M_B = iCustom(Symbol(),TF_Trading,

"MAdMA_SEP",
MA_M_a_Period,
MA_M_a_ChartShift,
MA_M_a_Method,
MA_M_a_Price,

MA_M_b_Period,
MA_M_b_ChartShift,
MA_M_b_Method,
MA_M_b_Price,
1,// Line-Index
1// Shift
);
 
Angucken hilft nicht viel manchmal, geh mit dem Debugger durch und setz einen Haltepunkt immer dort an, wenn dem Puffer des Oszillators ein Wert zugewiesen wird.
 

Hallo.


Hab ne Ahnung, warum der EA den eigenen Oszi nicht (richtig) erkennt: Weil die Werte von MAs anscheinend in einer anderen Reihenfolge genutzt werden, als es den Anschein hat. Aber in Welcher?


Offiziell müssen sie anscheinend so angeordnet werden, aber es sieht bei den Print-Werten im MT4 so aus, als müsste man sie in anderer Reihenfolge schreiben. Aber wie? In den mir bekannten iMA-Quelldateien stehts nicht drin.


https://docs.mql4.com/indicators/ima

   int          ma_period,        // MA averaging period

   int          ma_shift,         // MA shift

   int          ma_method,        // averaging method

   int          applied_price,    // applied price
iMA - Technical Indicators - MQL4 Reference
iMA - Technical Indicators - MQL4 Reference
  • docs.mql4.com
iMA - Technical Indicators - MQL4 Reference
 

Für die Richtung der Arrays mit den Werten lies entweder die Doku über Arrays oder kontrolliere im Debugger die Einträge von time[0], time[1], time[2], ...

Das ist einer der wesentlichen Unterschiede von MQ4 und MQ5.