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

美股動能策略回測:12-1 動能因子驗證+槓桿 ETF 擇時(附程式碼)

美股動能策略還有效嗎?本文用 finlab 在美股流動性前 500 檔驗證 12-1 動能:最強十分位下月平均報酬 2.38%,再以 QQQ 趨勢擇時加碼 TQQQ、TECL。2016 至 2026 年化 29.9%、最大回撤 -21.1%,鄰近參數、前後兩段、交易成本三項驗證全數通過,附完整程式碼。

美股動能還有效嗎 CAGR 29.9% Sharpe 1.36

美股動能策略回測淨值曲線:策略對照 QQQ、SPY 與直接持有 TQQQ,2016 至 2026 年

依本文重跑

執行這個策略

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

告訴你的AI:

幫我設定 FinLab,重現這篇美股動能策略回測,請讀:https://finlab.finance/setup?relatedUrl=/blog/us-momentum-strategy

免安裝,開啟 FinLab Studio

「強者恆強」在美股還成立嗎?動能是學術界重現次數最多的股市異常之一,但多數文章只停在引用論文,或只放一條漂亮的淨值曲線,沒有證明背後的選股訊號真的有效。這篇做兩件事:先在美股整個流動性宇宙檢驗 12-1 動能能不能把股票排出高低,再把這個訊號做成可交易的策略,用可下載的 finlab 程式碼回測。

結果:2016 年 5 月到 2026 年 10 月,策略年化報酬 29.9%、月夏普 1.46、最大回撤 -21.1%;同一段日期買進持有那斯達克 100(QQQ)含息分別是 20.7%、1.09、-35.1%。策略也通過本文的三項驗證:鄰近的 9 組參數、前後兩段期間,以及每筆買賣加計 0.1% 成本之後,日夏普都高於 QQQ。

有一點要先講清楚,因為它會改變你讀每個數字的方式:可交易的版本不持有選出來的股票。它持有一小籃 ETF,只在大盤趨勢與動能參與度都支持時,才加入槓桿成長 ETF(TQQQ、TECL)。股票宇宙負責產生「訊號」,槓桿 ETF 負責「執行」。這個設計有特定風險,後文會完整交代。這套動能系統是我們用同一套執行模型測試的十個美股策略之一,彼此的比較整理在美股量化策略總覽。

關鍵數字:策略、QQQ、SPY 與 TQQQ 對照

指標 本策略 QQQ(買進持有) SPY(買進持有) TQQQ(直接持有)
年化報酬(CAGR) 29.9% 20.7% 15.1% 40.6%
月夏普 1.46 1.09 1.01 0.87
月索提諾 3.99 1.75 1.45 1.46
最大回撤 -21.1% -35.1% -33.7% -81.7%
年化波動 19.9% 22.0% 17.5% 65.2%

TQQQ 那一欄是整個實驗的重點。三倍槓桿的那斯達克 100 ETF 一路抱著,年化報酬 40.6% 比策略高,但最大回撤 -81.7%、年化波動 65%,幾乎沒有人抱得過一整個循環。用市場狀態濾網控制同樣的槓桿,保留了大部分報酬,最大虧損壓在 -21% 左右。數字來自 finlab 回測,QQQ、SPY 與 TQQQ 用含息還原價(us_fund_price:adj_close)。每一欄都是同一段日期(2016-05-02 至 2026-10-26),本文所有夏普與索提諾,策略與基準一律不扣無風險利率計算;頁首與 finlab 回測報告顯示的月夏普 1.36,則是扣除 2% 無風險利率後的數字。

什麼是橫截面動能(12-1 動能)

橫截面動能是把股票互相比較排名,押注近期相對強勢的股票,在接下來幾週到幾個月會繼續跑贏相對弱勢的股票。本文採用學術界的標準量法 12-1 動能:過去 12 個月報酬,扣掉最近一個月(最近一個月的短期報酬常出現反轉,所以跳過)。買進過去贏家、賣出過去輸家可以賺到超額報酬,最早由 Jegadeesh & Titman(1993)系統性記錄,Carhart(1997)再把它納入四因子模型,成為標準的動能因子。

它和趨勢追蹤或「創新高」突破不一樣:後兩者看的是單一標的自己的價格路徑,橫截面動能則是同時在一大群股票之間做相對排名,所以必須用完整的宇宙才量得準。台股讀者可以對照我們的台股動能策略 18 年回測:同樣的 12-1 動能在台股直接做成選股組合,2008 到 2026 年化 11.5%,輸給含息 0050 的 14.8%。美股的結果不同,下一節會看到動能優勢在最強那一組特別明顯。

