拖后腿!程序化交易应该避免策略最佳化!

程序化交易领域,关于策略的设计一直存在一个难题困扰着交易者。这个问题无论是新手还是老手都会遇到,那就是,我们的程序是否过度最佳化了。

 
我们目前用来开发 程序化交易策略的方法主要是,按照历史资料使用各种不同的逻辑来测试。希望能够找到一种可以用在未来行情的通则。我们利用归纳法来找出这个通则,通则即表示我们回测的概率。
但是,如果我们添加过多的逻辑条件,就像是对数据做细节的表述,当然我们可以得到一个非常漂亮的测试。但是它对未来行情的预测能力就一定会不如之前的。这就像我们考试,如果不明白如何解答仅仅将之前考试的答案背下来,那么当题型稍有改变就不知道该如何回答了。
 
截至目前,并没有准确的规定说明我们到底该用多少个参数或者指标。只能够被动的继续测试,常见的方法是forward backtesting。
 
该方法主要是把历史数据分为两部分,一部分用我们觉得历史区间最好的参数去测试,另一部分被当作未知数据,然后再对这个参数进行测试。如果同一组参数在这两部分运作的情形相差不大。那么就表示这组参数是稳健的,反之我们就要小心了。
 
除了上述的方法之外,避免过度最佳化也可以从策略组合的角度来设计,换句话说,就是让你的策略更加专注。专注在什么地方呢?专注在目标上,目标可以设计成长波段10%行情、中波段3%行情、震荡盘策略、极短线策略、当冲策略或者是针对只作多空单方向的特殊策略等。
 
在我们对这些策略进行设计时,就要保证明确的单一目标。比如我们想设计一个大行情必吃的策略,那么就无需理会小行情。或者是能做到避开损失,千万不要妄想连震荡小行情也吃的到,这样非常有可能会陷入多重逻辑的陷阱。
 
我们来举个例子,假如要在动物园里举办铁人三项。项目分别是,短跑、游泳和飞行。老鹰短跑和游泳都不行但是飞行获得了第一名,海豚则是游泳冠军,但另外两项不行,猎豹在短跑得了冠军,但是另两项不行。这项比赛最差的是鸭子,三项都会一点,但是每项都不好。
 
这个故事告诉我们,程序化交易策略也是如此,如果我们想要设计一个什么状况都能使用的策略,那就会设计出一个什么都做不好的鸭子。正确的做法是,设计一个由老鹰、海豚和猎豹组成的团队。
 
程序化交易领域,应用在避免过度最佳化上,我们主要应该降低整体drawdown,也就是看老鹰、猎豹和海豚彼此的配合以及这个战队是否能够发挥出综合效果。
 

猜你喜欢

转载自www.cnblogs.com/cxhjy/p/10159857.html
今日推荐