写交易系统代码的时候,无论如何都避不开时间参数。比如Turlerule,这么简洁的交易系统,它使用至少了三个时间参数。首先,计算N必须使用ATR,计算ATR需要对TR作平均,需要一个时间参数。其次,建立仓位需要一个时间参数,比如突破55日多/空头。再次,平仓还需要一个时间参数,比如21日空/多头。 使用了时间参数,于是优化问题出来,市场的适应性问题也来了。时间参数多了,优化问题会复杂。过度优化可能会导致数据拟合,鲁棒效应恶化,不优化你凭什么设计参数,总不能拍脑袋吧?市场适应的问题更复杂,指数,外汇,谷物/咖啡期货,金属期货,市场运行方式根本不一样。有的波动小,有的波动大,有的明显以年度为周期,有的周期十几年。即使是同一个市场,不同的历史阶段,也很不一样。Dennis本人也不反对根据不同的市场调整时间参数。 怎么办?至少有两个解决思路。V.Tharp提出了一个,一个系统最好不要有四个以上的时间参数。还有一个梦想,时间参考能不能动态的自动的调整呢? 这两个思路都很精彩。我们看一下我们的地球,什么生物能够适应广阔的各种各样的环境?从高山到平川,从热带到南北极,从森林到沙漠。答案是一类一种。一类,低级的、简单的生命,比如细菌。一种,最高级的,也就是,人。 细菌的思路就此打住,我们谈一谈人的问题。以"人"的思路解决这个时间参数适应的问题比较恰当的策略是使用人工神经网络,无导师训练的那种,有导师训练相当于人类进入了文化社会了,太复杂。处理得好突飞猛进,处理不好跟动态优化系统应当没有什么区别。N年以前,有一些高手,每隔几周就对其公式进行一次优化,每次优化以后的测试记录都非常完美,记录下来的参考操作结果离完美还有一定距离。这就是过渡优化了。我并不反对有导师训练,但是有导师训练本身也一个时间框架的问题,你允许多长时间训练一次,训练外的数据适应能力如何,等等。 这儿主要谈谈无导师训练问题。 (未完待续)
基本上,只要不是太烂的系统,太烂的意思是说故意设计为亏损的策略,即使是简单的平均线交叉这样的系统,都可以通过参数优化在BACKTEST中取得盈利,甚至是惊人的盈利这都不是什么困难的事情。 可以说在系统设计中参数优化是最让人头疼的问题之一。 如何确定有效的参数?我认为看资金曲线的平稳程度是一个很有效的办法,实际上这也是判断系统性能最优异的指标了,而且这个资金曲线最好是没有加入资金管理模块的曲线,因为不同的资金管理模式对曲线的影响也是不言而喻。另外就是看纯粹价格盈利亏损的百分比和分布也是个不错的办法,比采用单手和约的效果还要好,真正的不受资金管理的影响。
期待下文。 “至少有两个解决思路。V.Tharp提出了一个,一个系统最好不要有四个以上的时间参数。还有一个梦想,时间参考能不能动态的自动的调整呢?” 至于动态的自动调整,就要看根据什么调整了。可能会引出更多的参数。