-- 作者:mao100003801
-- 发布时间:2014/5/3 15:18:11
-- cross函数引发的测试系统bug
举例:cross(ma5,ma10):
1. 当ma5和ma10的值正好一样的时候,是否不算作交叉?
2.如果前一周期ma5>ma10, 中间周期ma5=ma10,下一周期ma5>ma10了算不算金叉?---就实际图表来看,金字塔是把这种情况算金叉了,于是会出现连续金叉的情况!也就是,两次金叉之间,没有死叉!*********从逻辑道理来看,这种情况不应该算作一次交叉,因为两条线只是粘合了一下,就继续原来的走势了。
于是,出现了一个情况:
系统自带的ma均线交易系统,使用的条件是两个均线的cross,由于上述原因,有时会出现连续两个金叉,系统就发出两次建仓信号,然后,测试系统对交易次数的计算就混乱了。经检查,是随后的很多次交易的收益被计算为零,系统似乎又把多次交易合并计算为了一次,结果就是交易次数的计算上出现了混乱。
本人不会贴图。客服只需要用系统的MA均线交易系统,把螺纹钢在不同时间周期上测一遍,就会发现交易次数的统计bug了。
虽然这不算是什么大的bug,但是对使用cross函数作进出条件的人来说,危险性是很清楚的。因为系统的历史回测数据是错的。
|