Discussão do artigo "MQL5 para Novatos: Guia para o Uso de Indicadores Técnicos em Expert Advisors" - página 2

 
Para iniciantes, este artigo é suficiente para ilustrar o uso de indicadores.
 
Você poderia me dizer como, em um indicador, por exemplo, no
Bands_handle=iBands(NULL,0,144,0,2,PRICE_CLOSE);

alterar o PRICE_CLOSE para o valor do "indicador anterior", que é escrito manualmente.
No terminal, ele pode ser selecionado, mas não entendo como escrever no código.
O manual diz que é necessário o Handle, mas eu só tenho um buffer.
Por favor, me ajude.

 
Григорий Муратов #:
Você poderia me dizer como alterar o PRICE_CLOSE em um indicador, por exemplo, no indicador

alterar PRICE_CLOSE para o valor de "previous indicator" (indicador anterior), que é escrito manualmente.
No terminal, ele pode ser selecionado, mas não entendo como escrever no código.
O manual diz que é necessário um Handle, mas eu só tenho um buffer.
Por favor, me ajude.

Dê uma olhada no artigo https://www.mql5.com/ru/articles/15

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

Confira o artigo https://www.mql5.com/ru/articles/15

Obrigado pelo link, no entanto, nos comentários, ele afirma que o código está desatualizado. Tentarei dar uma olhada nisso
 

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

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

Alterar PRICE_CLOSE para o valor do "indicador anterior", que é escrito manualmente.
No terminal, ele pode ser selecionado, mas não entendo como escrevê-lo no código.
O manual diz que é necessário o Handle, mas só tenho um buffer.
Por favor, me ajude.

Se você der uma olhada na documentação https://www.mql5.com/ru/docs/indicators/ibands, a especificação diz:

int  iBands(
   string              symbol,            // nome do caractere
   ENUM_TIMEFRAMES     period,            // período
   int                 bands_period,      // período para calcular a linha média
   int                 bands_shift,       // indicador deslocado horizontalmente
   double              deviation,         // número de desvios padrão
   ENUM_APPLIED_PRICE  applied_price      // tipo de preço ou identificador
   );

-- "price type or handle" -- aqui, em vez de PRICE_CLOSE, você pode escrever o handle de um indicador personalizado.

Por exemplo:

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 );