Скачать MetaTrader 5

Существуют ли специальные требования к написанию пользовательского индикатора, чтобы на него можно было бы наложить другой индикатор?

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Eugene Myzrov
962
Eugene Myzrov  
Как известно, чтобы индикатор мог производить расчеты на значениях другого индикатора, необходимо использовать короткую форму вызова функции OnCalculate() вида:

//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int OnCalculate(const int rates_total,
                const int prev_calculated,
                const int begin,
                const double &price[])

Тогда при перетаскивании такого индикатора из окна "Навигатора" на окно базового индикатора появляется возможность выбора для расчетов данных первого или предыдущего индикатора, расположенных в данном окне:

Moving Average


Однако, в документации по MQL5 нет специальных требований к самому пользовательскому индикатору, на данных которого будут производиться расчеты накладываемого индикатора.
Но при попытке наложить классический трендовый индикатор MA на график пользовательского индикатора "Custom Indicator" получаю вот такую картинку:

MT5 Apply Indicator MA to Custom Indicator


Индикатор MA (желтая линия) показывает значения 1.#INF00 вместо ожидаемых средних значений пользовательского индикатора и только на нескольких последних барах показывает сколь-нибудь значимые значения MA.

Вопрос. Существуют ли специальные требования к написанию пользовательского индикатора, чтобы на него можно было бы наложить другой индикатор?
Или здесь дело в другом?
Andrey Khatimlianskii
59211
Andrey Khatimlianskii  

А кастумные данные в 0-м буфере?

Я не помню, должна ли работать эта фича, но если должна - то только по 0-му буферу. 

Eugene Myzrov
962
Eugene Myzrov  
Andrey KhatimlianskiiА кастумные данные в 0-м буфере? Я не помню, должна ли работать эта фича, но если должна - то только по 0-му буферу. 

Да, просто потому, что кастомный индикатор использует всего один буфер.

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий