VALYNOXSTRATEGY RESEARCH TECHNOLOGY
AlphaPrimeAlphaPrime
策略學院 / 指標與訊號

布林通道擠壓:突破在測試中站得住腳嗎

布林通道擠壓標示出異常偏低的波動率,之後波動率通常會擴張,但擠壓本身不說明方向。計入手續費、滑價與假突破之後,突破交易遠比圖表看起來弱,所以要在第一次執行前就定義好擠壓、進場與出場,並以扣除成本後的樣本外交易來評判規則。

作者 · 發佈 · 更新於 · 編輯原則

目錄
  1. 布林通道擠壓,能可靠地帶來獲利的突破嗎?
  2. 怎麼計算帶寬?
  3. 怎麼分辨擠壓與一般的清淡交易?
  4. 擠壓之後,怎麼判讀突破的方向?
  5. 擠壓突破多常失敗?
  6. 波動率突破的期貨回測顯示什麼?
  7. 怎麼自己測試布林擠壓策略?
  8. 常見問題
  9. 參考文獻

布林通道擠壓,能可靠地帶來獲利的突破嗎?

布林通道擠壓無法可靠地帶來獲利的突破。它標示出一段異常偏低的波動率,之後波動率通常會擴張,但它完全沒有說明方向;計入手續費、滑價與假突破之後,突破交易遠比圖表看起來弱。

布林通道擠壓,是指上軌與下軌的布林通道異常靠近,因為近期價格幾乎沒有移動。可以想成暴風雨前平靜的海面。平靜告訴你天氣要變了,卻沒有告訴你風會從哪一邊吹來。擠壓也是如此:真實的部分(波動率傾向回升)本身賺不到錢,因為你仍然得選邊。

本文貫穿一個主張:擠壓之後的波動率擴張是真實存在的型態,但在加入方向、出場與成本之前,它還不是可交易的規則;這三個步驟,每一個都會拿走圖表看似承諾的一大部分。擠壓屬於技術分析工具與可檢驗的指標所涵蓋的波動率工具之一;通道的突破用法,與布林通道策略的運作原理與回測方法所測試的觸及通道均值回歸規則正好相反,兩者不應混在同一套規則裡。

怎麼計算帶寬?

帶寬是上軌與下軌的距離除以中軌,把通道寬度換成百分比,可以跨時間,也可以跨價位不同的市場比較。帶寬指標,就是多數看盤平台在你要求布林帶寬時,畫在價格下方的那條線。

本文唯一的公式:

帶寬 = (上軌 − 下軌) ÷ 中軌

其中上軌與下軌是外側兩條線,通常在移動平均線上下各兩個標準差,中軌就是這條移動平均線本身,通常取最近 20 根 K 棒。標準差衡量近期價格與其平均值通常偏離多遠。價格幾乎不動時,標準差下降,外側通道向中間靠攏,帶寬也隨之下降。

假設性範例

在日 K 圖上,上軌在 5,120,下軌在 5,020,中軌在 5,070。帶寬為 (5,120 − 5,020) ÷ 5,070 = 100 ÷ 5,070 ≈ 0.020,約 2%。一個月前,通道相距 400 點,中軌在 5,000,所以帶寬是 0.08。同樣 2% 的讀數,放在價位 2,000 的市場,意味著通道只相距 40 點,所以原始的點數距離無法在市場之間比較,百分比卻可以。

布林通道收窄後再度張開。下方的帶寬線從通道寬時的 0.08,降到擠壓時的 0.02,這是 125 根 K 棒內的最低讀數,隨後波動率擴張,帶寬回升。帶寬是上軌減下軌,再除以中軌。 擠壓就是低點 帶寬 = (上軌 − 下軌) ÷ 中軌 通道 帶寬 0.08 0.02 擠壓 擴張 125 根內最低的帶寬。 所以:預期擴張,不是方向。
帶寬是通道寬度占中軌的比例。擠壓是帶寬線的低點,其後的擴張才是這個型態真正預測的東西。

除以中軌,對期貨交易人是必要的,因為同一條規則常要在好幾個合約上測試。寫成「通道相距不到 60 點」的規則,在價位低的合約上每週都會觸發,在價位高的合約上卻從不觸發。寫成「帶寬低於 0.02」的規則,至少在兩者上衡量的是同一件事;不過下一節會說明,即使是固定的百分比也還不夠。

