未来函数可能引用未来发生的数据,对原来的判断进行修改,这会导致信号漂移,比如产生原来没有的信号、原来的信号改变位置或者已经产生的信号消失。
未来函数如何偷梁换柱?
单纯讲概念,对未来函数也没有深刻的认识,下面就举一个奇葩的例子,来了解未来函数如何实现偷梁换柱。
首先问一个问题:可以精准预测明天涨停吗?如果不考虑消息等因素,那么明显不可能做到精准预测,但是指标使用未来函数可以给你预测的假象。
ZT:=C/REF>095ANDC=H;BS:=BACKSET;QYT:FILTER;
把指标加载到附,可以发现,都在涨停前一天发出了信号。
明明不可能,这是怎么样做到的呢?技术Pie来分析一下源码:
ZT:=C/REF>095ANDC=H;,这一句表示涨停,为了举例方便,只考虑涨跌停为10%的情况。
BS:BACKSET;,这一句表示如果涨停就把当天和前一天都置为在通达信中,经常用1和0来判断条件是否成立,都置为就表示当天和前一天条件都成立了。
QYT:FILTER;,FILTER用来过滤重复出现的信号,FILTER表示2天内出现重复信号就过滤掉,经过这样处理,只会在涨停前一天发出信号,涨停当天不出现信号。
检测未来函数
一般的未来函数,通达信会在窗口左下角显示“用到未来数据”,但是公式使用了未来函数,信号就一定会漂移吗?这不见得,有的未来函数经过严格的限制,可以实现信号不漂移。此外没有使用未来函数,信号就不漂移吗?这也不一定,有的函数通达信不标注未来函数却有未来性质,而且有时候逻辑错误也可能导致信号漂移。
采用分析代码的方法太难了,而且有的错误可能隐藏比较深,不容易看出来。通达信有两个功能——训练模式和沙盘推演,可以用来检测未来函数。
训练模式
在看盘界面,右键单击,在菜单中选择“训练模式”。
在弹出的窗口中,点击1处的下拉箭头,可以选择训练开始的时间,选择之后,点击2处的“更换至此日期”,然后点击3处的“下一K线”,就可以开始观察信号。
如果不想手动播放,可以调整“播放步长”。0.5秒/步就是1秒播放2根K线,如果觉得比较慢,可以调小。调整之后,点击“自动播放”。
测试信号漂移只是训练模式的一个功能,还可以用来复盘,做模拟交易,我这里就不详细讲了。
沙盘推演
沙盘推演也可以用来复盘查看信号是否漂移。在看盘界面,右键单击,在菜单中选择“沙盘推演”。点击“开始播放”,就会自动开始播放行情。
区别
训练模式不能后退,只能通过选择日期后退。沙盘推演不能选择日期,可以前进后退,播放中途停止会卡住。两种方式都可以检测未来函数,看自己的使用习惯。
最后说明一下,未来函数是否一无是处呢?不见得,要看怎么使用。有的未来函数经过严格的限制,可以实现信号不漂移。不过新手还是不建议使用,等有足够的经验之后再来尝试。
文章为作者独立观点,不代表 股票程序化软件自动交易接口观点