Funkcja double iMACD() zwraca wartość wskaźnika Moving Averages Convergence/Divergence. Więcej informacji można znaleźć w specyfikacji MQL4.
Skrypt do wyświetlenia wartości wskaźnika iMACD() dla bieżącego instrumentu finansowego _Symbol , bieżącego przedziału czasowego PERIOD_CURRENT , okresu szybkiej wykładniczej średniej kroczącej (EMA) = 12, okresu wolnej EMA = 26, okresu linii sygnału = 9, na podstawie cen zamknięcia świec PRICE_CLOSE , głównej linii wskaźnika MODE_MAIN i bieżącej świecy (indeks 0).
#property strict
void OnStart()
{
//---
string symbolName = _Symbol; // bieżący instrument finansowy
ENUM_TIMEFRAMES timeFrame = PERIOD_CURRENT; // bieżący przedział czasowy
int fastEmaPeriod = 12; // okres szybkiej EMA
int slowEmaPeriod = 26; // okres wolnej EMA
int signalPeriod = 9; // okres linii sygnału
ENUM_APPLIED_PRICE appliedPrice = PRICE_CLOSE; // cena
int lineMode = MODE_MAIN; // identyfikator linii wskaźnika
int indexBar = 0; // indeks świecy
//--- znaleźć wartość wskaźnika iMACD
double result = iMACD(symbolName, timeFrame,
fastEmaPeriod, slowEmaPeriod, signalPeriod,
appliedPrice, lineMode, indexBar);
//--- wyświetlić wynik
Print("iMACD() = ",result);
}
Rys. 1. Przykład stosowania funkcji iMACD().
Skrypt do wyświetlenia wartości wskaźnika iMACD() dla USDJPY, przedziału czasowego H1, okresu szybkiej EMA = 15, okresu wolnej EMA = 35, okresu linii sygnału = 7, ceny open, głównej (MODE_MAIN) oraz sygnałowej (MODE_SIGNAL) linii i świecy z indeksem 1.
#property strict
void OnStart()
{
//--- znaleźć wartości wskaźnika iMACD
//--- główna linia
double main = iMACD("USDJPY", PERIOD_H1, 15, 35, 7,
PRICE_OPEN, MODE_MAIN, 1);
//--- sygnałowa linia
double signal = iMACD("USDJPY", PERIOD_H1, 15, 35, 7,
PRICE_OPEN, MODE_SIGNAL, 1);
//--- wyświetlić wyniki
Print("Dane dla USDJPY, H1, ",
"szybkie EMA 15, wolne EMA 35, sygnał 7, ",
"PRICE_OPEN i świeca 1:");
Print("Główna linia (MODE_MAIN): iMACD() = ",main);
Print("Sygnałowa linia (MODE_SIGNAL): iMACD() = ",signal);
}
Rys. 2. Przykład stosowania funkcji iMACD().