量化交易之回测篇 - 海龟交易策略(初版)

本文分享了一段Python实现的TQZ Turtle Trading交易策略代码,该策略基于道氏理论和平均价通道进行买卖决策。策略使用了快慢移动平均线判断市场趋势,设定突破通道和止损价位来开平仓,并计算盈利保护点位。代码中包含了参数调整和历史数据处理,但作者提醒因价格设置未考虑实盘因素,仅适用于回测,不建议直接用于实战。
"""
写这个模型花了小半天, 还没来得及测试, 先开源出来;
等期货回测器的cta分支没问题后,再测试该模型;
PS: 为了方便模型的回测, 价格设置上确实有不合理的地方, 勿用于实盘, 请见谅;
"""


from tqz_strategy.template import CtaTemplate
from public_module.object import StopOrder, TickData, BarData, TradeData, OrderData
from public_module.utility import BarGenerator


class TQZTurtleTradingStrategy(CtaTemplate):
    author = "tqz"

    # --- param part ---
    donchian_channel_window = 20

    fast_window = 10
    slow_window = 60

    clear_position_days_window = 10
    n_window = 20

    parameters = [
        "fast_window",
        "slow_window",
        "donchian_channel_window",
        "clear_position_days_window",
        "n_window"
    ]

    # --- var part ---
    fast_ma0 = 0.0
    fast_ma1 = 0.0

    slow_ma0 = 0.0
    slow_ma1 = 0.0

    donchian_channel_up = 0.0
    donchian_channel_down = 0.0

    clear_position_level_price = 0  # profit
    stop_loss_level_price = 0  # loss

    variables = [
        "fast_ma0",
        "fast_ma1",
        "slow_ma0",
        "slow_ma1",
        "donchian_channel_up",
        "donchian_channel_down",
        "stop_loss_level_price",
        "clear_position_level_price",
    ]

    def __init__(self, cta_engine, strategy_name, vt_symbol, setting):
        """"""
        super().__init__(cta_engine, strategy_name, vt_symbol, setting)

        self.bg = BarGenerator(self.on_bar)
        self.history_bars = []

    def on_init(self):
        """
        Callback when strategy is inited.
        """
        # self.write_log(msg=f'strategy_name: {self.strategy_name} on_init.')
        pass

    def on_start(self):
        """
        Callback when strategy is started.
        """
    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值