跳至主要內容
美股研究 約 8 分鐘閱讀

布林通道策略美股回測:S&P 500 觸下軌買進與擠壓突破,
36 組參數全輸 QQQ

布林通道策略在美股有用嗎?2016 到 2026 年測 S&P 500 成分股與 QQQ 的 %B 均值回歸和布林通道擠壓突破,觸下軌買進年化 14.3% 贏 RSP,扣成本後剩 6.9%,36 組參數全輸 QQQ,附程式可重跑。

免安裝,用 AI 重跑這篇的策略

在瀏覽器開啟 FinLab Studio,AI 依本文的條件重跑回測,接著可以改條件再測。

在 Studio 重跑
觸下軌買進贏 RSP,輸 QQQ

布林通道策略美股回測:S&P 500 觸下軌買進、S&P 500 擠壓突破、QQQ 兩種用法、RSP 與 QQQ 含息累積淨值,2016 年 9 月至 2026 年 11 月

依本文重跑

執行這個策略

複製提示詞,讓 AI 依照上方證據的資料、條件與風險檢查重跑一次。

告訴你的AI:

幫我設定 FinLab,重跑 S&P 500 布林通道回測,請讀:https://finlab.finance/setup?relatedUrl=/blog/bollinger-bands-strategy-backtest

免安裝,開啟 FinLab Studio

2016 年 9 月到 2026 年 11 月,我們在美股測了四種布林通道策略,沒有一種贏過直接買 QQQ。表現最好的是最經典的均值回歸:S&P 500 成分股收盤跌破下軌就買,回到中軌就賣。它年化 14.3%、日夏普 0.75,贏等權 S&P 500 的 RSP(11.7%、0.70),輸含息 QQQ(19.2%、0.89)。它一年週轉 33 次,每邊 0.1% 成本下年化只剩 6.9%。擠壓突破和用在 QQQ 本身的兩種規則更差,36 組參數沒有一組贏 QQQ。

台股的布林通道研究在布林通道怎麼用才對:觸下軌買進在 2015 到 2021 年的研究段年化只有 2.5%。本文把同樣的教科書規則搬到美股,股票池用每一天真實的 S&P 500 成分股,另外測 QQQ 本身。通道、進出場和過關條件都在看到結果之前寫定。

布林通道策略關鍵數字

設計 日夏普 年化報酬 最大回撤 贏 QQQ 贏 RSP 前/後半段夏普 每邊 0.1% 成本的夏普
S&P 500 觸下軌買進 0.75 14.3% -43.0% 0 / 9 5 / 9 0.95 / 0.52 0.43
S&P 500 擠壓突破 0.70 8.0% -16.8% 0 / 9 3 / 9 1.11 / 0.32 0.34
QQQ 觸下軌買進 0.29 3.3% -22.4% 0 / 9 0 / 9 0.43 / 0.13 0.24
QQQ 擠壓突破 0.15 0.7% -13.7% 0 / 9 0 / 9 0.16 / 0.13 0.09
RSP 含息 0.70 11.7% -39.0% 對照 0.77 / 0.62
SPY 含息 0.85 14.5% -33.7% 對照 0.93 / 0.76
QQQ 含息 0.89 19.2% -35.1% 基準 1.16 / 0.64

個股規則與三檔基金都是 2016-09-01 到 2026-11-05,股息再投入,前後半段以 2021-10-01 切開。QQQ 的兩條規則從第一筆交易起算(2016-09-09 與 2016-09-06),和同一段的 QQQ 比較,QQQ 在這兩段的夏普是 0.90 和 0.89。

布林通道、%B 與擠壓在量什麼

John Bollinger 在《Bollinger on Bollinger Bands》(2001)裡的定義是:中軌是 N 日移動平均,上下軌各離中軌 k 個標準差,最常見的設定是 20 日、k = 2。從通道可以讀出兩個數字:

  • %B:收盤價在通道裡的位置。下軌是 0,中軌是 0.5,上軌是 1;收盤跌破下軌時 %B 小於 0。
  • 帶寬(BandWidth):上下軌距離除以中軌。價格安靜時帶寬會收窄。帶寬來到約半年最低,就叫擠壓,常出現在一段較大的波動之前,方向不一定。

最常見的兩種布林通道策略就從這裡來。一種在下軌買弱勢股,等價格回到平均;另一種等擠壓出現,再買向上突破上軌的股票。

