策略類型 · 突破交易

突破策略完整教學
Donchian / NR7 / 開盤區間

2026-06-03·11 分鐘閱讀·策略

突破策略是趨勢追蹤的核心:價格突破某個關鍵區間,跟著走。 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. 提供管理型期貨服務, 是最早做這事的人。

三條線:

text
上軌 = 過去 N 期最高價
下軌 = 過去 N 期最低價
中軌 = (上軌 + 下軌) / 2

N 常用值:
  20 — 短期突破(海龜 System 1)
  55 — 長期突破(海龜 System 2)
  10 — scalping
pine
//@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)
為什麼進場跟出場用不同週期
海龜的精髓:進場慢、出場快。 進場用 20 期,等趨勢確認再進; 出場用 10 期,遇到反轉立刻撤。 這樣抓長尾趨勢的中段,避開兩頭的雜訊。

3. 經典實作 ②:NR7(窄幅 K 棒收縮)

NR7(Narrow Range 7)由 Linda Bradford Raschke 推廣。 原理:當出現「過去 7 根 K 棒裡最窄的一根」, 往往代表市場在累積能量,下一根突破方向有大行情。

pine
//@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)
NR7 的擴展:NR4 / IB / IB+NR4
NR4 = 過去 4 根最窄,更頻繁但雜訊也多
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 作為類比基準。

pine
//@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 完整教學

pine
atr = ta.atr(14)
prevHigh = ta.highest(high, 20)[1]

// 真突破 = close 突破 prev high + 至少 0.5 ATR
trueBreakout = close > prevHigh + atr * 0.5

濾網 ②:成交量確認

真突破常伴隨爆量。 假突破常是「無量上漲」 — 沒人接,馬上回。

pine
avgVolume = ta.sma(volume, 20)
volumeSpike = volume > avgVolume * 1.5  // 爆量 50%+

if (close > prevHigh and volumeSpike)
    strategy.entry("Long", strategy.long)

濾網 ③:大趨勢方向過濾

只接受「跟大趨勢同方向」的突破。 BTC 在 SMA 200 上方時只做多突破、下方只做空突破。

pine
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% 的時間在虧)
為什麼大多數人放棄突破策略
因為勝率只有 30-45%。 連虧 5-7 次很常見,心理上很難堅持。 但靠少數大贏(5-10 倍止損距離)拉回總獲利。 這也是為什麼必須機械化執行 — 靠感覺一定會在連虧時放棄系統。

7. 跟海龜系統的關係

海龜交易(詳見 CTA 趨勢追蹤 + 海龜交易)就是 Donchian 突破 + ATR 部位 + 強紀律的組合:

  • 進場:Donchian 20 或 55 突破
  • 停損:2 ATR 反向
  • 部位:1% 風險 / ATR
  • 加倉:每漲 0.5 ATR 再加一個 unit,最多 4 個
  • 出場:跌破 Donchian 10 或 20

這套規則 1983 年寫的,套到 2026 的 BTC 仍然能跑。

Get started

想把今天學到的東西自動化跑起來?

想實作完整突破系統?Pine 寫好策略 → TVSBot 接到交易所自動執行,免去人工盯盤。

免費註冊 TVSBot

8. 三個關鍵 takeaway

  1. 突破策略勝率低但賠率強。 心理門檻高,必須機械化執行
  2. 假突破是頭號敵人。 ATR 幅度 + 成交量 + 趨勢方向三濾網能擋掉 50% 雜訊
  3. Donchian + ATR + 紀律 = 海龜公式。 1983 年的系統至今仍適用 — 規則簡單到爆,難在執行