怎麼分辨擠壓與一般的清淡交易?

擠壓是相對於市場自身近期歷史來定義的,例如帶寬處於最近 125 根 K 棒的最低值,或低於選定的百分位,因為固定的帶寬水準,在 ES、黃金與台指期上意義各不相同。清淡交易在多數時候都是常態;擠壓則是在該期間、對該市場而言異常的清淡交易。

寫定義常見有三種方式。百分位是過去讀數中低於目前讀數的比例,所以「低於第 20 百分位」表示帶寬低於回看期間內過去 K 棒的五分之四。

擠壓的定義適應市場自身的波動率日 K 每年的訊號數主要陷阱
最近 N 根 K 棒內最低的帶寬(例如 125)是,完全適應多出現在長時間平靜的後段:每一個新低都會重新啟動訊號,所以連續出現數個「擠壓」
帶寬低於其歷史的某個百分位(例如第 20)是一些需要長期歷史,百分位才會穩定;資料的第一年讀數不可靠
帶寬低於固定水準(例如 0.03)否不穩定換市場就失效:在慢的合約上持續出現訊號,在快的合約上幾乎沒有
定義擠壓的三種方式。125 根 K 棒內的最低帶寬會適應市場,但在長時間平靜的後段會重複出現。低於第 20 百分位的讀數會適應,但需要長期歷史。固定水準 0.03 不會適應,也無法跨市場使用。 固定門檻無法跨市場 定義擠壓的三種方式 規則 適應? 缺點 125 根低點 是 後段重複 第 20 百分位 是 需要歷史 固定 0.03 否 無法跨市場 適應型規則要付出歷史資料的代價。 所以:以自身過去為基準來定義。
定義擠壓的三種方式。適應型的定義要付出訊號與歷史的代價;固定水準簡單,但無法跨市場。

125 根的回看期間,約是六個月的日 K,這是常見的起點,因為它通常涵蓋至少一段清淡與一段熱絡的行情。無論選哪個回看期間,都要在第一次執行前寫下來。回看期間和其他參數一樣是調整出來的,只在 125 根有效、在 100 與 150 失效的擠壓規則,描述的是某一段歷史裡的雜訊,不是可重複的型態。

第四種定義,是拿布林通道與肯特納通道比較,當布林通道落在肯特納通道之內時,稱為擠壓。這個版本、它的出場邏輯,以及測試的結果,見TTM 擠壓指標及其布林通道與肯特納通道突破的回測一文。下文的方向與假突破問題,對它同樣適用。

擠壓之後,怎麼判讀突破的方向?

擠壓本身沒有方向,所以唯一誠實的進場,是擠壓之後第一次收盤在通道外,並可選擇以趨勢濾網或價格相對中軌的位置加以確認,而且測試必須讓多空兩邊都計入。任何在擠壓期間就「知道」方向的規則,都是在右側邊緣已經看得見的情況下讀圖。

許多手繪的擠壓範例,就是在這裡無意間作弊。在已完成的圖上,突破一目了然,所以眼睛挑出的是上漲之前的擠壓,並記成「看多擠壓」。擠壓發生的當下,向上與向下的結果看起來完全一樣。

兩張圖共用一次相同的擠壓,此時尚無方向。上圖中價格第一次收盤在上軌之上,這是做多進場。下圖中價格第一次收盤在下軌之下,這是做空進場。 擠壓沒有方向 同一次擠壓,兩種結果 尚無方向 做多進場 做空進場 方向要到第一次收盤才明朗。 所以:多空分開測。
同一次擠壓,一種情況向上解決,另一種向下解決。方向只有在第一次收盤於通道外時才知道,這就是以那次收盤作為進場的原因。