因子分析:12-1 動能在美股選得出強勢股嗎

相信任何策略之前,底層因子要能在整個宇宙裡把報酬排出高低,而不只在一籃挑過的股票裡有效。本文的宇宙是 60 日平均成交金額前 500 大的美股,再加三道門檻:股價 10 美元以上、日均成交金額 1,000 萬美元以上,以及單日漲跌超過 50% 的個股剔除一年(防止拆股與資料異常混進來)。成交金額與股價門檻用未還原收盤價計算,原因在回測方法一節說明。所有計算都是時點正確(point-in-time),每個月只用當天已經拿得到的資料,避免前視偏差。

把宇宙依 12-1 動能分成十組,量測每組下一個月的平均報酬,是檢驗這個想法最乾淨的方法。

美股動能十分位下月平均報酬:D1 最弱組 0.53% 到 D10 最強組 2.38%,2016 至 2026 年

動能分組 下月平均報酬
D1(最弱) 0.53%
D5 1.01%
D8 1.06%
D9 1.28%
D10(最強) 2.38%

報酬集中在頭尾兩端。最強的 D10 每月平均 2.38%,大約是最弱 D1(0.53%)的 4.5 倍;做多 D10、放空 D1 的多空價差平均每月 1.84%,年化約 22%。中間的 D2 到 D8 幾乎是平的,全部落在 0.88% 到 1.10% 之間,代表這個因子分得出頭尾,卻排不出中段股票的高低。和本研究 2026 年 6 月的版本相比,這次「只有最強一組突出」的形狀更明顯,部分原因是宇宙定義的修正(見回測方法)。

第二個、也更嚴格的檢驗是資訊係數(IC):這個月的因子值與下一期報酬的等級相關係數。IC 為正而且穩定,代表因子真的帶有預測資訊。

美股 12-1 動能滾動 12 個月 Rank IC(1 個月持有期),副軸疊加策略累積報酬,2018 至 2026 年

持有期 平均 Rank IC
1 個月 0.012
3 個月 0.016
6 個月 0.022
12 個月 0.009

這些 IC 都很小。1 個月 IC 平均 0.012,IC 資訊比率(IC 平均除以標準差)只有約 0.06,表示在全部 500 檔之間,動能排名與下月報酬的關係又弱又不穩定;表現最好的 6 個月期也只有 0.022。這就是動能的真實樣貌:IC 低、報酬分佈有肥尾,賺錢主要靠右尾(最強十分位),整個宇宙之間並沒有平滑的線性關係。

滾動 IC 在動能反轉期間會明顯跌到零以下,圖中最深的一段落在 2021 年,這正是 Daniel & Moskowitz(2016)分析的「動能崩跌」風險;2025 年以後則大致在零附近徘徊。十分位價差和 IC 說的是同一件事:優勢確實存在於最強十分位,放到整個宇宙就很吵雜,這也是可交易版本加上市場狀態濾網、不直接持有原始股票籃的原因。

為了讓個股層面的優勢更具體,下圖是一個不加槓桿、不擇時的組合:每月等權持有動能最強十分位,對照等權全宇宙與 QQQ。

美股動能最強十分位等權組合對照等權全宇宙與 QQQ,不加槓桿,2017 至 2026 年

不用槓桿、不擇時,最強十分位在期末仍明顯高於全宇宙與 QQQ。過程並不平順:2020 年以前一直落後 QQQ,2026 年年中創高之後又急跌一段。這就是整個策略賴以建立的超額報酬。Asness, Moskowitz & Pedersen(2013)在八個不同市場與資產類別都找到動能溢酬,這類跨市場證據加上上面的因子檢驗,是條件許可時值得用較積極方式表達動能的理由。

從因子到訊號:用動能廣度與 QQQ 趨勢判斷多空

直接持有最強十分位有效,但不加槓桿的股票籃報酬上限有限,空頭時也照樣吃滿大盤回撤。所以策略改用兩個條件控制槓桿部位:QQQ 的趨勢負責實際的多空切換;動能的廣度(breadth,宇宙中「12 個月報酬為正、而且排在動能前 10%」的股票佔比)用來確認參與是廣泛的。

美股動能廣度時間序列與策略累積報酬,紅色虛線為 8% 多頭門檻,2017 至 2026 年

多頭狀態要三個條件同時成立:動能廣度高於 8%、QQQ 站上 200 日均線、QQQ 過去 126 日報酬為正。因為廣度只計算「動能前 10% 且 12 個月報酬為正」的股票,它的上限大約就是宇宙的 10%;這段樣本裡,月底讀數一直落在 9.5% 到 10.2% 之間。所以 8% 的門檻在這段期間從來沒有把策略關掉,只有在動能前 10% 的股票裡有相當比例過去 12 個月下跌的市場才會觸發,實際的切換全部來自 QQQ 的趨勢與動能條件。

