MetaTrader4
Indicador de Divergências: Como Usar no MetaTrader 4
Como Funciona o Template? Esse indicador oferece um template para traçar divergências com base no seu oscillator preferido. Dependendo do oscillator que você escolher (seja CCI, RSI ou até mesmo um indicador personalizado), você pode modificar essa parte do código: /////////////////////////////////////////////
//Carregar dados do indicador no buffer do indicador
//Você pode facilmente substituir RSI por qualquer indicador que preferir
int BARS=MathMax(rates_total-IndicatorCounted()-pivots_period,1);
for(int i=BARS;i>=0;i--)
{
indicatorBuffer[i]=iRSI(_Symbol, PERIOD_CURRENT, 14, PRICE_CLOSE, i);
}
//Fim da seção de carregamento do indicador
/////////////////////////////////////////////
Buffers de Sinal Este indicador possui quatro buffers diferentes para acompanhar os sinais gerados. Há um sinal sempre que o buffer correspondente contém um valor não vazio. SetIndexBuffer(3,bull_reg_divBuffer);
SetIndexBuffer(4,bear_reg_divBuffer);
SetIndexBuffer(5,bull_hid_divBuffer);
SetIndexBuffer(6,bear_hid_divBuffer);
Seção de Entradas input int pivots_period=5; //período para encontrar pivôs do indicador
input int alert_confirm_candles=1; //#candles para confirmação (0=desabilitar alerta)
Encontrar pontos altos e pontos baixos no indicatorBuffer depende da entrada pivots_period. Quanto maior você escolher esse valor, mais amplas serão as oscilações buscadas para possíveis divergências. Outra entrada é alert_confirm_candles, que define quantas barras esperar para confirmar um sinal. Indicadores de divergência costumam ter um atraso e geram muitos sinais falsos. Quanto maior você escolher esse valor, mais tempo irá esperar e, assim, a quantidade de sinais falsos diminui. É um compromisso entre querer sinais em tempo real ou aqueles confirmados. Normalmente, você não pode aplicar pivots_period < 2. Problema de Repaint Indicadores que dependem de cálculos de pivôs precisam esperar pelo menos pivots_period para obter uma confirmação do último ponto alto/baixo. Portanto, esse indicador precisa repaintar sinais até pivots_period para trás no tempo. BARS=MathMax(rates_total-IndicatorCounted()-pivots_period,pivots_period);
for(int i=BARS;i>=0;i--)
{
PHBuffer[i]=pivothigh(indicatorBuffer, pivots_period, pivots_period, i);
PLBuffer[i]=pivotlow(indicatorBuffer, pivots_period, pivots_period, i);
bull_reg_divBuffer[i]=BullRegDiv(i);
bear_reg_divBuffer[i]=BearRegDiv(i);
bull_hid_divBuffer[i]=BullHidDiv(i);
bear_hid_divBuffer[i]=BearHidDiv(i);
}
2024.03.10