方向規則有三種寫法,限制由少到多:

  1. 純突破。擠壓之後,第一次收盤在上軌之上就做多,第一次收盤在下軌之下就做空。不加濾網。這是其他每個版本在扣除成本後都必須勝過的基準。
  2. 中軌位置。只在價格於擠壓期間已經處於中軌哪一側的方向上接受突破:收盤在中軌之上才允許做多,在中軌之下才允許做空。交易減少,擠壓也不再對稱。
  3. 趨勢濾網。只接受順著較長移動平均線方向的突破,例如 200 根 K 棒的平均線。交易再度減少,規則現在依賴兩個回看期間,而不是一個。

在報表中,把多方與空方當成兩列分開測試。指數期貨在大多數十年期間裡都有長期向上的漂移,所以只做多的擠壓規則,看起來不錯的原因可能與擠壓毫無關係。如果空方在每個版本都虧錢,擠壓並沒有帶來資訊;帶來資訊的是漂移。

擠壓突破多常失敗?

假突破,是收盤在通道外、數根 K 棒內又回到通道內,且常與最終行情方向相反的情況;在你自己的資料上統計它的數量,是決定擠壓規則能不能付得起成本的第一個數字。這個數量取決於市場、K 棒週期與擠壓的定義,所以別人圖上的數字不是你的。

在進場的那根 K 棒上,真突破與假突破看起來一樣:擠壓之後收盤在通道外。只有後面幾根 K 棒才能區分兩者。所以擠壓規則對假突破永遠要全額買單。等你知道突破失敗時,進場成本、滑價,以及回到停損的距離都已經付出了。

兩次假設性的突破,進場收盤都在上軌之上。真突破中,後續收盤都留在通道外,交易在中軌出場,獲利 24 點。假突破中,價格在三根 K 棒內回到通道內,跌破下軌,觸及停損,虧損 12 點。 進場相同,結局不同 假設:接下來三根 K 棒決定 真突破 假突破 進場 進場 出場 +24 點 停損 −12 點 失敗的突破要全額買單。 所以:交易前先數過。
進場的 K 棒相同,結果不同。真突破持續收盤在通道外;假突破在三根 K 棒內回到通道內,然後朝另一個方向走。

統計假突破是機械式的工作,就像多空 K 線型態的回測,把視覺型態轉成規則,再統計它的結果:

  1. 標出每一次擠壓,使用上一節的定義。
  2. 標出每次擠壓之後第一次收盤在通道外的位置。那就是一次突破事件。
  3. 事先定義「失敗」。常見的選擇:進場後三根 K 棒內,收盤回到通道內。
  4. 為每個事件記錄是否失敗、出場前價格逆著進場方向走了多遠(以跳動點計),以及順著方向走了多遠。
  5. 把跳動點換算成金額,用你的合約,搭配免費的期貨合約與損益計算機,再加上每一買一賣的手續費與滑價。

假設性範例

兩年的日 K 產生 60 次擠壓突破。其中 26 次在三根 K 棒內收盤回到通道內,被計為失敗;34 次持續前進。失敗的平均每次從進場到停損虧損 12 點。成功的平均每次從進場到中軌出場獲利 24 點。毛結果:34 × 24 − 26 × 12 = 816 − 312 = 504 點,60 筆交易,也就是未扣成本前平均每筆 8.4 點。若每一買一賣的成本等於 2 點,淨結果為平均每筆 6.4 點。把假突破的數量提高到 60 次中的 32 次,毛結果降為 28 × 24 − 32 × 12 = 288 點,平均每筆 4.8 點,成本幾乎吃掉其中一半。整個結果取決於有多少突破失敗,所以那個數量排在第一。

範例中有兩點,是真實擠壓測試的典型情況。第一,失敗率偏高,通常占所有事件的三分之一到一半,因為擠壓會在兩側都吸引停損單,第一波推動常常先清掉一側,真正的行情才朝另一邊走。第二,結果對失敗率敏感,所以在一個市場上看起來不錯的規則,只要第一波推動失敗的頻率稍有變化,在下一個市場就可能是輸家。

波動率突破的期貨回測顯示什麼?

本文背後的 ES 日 K 執行,使用替代的波動率規則:搜尋嘗試了一千多個候選策略,這是其中因報酬相對於回撤而被留下的一個。它的數字說明,被挑選出來的結果該讀成被美化的,而不是擠壓規則實際能賺到的。這次執行以尾部厚度指數(Tail Heaviness Index)規則作為唯一的進場與出場,沒有停損、沒有停利、沒有濾網,這是以標準指標建立的替代規則,本身並不是布林擠壓規則。

