之前测试过 【量化课堂】RSRS(阻力支撑相对强度)择时策略(下)
整个择时系统都是满仓操作,如果结合仓位管理,会有什么样的效果,于是想到了海龟系统,尝试搭建基于海龟仓位管理优化原有的择时方法。
PS:可以调节g.coef来调整ATR的倍数
简易海龟交易系统
1、仓位:海龟交易系统最核心的部分。Richard Dennis期望通过市场的波动性水平来管理仓位。其构建了指数N来衡量波动性水平。指数的构建为以下四步
(1)True Range
TrueRange=Maximum(H?L,H?PDC,PDC?L)TrueRange=Maximum(H?L,H?PDC,PDC?L)
<br>TrueRange=Maximum(H?L,H?PDC,PDC?L)<br>
公式中,True Range表示一天内的波动量,H为当日日内最高价,L为当日日内最低价,PDC为前一日收盘价。
(2)N
N=(19?PDN TR)/20N=(19?PDN TR)/20
<br>N=(19?PDN TR)/20<br>
公式中,TR为True Range,即一天内波动量,PDN为前一日的N值。此公式的真是含义为计算之前20天(包括今天在内)的N的平均值
(3)Abs Volatility
AbsVolatility=N?PointAbsVolatility=N?Point
<br>AbsVolatility=N?Point<br>公式中,Abs Volatility指的是波动的价格,Point指的是标的股票每波动一个最小单位,1手股票的总价格变化量。最小变化量是0.01元,1手是100股,Point就是0.01×100=1
(4)Unit
Unit=x%?Account/AbsVolatilityUnit=x%?Account/AbsVolatility
<br>Unit=x%<em>Account/AbsVolatility<br>Unit为交易量,x% Account是总资产的x%,一般取1%,意思是如果买入1Unit单位的资产,当天震幅使得总资产的变化不超过x%
2、入市:若当前价格高于过去20日的最高价,则买入一个Unit
3、加仓:若股价在上一次买入(或加仓)的基础上上涨了0.5N,则加仓一个Unit
4、减仓:当价格比最后一次买入价格下跌0.5N时,,则减仓一个Unit,如果超过2N,则卖出全部头寸止损(也就是,在一般情况下,损失不会超过2%)。
结合海龟思想的择时
沪深 300 指数 |
回测时间:2012-01-01 至 2018-12-31 |
调仓期:根据RSRS择时,海龟进行仓位控制 |
RSRS 模型参数: RSRS指标中N统计周期, M统计样本长度的值分别为18,1100; 买卖阈值: 0.7,-0.7;海龟的参数:ATR倍数0.5,影响比例:0.01; |
逻辑: |
(1)入场条件是当RSRS的值大于0.7;出场条件是RSRS小于-0.7; |
(2)根据被影响的资金比例比上真实波幅得到每次加仓和减仓的量vol及其对应的值amount |
(3)记录每次的突破价格,即每次发生加减仓时,记录此时的价格为突破价 |
(4)当实时的价格超过突破价格 0.05ATR时,加仓vol;当实时的价格超过突破价格-0.5ATR时,减仓vol |