二、多模型/多合约回测

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

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

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

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

比如,用同一个策略模型对上期所部分加权合约进行批量回测,筛选最佳交易合约。回测后每一个合约都生成一份独立的回测报告和独立的资金曲线图,投资者点击合约名称可切换回测报告分析,极大程度的简化了操作步骤。

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

而沪锡收益率、盈亏比率、夏普比率等都是所有备选合约中最高的,回撤也是较小的,在测试阶段内一直保持着稳定的盈利效果,是当前策略最佳的交易合约。

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

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

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

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

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

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

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

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

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

2、组合回测分析界面

(1)回测界面

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

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

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

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

·显示保证金占比,在资金曲线图下方显示保证金占比柱状图,便于分析资金占用情况,调控资金分配;

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

(2)分析报告

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

(3)阶段总结

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

(4)回撤贡献度分析

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

(5)盈利分析图

如下图,是组合回测的盈利分析图,直观展示每个策略的盈利状况,分析组合成员的盈利贡献度大小。

其中:
盈利贡献度=策略盈利/组合总盈利;

注:组合盈利小于0时,盈利分析图不显示盈利贡献度百分比,只显示具体盈利数值。

(6)相关性分析

如下图,组合回测提供相关性分析,统计策略收益率的相关性大小,分析组合的风险分散效果。

用户可根据策略的相关性强弱,调整组合成员,优化模型结构,分散组合风险。

或者根据相关性大小,确定各策略的资金分配比例,避免单一类型的策略头寸占比过高,合理分散账户风险。

相关性算法:计算两两组合项的收益率时间序列的皮尔森相关系数。

3、组合回测操作步骤:

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

(三)相关常见问题解答

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

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

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

答:这是由于在添加组合成员时没有勾选【添加后自动计算】;选中未计算的组合成员,点击鼠标右键->更新,进行计算。

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

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

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

答:选中要修改的组合成员,点击鼠标右键菜单->编辑,即可对组合成员参数进行修改。

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

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

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

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

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

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

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

答:利用组合回测->回测一篮子合约可实现该想法。
先将要回测的合约加入到自选篮子中。如下图,在组合回测界面点击右下角【添加】按钮选择【一篮子合约】,在弹出的窗口中选择要加载的自选篮子,选好回测的模型、周期等参数,点击【确定】按钮,即可用同一模型对不同合约进行测试。

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

答:利用组合回测->回测一篮子模型功能可实现该想法。
如下图,在组合测试界面点击右下角【添加】按钮,选择【一篮子模型】,在弹出的窗口中批量选入要加载的模型。在弹出窗口中设置一些选项,点击【确定】,可实现快速对同一合约同一周期加载不同模型进行测试。