三個條件都成立時,策略買進兩檔最強的槓桿成長 ETF(TQQQ 與 TECL);不成立時持有一檔防禦型 ETF(中期公債 IEF、黃金 GLD 或短期公債 SHY)。回測中,防禦型 ETF 在多頭月份通常也留在組合裡:交易明細中有 70 個月持有槓桿 ETF,其中 66 個月是 TQQQ、TECL 各約 25%,旁邊配一檔約 50% 的防禦型 ETF。換句話說,典型的多頭月份大約一半資金放在三倍槓桿產品上。每月再平衡一次,ETF 部位設 8% 觸價停損。

資料與程式碼:把這段貼給 AI 或自己執行

所有資料都來自 FinLab 的美股資料庫:個股篩選用 us_price,ETF 執行用 us_fund_price。us_price:adj_close 是含息還原價,動能因子不會被股利或拆股扭曲;成交量沒有做拆股調整,所以計算成交金額時要搭配未還原的 us_price:close。槓桿 ETF 的價格序列本身已經反映每日重設與管理費,三倍產品的波動耗損都算在結果裡。資料表的完整清單可以參考美股資料庫使用指南。

下面是頁面版的核心邏輯,一步一個動作;完整可執行的版本在文末下載。

顯示程式碼
import finlab
from finlab import data
from finlab.backtest import sim
from finlab.dataframe import FinlabDataFrame
 
finlab.login()  # 需要資料時,finlab 會自動引導登入
 
# 一、載入資料
data.set_market("us")
close = data.get("us_price:adj_close")   # 含息還原價:算報酬與動能
raw_close = data.get("us_price:close")   # 未還原價:算成交金額與股價門檻
volume = data.get("us_price:volume")     # 成交股數,沒有拆股調整
fund_close = data.get("us_fund_price:adj_close")[["QQQ", "TQQQ", "TECL", "IEF", "GLD", "SHY"]]
 
# 二、流動性宇宙與 12-1 動能
universe = liquid_universe(close, raw_close, volume, top_n=500)
ret_12m = close / close.shift(252) - 1
ret_1m = close / close.shift(21) - 1
momentum = ret_12m - ret_1m
 
# 三、動能廣度:宇宙中動能前 10% 且 12 個月報酬為正的比例
leaders = (momentum[universe].rank(axis=1, pct=True) > 0.90) & (ret_12m > 0)
breadth = leaders.sum(axis=1) / universe.sum(axis=1)
 
# 四、多頭狀態:廣度與 QQQ 趨勢同時成立
qqq = fund_close["QQQ"]
qqq_trend = qqq > qqq.rolling(200, min_periods=100).mean()
qqq_mom = qqq / qqq.shift(126) - 1
risk_on = (breadth > 0.08) & (qqq_trend & (qqq_mom > 0)).reindex(breadth.index)
 
# 五、多頭時加入最強的兩檔槓桿 ETF,防禦型 ETF 依趨勢挑一檔,
#     多數多頭月份兩者並存(約 25% / 25% / 50%)
#     完整的權重與 sim() 設定(月再平衡、8% 停損)在可下載的 strategy.py

liquid_universe 函式在 strategy.py 裡,做的就是上面說的成交金額、股價與異常值三道過濾。如果你不想自己讀程式碼,可以把這段連同文章網址貼給 AI 助理,請它解釋每一步或改參數重跑。

回測結果與樣本外檢驗

策略與基準的淨值曲線就是文首那張圖。下面是 finlab 的互動式回測報告,回撤、月報酬與交易明細都可以點開檢查:

任何回測最重要的穩健性問題是:它是不是只在設計它的那段期間有效。策略參數用 2016 到 2021 年的資料決定,2022 年以後完全不動,當作沒看過的樣本外期間,其中包含 2022 年的空頭。

期間 年化報酬 月夏普 最大回撤
研究段(2016–2021) 31.4% 1.47 -21.1%
樣本外(2022 至今) 28.1% 1.50 -19.3%

樣本外的表現大致守住:年化從 31.4% 降到 28.1%,月夏普略高、最大回撤略小。樣本外一開始就是 2022 年,那年從 1 月第一週之後,濾網讓策略全年只持有防禦型 ETF,全年 -7.9%,同期 QQQ -32.6%。這是對策略有利的證據,但它只涵蓋一個市場循環,不能當成保證。

三項驗證:鄰近參數、前後兩段、交易成本

