策略解析:DualThrustStrategy (Dual Thrust 区间突破)

源码文件:vnpy_ctastrategy.strategies.dual_thrust_strategy 1. 策略概述 DualThrustStrategy 是 Michael Chalek 在 20 世纪 80 年代开发的著名策略,曾被 Future Truth 杂志评为最赚钱的策略之一。 它是一个典型的 日内突破策略。核心逻辑是利用前 N 日(这里简化为前 1 日)的最高价、最低价、收盘价计算出一个“波动区间 (Range)”,然后以今日开盘价为锚点,加上/减去这个区间的倍数,形成上轨和下轨。 基类:CtaTemplate 核心逻辑:Range Breakout (区间突破) 交易时段:日内交易,收盘前强制平仓 2. 核心参数 参数名 默认值 含义 k1 0.4 上轨系数 (用于做多) k2 0.6 下轨系数 (用于做空) fixed_size 1 每次下单手数 注意:k1 和 k2 可以不对称。如果 k1 < k2,说明做多更容易触发,适合多头市场;反之适合空头市场。 3. 策略逻辑详解 3.1 计算 Range (波动区间) 策略在每天开盘时(检测到日期变化),利用前一日的数据计算 Range。 1 2 3 4 5 6 7 if last_bar.datetime.date() != bar.datetime.date(): if self.day_high: self.day_range = self.day_high - self.day_low # 前一日振幅 # 计算今日突破轨 self.long_entry = bar.open_price + self.k1 * self.day_range self.short_entry = bar.open_price - self.k2 * self.day_range 上轨 (Long Entry) = 今日开盘价 + K1 * 昨日振幅 下轨 (Short Entry) = 今日开盘价 - K2 * 昨日振幅 3.2 盘中突破交易 在收盘时间 (exit_time, 14:55) 之前,策略持续监控价格是否突破上下轨。 ...

May 6, 2025 · 1 min