陷阱3:系统测试使用所有历史数据在系统开发时 , 很多交易员可能出现的第三个错误就是在测试系统时使用所有可用的历史数据 。 大多数缺乏经验的交易员会对到今天为止所有的历史数据进行优化与分析 。 之所以这么做 , 是因为他们希望确保策略已经反映了对最新数据的调整 。
当然 , 如果第一次测试失败 , 交易员将在系统中添加一些规则或筛选条件(这样一来 , 就更可能出现前面提到的策略过于复杂的错误) , 然后再次运行所有数据 。
最终 , 交易员会找到一个可行的交易策略系统 , 并将这一系统运用到实际交易中 。 但在交易策略发生问题时 , 这种做法几乎总是必然的解决方法 。
一个更好但难度也更高的方法是通过对样本外数据的测试来验证一个交易系统 。 比如说 , 交易员可能会用过去10年的数据来制定交易策略 , 但保留最近一年的数据 。 当系统开发完成后 , 使用未知的(也就是样本外数据)进行测试;如果系统运行得较好 , 那么这一系统可以被用于实时交易 。
此外 , 还能采取移动窗格测试 。 这种方法使用多个样本外的时间段 , 更有可能获得成功 , 因为产生的股票曲线已经完全包括了样本外的优化结果 。
移动窗格测试或者样本外测试的一个缺陷在于:一旦样本外测试运行过一次 , 任何进一步的测试就不再是基于真正的“样本外数据”而进行的 。 因此 , 如果测试运行过很多次之后 , 很容易在不经意间就使得样本外测试变成了样本内测试 。 不过 , 样本外测试的方法还是要优于对所有数据进行优化的方法 。
系统开发没有捷径设计一个可行的交易策略是相当困难的 。 事实上 , 很多交易员从来没有真正做到过这一点;很多时候 , 他们在开发系统时会走捷径或者在系统开发过程中出现过于简化的错误 。 当然 , 在系统中添加一条又一条规则、一个又一个筛选条件 , 比找到一条合适又简洁的规则要容易得多 。
同样地 , 如果不考虑佣金和滑移的摩擦成本 , 找到可行的策略也是相当容易的 。
最后 , 与移动窗格测试或者样本外测试相比 , 对所有可用的历史数据进行优化是一种相对简单的方法 , 得到的结果看上去会更好 。
但问题的关键是 , 如果我们使用对所有数据进行优化的方法来建立交易策略系统 , 相当于设计出这样一个交易策略:只有在测试的时间样本内应用这一交易策略系统 , 才能获利 。 当然 , 这需要有一个时间机器 , 而这显然比建立一个有利可图的系统更为复杂 。
我们从上述系统开发的常见错误中得到的启示是:如果某一种方法使得系统设计变得更简单 , 或者回测的成功率明显提高 , 那么 , 这实际是一个可能有错误发生的警示信号 。 一个合理、恰当的系统开发过程总是困难重重的 。
【小心策略制定时的三大陷阱】然而 , 从长期来看 , 用正确、恰当的方法开发交易系统 , 总是要好过因为系统开发中产生的错误而在市场上赔钱 。
推荐阅读
- 浙江杭州,自助超 市老板发现价值1888元的刺身不翼而飞
- 他偷吃了我故意点的变态辣外卖后住院,竟然还要求我赔钱?
- “偷到钱又把钱送回去还构成犯罪吗?”
- 案例分析:信用卡诈骗和盗窃有什么区别?如何认定?
- 3名女子组团到他人瓜田里偷南瓜,期间还进行比赛,看谁偷的最多
- 海南三亚:80后男子在天涯一酒店杀害3名模特,其作案动机堪称卑劣
- 男子和女网友到酒店约会,约会结束时,突然发现20多万的黑水鬼劳力士不对劲
- 吉林省吉林市,发生一起让人特别无语的案件
- “这是我捡的,快给我道歉!”