Рекурсивный вызов в индикаторах на MQL5
- www.mql5.com
Может быть и в Вашем случае получится использовать такую конструкцию
Всё так и происходит как вы описали. Если передаем значение TimeFrame =-2 - ведем расчёт данных для выбранного таймфрейма и подставляем эти данные для отображения на таймфрейме графика.
Проблема в том что сами данные содержат нули. Почему, пока неясно.
может в ините надо так?
if(calculateValue) { rsi_handle=iRSI(NULL,_Period,RsiPeriod,PRICE_CLOSE); if(rsi_handle==INVALID_HANDLE){Print("Error handle #3");return(-1);} return(0); }вам же типа ступенек надо получить старший на младшем?
может в ините надо так? вам же типа ступенек надо получить старший на младшем?
Спасибо Алексей, вы как всегда на высоте. Именно это и нужно было получить!
Для всех, кому будет интересно, выкладываю рабочую версию индикатора с рекурсией:
Код, который когда-то работал и прикреплен выше, перестал работать. А жаль. Если у кого есть время, посмотрите пожалуйста, что там не так.
Сейчас получаем ошибку 4806 при первом рекурсивном обращении вот здесь:
//--- количество баров на таймфрейме if(CopyBuffer(ret_handle,1,0,1,bars)!=1) { Print("Error ",GetLastError()); }Что делать? Есть у кого какие соображения?
Код, который когда-то работал и прикреплен выше, перестал работать. А жаль. Если у кого есть время, посмотрите пожалуйста, что там не так.
работает

В общем разобрался. Дело было в неправильной обработке ошибки в коде. Мой баг.
На эту тему опубликовал чистый код индикатора с рекурсией MTF RSI Smoothed
Надеюсь он поможет всем, кто до сегодняшнего дня мультитаймфреймовые индикаторы пишет через вызов обычных.
Уважаемые форумчане.
Подскажите, как можно сделать рекурсивный вызов индикатора для MQL5.
Суть задачи в том, что существует на первый взгляд простая формула расчета индикатора: SMA(RSI)
Для отображения значений индикатора на текущем таймфрейме, всё делается просто. А как этот должно работать если индикатор мульти таймфреймный?
В MQL4 (код прилагается) это реализовано через вызов самого себя для нужного таймфрейма с последующим пересчётом значений для текущего теймфрейма графика.
Попытался реализовать это же для MQL5, и что-то не получается.
Все, у кого есть время и желание вникнуть в код, посмотрите пожалуйста и дайте пожалуйста свой совет.
Заранее благодарен.