
¿Cómo funciona la plantilla?
Esta plantilla de indicador es ideal para trazar divergencias basadas en el oscilador que elijas.
Dependiendo del oscilador que decidas utilizar (ya sea CCI, RSI o incluso uno personalizado), puedes modificar la siguiente parte del código:
///////////////////////////////////////////// //Cargar datos del indicador en el buffer //Puedes reemplazar RSI con cualquier indicador que prefieras 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); } //Fin de la carga del indicador /////////////////////////////////////////////
Buffers de Señales
SetIndexBuffer(3,bull_reg_divBuffer); SetIndexBuffer(4,bear_reg_divBuffer); SetIndexBuffer(5,bull_hid_divBuffer); SetIndexBuffer(6,bear_hid_divBuffer);
Sección de Inputs
input int pivots_period=5; //período para encontrar pivotes del indicador input int alert_confirm_candles=1; //#de velas para confirmar (0=deshabilitar alerta)
Encontrar pivotes altos y pivotes bajos en indicatorBuffer depende de la entrada pivots_period. Cuanto mayor elijas este valor, buscará oscilaciones más grandes para posibles divergencias.
Otro input es alert_confirm_candles, que define cuántas barras esperar para confirmar una señal. Los indicadores de divergencia suelen ser rezagados y generan muchas señales falsas. Si eliges un valor más alto, esperarás más, y así se reducirán las señales falsas. Es un compromiso entre recibir señales a tiempo o esperarlas confirmadas.
Normalmente, no se permite aplicar pivots_period con un valor menor a 2.
Problema de Repaint
Los indicadores que se basan en cálculos de pivotes deben esperar el período de pivots_period para obtener una confirmación del último alto/bajo. Por lo tanto, este indicador necesita repintar las señales hasta pivots_period hacia atrás en el tiempo.
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); }
Comentarios 0