測試的四條規則

  • S&P 500 觸下軌買進(%B 均值回歸): 成分股收盤跌破下軌就買,收盤回到中軌以上(%B 至少 0.5)或離開指數就賣。
  • S&P 500 擠壓突破: 成分股收盤突破上軌,而且前 20 天裡至少有一天帶寬在 126 日最低,就買;收盤跌破中軌或離開指數就賣。
  • QQQ 觸下軌買進與QQQ 擠壓突破: 同樣兩條規則只用在 QQQ 上,有訊號時全部買 QQQ,其餘時間留現金。

每條規則都跑 3 × 3 的參數:N 取 15、20、25 日,k 取 1.5、2、2.5,原設定是 20 日、2 倍標準差。標準差用母體標準差,和 Bollinger 的定義相同。個股規則等權持有所有符合的成分股,單檔上限 5%,符合的股票不足 20 檔時留現金。

策略怎樣才算過關

「贏」的意思是同一段交易日裡,日夏普高於含息 QQQ。夏普是日報酬平均除以標準差,再乘以 √252,不扣無風險利率。以下六個條件都在看到結果之前寫定。

  1. 鄰近參數: 9 組參數裡七成以上要贏 QQQ。
  2. 前後兩段: 回測期間對半切,原設定兩段都要贏。
  3. 含成本: finlab 美股預設成本(0)和每邊 0.1% 下都要贏。
  4. 不靠單一年份: 拿掉領先最多的那一個年度,仍要贏。
  5. 固定持有同樣曝險: 要贏「平均投入比例固定持有自己的基金、其餘現金、每月再平衡」的組合。QQQ 規則對照 QQQ,個股規則對照 RSP。
  6. 現金: 規則可能留現金,所以扣掉 BIL(短期國庫券)後的夏普也要贏 QQQ。

四條規則前四項全部沒過,第五項只有兩條 S&P 500 規則通過,擠壓突破只多 0.002。

S&P 500 觸下軌買進:贏 RSP,輸 QQQ

這條規則持股的中位數是 93 檔,平均 118.5 檔。2020-03-16 持有 478 檔,幾乎是整個指數,因為大部分成分股都跌破了下軌。全期只有 85 天不足 20 檔,平均投入 98.6%。這也是它最大回撤 -43.0% 比 RSP 的 -39.0% 和 QQQ 的 -35.1% 都深的原因:崩盤時股票一路跌破下軌,規則就一路買進,要等漲回中軌才賣。

十年間共平倉 22,631 筆交易,69.1% 賺錢,中位數賺 2.19%,持有中位數 12 個交易日。平均每筆只賺 0.90%,不到中位數的一半,因為虧損的交易比賺錢的大得多。這條規則光看勝率看不出好壞。

S&P 500 布林通道觸下軌買進與 RSP、QQQ 的逐年報酬,2016 至 2026 年

對等權指數的優勢存在,但很小。日夏普 0.75 對 RSP 的 0.70;以規則平均 98.6% 的曝險固定持有 RSP,夏普是 0.70。9 組參數裡 5 組贏 RSP,25 日通道的三組比較低(0.59 到 0.67)。相對 RSP 最好的年份是 2020 年(34.7% 對 12.7%)、2019 年(48.6% 對 28.9%)和 2023 年(18.1% 對 13.7%),落後最多的是 2017 年(11.3% 對 18.5%)、2026 年至今(7.8% 對 14.6%)和 2018 年(-12.0% 對 -7.8%)。對 QQQ 領先最多的是 2022 年,規則虧 13.3%,QQQ 虧 32.6%;拿掉 2022 年,夏普 0.92 對 QQQ 的 1.23。

這個現象和個股的短期反轉相符。Jegadeesh(1990)發現美股的月報酬下個月傾向反轉,Lehmann(1990)在週報酬也看到反轉。收盤跌破下軌的股票就是短期輸家,規則賺的是反彈。

反彈的幅度不大,所以成本決定了結果。目標權重單邊一年週轉 33 次,每邊 0.1% 大約是每年 6.7% 的資產,和年化從 14.3% 掉到 6.9% 的差距相近;夏普從 0.75 掉到 0.43,低於 RSP。週轉率這麼高,實際的滑價會比手續費更重要。

布林通道策略交易成本:四條規則在零成本與每邊 0.1% 成本下的日夏普,以及週轉率

布林通道擠壓:風險低,報酬也低

擠壓突破持股的中位數是 34 檔,平均 39.5 檔,有 754 天不足 20 檔,平均投入 81.7%。它的風險比觸下軌買進低很多:年化波動 11.9%、最大回撤 -16.8%,觸下軌買進是 20.8% 和 -43.0%。報酬也比較低,年化 8.0%。

