R-Breaker是个经典的具有长生命周期的日内模型
类型:日内趋势追踪+反转策略
周期:1分钟、5分钟
根据前一个交易日的收盘价、最高价和最低价数据通过一定方式计算出六个价位,从大到小依次为:
突破买入价(buy_break)、观察卖出价(sell_setup)、
反转卖出价(sell_enter)、反转买入价(buy_enter)、
观察买入价(buy_setup)、突破卖出价(sell_break)
以此来形成当前交易日盘中交易的触发条件。
交易规则:
- 反转:
- 持多单,当日内最高价超过观察卖出价后,盘中价格出现回落,且进一步跌破反转卖出价构成的支撑线时,采取反转策略,即在该点位反手做空;
- 持空单,当日内最低价低于观察买入价后,盘中价格出现反弹,且进一步超过反转买入价构成的阻力线时,采取反转策略,即在该点位反手做多;
- 突破:
- 在空仓的情况下,如果盘中价格超过突破买入价,则采取趋势策略,即在该点位开仓做多;
- 在空仓的情况下,如果盘中价格跌破突破卖出价,则采取趋势策略,即在该点位开仓做空;
是否隔夜留仓
R-Breaker 是日内交易策略,若某个交易日已开仓且收盘前仍未触发平仓信号,则在收盘时强行平仓,不隔夜留仓以避免跳空的风险。
下图是 2010年4月16日至2016年11月15日隔夜跳空点数的分布图。1599 个交易日中有1114 个交易日跳空点数(绝对值)大于 5 ,占了 69.67% ,最大跳空点数达到了 368 。风险非常大。所以不隔夜留仓是明智的。
R-Breaker策略的改进思路
R-Breaker 策略有如下缺点:
策略虽然在盘中趋势明显,波段较大时产生的交易信号有效,收益也高。但国内股指期货市场随着时间的发展越来越成熟,非有效性越来越不明显,如家常便饭般连续出现整日大波段趋势的现象已不复存在,R-Breaker 策略对此依赖过大,获利的空间也越来越小。下面从历史数据来说明:
第一:在预期有大趋势的情况下使用 R-Breaker 策略,在预期出现震荡市场
的情况下不进行交易或结合其它量化策略。 这样改进的难点在于如何预测趋势是
否会出现,因为趋势往往在其结束后才能确认,所以这个改进思路实现的难度较
大。
第二:对上一交易日的震幅设置一个阈值,以过滤震荡的行情。
第三:必须加入止损的策略。
第四:未加入停止交易的机制。R-Breaker 策略只要在日内产生穿越信号就会开
仓,有时即使上一个交易日震幅较大,6个价格之间距离较远,当日仍然会出现
1分钟实时收盘价在某根价位线上下反复来回穿越的情形,导致在较小的区间内
频繁开仓平仓,产生大量的交易成本。
第五:参数的改进。
波动过滤
震幅定义为每个交易日的最高价减去最低价, 震幅过滤是指当前一交易日的最高价减去最低价低于所设置的阈值(20 点、30 点等等)时,下一交易日就不再开仓交易。下图中蓝线、黑线、红线分别代表 0 震幅、20 点震幅、30 点震幅过滤的条件下R-Breaker策略的表现。黑线大致始终在蓝线上方,虽然红线最终低于蓝线,但红线在中间时段的表现优于蓝线,最大回撤也较小,稳定性明显更强。因此,使用震幅过滤确实能优化策略。
止盈止损
纵向:
1. 固定资金止损:每次交易浮动盈亏的资金亏损达到 1千、3千、5 千时就止损平仓;
2. 固定点数止损:每次交易浮动盈亏的点数亏损达到 5点、10点、20点时就平仓止损(与1类似) ;
3. 固定百分比止损:当日实时资金亏损达到 1%、3%、5%时就平仓止损,当日不再开仓
4. 最大点数回撤:每次交易实时点数从做多(空)开仓后的最高(低)点向下(上)回撤超过5、10、20点后就平仓止盈或止损。
横向:
5. 以时间(分钟)为横坐标,合约点数为纵坐标建立坐标系,在做多(空)开仓点画一条斜率为 K的射线,合约轨迹线向下(上)穿过射线就平仓止盈。
6. 做多(空)开仓 M 分钟后的连续N分钟内未突破前 M 分钟的最高(低)点就平仓止盈
经过测试,采用最简单最常规的方法2表现反而最好。由于股市具有多空不对称性,所以在做多和做空后分别采用不同的浮动盈亏止损点数。例如,做多开仓后,当盘中价格低于开仓买入价超过 5点,就在该时点卖出止损平仓;做空开仓后,当盘中价格高于开仓卖出价超过 10点,就在该时点买入止损平仓。
停止交易
日内停止交易是指,在当日交易亏损达到一定次数(每次平仓后若总资金低于这手交易开仓前,就算一次亏损)或当日累计亏损资金达到一定金额(或百分比)就及时平仓,且当日之后时段即使触发了交易信号也不再开仓交易。日内最大亏损次数可设置为 3次左右,最大亏损资金类似止盈止损中的设计方法。但经过其它的调整和改进,这一步的改进方法其实已经影响不大,下文可以看到最后完成的策略交易频率并不高,日内出现多次亏损的情况几乎不存在,且第二步的止盈止损就保证了日内的最大亏损资金数额不会过大。
参数调整
F1=0.01×i,i=1,2,3,…,100;
F2=0.01×j,j=1,2,3,…,100。
即做 100×100=1 万次循环。
模型改变
当开盘发生较大隔夜跳空,导致第一分钟收盘价在突破买入价(Bbreak)之上或突破卖出价(Sbreak)之下,按照R-Breaker 策略的交易规则,就会在第一分钟相应买入开多或卖出开空。但依据市场的交易经验、目前中国股市的萎靡不振和中国投资者的心理特点,在发生大幅隔夜大涨或大跌后,投资者一般会信心不足,不敢继续追涨或杀跌,期指价格往往也会慢慢回补,所以当做趋势突破而做多追涨或做空杀跌是不明智的,而且在样本内也出现了数次由于这种情况而出现大量亏损的情况。因此,将模型做出改变,开盘第一分钟期指价格就在突破买入价(Bbreak)之上或突破卖出价(Sbreak)之下的情形不作为趋势策略交易信号触发的情况,只有在盘中发生穿越才算。
基本设置
综上,最后得出的新趋势策略命名为 R-Breaker-Plus,具体叙述如下:
1. 数据样本:
样本内:【2010-04-16,2012-04-15】(481 个交易日)的 1 分钟高频数据(开盘价、最高价、最低价、收盘价);
样本外:【2012-04-16,2014-02-07】(438 个交易日)的 1 分钟高频数据(开盘价、最高价、最低价、收盘价);
2. 期货交易标的:IF00 股指期货主力合约
3. 初始资金投入: 20万元,只交易一手。
4. 交易成本:单次交易手续费:0.00007(万分之零点七);滑点:单次交易
滑点0.6 个。
5. 是否隔夜留仓:不隔夜留仓。
6. 交易规则:在空仓的情况下,如果盘中价格超过突破买入价(不包括开盘就在价格线之上的情形),则在该时点该点位开仓做多;在空仓的情况下,如果盘中价格跌破突破卖出价(不包括开盘就在价格线之下的情形),则在该时点该点位开仓做空。
突破买入价和突破卖出价由观察买入价和观察卖出价计算而来,计算公式如下:
观察买入价 Bsetup=Low-f1×(High-Close);
观察卖出价 Ssetup=High+f1×(Close-Low);
突破买入价 Bbreak=Ssetup+f3×(Ssetup-Bsetup);
突破卖出价 Sbreak=Bsetup-f3×(Ssetup-Bsetup)。
其中,参数 f1=0.03,f3=0.87。
7.止损规则:做多开仓后,当盘中价格低于开仓买入价超过 10点,就在该时点卖出止损平仓;做空开仓后,当盘中价格高于开仓卖出价超过 15 点,就在该时点买入止损平仓。
样本内原 R-Breaker 策略(蓝线)、改进后的 R-Breaker-Plus(红线)策略和当月连续合约 IF00(黑线)的净值表现对比如下:
可以看出,原始的 R-Breaker 策略获利更多,年化收益率要比改进后的 R-Breaker-Plus策略高出15个百分比,原因是R-Breaker的交易次数接近R-Breaker-Plus 的 3 倍,但平均每手盈利 R-Breaker-Plus 超过了 R-Breaker 的 2 倍。稳定性上 R-Breaker-Plus 要远远好于 R-Breaker,最大回撤 11%不到原始策略的一半,且胜率超过了 50%,远高于原始策略。研究量化投资策略的学者们已得出结论:一般稳定性要比收益更重要。因为我的策略只是用一手进行交易来研究,若投入实盘使用,肯定要放大资金倍数,回撤更小稳定性更高的策略能放大的倍数更高,最终得的盈利也会比收益虽高但回撤偏大的策略要好。从做多和做空子策略分开来看,R-Breaker-Plus 都比R-Breaker的每手利润要高出不少,胜率更高,更加稳定。所以综合来看,在样本内 R-Breaker-Plus 要胜于 R-Breaker,但 R-Breaker-Plus交易次数不是很频繁。
所以综合样本内和样本外的表现,改进后的趋势子策略 R-Breaker-Plus 无论从收益性还是从稳定性上来说,都远远优于原始的 R-Breaker策略。
13638335903
0
文章0
关注0
粉丝你好,请教一下,我一直有点疑问,反转交易中的前提仓位,假如已经是多仓,这时候肯定是已经达到过突破买入价,肯定也是超过观察卖出价的,当价格跌破反转卖出价,这时候做反手勉强理解,但为何要强调超过观察卖出价呢?还有一种情况是,空仓情况下,价格超过观察卖出价后但未超过突破买入价,然后回落跌破反转卖出价,这时候需不需要开仓,求教。