Я понимаю, как найти сигнал индикатора (например macd) на текущем баре в mql5.
Но вот, как найти сигнал на истории, за N-ное количество баров? Ничего не могу придумать.
Может, кто поделится?
Я понимаю, как найти сигнал индикатора (например macd) на текущем баре в mql5.
Но вот, как найти сигнал на истории, за N-ное количество баров? Ничего не могу придумать.
Может, кто поделится?
for(i=0;i<Bars(Symbol(),0);i--) { MAIN_CURENT=iMACD(NULL,0,12,26,9,0,MODE_MAIN,i); MAIN_PREVIOS=iMACD(NULL,0,12,26,9,0,MODE_MAIN,i+1); SIGNAL_CURENT=iMACD(NULL,0,12,26,9,0,MODE_SIGNAL,i); SIGNAL_PREVIOS=iMACD(NULL,0,12,26,9,0,MODE_SIGNAL,i+1); // Здесь проверка условий break; // не забудь поставить, чтобы выйти из цикла раньше, либо он сам выйдет если не найдет по окончанию цикла }
https://www.mql5.com/ru/docs/series/bars почитай по количеству баров
- www.mql5.com
https://www.mql5.com/ru/docs/series/bars почитай по количеству баров
Это старый код, а топикстартер просил MQL5 код.
Я понимаю, как найти сигнал индикатора (например macd) на текущем баре в mql5.
Но вот, как найти сигнал на истории, за N-ное количество баров? Ничего не могу придумать.
Может, кто поделится?
Функция получения данных с индикатора работает одинаково для любого номера бара (Хоть #0, #1 или #2). Подробнее на примере iADX:
Проверка работы обоих методов получения данных с индикатора - мышка установлена на баре #0 и можно сравнить "Окно данных" и распечатанные на экране значения с бара #0, #1 и #2:
Я понимаю, как найти сигнал индикатора (например macd) на текущем баре в mql5.
Но вот, как найти сигнал на истории, за N-ное количество баров? Ничего не могу придумать.
Может, кто поделится?
int handle; double main[], signal[]; void OnInit() { handle = iMACD(_Symbol, 0, 12, 26, 9, PRICE_CLOSE); if(handle==INVALID_HANDLE) ExpertRemove(); ArraySetAsSeries(main, true); ArraySetAsSeries(signal, true); } void OnTick() { ArrayFree(main); ArrayFree(signal); if( CopyBuffer(handle, 0, 0, 5, main) != 5 ) return; if( CopyBuffer(handle, 1, 0, 5, signal) != 5 ) return; string str = "Info MACD"; for(int i=0; i<5; i++) str += "\nMain " + IntegerToString(i) + ": " + DoubleToString(main[i], _Digits) + "\nSignal " + IntegerToString(i) + ": " + DoubleToString(signal[i], _Digits) + "\n"; Comment(str); }
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Я понимаю, как найти сигнал индикатора (например macd) на текущем баре в mql5.
Но вот, как найти сигнал на истории, за N-ное количество баров? Ничего не могу придумать.
Может, кто поделится?