6,716 筆已平倉交易呈現典型的突破型態:只有 37.3% 賺錢,中位數虧 1.39%,平均卻賺 0.33%,少數大幅突破的交易彌補了大量小虧損。日夏普 0.70 和 RSP 的 0.70 打平,以 81.7% 曝險固定持有 RSP 也是 0.70,規則只多一點(0.704 對 0.702)。前半段 1.11 接近 QQQ 的 1.16,後半段掉到 0.32,QQQ 是 0.64。最好的參數是 25 日、k = 2,夏普 0.78。一年週轉 21 次,每邊 0.1% 成本下夏普掉到 0.34。

QQQ 上的布林通道:大多時間空手

QQQ 很少收在下軌之下。觸下軌買進十年只平倉 39 筆,持有 QQQ 的天數佔 18.2%。79.5% 的交易賺錢,中位數賺 1.66%,年化卻只有 3.3%、夏普 0.29。同樣的平均曝險每天持有,也就是 18.2% 的資產放 QQQ、其餘現金,夏普是 0.90,是規則的三倍。它大多時間空手,最大回撤仍有 -22.4%,因為賣壓初期就買進的部位會一路抱到漲回中軌,中間沒有停損。

擠壓突破用在 QQQ 上只交易 16 次,37.5% 賺錢,持有天數佔 10.2%。年化 0.7%、夏普 0.15,9 組參數從 -0.36 到 0.48。

布林通道 N 日(15、20、25)與通道寬度(1.5、2、2.5 倍標準差)四條規則的日夏普熱圖,全部低於 QQQ

粗體是原設定,36 格全部低於 QQQ。個股規則落在 0.58 到 0.78 的窄區間,20 日、2 倍標準差不是特別突出的尖峰,也沒有一片高於 QQQ 的高原。QQQ 規則的數字跳動很大,因為每一格只由少數幾筆交易決定。

布林通道策略前後兩段的日夏普,與 QQQ 對照

兩條個股規則都是前半段比較好,RSP 也一樣(0.77 對 0.62),但沒有一段贏 QQQ。

和其他研究對照

技術分析規則的證據一向分歧。Park 與 Irwin(2007)整理 95 篇近代研究,56 篇發現獲利、20 篇沒有、19 篇結果混合;他們也指出很多測試有資料探勘、事後挑規則、風險與交易成本估得粗糙等問題。固定規則、固定參數格點、重跑成本,就是針對這些問題設計的,布林通道規則在這裡沒有撐過。

我們在 S&P 500 成分股上的其他個股研究結果相近。黃金交叉回測在 2017 到 2026 年年化 11.5%、夏普 0.72,52 週新高選股回測的 63 組參數全部輸 QQQ。那兩個是趨勢規則,一年週轉約 2.5 次和 13 次。本文的觸下軌買進一年週轉 33 次,扣成本前賺得比兩者都多;每邊 0.1% 成本下夏普 0.43,低於黃金交叉的 0.68。另一種加上市場狀態濾網、用在槓桿 ETF 的短線均值回歸,見美股短線均值回歸策略。

程式碼

這段是 S&P 500 觸下軌買進。用到 2026-11-05 的資料,它印出的日夏普約 0.75,FinLab 修訂資料時最後一位可能變動。research.py 另外保留一家公司一個股別,也包含另外三條規則、36 組參數和六項檢查。

顯示程式碼
import finlab
from finlab import data
from finlab.backtest import sim
 
finlab.login()
data.set_market("us")
 
close = data.get("us_price:adj_close")
members = data.get("us_index_constituents:sp500").astype(bool)
 
# 兩張表都有的代號,成分股對齊交易日
tickers = members.columns.intersection(close.columns)
close = close[tickers]
members = members[tickers].reindex(close.index, method="ffill").fillna(False).astype(bool)
 
# 20 日布林通道,上下各 2 個標準差
middle = close.rolling(20).mean()
lower = middle - 2 * close.rolling(20).std(ddof=0)
 
# 成分股收盤跌破下軌就買,回到中軌就賣
buy = (close < lower) & members
sell = (close >= middle) | ~members
position = buy.hold_until(sell).loc["2016-09-01":]
 
# 等權、單檔上限 5%、隔天開盤成交
report = sim(position.loc[:, position.any()], position_limit=0.05, trade_at_price="open",
             market="us", upload=False)
 
returns = report.creturn.pct_change().dropna()
print("日夏普:", round(returns.mean() / returns.std() * 252 ** 0.5, 2))

