分享

手把手教你做一套期货量化系统(8-9)测试报告

 蜡笔小签 2016-07-26
  测试报告(上)
 
    在《手把手教你做一套期货量化系统(6)信号过滤》中提供了一个只有开单信号的策略,现在我把平仓条件补上,形成一套完成的简单策略。新增两个参数,止盈(Win)和止损(Loss),默认30点。
[转载]手把手教你做一套期货量化系统(8)测试报告(上)
然后再补上平仓条件,这里的逻辑是只要上一个收盘价触及止盈止损就平仓。引入一个Outsignal变量进行控制,方便日后分析平仓效果。MarketPosition是仓位数量,如果返回正值则是持有多单,负值则持有空单。EntryPrice代表第一个建仓价格。Sell是平多单,BuyToCover是平空单。
[转载]手把手教你做一套期货量化系统(8)测试报告(上)
编译好之后再加载到超级图表里,点击投资组合性能测试报告即可生成测试报告。
[转载]手把手教你做一套期货量化系统(8)测试报告(上)
看测试报告是有侧重点的,我一般会仔细看交易汇总和图表分析。
    一、检查多空仓位是否平衡
    通常代码出错的经典表现就是多空极其不平衡,例如单边暴赚或巨亏。我们要检查多空双边的净利润、交易手数、平均亏损、平均盈利、交易成本。尤其是本例子提供的策略,平仓只有止盈止损,那么平均止盈和平均止损应该贴近我们的参数设置。下图是这策略测试报告的截图:
[转载]手把手教你做一套期货量化系统(8)测试报告(上)

可以看出,除了净利润,其他都比较均衡。结合行情来看,测试期间螺纹钢的大走势是下跌,做空的盈利肯定会更高。所以结论是,没有出现多空失衡的情况,代码部分没发现特别的问题。
 
    下一部分继续讲盈利能力和风险分析,敬请期待。
 
 

    测试报告(下)
 
 
二、盈利能力
 
    净利润、夏普比率这些我就不多说了,这里谈谈我们的经验总结。策略的盈利能力主要看三点,盈亏比,胜率,净利润最大回撤比和净利润最大使用资金比。
    盈亏比要结合胜率来看。做多平均盈利/平均亏损是0.8,而做空是0.9。平均来看,如果亏了一笔,只靠一笔盈利是无法弥补亏损的。这时,再看胜率是52.5%和58.87%,可以看出胜率和盈亏比无法实现稳定盈利。原理就是概率论的期望收益E(X)和方差D(X)。我们希望期望收益高,方差低。
    净利润最大回撤比则反映了回撤标准化的盈利水平。例如这里最大回撤是4188,净利润最大回撤比是0.67。这是一个相当低的水平。如果现在有一个策略净利润1万,而最大回撤是5000,虽然最大回撤比4188多,但是净利润最大回撤比是2,远高于这策略,我们应该采用后者。所以,这策略需要逐步修改和完善,我们会手把手教你做一套期货量化系统,目标是净利润最大回撤比达到3以上。
    净利润最大使用资金比则是将保证金标准化。不用品种之间的保证金是不同的,加仓策略也会使保证金不同。例如,有两个策略,一个是做股指的另一个是螺纹钢,二者的净利润都是2万,那么明显螺纹钢的盈利水平更高,因为一手股指的保证金是螺纹钢保证金的十倍以上。
 
三、风险测量
  
    基本上,我们做程序化的目标是稳定收益,所以风险越小越好。自从CAPM模型之后,我们都习惯于用方差来评估风险。除了我上文提到的用D(X)公式计算方差做简单估算之外,还可以更直观地看收益曲线是否“像”一条直线,越“像”则说明风险越低。直接点击测试报告里的图标分析,可以得到交易盈亏曲线图,例如下图

[转载]手把手教你做一套期货量化系统(9)测试报告(下)

很明显,这策略的收益曲线非常不像一条直线。如果不看图只看数据,可以用R-Squared系数来评估,交易汇总的收益曲线R平方值。R平方越接近于1则越“像”一条直线,等于1时就是一条直线。我们的目标是把R平方值提升到0.9以上。
    看完测试报告以后,发现这策略虽然战胜了手续费和滑点,但是盈利太低,风险过高,还有很多可以改善的空间。一般来说,我们不会轻易对策略进行参数优化,然后选择一组最好的参数来自欺欺人,我们会优先考虑改善策略。下一篇开始分析这策略需要提升的地方,敬请期待。

 

 

【本文来源宽特科技首席程序员】

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多