突破策略完整教学
Donchian / NR7 / 开盘区间
突破策略是趋势追踪的核心:价格突破某个关键区间,跟着走。 1950 年代 Richard Donchian 发明的 Donchian Channel 是这类策略的鼻祖,海龟交易(1983)用的也是 Donchian。
本文讲三种经典突破策略(Donchian / NR7 / 开盘区间)、 怎么用 ATR 过滤假突破、配合成交量确认、完整 Pine 实作。
1. 突破策略的核心逻辑
所有突破策略都基于同一个假设:当价格突破近期高/低点,往往会延续方向走一段。
背后的市场心理:
- 突破新高 = 之前在高点卖的人错了 + 新买盘涌入 + 空头被轧
- 突破新低 = 之前在低点买的人错了 + 新卖盘涌入 + 多头被洗
这套逻辑在加密货币特别有效,因为:
- 24/7 开盘 → 突破发生时没有「等开盘」的延迟
- 波动大 → 突破后动能强
- 明显周期 → 大牛大熊,突破方向常持续
2. 经典实作 ①:Donchian Channel(海龟的核心)
Donchian Channel 由 Richard Donchian 在 1950 年代发明,1949 年他创立 Futures Inc. 提供管理型期货服务, 是最早做这事的人。
三条线:
上轨 = 过去 N 期最高价
下轨 = 过去 N 期最低价
中轨 = (上轨 + 下轨) / 2
N 常用值:
20 — 短期突破(海龟 System 1)
55 — 长期突破(海龟 System 2)
10 — scalping//@version=5
strategy("Donchian 20 突破", overlay=true,
initial_capital=10000, default_qty_type=strategy.percent_of_equity,
default_qty_value=10)
length = input.int(20, "通道周期")
exitLength = input.int(10, "出场通道周期")
upperBand = ta.highest(high, length)[1]
lowerBand = ta.lowest(low, length)[1]
exitUpper = ta.highest(high, exitLength)[1]
exitLower = ta.lowest(low, exitLength)[1]
// 突破上轨做多
if (close > upperBand)
strategy.entry("Long", strategy.long)
// 跌破出场下轨
if (close < exitLower)
strategy.close("Long")
// 突破下轨做空
if (close < lowerBand)
strategy.entry("Short", strategy.short)
// 涨破出场上轨
if (close > exitUpper)
strategy.close("Short")
plot(upperBand, "上轨", color=color.red)
plot(lowerBand, "下轨", color=color.green)
plot((upperBand + lowerBand) / 2, "中轨", color=color.gray)3. 经典实作 ②:NR7(窄幅 K 棒收缩)
NR7(Narrow Range 7)由 Linda Bradford Raschke 推广。 原理:当出现「过去 7 根 K 棒里最窄的一根」, 往往代表市场在累积能量,下一根突破方向有大行情。
//@version=5
strategy("NR7 突破", overlay=true)
range_ = high - low
nr7 = range_ == ta.lowest(range_, 7) // 过去 7 根最窄
prevHigh = high[1]
prevLow = low[1]
// NR7 后 K 棒突破上一根高点 → 做多
if (nr7[1] and close > prevHigh)
strategy.entry("Long", strategy.long)
// NR7 后 K 棒突破上一根低点 → 做空
if (nr7[1] and close < prevLow)
strategy.entry("Short", strategy.short)
// NR7 K 棒标记
plotshape(nr7, "NR7", location=location.belowbar,
color=color.yellow, style=shape.circle)IB(Inside Bar)= 整根 K 在前一根 K 内,类似挤压
IB+NR4 = 同时是 Inside Bar 跟 NR4,是 Raschke 最爱的「火药桶」
4. 经典实作 ③:开盘区间突破(ORB)
Opening Range Breakout(ORB)由 Toby Crabel 在 《Day Trading with Short Term Price Patterns》一书系统化。 原理:用开盘后 N 分钟的高低当区间,突破方向跟。
这个策略在有明确开盘的市场最有效(美股、台股、原油期货)。 加密 24/7 没「开盘」,但可以用 UTC 00:00 作为类比基准。
//@version=5
strategy("ORB 开盘区间突破(5 分钟)", overlay=true)
// 用 5 分钟图跑,定义「开盘 30 分钟」= 6 根 K
openingBars = input.int(6, "开盘几根 K")
// 判断是否在开盘时段(UTC 00:00 开始)
isOpeningTime = (hour == 0 and minute < 30)
// 开盘区间高低
var float orbHigh = na
var float orbLow = na
if (isOpeningTime)
orbHigh := math.max(nz(orbHigh, high), high)
orbLow := math.min(nz(orbLow, low), low)
else if (hour == 0 and minute == 30)
// 开盘区间结算
label.new(bar_index, orbHigh,
"ORB High: " + str.tostring(orbHigh, "#.##"))
// 突破 ORB 上限做多
if (not isOpeningTime and not na(orbHigh) and close > orbHigh)
strategy.entry("Long", strategy.long)
// 突破 ORB 下限做空
if (not isOpeningTime and not na(orbLow) and close < orbLow)
strategy.entry("Short", strategy.short)
// 收盘前出场
if (hour == 23 and minute >= 45)
strategy.close_all()
plot(orbHigh, "ORB High", color=color.red)
plot(orbLow, "ORB Low", color=color.green)5. 避免假突破的三大滤网
突破策略最大的敌人是假突破。三种过滤法:
滤网 ①:ATR 幅度过滤
要求突破幅度大于 ATR × 0.5 才算数。 详见 ATR 完整教学。
atr = ta.atr(14)
prevHigh = ta.highest(high, 20)[1]
// 真突破 = close 突破 prev high + 至少 0.5 ATR
trueBreakout = close > prevHigh + atr * 0.5滤网 ②:成交量确认
真突破常伴随爆量。 假突破常是「无量上涨」 — 没人接,马上回。
avgVolume = ta.sma(volume, 20)
volumeSpike = volume > avgVolume * 1.5 // 爆量 50%+
if (close > prevHigh and volumeSpike)
strategy.entry("Long", strategy.long)滤网 ③:大趋势方向过滤
只接受「跟大趋势同方向」的突破。 BTC 在 SMA 200 上方时只做多突破、下方只做空突破。
sma200 = ta.sma(close, 200)
trendUp = close > sma200
trendDown = close < sma200
if (close > prevHigh and trendUp)
strategy.entry("Long", strategy.long)
if (close < prevLow and trendDown)
strategy.entry("Short", strategy.short)6. 突破策略的胜率与赔率特性
| 特性 | 数字 |
|---|---|
| 胜率 | 30-45%(不高) |
| 赔率(赚/亏比) | 2:1 ~ 5:1(强) |
| 期望值 | 正 |
| 心理门槛 | 高(60% 的时间在亏) |
7. 跟海龟系统的关系
海龟交易(详见 CTA 趋势追踪 + 海龟交易)就是 Donchian 突破 + ATR 部位 + 强纪律的组合:
- 进场:Donchian 20 或 55 突破
- 止损:2 ATR 反向
- 部位:1% 风险 / ATR
- 加仓:每涨 0.5 ATR 再加一个 unit,最多 4 个
- 出场:跌破 Donchian 10 或 20
这套规则 1983 年写的,套到 2026 的 BTC 仍然能跑。
8. 三个关键 takeaway
- 突破策略胜率低但赔率强。 心理门槛高,必须机械化执行
- 假突破是头号敌人。 ATR 幅度 + 成交量 + 趋势方向三滤网能挡掉 50% 杂讯
- Donchian + ATR + 纪律 = 海龟公式。 1983 年的系统至今仍适用 — 规则简单到爆,难在执行