不想自己寫也可以。照 AI 輔助安裝流程裝好 FinLab skill,或直接到 FinLab Studio 用白話請 AI 重跑,例如「把布林通道擠壓改成 Nasdaq 100 成分股」或「觸下軌買進加上 5 天時間停損,每邊收 0.05% 成本」。

回測方法

項目 做法
回測區間 2016-09-01 至 2026-11-05。FinLab 美股價格從 2016 年 1 月開始,前幾個月用來暖機 126 日帶寬
股票池 每天的 S&P 500 成分股,一家公司留一個股別。FinLab 沒有價格的成分股略過
流動性 除了指數成分外未設濾網。未估容量
週轉率 目標權重單邊一年:觸下軌買進 33 次、擠壓突破 21 次;QQQ 兩條規則 3.9 次與 1.6 次
訊號 通道只用訊號日以前的收盤價,避免前視偏差
權重 等權、單檔上限 5%,名單變動的日子重新等權;現金沒有利息
成交 收盤算訊號、隔天開盤成交,使用還原價
成本 finlab sim() 美股預設 0,另跑每邊 0.1%。未另估滑價
稅 未計
樣本 全段都是樣本內,前後兩段只檢查穩定度,沒有做樣本外驗證

這個結果能說明什麼

在這段期間和這些規則下,S&P 500 成分股觸下軌買進,扣成本前每單位風險賺得比等權持有全部成分股多一點,扣掉實際成本後就比較少。沒有一條規則贏 QQQ,而 QQQ 剛好走過特別強的十年。本文只涵蓋美國大型、流動性高的股票;小型股、其他市場,或加上趨勢條件之類的濾網,結果都可能不同,需要另外測。

想從頭學回測,可以看什麼是回測和美股回測教學;站上其他美股研究都收在美股量化交易策略比較。

常見問題

布林通道策略哪一種最好?

本文測的四種都沒有贏 QQQ。最強的是 S&P 500 成分股收盤跌破下軌就買、回到中軌就賣:扣成本前年化 14.3%、夏普 0.75,QQQ 是 0.89。

布林通道觸下軌買進有用嗎?

用在 S&P 500 個股,扣成本前略贏等權指數,夏普 0.75 對 0.70,22,631 筆交易有 69.1% 賺錢。每邊收 0.1% 成本後,年化掉到 6.9%。用在 QQQ 本身,年化只有 3.3%。

布林通道擠壓是什麼?

擠壓是帶寬(上下軌距離除以中軌)來到約半年最低。本文在擠壓後 20 天內買進突破上軌的 S&P 500 成分股:年化 8.0%、最大回撤 -16.8%、夏普 0.70,和 RSP 相同。

20 日、2 倍標準差是最好的參數嗎?

在這裡不是,也沒有特別突出的組合。觸下軌買進的 15 日通道夏普 0.76 到 0.77,25 日通道 0.59 到 0.67;擠壓突破是 25 日、k = 2 最好,0.78。全部低於 QQQ 的 0.89。

布林通道用在 QQQ 上有用嗎?

在本文的測試裡,拿來擇時沒有用。QQQ 的兩條規則大多時間空手,夏普 0.29 和 0.15;每天固定持有 18.2% 的 QQQ 是 0.90。本文沒有測 SPY。

交易成本對布林通道策略影響多大?

對個股規則影響很大。觸下軌買進一年週轉 33 次,每邊 0.1% 讓年化從 14.3% 掉到 6.9%,夏普從 0.75 掉到 0.43。

美股和台股的結果一樣嗎?

方向相近。台股的布林通道研究裡,觸下軌買進在研究段年化 2.5%。美股這邊扣成本前贏等權指數,扣成本後也輸。

可以自己重跑嗎?

可以。透過 AI 輔助安裝流程裝好 FinLab skill,下載下面的 research.py,執行 python research.py。

延伸閱讀

下載資源

檔案 內容
research.py 完整研究:四條規則、36 組參數、前後兩段、成本重跑與六項檢查
data.csv 四條規則原設定,加上 QQQ、SPY、RSP 的每日淨值
metrics.json 本文背後的統計,包含交易、持股數與逐年報酬

投資警語:本文僅供教學參考,不構成投資建議。過去績效不代表未來表現,投資有風險。本文所有回測均為全段樣本內結果,前後兩段未經樣本外驗證。

最後更新:2026-11|回測區間:2016-09~2026-11|資料截至 2026-11-05,重跑日 2026-11-07|基準:QQQ 含息|作者:FinLab 量化研究團隊(經量化研究員審閱)

FinLab AI

想建立自己的策略?

用自然語言描述你的選股想法,AI 自動驗證、回測、給你答案

免費開始

更多技術指標研究

查看全部