165行代码,搞定“寻找策略最优参数”框架(基于prade,240506更新附件)
有朋友问”Ptrade有没有可以实现——自动筛选最优参数的方法?”
这其实是一个参数优化的问题, Ptrade自带的回测好像只能逐组进行回测,好像没有办法进行多参数的寻优。对策略进行参数优化的功能还是挺有意义的,特别是我们新写了一个策略算法后,希望快速了解这个策略算法在什么样的参数下能获得较好效果。
完成“参数寻优”或者“参数优化”,需要的步骤:
1、需要借助Ptrade的平台的行情订阅功能,获取一段时间的行情数据;
2、基于获取的数据,将我们预设好的参数范围放进“交易策略”(为了大家便于理解,范例里我使用的是双均线策略,这里主要是写个方法,朋友具体想测试什么策略,可以参照改写这个部分)进行模拟历史行情的交易,自动对多组参数进行轮番测算 ;
3、最终计算出不同参数在行情下的交易情况,并且以比较好横向对比的形式输出结果;
4、借助电子表格之类的工具,对输出的结果进行观察和分析,寻找到自己想要的参数组合。
我写的这个框架一些特点:
1、可通过设定待测参数的最小值、最大值、步长,自动生成参数的列表;
2、考虑了交易手续费问题,可以根据测试者想要的值进行设定,比如万分之一(如果要模拟一些交易滑点之类的,其实可以稍微提高这个值,变相增加交易成本,模拟真实情况);
3、可自定义需要测试跨度,只要ptrade能够订阅到即可(其实就算订阅不到:1、从其他地方弄来数据,导入进去,稍微修改一下从文件读取也是可以的;2、更好玩的是其实也可以用我前几天写的那个《”仿真行情数据“生成器》根据标的的历史行情特征,自己生成一些出来。再进一步,也可以结合起来,打造自己的蒙特卡罗测试 );
4、日志和文件输出结果两种方式,简单看一下就直接看打印的日志,如果要深入分析可以进一步对输出的表格进行研究,较为便捷。输出的表格,包含了必要的字段,有利于我们较直观地了解策略的基本性能(具体看后面截图)。
回测设置、日志输出、结果输出 截图
源码放在附件内了,有兴趣的朋友按需自取。
2024.5.6发现源代码两处小错误,已经修正。原先有下载过的朋友,可以下载更新版本附件。
2024-05-05 22:49