前面介绍了如何使用 hikyuu 进行策略回测参数优化,同时也提到了这种简单的参数优化本质其实是对历史数据的过拟合,通常并不具备直接使用的意义。那么有什么办法来减缓这种过拟合影响,让参数优化发挥实际的作用呢?答案是——使用滚动系统,但依然需要保持谨慎的态度,因为回测是拟合的本质并没有改变。
先来看一个简单的示例,依然使用趋势双均线,标的为万科,使用2001年-2010年数据进行参数寻优,参数寻优范围为 快线 [5, 80], 慢线 [50, 250],共 14535 组参数组合,寻优结果为快线41,慢线72。对2010年至2024年9月30日数据进行回测,下图分别为:使用最优参数的回测结果(左图)、使用滚动寻优系统的回测结果(右图)。其中滚动寻优为每300个交易日寻找最优参数,并使用最优参数系统执行200天,以此滚动推进。
在 hikyuu 中,创建滚动寻优系统很简单,指定寻优候选系统列表,滚动训练区间长度,测试执行区间长度,有效初始账户即可。当候选系统列表中仅有一个系统时,就是普通的滚动回测。并且,候选系统列表并要求一定是同一个策略的系统示例哦,也就是说,可以在不同的系统策略中进行滚动寻优。创建后的滚动系统实例,在 PF(投资组合)中依然可用,因为滚动交易系统本质还是一个单标的的交易系统实例。