R-Breaker策略在期货中的python代码实现

一、策略简介

在外汇交易系统中,枢轴点 (Pivot Points) 交易方法是一种经典的交易策略。Pivot Points是一个非常单纯的阻力支撑体系,根据昨日的最高价、最低价和收盘价,计算出七个价位,包括一个枢轴点、三个阻力位和三个支撑位。R-Breaker是在Pivot Points上发展出来的一种短线交易策略,它结合了趋势和反转两种交易方式。

二、策略的基本原理

  1. 根据前一个交易日的收盘价、最高价和最低价数据通过一定方式计算出六个价位,从大到小依次为:突破买入价、观察卖出价、反转卖出价、反转买入、观察买入价、突破卖出价。以此来形成当前交易日盘中交易的触发条件。

  2. 追踪盘中价格走势,实时判断触发条件。具体条件如下:
    1. 突破
      • 在空仓条件下,如果盘中价格超过突破买入价,则采取趋势策略,即在该点位开仓做多。
      • 在空仓条件下,如果盘中价格跌破突破卖出价,则采取趋势策略,即在该点位开仓做空。
    2. 反转
      • 持多单,当日内最高价超过观察卖出价后,盘中价格出现回落,且进一步跌破反转卖出价构成的支撑线时,采取反转策略,即在该点位反手做空。
      • 持空单,当日内最低价低于观察买入价后,盘中价格出现反弹,且进一步超过反转买入价构成的阻力线时,采取反转策略,即在该点位反手做多。

  3. 设定止损条件。当亏损达到设定值后,平仓。
  4. 设定是否隔夜留仓。

三、代码实现

  1. 实现步骤

    1. 只要新产生一条日线,即可判断为新交易日的开始,则重新计算七条指标线;
    2. 根据策略的交易规则,依据当前的持仓信息以及行情最新价突破信息进行加减仓操作;
    3. 如果设置了非隔夜留仓,在策略进行过程中判断当前时间是否临近交易日结束,即当前行情时间已到达设定的平仓时间,若是则平仓;
    4. 设置止损点,每次调仓后记录调仓时的行情价,当调仓价与当前行情价之差大于止损点则平仓止损。
  2. 策略代码实现工具

  3. 策略源代码

四、回测

  1. 回测初始设置

    • 初始账户资金:100万
    • 回测日期:2018.11.14 —— 2018.12.25
    • 策略参数:平仓时间:14:50 ;止损点:35
    • 多、空头开仓手数:20手
    • 合约:INE.sc1905
    • 是否隔夜留仓:隔夜不留仓: 在每日收盘前,对所持合约进行平仓
    • 回测时盘口行情quote的更新频率:和K线分钟线的更新频率一致
  2. 回测结果

    R-Breaker策略回测结果
    合约代码 合约品种 收益率 风险度 最大回撤 年化夏普率
    INE.sc1905 原油 37.32% 0.00% 2.78% 6.1229
  3. 上表回测结果中累计收益走势图

发表评论

电子邮件地址不会被公开。