來源:AlphaPrime 產品引擎(CPU),2026-10-31 執行。ES 日線,2019-01-02 至 2025-06-30,多空都做,1 口,每筆手續費 $20、滑價 $25。

項目結果
淨利(已平倉)$97,520
最大回撤$14,180
交易筆數174
勝率54.6%
獲利因子1.833
平均每筆$560.46
在場時間16.77%
同樣的 K 棒對上軌,兩套規則的結果:無濾網時,在第一次收盤於通道之上時進場,價格收盤回到通道內,觸及停損;有兩次收盤的濾網時,這筆交易被略過,進場出現在較晚、站得住的突破上 等待第二次收盤 同樣的 K 棒對上軌 無濾網 2 次收盤 觸及停損 守住 略過一次虧損,進場較晚。 所以:比較扣成本後的平均每筆損益。
請看兩件事:權益曲線的斜率在樣本外標記處如何改變,以及回撤陰影相對於總漲幅有多深。標記之後斜率仍能保持的曲線,並不是只靠挑選時所用的資料建立的。 ES · 日 K · 2019-01-02 至 2025-06-30 · CPU 引擎回測

讀這張表,要像買家讀二手車廣告那樣。AlphaPrime(Valynox)在同樣的 ES 日 K 上,期間 2019-01-02 至 2025-06-30,試了一千多個候選策略,留下這一個,因為它的報酬相對於回撤是整組中最好的。事後挑出被留下的候選策略,會美化它:在同一段歷史上試過的一千條規則裡,最頂端的那一條會帶著部分來自運氣的加成,即使它本身沒有任何問題。Bailey、Borwein、López de Prado 與 Zhu(2014)說明了試的次數增加時,這個加成會變得多大;Sullivan、Timmermann 與 White(1999)在重新檢驗大量技術規則、並對照所有本來可能被選中的規則時,也發現了同樣的效應。因此 $97,520 的淨損益與 $14,180 的最大回撤,是搜尋所能找到的最佳情況,不是這條規則、這個指標或任何讀者該期待的結果。

表中有三個數字,對擠壓交易人仍然有用,因為擠壓規則與這次執行的形狀相同。持倉時間占比為 16.77%:規則大部分時間空手,這正是擠壓規則的樣子,因為擠壓依定義就罕見。約六年半有 174 筆交易,大約每年 27 筆,所以單一年份的假突破不佳,就能撼動整個結果。而平均每筆損益 $560.46,約為一買一賣成本 $45($20 手續費加 $25 滑價)的十二倍,這是日 K 規則需要的那種餘裕;平均每筆只有幾個跳動點的日內擠壓規則,沒有這樣的緩衝。

怎麼自己測試布林擠壓策略?

在第一次執行前,先寫下帶寬回看期間、擠壓門檻、進場、出場與成本設定,再以扣除成本後完成的樣本外交易來評判規則,而不是看擠壓在圖上多乾淨。看過結果之後做的每個選擇,都會成為調整的一部分,連樣本外期間也一併被用掉。

擠壓測試中依序固定的六個決定:通道參數、擠壓規則、進場、出場、成本,以及最後以扣除成本後的樣本外交易做出評判。從第六步指回第一步的箭頭,表示任何更動都是新的候選策略,不是重新調整。 每一步都在執行前定好 六個決定,依此順序 1 2 3 4 5 6 參數 擠壓 進場 出場 成本 評判樣本外 是新候選,不是重新調整 只用沒看過的交易來評判。 所以:每個候選都要計數。
擠壓測試中各決定的順序。每個方塊在看下一個之前就已固定,方塊 6 之後的更動,會開啟新的候選策略,而不是調整舊的。
  1. 選擇通道參數與帶寬回看期間。從標準的 20 根 K 棒平均線與兩個標準差開始,擠壓的回看期間用 125 根 K 棒。把它們寫下來。
  2. 寫下擠壓規則。從上表的三種定義中選一個。「125 根 K 棒內最低的帶寬」最容易用手檢查。
  3. 在擠壓之後第一次收盤於通道外時進場,做多或做空,第一版不加方向濾網。
  4. 出場。回到中軌,或固定的 K 棒數,例如十根。在擠壓區間之下(或之上)加一個停損,讓假突破有已知的成本。
  5. 手續費與滑價,搭配下一根 K 棒成交。在收盤時讀到的訊號,在下一根 K 棒的開盤價成交,對流動性佳的期貨,每邊至少一個跳動點的滑價,較慢的合約則更多。
  6. 以扣除成本後的樣本外交易評判。依照樣本內與樣本外:怎麼切分、多少才夠所述,依日期切分歷史,統計沒看過那一側已完成的交易,並拿平均每筆損益與一買一賣的成本比較。

