二、多模型/多合约回测

(一)单模型多合约批量回测选最优合约

量化交易策略是不具备普适性的,我们很难构建出一个适用于所有合约的交易系统,但针对一个合约制定一个适合的模型则相对简单,同样的,针对一个模型也势必会存在一组最佳的交易合约。

软件的“批量回测”功能,可同步回测多个备选合约,快速出具各个合约的独立分析报告,投资者通过对比关注的收益指标便可快速挑选出符合策略的最佳合约。

1、案例:多合约同步回测,批量筛选最优合约

比如,针对MA组合策略以上期所部分指数合约作为样本进行批量回测,筛选最佳交易合约。回测后每一个合约都生成一份独立的回测报告和独立的资金曲线图(如下图1);投资者点击合约名称可切换回测报告分析,双击回测项目可对各合约的参考指标进行横向对比和优选(如下图2),极大程度的简化了操作步骤。

如上图,是沪铜合约的回测资金曲线,盈利效果还算不错,那它是否就是最当前策略的最佳交易合约呢?当我们展开各指标项进行横向对比时,可以看到沪铜合约盈利率虽高,但是权益最大回撤竟高达80772,扣除掉最大盈利后的收益率已为负值,看来沪铜合约在测试期间的盈利并不稳定。

而螺纹合约虽然盈利率没有沪铜高,但盈亏比和扣除掉最大盈利后的正向收益等都是所有备选合约中较高的,回撤也是最小的,可见螺纹合约在测试阶段内一直保持着稳定的盈利效果,是当前交易策略最佳的交易合约。

如下图,优选交易合约后,可以直接对模型进行参数优化,一键添加到模组实际运行。

2、批量回测的操作步骤:

如下图,是批量回测的建立步骤。

(二)多模型多合约组合回测分析总盈利

“不要把鸡蛋放到同一个篮子中”,同理,我们在交易时也要避免单一品种或单一策略的运行模式,通过多合约、多模型组合的形式来合理分散交易风险,实现共振盈利。

单模型的回测只能看到一个模组的收益效果,如何才能查看一个策略组合的收益效果呢?软件的组合回测功能可对多模型、多合约组合进行回测,提供组合分析报告、资金统计和各类资金曲线分析工具,供交易者全面分析策略组合和各成员的盈利能力。

1、案例:组合回测分析交易组合整体盈利

趋势行情下获利相对比较容易,趋势模型往往能够取得不错的回报,但在震荡行情下,由于趋势策略不能适应频繁波动的行情,反而会使盈利的资金回吐甚至反盈为亏,如下图。

对此,我们可以使用多模型组合的形式,在一个合约上同时运行趋势策略和震荡策略。如下图,是螺纹合约“趋势+震荡+波段”策略组合交易的回测效果,彩色线为组合成员的权益曲线,灰色线为组合整体的权益曲线。可见,在震荡行情下,震荡策略的盈利冲抵了趋势模型的亏损;在趋势行情下交易组合则共振盈利,实现了财富的双重增长!

如下图,是组合回测的资金曲线分析界面。右键菜单中还提供组合的权益资金曲线、净利润曲线、盈亏曲线以及资金详细信息等统计工具,帮助投资者深层分析组合的收益效果。

·权益资金曲线,记录每根K线上的权益波动;

·净利润曲线,记录平仓盈亏累加值的波动,每完整交易一次则统计一次;

·盈亏曲线,记录每根K线上的浮动盈亏累加值波动;

·资金详细信息,记录每根K线上的组合资金概况和组合中所有模组的具体交易信息,如下图,用户可结合合约明细和资金概况具体分析组合成员的盈利水平。

如下图,是组合回测的分析报告。利用各项指标将不可估量的市场风险量化展现给投资者,投资者可以此分析组合的风险-收益水平,调整交易组合,合理分散风险。

如下图,是组合回测的回撤贡献度分析报告。提供组合回撤贡献度和回撤比贡献度分析图表,计算组合成员的贡献度大小。投资者可以对得分较低的模组进行调整,提高组合整体收益和抗风险能力(回撤贡献度得分的计算方法详见本页常见问题7)。

如下图,是组合回测的阶段性分析报告。具体罗列了组合在各个周期阶段的交易和收益情况,方便投资者统计账户交易情况,进行风控管理。

2、组合回测操作步骤:

如下图①-④所示是如何对组合策略进行测试:

(三)相关常见问题解答

1、已经进行过测试的组合,能否保存起来以便于下一次直接调出?

答:可以,通过下图所示的方法对当前组合进行保存。再次打开点击【打开现有组合文件】即可。

2、为什么添加组合成员后“进度”中显示的是未计算?

答:这是由于在添加组合成员时没有勾选【添加后自动计算】;选中未计算的组合成员,点击下方【更新】按钮即可,如下图:

3、组合成员的资金曲线颜色可修改么?

答:可修改,如下图所示是如何修改资金曲线颜色:

4、已经添加的组合成员如何修改合约参数?

答:选中要修改的组合成员,点击组合测试界面下方的【编辑】按钮,即可对组合成员参数进行修改。

5、为什么组合测试界面的【回测】中,有左右两个纵坐标,分别代表什么?

答:左侧纵坐标为各策略组合后的资金曲线坐标,右侧纵坐标为各个策略的资金曲线坐标。

6、组合测试界面的【阶段总结】中,权益增长速度如何计算?

答:权益增长速度=(本期净利润-上期净利润)/本期期初权益 。

7、回撤贡献度得分越高越好么?

答:是的,回撤贡献度分数越高说明回撤越小,贡献越大。
回撤贡献度得分算法:
每个策略在每个时点上比较,回撤值最大的得1分,次之得2分,以此类推。每个策略总分就是每个时点得分之和。如在某一个时点上,策略A的回撤大,策略B的回撤小,那么策略A得1分,策略B得2分。每个时点上都会计算得分,策略A和策略B的得分分别加和就是各自的总得分。得分高说明策略的回撤小,贡献大。
注:回撤值=回撤前的最大权益-当前权益
回撤比贡献度得分算法:
回撤比贡献度以每个时点的最大回撤比(最大回撤/最大回撤前的最大权益)做比较,计算各个点的得分之后加起来计算总得分。

8、如何实现快速将同一模型加载至不同合约进行测试?

答:如下图所示,利用合约篮子功能可实现该想法。
(1)在组合测试界面点击菜单栏中的【合约组合】—>【回测一篮子合约】
(2)在弹出的窗口中选择要加载的自选页面,就可以对自选页面的合约进行测试。
(3)选好回测的模型、周期等参数后,点击【确定】按钮保存即可。

9、如何实现快速将同一合约同一周期加载不同模型进行测试?

答:如下图所示,利用模型篮子功能可实现该想法。
(1)在组合测试界面点击菜单栏中的【模型组合】—>【新建模型篮子】
(2)在弹出的窗口中选择选择一些要加载的模型。
(3)点击“模型篮子”中的【回测一篮子模型】,在弹出窗口中设置一些选项,点击【确定】,可实现快速对同一合约同一周期加载不同模型进行测试。

10、我已经设置了回测参数,为什么还提示我“没有设置参数的合约不能参与回测”?

答:弹出这个提示说明在回测之前没有对篮子中的合约设置参数, 可以在软件右上角—>编写—>编写公式—>设置—>设置期货回测参数进行批量设置。