Financial - 东方证券EfficiencyRatio量化回测 + 夏普率,最大回撤,胜率,阿尔法贝塔收益率

总结--请介绍下你如何运用EfficiencyRatio策略

 

1.“EfficiencyRatio效率比值” 概念是美国交易员 Perry J. Kaufman 佩里·考夫曼 提出的,是一种趋势强度的衡量。它的计算公式是:

  • ER = N期间内价格总变化 / N期间内个别价格变化的绝对值
  • 取值范围为-1.0到1.0; -1.0代表最强烈的下跌趋势,1.0代表最强烈的上涨趋势, 0.0代表无方向性的波动

2. 在我们的项目中,使用ER策略对期货进行回测交易,参数因子池包含了5个参数,分别是:

  • K线的长度M:也就是说选取M分钟(该策略是日内策略)的K线(就是下图的每个红色/绿色的K线:K线也分1分钟K线,5分钟K线,天K线,周K线,年K线,等) 
  • 回望周期N:就是指计算ER时使用了几根上一步的K线
  • 追踪止损的比例L:止盈止损的比例,触发时会平掉持有的头寸
  • 多仓ER阈值:当ER值到达多大的正值,开多仓
  • 空仓ER阈值:当ER值到达多大的负值,开空仓

项目中,我们遍历60个交易日,选出最好的一组参数,给接下来的20个交易日使用。以此类推,动态获取最优参数。

3. 我的主要贡献:

  • 代码的补充实现:以及bug fix - 策略收益一直从15年的某一刻(回测期2014.01-2016-12)开始持续异常下跌,原因是代码在特定条件下的开多开空逻辑颠倒
  • 策略的完善:原本的参数池只有4个因子,开多仓和开空仓的阈值始终保持一致。之后,我就改为分开设置,多仓空仓的信号阈值不同。
    • 原本的夏普率:1.42,年化收益率:18%,最大回撤:14.8%
    • 修改后夏普率:1.29,年化收益率:21%,最大回撤:13.4%
    • 结论:夏普率下降0.2个点,年化收益率上升2个点,最大回撤下降2个点

 

 

注意:该策略是日内策略,会在每个交易日的最后一条K时,强制平仓

 

 

一、EfficiencyRatio策略

1.1 策略描述

 

 

回测平台包含参数池 5 个参数:

  • K 线频率(把1分钟,2分钟,5分钟,10分钟,20分钟的K线合并成一条K线)
  • K 线数量(把上一步合并后的K线,选择2根,3根,5根,10根,20根)
  • 止损比率
  • 做多阈值(ER值)
  • 做空阈值(ER值)

 

1.2 策略效果

 

过拟合定义:模型在训练集上的表现很好,但在测试集和新数据上的表现很差。详情请看:深度学习中“过拟合”的产生原因和解决方法

训练集上的表现 测试集上的表现 结论
不好 不好 欠拟合
不好 过拟合
适度拟合

 

图1

 这里的回测基准,可能是“连续合约指数日线数据”

 

 

 

图2

回测显示策略平均夏普率达到 1.3,平均最大回撤达到 0.10 左右。

 

 

 

1.3 潜在风险

 

 

 

二、评断策略效果的参数

2.1 夏普率 SharpRatio

目的是计算投资组合每承受一单位总风险,会产生多少的超额报酬。夏普指数代表投资人每多承担一分风险,可以拿到几分超额报酬;若大于1,代表基金报酬率高过波动风险;若为小于1,代表基金操作风险大过于报酬率。

举例而言,假如国债的回报是3%,而您的投资组合预期回报是15%,您的投资组合的超额报酬率的标准差是6%,那么用15%-3%,可以得出12%(代表您超出无风险投资的回报),再用12%/6%=2,代表投资者风险每增长1%,换来的是2%的多余收益。

 

 

2.2 最大回撤 Max Drawdown

 

2.3 胜率

链接:原文地址

胜率就是目标周期内盈利的交易次数占总交易次数的比例,例如:一段时间内,一共交易了100次,盈利了70次,那么该周期的胜率为:70 / 100 * 100% = 70%。前文讲到高胜率并不能产生高收益,甚至有可能会产生亏损,道理很简单,假如盈利的70次交易每次都盈利100美金,总盈利7000美金,但亏损的30次交易每次都亏损250美金,总亏损7500美金。如此,即使胜率达到了70%,也不能保证我们的交易系统是正向盈利的。

假如你的胜率是99%,上面举的例子每次开固定仓位,显然1笔亏损超过99笔的盈利有点难度,换个例子。初始净值10000美金,还是做了100次交易,前99次交易每次使用10%的仓位,每次盈利10%。最后1笔交易时,账户余额已经达到10000 * (1 + 0.1*0.1)^99 = 26780.33美金了。你可能觉着交易了这么多次,每次都能盈利,因此决定在第100次交易的时候梭哈,大不了赢了会所嫩模,亏了工地干活。可惜最后1笔交易爆仓了,你血本无归。这里涉及一个仓位管理的问题,将在后续的文章中讲到。

 

2.4 盈亏比

链接:原文地址

盈亏比就是平均盈利金额与平均亏损金额的比值。公式如下:

盈亏比 = 平均盈利 / 平均亏损 = (盈利总金额 / 盈利次数) / (亏损总金额 / 亏损次数)

以上面的例子,盈利次数70,盈利总金额7000,亏损次数 30,亏损总金额 7500,那么盈亏比 = (7000/70)/(7500/30) = 0.4。 0.4的盈亏比是一个什么概念的呢?可以理解为盈利的时候只能盈利0.4,亏损的时候却要亏损1。0.4的盈亏比,如果要盈利,需要满足大于1 / (1+0.4) *100%= 71.423%的胜率。

胜率和盈亏比有一个公式,可以计算胜率一定的情况下,至少需要多少的盈亏比,交易系统才能正向盈利,反之亦然。

  • y = 1 / (1+x)

y表示胜率,x表示盈亏比。它的函数图像如下所示:由图像可以看出,盈亏比越大,需要的胜率越低。

 

 

2.5 阿尔法α收益 + 贝塔β收益

贝塔收益可以看作是一种相对被动的投资收益,也就是承担市场风险(业绩基准下跌10%标的下跌11%)所带来的收益(业绩基准上涨10%标的上涨11%)-- 注意:这里的β系数是1.1。这种收益一般不需要主动去通过选股、择时等获得,而是随着业绩基准(比如大盘)起起伏伏获得的。我们听到的大部分被动型指数基金就是这种基金。
 
阿尔法收益,是和市场波动无关的(业绩基准上涨产生的基金收益为贝塔收益),这部分收益就是需要通过基金经理通过管理、择时、择股等手段来获取的超额收益,市场上绝大多数主动管控基金追求的就是阿尔法收益。
 
为了更好的对比和说明,我们来做一个比喻。比如我们在乘火车时的速度,其实等于火车的速度,加上我们自身相对于火车的速度。火车本身开的很快,我们在火车上自然也会很快,当火车慢下来的时候,我们的速度也会降下来,这个就是贝塔收益。但是我们在火车向前开的同时,也可以自己在火车里向前跑,这也会增加自身的速度,这个就是阿尔法收益。


作者:后厂村名基
链接:https://www.zhihu.com/question/45437609/answer/707085428
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
 

 

 

 

 

 

 

posted on 2021-01-27 21:38  frank_cui  阅读(825)  评论(0编辑  收藏  举报

导航

levels of contents