這裡的「贏過 QQQ」定義為:在完全相同的日期上,策略的日夏普(每日平均報酬除以標準差,乘上 √252 年化,不扣無風險利率)高於買進持有含息 QQQ。用這個量法,預設參數的策略是 1.40、QQQ 是 0.95,所以這一節的數字和關鍵數字表裡的月夏普不同。夏普比率的算法與解讀另有完整說明。

美股動能策略鄰近參數熱力圖:動能廣度門檻 6%、8%、10% 與 QQQ 趨勢均線 150、200、250 日共 9 組,日夏普全部高於 QQQ 的 0.95

**鄰近參數。**調整的是讀者最可能去改的兩個設定:動能廣度門檻(6%、8%、10%,原始值 8%)與 QQQ 趨勢均線長度(150、200、250 日,原始值 200 日),9 組全部跑一次,至少 7 組贏過 QQQ 才算通過。結果 9 組全部贏過 QQQ。最弱的是 10% 那一列,日夏普 1.06 對 QQQ 的 0.95:廣度實際落在 9.5% 到 10.2% 之間,10% 的門檻剛好在這個範圍內,所以真的會擋掉一些月份。6% 與 8% 兩列的結果完全相同(1.40、1.40、1.36),和廣度在月底從未跌到這兩個水準一致。150 日與 200 日兩欄在這次回測中結果也完全相同;250 日那一欄在 6% 與 8% 兩列略低(1.36),在 10% 那一列則相同。

**前後兩段。**把整段回測依交易日數切成兩半,各自和 QQQ 比較:

區段 日期 策略日夏普 QQQ 日夏普
前半段 2016-05-02 至 2021-07-08 1.51 1.20
後半段 2021-07-08 至 2026-10-26 1.29 0.71

兩段都贏過 QQQ。這個切法依交易日數對半,和上一節以日曆年劃分的研究段、樣本外不同。

**交易成本。**finlab 美股市場的預設手續費與交易稅都是 0(對應零佣金券商),所以預設回測完全沒有成本。驗證時每筆買進、每筆賣出各收 0.1%,當作買賣價差與滑價的替代:年化報酬從 29.9% 降到 28.4%,日夏普 1.34,仍高於 QQQ 的 0.95。

**結論:三項驗證全數通過。**想自己重跑,下載文末的 strategy.py 後執行 python strategy.py --validate。

回測方法與限制

項目 本文設定
交易成本 finlab 美股預設手續費、交易稅皆為 0,主回測不含任何成本。成本驗證每筆買賣各收 0.1%(價差與滑價):年化 28.4%、日夏普 1.34,對 QQQ 0.95
槓桿耗損 已反映:TQQQ、TECL 的價格序列本身含每日重設耗損與管理費
股票池與時點 60 日平均成交金額前 500 檔;股價 10 美元、日均成交金額 1,000 萬美元門檻;單日漲跌超過 50% 剔除一年;每個日期只用當時可得的資料。FinLab 美股成交量沒有拆股調整,所以成交金額與股價門檻改用未還原收盤價(us_price:close),報酬仍用還原價;先前用還原價乘成交量,會把反向分割前的成交金額放大,讓極小型的反向分割股混進前 500 檔
資料與引擎版本 finlab 2.2.20,FinLab 資料至 2026-10-26。相較本研究 2026 年 6 月的版本,FinLab 補上美股還原價缺漏的股利、修正拆股與分拆調整,finlab 也改了再平衡日停損的成本計算,歷史數字因此一起變動(6 月版年化為 35.1%)
周轉率 約每年 4.0 倍(每月切換狀態,不是每日進出),周轉率越高,成本吃掉的報酬越多
部位規則 多頭:TQQQ、TECL,多數月份各約 25%,另有一檔約 50% 的防禦型 ETF;空頭:一檔防禦型 ETF。8% 觸價停損
樣本內外 2016–2021 校準、2022 至今樣本外,另加上述參數、前後兩段、成本三項驗證
容量 未估算。槓桿 ETF 規模很大,但實際衝擊取決於你的資金量

本策略以「風險調整後指標至少 1.5」為主要門檻,一律以不扣無風險利率的口徑判斷:月索提諾 3.99、日索提諾 1.67、樣本外月夏普 1.50 都達標,全期月夏普 1.46 則略低於門檻。

槓桿 ETF 的風險