樣本外結果偏弱時,誘惑是把回看期間從 125 改成 100,再跑一次。這就是圖中的側向箭頭:更動後的參數是新的候選策略,而你試過的候選數量,決定了最佳結果中有多少是運氣。Brock、Lakonishok 與 LeBaron(1992)用近一個世紀的指數資料,測試簡單的技術規則,並以論文的大部分篇幅談的正是這一點:把所有本來可以選擇的規則都算進來之後,規則看起來就不同了。在擠壓搜尋開始前,先在策略檢驗中設好通過與未通過的門檻,每個候選策略的推進分析與樣本外結論,就來自你事先寫下的規則,而不是權益曲線事後看起來如何。

今天可以先做的一件事:載入你交易之合約的兩年日 K,依「125 根 K 棒內最低帶寬」的規則標出每一次擠壓,並統計第一次收盤於通道外之後,有多少在三根 K 棒內又回到通道內。如果這個數量超過一半,該市場上的擠壓大多是掃停損型態,突破版本在任何出場下都難以付得起成本。

常見問題

怎麼辨識布林通道擠壓?

先把帶寬算成上軌減下軌,再除以中軌。接著把今天的帶寬,和市場自身近期的歷史比較,例如最近 125 根 K 棒內的最低值,或低於最近一年的第 20 百分位。擠壓是在該期間、對該市場而言異常的清淡交易,不是適用於每個合約的固定水準。

擠壓之後,價格往哪個方向突破?

擠壓本身並不說明。在擠壓當下,後續的行情無論上漲或下跌,圖看起來都一樣。唯一誠實的訊號,是擠壓之後第一次收盤在通道外:在上軌之上做多,在下軌之下做空。價格相對於中軌的位置之類的濾網,可以減少交易,但應該經過測試,而不是想當然。

擠壓突破常常失敗嗎?

在多數期貨市場上,大部分擠壓突破會在數根 K 棒內收盤回到通道內,常占所有事件的三分之一到一半。確切的比例取決於市場、K 棒週期與擠壓的定義,所以請在你自己的資料上統計。失敗率是決定規則能否付得起手續費與滑價的數字。

布林擠壓與 TTM 擠壓指標是同一回事嗎?

不是。布林擠壓透過帶寬,拿通道和它自己的歷史比較。TTM 擠壓指標拿布林通道和肯特納通道比較,在布林通道移到肯特納通道之內時觸發。兩者都描述低波動率,當作突破交易時,也都有同樣的方向與假突破問題。

帶寬多少算擠壓?

沒有單一的數值。0.03 的帶寬,在快的合約上可能是深度擠壓,在慢的合約上卻是正常交易。要相對於市場自身近期的帶寬歷史來定義擠壓,並在測試前寫下回看期間,避免事後再調整。

參考文獻

  • Bailey, D. H., Borwein, J., López de Prado, M., & Zhu, Q. J. (2014). Pseudo-Mathematics and Financial Charlatanism: The Effects of Backtest Overfitting on Out-of-Sample Performance. Notices of the American Mathematical Society, 61(5), 458–471.
  • Sullivan, R., Timmermann, A., & White, H. (1999). Data-Snooping, Technical Trading Rule Performance, and the Bootstrap. The Journal of Finance, 54(5), 1647–1691.
  • Brock, W., Lakonishok, J., & LeBaron, B. (1992). Simple Technical Trading Rules and the Stochastic Properties of Stock Returns. The Journal of Finance, 47(5), 1731–1764.