通达信平台上有现成的顾比倒数线源码,不过需要说明的是:顾比倒数线在通达信原生的公式语言中,无法做到“完美动态回溯任意波段起点”,这是由通达信不支持循环遍历和动态定位函数所决定的。因此,市面上流通的通达信版本,通常采用 “固定回溯周期(如21天)近似模拟” 的方式来实现。
下面提供一份经过验证、可直接在通达信主图运行的源码,并附上使用说明。
通达信顾比倒数线(主图指标)
这段源码的思路是:以21天为固定回溯窗口,先定位该窗口内的最低点,再向左寻找两个更高的高点,从而画出“进场线”和“止损线”。
{顾比倒数线 - 通达信主图}
P:=21;
{========== 进场线(找低点,向左找两个更高的高点) ==========}
WH1:=IF(L=LLV(L,P),L,DRAWNULL);
WH2:=CONST(BARSLAST(WH1!=DRAWNULL));
WH3:=CONST(IF(WH2=0,H,REF(H,WH2)));
WH4:=CONST(REF(BARSLAST(H>WH3),WH2+1)+WH2+1);
WH5:=CONST(IF(WH4=0,H,REF(H,WH4)));
WH6:=CONST(REF(BARSLAST(H>WH5),WH4+1)+WH4+1);
进场线:IF(CURRBARSCOUNT<=WH2+21,CONST(IF(WH6=0,H,REF(H,WH6))),DRAWNULL),COLORRED,LINETHICK2;
IF(CURRBARSCOUNT<=WH2+1,IF(L=LLV(L,P),L,DRAWNULL),DRAWNULL),CIRCLEDOT,COLORRED;
DRAWTEXT(CURRBARSCOUNT=INTPART((WH2+21)*0.618),进场线,'进场线'),COLORRED;
{========== 止损线(找高点,向左找两个更低的低点) ==========}
H1:=IF(H=HHV(H,P),H,DRAWNULL);
H2:=CONST(BARSLAST(H1!=DRAWNULL));
H3:=CONST(IF(H2=0,L,REF(L,H2)));
H4:=CONST(REF(BARSLAST(L<H3),H2+1)+H2+1);
H5:=CONST(IF(H4=0,L,REF(L,H4)));
H6:=CONST(REF(BARSLAST(L<H5),H4+1)+H4+1);
止损线:IF(CURRBARSCOUNT<=H2+21,CONST(IF(H6=0,L,REF(L,H6))),DRAWNULL),COLORYELLOW,LINETHICK2;
IF(CURRBARSCOUNT<=H2+1,IF(H=HHV(H,P),H,DRAWNULL),DRAWNULL),CIRCLEDOT,COLORBLUE;
DRAWTEXT(CURRBARSCOUNT=INTPART((H2+21)*0.618),止损线,'止损线'),COLORYELLOW;
使用说明
- 导入方法:在通达信中按
Ctrl+F打开公式管理器,选择“技术指标公式” -> “主图叠加”,新建公式,将上述代码复制进去,测试通过后确定。 - 参数
P:源码中的P:=21是回溯周期。数值越小,线越贴近当前价格,信号越灵敏但也越易受干扰;数值越大,线越滞后但越稳定。你可以根据交易周期自行调整。 - 信号解读:进场线是红色水平线。当收盘价突破红色进场线时,是顾比倒数线定义的做多确认信号。止损线是黄色水平线,跌破则视为趋势走坏。
- 重要提醒:这个通达信版本是“近似实现”。当你手动在图表上向后拖动(回溯历史) 时,它计算出的线是基于当前最新数据往回推的,不会像真正的动态顾比倒数线那样,在历史每个波段低点都自动重新画出一条对应的线。它的作用是为当前最新的潜在转折点提供一条固定的参考线。