最近我在对多个策略单元进行参数优化,选了60个期货品种,55个ETF品种,发现参数优化过程比较费时费力,第一次优化可以通过参数复制很方便的设置各个策略单元的初始参数优化范围,但后面的第二次、第三次等参数优化,就需要点开每个策略单元,手工对它们进行参数的范围缩小和细化,因为在公式测试调整阶段,就需要频繁的这么做,就比较吃力(毕竟重复性机械的劳动很无聊),所以我想给TBQ3提出以下的功能需求,请你们考虑一下能不能在以后的版本加进去,或者做个独立的小工具能对导出的策略单元进行类似的设置。
如下所示,比如我的公式有6个参数,我的优化过程主要如下:
第一次优化参数设置:
参数1:FastMA(10, 200, 10)
参数2:SlowMA(60, 500, 10)
参数3:ATRPeriod(5, 30, 5)
参数4:HalfProfitPercent(0, 10, 2)
参数5:StopLossPercent(1, 5, 1)
参数6:TakeProfitPercent(0, 10, 2)
第一次优化后选出的最佳组合:(举个例子)
参数1:FastMA(60)
参数2:SlowMA(120)
参数3:ATRPeriod(15)
参数4:HalfProfitPercent(6)
参数5:StopLossPercent(4)
参数6:TakeProfitPercent(8)
第二次优化参数设置:(第一次优化后的结果减去第一次优化的step值作为新的边界来缩小范围,然后设置新的step值)
参数1:FastMA(50, 70, 1)
参数2:SlowMA(110, 130, 1)
参数3:ATRPeriod(10, 20, 1)
参数4:HalfProfitPercent(4, 8, 0.5)
参数5:StopLossPercent(2, 6 , 0.5)
参数6:TakeProfitPercent(6, 10, 0.5)
第三次、第N次也以此类推…………
通常对策略单元进行分步参数优化,后面步骤的参数优化往往就是在前面的优化结果基础上对参数进行细微调整,这往往是有规律的,可能就是在之前的粗糙的结果上把参数搜寻范围缩小,step值也缩小,如果TBQ3能对参数优化增加一个功能,就是对选中的多个策略单元的优化参数能做批量的统一修改,比如拿上述参数1 FastMA举例,可以设置新的下边界为:当前值-N,新的上边界为:当前值-M,新的step值为:X,这样就可以很方便的对多个待优化策略单元进行细化修改,节省时间精力,也不容易出错。
如果有更好的能节省这些步骤操作的时间精力的想法或建议,欢迎留言。
修正:“比如拿上述参数1 FastMA举例,可以设置新的下边界为:当前值-N,新的上边界为:当前值+M,新的step值为:X”,上边界是加上一个数值