自己的看盘规则,如果只在脑子里,每次执行都有差异;写成脚本之后,至少有几个实在的好处,也有几个容易踩的坑。聊聊我的看法,也想听听大家的做法。
好处:
1. 逼你把规则说清楚。"均线金叉"听着简单,写成代码就要回答:用哪个价格、几日均线、收盘确认还是盘中算。说不清的规则,写不出代码。
2. 执行一致。脚本不会因为心情改规则,每天、每个标的的口径都一样。
3. 能批量回看。同一条规则可以放到很多标的、很长的历史上看它出现过多少次、后来怎样,避免只记得印象深的几次。
4. 参数可调。周期、阈值作为参数暴露出来,调着看影响多大,也能发现规则是不是过度依赖某个参数。
上图是在观潮 TideView 里截的:指标编辑器里的内置模板「双均线指标」,23 行脚本,开头是快线、慢线两个周期参数,后面计算均线、绘制并检测交叉,右边有「诊断日志」和「参数优化」页签。
坑:
1. 过拟合。把参数调到历史上最好看,不代表以后还成立。参数周围一片都不错才值得信,只有一个点好看的要警惕。
2. 用到未来数据。比如拿当天收盘价去判断当天开盘该做什么,回看很漂亮,实际用不了。
3. 忽略规则细节。涨跌停无法成交、停牌、复权方式,都会让回看和实际不一致。
4. 以为写成代码就更"科学"。脚本只是把规则固定下来,规则本身有没有道理,仍然要自己判断。
5. 回看不等于未来。历史上的表现只能说明过去。
我自己的建议是:先写最简单的一条,跑通,再慢慢加;每加一条都问一句,这条能否在动手之前就看到。
我是观潮 TideView的开发者,上面的编辑器就是观潮里的,有网页版和桌面客户端。
想问问大家:你们把规则写成脚本之后,遇到最大的一个坑是什么?是过拟合,还是数据口径?
仅讨论方法,不构成投资建议。