四、系统是否被“过度优化”(Over-optimized)。可以看以下两点得到初步印象:
a.看系统有几个优化参数。参数越多,“过度优化”的可能性越大。一般来讲,超过两个就很危险了。如果你手头有系统测试软件,你可以做个简单的试验:选一个股票或期货,用两个移动平均的交叉作买入和卖出的信号,然后对这两个移动平均的日数做优化(例如从10日到160日,5日一阶),很有可能在优化的结果中你能找到很不错的。如果再加一个参数,譬如说止损点或赢利靶点(Profit Target),那么今天你就可以找到不少诱人的系统。但是你会用这些系统去交易吗?
b.看系统交易程式中是否有“魔术”数字。如果有,就要问为什么用这个特定的数字。譬如,程式中用了一个20天的移动平均,一般我都会问为什么用20天而不是10天?如果是10天的移动平均会是什么结果?30天又是什么结果?
c.看系统的交易策略是否简单。越是逻辑简单的系统,一般来说,越不容易被过度优化,也越能经得起时间的考验。海龟交易法则就是一个简单系统的典范。基于期货市场价格的季节性涨跌的系统也是很简单易懂的。很多人不相信大家都知道的交易策略能持久地赢利。在这里顺便谈谈我的看法。我认为,这个问题的关键,是不能简单地以为知道了交易策略就万事大吉了。交易策略可以大家都一样,但每个人的交易计划,包括资金管理和交易管理,和每个人的性格与自律程度,以及对市场的了解,则千差万别。好比人人都知道怎样在墙上钉个钉子:买个锤子啊!听起来最简单不过了,三岁小儿都知道。为什么很多人还是敲不好呢?原因很多。可能买了个自己使不动的锤子(交易系统不符合个性),可能不知道有些墙是要先探到砖缝的才好敲的(对市场不了解,选错了市场或选错了时段),也可能是钉子敲得太少(缺乏经验,对市场没感觉),或者是用力过猛把钉子敲弯了(想一夜暴富,结果过度交易搞破产了),等等。总之,交易策略可以简单,但要指望通过交易达到稳定地赢利却不容易。
回到“过度优化”的主题上,如果要做进一步的分析,我一般会看系统指标在不同参数下的分布。对于好的系统,这种分布的形状应该像小山包.
假设系统只有一个参数,即某个移动平均的日数。而且,为简单起见,我们只看系统的总赢利。可以看到,虽然总赢利在参数为45时最优,但用其他值时的赢利也很不错。或者说这是个可以“稳定”赢利的系统。
如果像悬崖,说明系统对于参数的变化太敏感,你就要小心了。
五、看系统的交易策略是否有实际意义。也就是说,系统的交易逻辑必须能够被合理解释。好的交易系统捕捉市场的某些可量化的特性,如果系统的逻辑无法合理地解释成市场的某种特性,那么这个系统是不可信的。举个例子说,假设某人发现在黄金突破20天高点之后的三个月联想总是会上涨,于是他开发出一个系统在黄金突破20天高点时买入联想的股票。这个系统可能可以通过以上所有的可信度检验而且每年能给你100%的回报,但是,在我有足够的想像力能够解释为什么联想的股票跟金价会有这种关系之前,我是不会用这个系统进行实战交易的。
只有在通过了以上所述的可信度检验后,讨论系统测试的绩效指标才有意义。如果是自己进行交易系统的开发,在交易策略的选择,优化,和测试的过程中就必须把可信度的问题考虑在内。但交易系统的开发与测试有更多的内容和需要注意的地方,需要另一个专题来讨论。
22/2<12