Обсуждение статьи "MQL5 для "чайников": Получение значений технических индикаторов в своих экспертах" - страница 2

 
Для новичков этой статьи достаточно, чтобы проиллюстрировать использование индикаторов.
 
Подскажите пожалуйста, как в индикаторе, например в 
Bands_handle=iBands(NULL,0,144,0,2,PRICE_CLOSE);

поменять PRICE_CLOSE на значение "предыдущего индикатора" который написан вручную.
В терминале это можно выбрать, а как прописать в коде, я не понял.
В руководстве написано, что нужен Handle, но у меня есть только буфер.
Помогите пожалуйста.

 
Григорий Муратов #:
Подскажите пожалуйста, как в индикаторе, например в 

поменять PRICE_CLOSE на значение "предыдущего индикатора" который написан вручную.
В терминале это можно выбрать, а как прописать в коде, я не понял.
В руководстве написано, что нужен Handle, но у меня есть только буфер.
Помогите пожалуйста.

Посмотрите статью https://www.mql5.com/ru/articles/15

Индикатор от индикатора в MQL5
Индикатор от индикатора в MQL5
  • www.mql5.com
При написании индикатора, который использует краткую форму вызова функции OnCalculate(), можно упустить то обстоятельство, что индикатор может рассчитываться не только на ценовых данных, но и на данных другого индикатора (встроенного или пользовательского - не имеет значения). Вы хотите улучшить индикатор, чтобы он правильно считался не только на ценовых данных, но и значениях другого индикатора? В этой статье мы по шагам пройдем все необходимые этапы такой модификации и выведем дополнительные полезные правила для правильного написания индикатора.
 
Rashid Umarov #:

Посмотрите статью https://www.mql5.com/ru/articles/15

Спасибо за ссылку, однако там в комментариях утверждается, что код устарел. Попробую вникнуть
 

Григорий Муратов #:
Подскажите пожалуйста, как в индикаторе, например в 

Bands_handle=iBands(NULL,0,144,0,2,PRICE_CLOSE);

поменять PRICE_CLOSE на значение "предыдущего индикатора" который написан вручную.
В терминале это можно выбрать, а как прописать в коде, я не понял.
В руководстве написано, что нужен Handle, но у меня есть только буфер.
Помогите пожалуйста.

если посмотреть документацию https://www.mql5.com/ru/docs/indicators/ibands -- то читаем спецификацию:

int  iBands(
   string              symbol,            // имя символа
   ENUM_TIMEFRAMES     period,            // период
   int                 bands_period,      // период для расчета средней линии
   int                 bands_shift,       // смещение индикатора по горизонтали
   double              deviation,         // кол-во стандартных отклонений
   ENUM_APPLIED_PRICE  applied_price      // тип цены или handle
   );

-- "тип цены или хэндл" -- вот здесь вместо PRICE_CLOSE можно прописать хэндл пользовательского индикатора.

Например:

MA_Custom_handle=iCustom(NULL,0,"Examples\\Custom Moving Average",
                     MA_Period,
                     MA_Shift,
                     MA_Method,
                     PRICE_CLOSE
                     );
Bands_handle=iBands(NULL,0,144,0,2, MA_Custom_handle );