Note

十年前最佳交易系统解密——R-Breaker

· Views 2,298

该系统的名声一以贯之:

连续15年荣登《Futures Truth Magazine》Top10赚钱策略。

策略的基本原理

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

第一步

将昨日的三个重要价位收盘价、最高价、最低价分别设为刘备、关羽和张飞的身高。

把三个价格加一起处以三,得到平均身高。

high = klines.high.iloc[-2] # 前一日的最高价,高贵冷艳·关羽
low = klines.low.iloc[-2] # 前一日的最低价,文化偏低·张飞
close = klines.close.iloc[-2] # 前一日的收盘价,收官之战·刘备
pivot = (high + low + close) / 3 # 枢轴点,平均身高

第二步

基于上面算出来的四个值,组合出六个不同的价位
b_break = high + 2 * (pivot - low) # 第一组 突破买入价 全场最高
s_setup = pivot + (high - low) # 第二组 观察卖出价 多单叛变条件1
s_enter = 2 * pivot - low # 第二组 反转卖出价 多单叛变条件2
b_enter = 2 * pivot - high # 第三组 反转买入价 空单叛变条件2
b_setup = pivot - (high - low) # 第三组 观察买入价 空单叛变条件1
s_break = low - 2 * (high - pivot) # 第一组 突破卖出价 全场最低

六个价位又分为三组:

第一组、无脑莽:当价格打穿全场最高或者全场最低时,顺势追突破!

第二组、多头叛变:手中持有多单,先触及叛变条件1,后触及叛变条件2后,反手开空。

第三组、空头叛变:手中持有空单,先触及叛变条件1,后触及叛变条件2后,反手开多。

第三步

开撸!规则:

品种沥青,测试沥青近两个月走势,级别日线。

每次开仓手数:3。

#!/usr/bin/env python
#  -*- coding: utf-8 -*-
__author__ = 'limin'

'''
R-Breaker策略(隔夜留仓) (难度:初级)
'''

from datetime import date
from tqsdk import TqApi, TargetPosTask,TqSim,TqBacktest

SYMBOL = "SHFE.bu2006"  # 合约代码
STOP_LOSS_PRICE = 10  # 止损点(价格)


def get_index_line(klines):
    '''计算指标线'''
    high = klines.high.iloc[-2]  # 前一日的最高价
    low = klines.low.iloc[-2]  # 前一日的最低价
    close = klines.close.iloc[-2]  # 前一日的收盘价
    pivot = (high + low + close) / 3  # 枢轴点

    b_break = high + 2 * (pivot - low)  # 突破买入价
    s_setup = pivot + (high - low)  # 观察卖出价
    s_enter = 2 * pivot - low  # 反转卖出价
    b_enter = 2 * pivot - high  # 反转买入价
    b_setup = pivot - (high - low)  # 观察买入价
    s_break = low - 2 * (high - pivot)  # 突破卖出价

    print("已计算新标志线, 枢轴点: %f, 突破买入价: %f, 观察卖出价: %f, 反转卖出价: %f, 反转买入价: %f, 观察买入价: %f, 突破卖出价: %f"
          % (pivot, b_break, s_setup, s_enter, b_enter, b_setup, s_break))
    return pivot, b_break, s_setup, s_enter, b_enter, b_setup, s_break


api = TqApi(TqSim(init_balance=100000),web_gui=":9875",backtest=TqBacktest(start_dt=date(2020, 3, 1), end_dt=date(2020,5, 8)))
quote = api.get_quote(SYMBOL)
klines = api.get_kline_serial(SYMBOL, 24 * 60 * 60)  # 86400: 使用日线
position = api.get_position(SYMBOL)
target_pos = TargetPosTask(api, SYMBOL)
target_pos_value = position.volume_long - position.volume_short  # 目标净持仓数
open_position_price = position.open_price_long if target_pos_value > 0 else position.open_price_short  # 开仓价
pivot, b_break, s_setup, s_enter, b_enter, b_setup, s_break = get_index_line(klines)  # 七条标准线

while True:
    target_pos.set_target_volume(target_pos_value)
    api.wait_update()
    if api.is_changing(klines.iloc[-1], "datetime"):  # 产生新k线,则重新计算7条指标线
        pivot, b_break, s_setup, s_enter, b_enter, b_setup, s_break = get_index_line(klines)

    '''交易规则'''
    if api.is_changing(quote, "last_price"):
        print("最新价: ", quote.last_price)

        # 开仓价与当前行情价之差大于止损点则止损
        if (target_pos_value > 0 and open_position_price - quote.last_price >= STOP_LOSS_PRICE) or \
                (target_pos_value < 0 and quote.last_price - open_position_price >= STOP_LOSS_PRICE):
            target_pos_value = 0  # 平仓

        # 反转:
        if target_pos_value > 0:  # 多头持仓
            if quote.highest > s_setup and quote.last_price < s_enter:
                # 多头持仓,当日内最高价超过观察卖出价后,
                # 盘中价格出现回落,且进一步跌破反转卖出价构成的支撑线时,
                # 采取反转策略,即在该点位反手做空
                print("多头持仓,当日内最高价超过观察卖出价后跌破反转卖出价: 反手做空")
                target_pos_value = -3  # 做空
                open_position_price = quote.last_price
        elif target_pos_value < 0:  # 空头持仓
            if quote.lowest < b_setup and quote.last_price > b_enter:
                # 空头持仓,当日内最低价低于观察买入价后,
                # 盘中价格出现反弹,且进一步超过反转买入价构成的阻力线时,
                # 采取反转策略,即在该点位反手做多
                print("空头持仓,当日最低价低于观察买入价后超过反转买入价: 反手做多")
                target_pos_value = 3  # 做多
                open_position_price = quote.last_price

        # 突破:
        elif target_pos_value == 0:  # 空仓条件
            if quote.last_price > b_break:
                # 在空仓的情况下,如果盘中价格超过突破买入价,
                # 则采取趋势策略,即在该点位开仓做多
                print("空仓,盘中价格超过突破买入价: 开仓做多")
                target_pos_value = 3  # 做多
                open_position_price = quote.last_price
            elif quote.last_price < s_break:
                # 在空仓的情况下,如果盘中价格跌破突破卖出价,
                # 则采取趋势策略,即在该点位开仓做空
                print("空仓,盘中价格跌破突破卖出价: 开仓做空")
                target_pos_value = -3  # 做空
                open_position_price = quote.last_price

收益情况:

十年前最佳交易系统解密——R-Breaker
两个月收益约21%,海星!
十年前最佳交易系统解密——R-Breaker
资金曲线

这个策略给我的印象就是包容并蓄,兼顾了顺势和逆势,个人觉得颇有一些启发性。

Disclaimer: The content above represents only the views of the author or guest. It does not represent any views or positions of FOLLOWME and does not mean that FOLLOWME agrees with its statement or description, nor does it constitute any investment advice. For all actions taken by visitors based on information provided by the FOLLOWME community, the community does not assume any form of liability unless otherwise expressly promised in writing.

FOLLOWME Trading Community Website: https://www.followme.com

If you like, reward to support.
avatar

Hot

学习

-THE END-