【风险提示】 本文仅为通达信公式编程与技术分析的学习笔记,不指向任何个股,不构成投资建议。股市有风险,入市需谨慎。
2021年我回测一个"完美公式",年化80%。兴奋了三天,后来发现用了ZIG。实盘一跑,信号天天变。那一刻我才明白:未来函数是选股公式里最贵的免费午餐。
一、原版源码拆解
网上最常见的写法:ZIG(3,5)>REF(ZIG(3,5),1) AND PEAK(1,5,1)>PEAK(1,5,2);。
主要问题有:
① ZIG是未来函数,回测完美但实盘信号漂移
② PEAK/TROUGH依赖未来数据,无法实时确认
③ REFX引用未来K线,盘中信号不稳定
二、优化版源码(可直接复制)
下面是我改完的版本,每一行都有改动的理由:
{安全版:去未来函数·只用已知数据}
{— 用已知高低点替代ZIG —}
高点:=HHV(H,20);
低点:=LLV(L,20);
{— 突破前高(不用PEAK) —}
突破前高:=C>REF(高点,1);
{— 站上N日均线 —}
站上均线:=C>MA(C,20);
{— 量能配合 —}
放量:=VOL>MA(VOL,10)*1.3;
{— 无未来函数核查 —}
安全:=BARSLAST(突破前高)>0;
{— 综合选股 —}
XG:
突破前高
AND 站上均线
AND 放量
AND 安全;
三、这次改了什么?
无未来函数核查:已确认本代码不含 ZIG / PEAK / TROUGH / BACKSET / REFX 等函数。
核心优化:
1. 用HHV/LLV替代ZIG,数据确定不变,信号不漂移;
2. 用REF(高点,1)替代PEAK,只引用已确认的历史值;
3. 彻底移除REFX,确保所有引用都在当前或过去;
核心优化:
1. 用HHV/LLV替代ZIG,数据确定不变,信号不漂移;
2. 用REF(高点,1)替代PEAK,只引用已确认的历史值;
3. 彻底移除REFX,确保所有引用都在当前或过去;
【编者手记】 判断一个公式有没有未来函数,最简单的方法:把信号画在图上,然后翻历史K线,看信号会不会"消失"或"移动"。如果会,一定有未来函数。ZIG、PEAK、TROUGH、REFX、BACKSET,这五个是重灾区,见到就删。
【免责声明】本文公式仅供通达信语法学习与历史复盘参考,不构成任何投资建议。股市有风险,决策需谨慎。

