
指标模板如何运作?
这款指标模板用于绘制基于你选择的振荡器的背离信号。
根据你选择的振荡器(无论是CCI、RSI还是自定义指标),你可以修改以下代码部分:
///////////////////////////////////////////// //将指标数据加载到指标缓冲区 //你可以轻松将RSI替换为任何你喜欢的指标 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); } //指标加载部分结束 /////////////////////////////////////////////
信号缓冲区
此指标有四个不同的缓冲区,用于跟踪生成的信号。只要对应的缓冲区有非空值,就会产生信号。
SetIndexBuffer(3,bull_reg_divBuffer); SetIndexBuffer(4,bear_reg_divBuffer); SetIndexBuffer(5,bull_hid_divBuffer); SetIndexBuffer(6,bear_hid_divBuffer);
输入参数部分
input int pivots_period=5; //寻找指标转折点的周期 input int alert_confirm_candles=1; //#蜡烛确认数(0=禁用提醒)
在indicatorBuffer中寻找转折高点和转折低点依赖于pivots_period的输入。你选择的值越大,它将搜索更大的波动以寻找可能的背离。
另一个输入是alert_confirm_candles,它定义了等待多少根蜡烛来确认信号。背离指标大多具有滞后性,容易发出虚假信号。你选择的值越大,它将等待更长时间,从而减少虚假信号的数量。这是一个关于你希望获得及时信号还是确认信号的折中选择。
通常你不应该将pivots_period设置为小于2。
重绘问题
依赖于转折点计算的指标必须等待pivots_period的时间才能确认最近的高点/低点。因此,这个指标需要在时间上重绘信号,直到pivots_period。
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); }
评论 0