這不是一個買進持有股票的策略,真正可能傷到你的是槓桿:

  • **每日重設與路徑依賴。**三倍槓桿 ETF 每天重設,盤整震盪的市場即使指數最後回到原點,淨值也會被侵蝕。上表直接持有 TQQQ 的 -81.7% 回撤,就是不加控管的三倍曝險長相。
  • **跳空可能穿過停損。**回測中的 8% 停損是觸價停損;實盤遇到大幅跳空,成交價可能比停損價差很多。
  • **每月切換擋不住月內崩跌。**濾網每月才再平衡一次,月中快速崩跌時,槓桿部位會一直承受到停損或下次再平衡。
  • **可能長時間落後指數。**濾網會讓策略錯過或落後強勢行情:2019 年 QQQ 上漲 39.0%,策略 -2.5%;2023 年 QQQ 上漲 54.9%,策略 19.9%。
  • **集中度。**同時只持有一到三檔 ETF,等於押注單一主題(美國大型成長股)。

如果這些風險超出你的承受範圍,前面那個不加槓桿的最強十分位股票組合,同樣捕捉動能優勢,又沒有槓桿特有的風險(每日重設、跳空穿過停損),只是它在這段樣本中的回撤比策略更深。

適合誰、不適合誰

適合想要規則化、偏成長風格的美股策略,了解槓桿 ETF 運作方式,並且能為了較高的複利承受 20% 以上回撤的投資人。不適合需要資本穩定、無法每月執行再平衡,或在任何時點都不想持有三倍槓桿產品的人。想先建立量化交易的整體概念,可以從量化交易完整指南開始;想把策略接上自動下單,參考程式交易指南。

常見問題

動能策略在美股還有效嗎?

2016 到 2026 年的十分位排序與為正(但偏小)的 IC 顯示,動能在最強十分位依然有效,與 Jegadeesh & Titman(1993)以來的研究一致。優勢集中在最強的那一群股票,而且容易遇到急速反轉。

為什麼持有槓桿 ETF,不直接買動能股?

動能股票籃有真實的超額報酬,但報酬上限有限,空頭時也吃滿大盤回撤。用市場狀態判斷多空、再透過槓桿 ETF 表達,目標是提高複利並在弱勢期間退場,代價是槓桿風險。

年化 30% 是不是好得不像真的?

它伴隨 -21% 的最大回撤、20% 的年化波動與三倍槓桿 ETF 曝險。直接抱 TQQQ 的對照(年化 40.6%、回撤 -82%)說明原始報酬本來就存在,策略的貢獻在於風險控管。

這個結果是不是挑到剛好的參數?

本文的測試結果不支持這個疑慮:動能廣度門檻 6%、8%、10% 與 QQQ 均線 150、200、250 日的 9 組組合,日夏普全部高於 QQQ;前後兩段都贏 QQQ;每筆買賣加計 0.1% 成本後仍然贏 QQQ。執行 python strategy.py --validate 可以自己驗證。

多久換一次股?周轉率多高?

每月再平衡一次,年周轉率約 4.0 倍。月中觸發 8% 停損時會提前出場。

美股動能策略要用哪些資料?

個股篩選用 FinLab 的 us_price:*(還原價、未還原價、成交量),ETF 用 us_fund_price:*,兩者都在標準的 FinLab 帳號裡。第一次做美股回測,可以先讀美股回測教學,它把資料取得到回測執行的完整流程走過一遍。

台股也能用同樣的動能策略嗎?

語法可以照用,結果要重新驗證。我們在台股的實測裡,純 12-1 動能選股輸給含息 0050,加上 ROE 品質、營收成長與複合動能確認之後才大幅勝出,細節見台股動能策略:純追強勢股為何輸 0050。

自己重現這個策略

兩個檔案可以重現上面的結果:

  • strategy.py:完整策略。python strategy.py 跑回測,python strategy.py --validate 跑三項驗證。
  • data.csv:策略、QQQ、SPY 的每日淨值。

最快的方法是走 AI 輔助安裝流程,再請你的 AI 助理執行與修改:換宇宙大小、調整廣度門檻,或把槓桿 ETF 換成不加槓桿的版本,讓它重跑回測。用同一套資料引擎測試的其他美股策略,例如美股品質價值策略、美股盈餘驚喜策略與美股低波動策略,十個策略的並排比較都在美股量化策略總覽。


**投資警語:本文僅供教學參考,不構成投資建議。過去績效不代表未來表現,投資有風險。**槓桿 ETF 另有波動耗損與虧損放大等風險;文中的策略績效均為歷史回測,不保證未來報酬,請依自身風險承受度評估。

最後更新:2026-10|回測區間:2016-05~2026-10|作者:FinLab 量化研究團隊(經量化研究員審閱)

FinLab AI

想建立自己的策略?

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

免費開始

更多動能與趨勢研究

查看全部