
執行這個策略
複製提示詞,讓 AI 依照上方證據的資料、條件與風險檢查重跑一次。
告訴你的AI:
幫我設定 FinLab,回測 QQQ 波動度目標 15%(21 日實現波動,其餘放 SHY)並和 QQQ 含息比較,請讀:https://finlab.finance/setup?relatedUrl=/blog/qqq-volatility-targeting-strategy
**波動度目標(volatility targeting)是用波動決定部位大小的持有方式:每個月底量 QQQ 過去 21 個交易日的實現波動,QQQ 權重設成「15% ÷ 實現波動」,最多 100%,剩下的錢放短天期美國公債 ETF SHY。2017 年 8 月到 2026 年 10 月,這個規則年化 15.7%、日夏普 0.98、最大回撤 -22.8%;同一段日子買進持有含息 QQQ 是年化 19.8%、日夏普 0.89、最大回撤 -35.1%。**它賺得比 QQQ 少,但用三分之二左右的回撤換到更高的風險調整後報酬,並且通過鄰近參數、前後兩段、交易成本三項驗證。優勢幾乎全部來自 2022 年的空頭:拿掉 2022 年,日夏普 1.25 跟 QQQ 的 1.25 打平。
這個結果的重點在「時機」。把 QQQ 固定放 78%(策略的平均權重)、其餘 SHY,年化 16.0% 跟策略差不多,但最大回撤是 -29.0%、日夏普 0.92。同樣的平均曝險,波動度目標在 2020 年 3 月與 2022 年把部位降下來,回撤比固定配置少了 6 個百分點。
跑到最新的淨值與程式碼在策略庫的 QQQ 波動度目標(QQQ/SHY)。
波動度目標策略的關鍵數字
| 組合 | 年化報酬 | 日夏普 | 最大回撤 | 年化波動 |
|---|---|---|---|---|
| 波動度目標 15%(QQQ/SHY) | 15.7% | 0.98 | -22.8% | 16.2% |
| 固定 78% QQQ+22% SHY | 16.0% | 0.92 | -29.0% | 18.0% |
| QQQ 含息買進持有 | 19.8% | 0.89 | -35.1% | 23.3% |
| 波動度目標,每邊加收 0.1% 成本 | 15.3% | 0.96 | -22.9% | 16.2% |
回測期間 2017-08-01 到 2026-10-29,三條曲線用同一段日子、股利再投入。日夏普是日報酬平均除以標準差再乘 √252,不扣無風險利率,跟本站其他驗證文章同一個口徑。
規則怎麼運作
- 每個月最後一個交易日,取 QQQ 過去 21 個交易日的日報酬,算標準差再乘 √252,得到年化實現波動。
- QQQ 權重 = 15% ÷ 實現波動,上限 100%。實現波動 15% 以下時全部持有 QQQ;波動 30% 時 QQQ 只放一半。
- 剩下的比例買 SHY(1 到 3 年期美國公債 ETF)。
- 隔天收盤成交,持有到下個月底再算一次。不用槓桿,也不放空。

111 次月底換股裡,有 37 次全部持有 QQQ,14 次 QQQ 不到一半。最低一次是 2020 年 3 月底的 16.9%,那時 QQQ 的 21 日波動超過 80%。2022 年 QQQ 跌了 32.6%,策略每個月的 QQQ 權重在 36% 到 64% 之間,全年 -19.4%。
這個想法來自 Moreira 與 Muir(2017)的〈Volatility-Managed Portfolios〉:波動有群聚性,今天波動大的市場,下個月通常也大;但波動大的時候,報酬沒有跟著變高。所以在高波動時減碼,可以少承擔一段「多出來的風險」,風險調整後的報酬就會改善。更早的 Fleming、Kirby 與 Ostdiek(2001)用波動預測調整股債配置,也得到類似結論。
逐年報酬:空頭年少跌,急漲年少賺
| 年度 | 波動度目標 | 固定 78% QQQ | QQQ 含息 |
|---|---|---|---|
| 2017(8 月起) | 9.0% | 6.9% | 9.0% |
| 2018 | 4.1% | 0.5% | -0.1% |
| 2019 | 26.6% | 30.6% | 39.0% |
| 2020 | 20.3% | 38.4% | 48.6% |
| 2021 | 23.5% | 20.8% | 27.4% |
| 2022 | -19.4% | -26.6% | -32.6% |
| 2023 | 41.2% | 42.4% | 54.9% |
| 2024 | 21.2% | 20.7% | 25.6% |
| 2025 | 14.8% | 17.3% | 20.8% |
| 2026(到 10/29) | 13.7% | 13.5% | 16.8% |
2020 年是這個方法的弱點。3 月底波動最高時 QQQ 只剩 17%,4 月底也只有 36%,結果 QQQ 從低點反彈的那幾個月沒跟上:全年 20.3%,固定配置是 38.4%。崩盤後的反彈常常發生在波動還很高的時候,波動度目標天生會錯過一部分。

下面是 finlab 產生的互動回測報告,可以看每月報酬、每次換股的 QQQ 與 SHY 比例,以及回撤期間。
三項驗證
本站把「贏」定義成日夏普高於同一段日子的 QQQ 含息,三項都要過才算策略成立。
一、鄰近參數:9 組有 7 組贏,剛好達到 7 組的門檻。 目標波動取 10%、15%、20%,估計波動的天數取 10、21、42 日。用 10 日或 21 日估計波動的 6 組全贏;用 42 日的 3 組有 1 組贏(目標 10% 的 0.901),另外兩組 0.887 與 0.855 輸給 QQQ 的 0.893。估計窗口拉長後,減碼的時間點比較晚。

二、前後兩段:都贏。 回測從 2022-03-14 切開。前段(2017-08 到 2022-03)日夏普 0.90,QQQ 0.87;後段(2022-03 到 2026-10)1.07,QQQ 0.91。前段的領先幅度小,同平均權重的固定配置是 0.89,波動度目標只多 0.01。
三、交易成本:過。 finlab 美股預設手續費與稅都是 0,所以另外每次買賣加收 0.1%:年化 15.3%、日夏普 0.96,仍高於 QQQ。QQQ 與 SHY 之間每年單邊換手約 178%(權重變動加總),一年成本約 0.4 個百分點。

扣掉國庫券報酬後還贏嗎?
本站的日夏普不扣無風險利率。這對大部分時間持有股票的策略影響很小,但會讓持有短債的組合看起來比較好:光是買進持有 SHY,日夏普就有 1.11,高過 QQQ。所以這裡另外用「報酬減掉國庫券 ETF BIL 的報酬」重算一次:
| 期間 | 波動度目標 | 固定 78% QQQ | QQQ 含息 |
|---|---|---|---|
| 全期 | 0.83 | 0.78 | 0.79 |
| 前段 | 0.85 | 0.84 | 0.83 |
| 後段 | 0.81 | 0.72 | 0.74 |
扣掉國庫券後,原始參數全期與前後兩段仍然贏 QQQ,固定配置全期與後段都輸。不過用這個口徑,9 組鄰近參數只有 6 組贏,低於 7 組的門檻,前段也只多 0.01。
再把 2022 年整年拿掉重算:波動度目標日夏普 1.25,QQQ 1.25,固定 78% 配置 1.29。也就是說,在 2022 年以外的日子,波動度目標跟 QQQ 打平,還略輸同平均持股的固定配置。所以結論要保守:波動度目標在這段期間改善了 QQQ 的風險調整後報酬,優勢幅度不大,幾乎全部來自 2022 這種長時間高波動的空頭。
為什麼有效,什麼時候會失效
波動度目標的報酬來源,是「高波動之後的一個月,QQQ 的報酬沒有比較高」。只要這個關係成立,減碼就是用很少的報酬換掉一大段風險。2018 年 12 月、2020 年 3 月、2022 年、2025 年 4 月這幾次大跌,主跌段之前已經有一段下跌讓波動升高,策略在主跌段那個月的 QQQ 權重分別是 54%、53%、64%、55%。
它會吃虧的情境也很清楚:
- V 型反彈:2020 年 5 到 8 月,波動還高、股價已經回升,策略的 QQQ 權重在 36% 到 74% 之間。
- 長多頭的成本:QQQ 年報酬高的年份(2019、2023),策略少賺 12 到 14 個百分點。
- 跨因子不一定成立:Cederburg 等人(2020)把同樣的方法套在 103 個股票策略上,樣本外大多沒有比原始策略好。Harvey 等人(2018)發現波動度目標對股票與信用這類「波動高時常下跌」的資產最有幫助,對債券、商品幫助不大。本文只測 QQQ 一種資產。
跟站上其他美股策略比,這是唯一完全不用槓桿 ETF 的驗證策略。美股低波動策略用 QQQ 的 200 日線與半年報酬判斷進攻或防守,進攻時持有 2 倍槓桿 ETF,報酬與回撤都放大;槓桿 ETF 擇時回測則說明了槓桿 ETF 的融資成本與波動耗損。想要低一點的回撤、又不想碰槓桿,波動度目標是比較單純的選擇。
同一批研究還測了市場中性多空、大型股各自站上均線、跨資產時序動能三種持有方式,都沒過三項驗證,細節在美股市場中性多空與趨勢跟隨回測。
程式碼
核心只有三步:算 21 日實現波動、換成 QQQ 權重、每月底換股。
顯示程式碼
import finlab
import pandas as pd
from finlab import data
from finlab.backtest import sim
finlab.login() # finlab 會自動引導登入
data.set_market("us_fund")
# 1. QQQ 與 SHY 的還原價;美股休市日的空白列先拿掉
close = data.get("us_fund_price:adj_close")[["QQQ", "SHY"]].dropna()
# 2. 過去 21 個交易日的年化實現波動
daily_return = close["QQQ"].pct_change(fill_method=None)
volatility = daily_return.rolling(21).std() * 252 ** 0.5
# 3. QQQ 權重 = 15% / 波動,最多 100%,其餘放 SHY
qqq_weight = (0.15 / volatility).clip(upper=1)
position = pd.DataFrame({"QQQ": qqq_weight, "SHY": 1 - qqq_weight}).loc["2017-07-31":]
# 4. 每個月最後一個交易日換股,隔天收盤成交
report = sim(position, resample="M", trade_at_price="close", upload=False)
print(report.get_stats()["cagr"])用到 2026-10-29 的資料,這段會印出 0.1566。完整的 strategy.py 多了 --validate:跑 9 組鄰近參數、前後兩段、每邊 0.1% 成本,以及固定配置對照,會印出本文的驗證數字。
不想自己寫程式,可以透過 AI 輔助安裝流程把 FinLab skill 裝進 Claude Code、Codex 或 Gemini CLI,直接說「QQQ 波動度目標改成 12%,估計波動用 15 日」或「把 SHY 換成 BIL 重跑」,AI 會改好程式並跑出回測。
回測方法與限制
| 項目 | 做法 |
|---|---|
| 回測期間 | 2017-08-01 到 2026-10-29。FinLab 美股 ETF 價格從 2016 年起;起點和同批其他設計一致,讓需要一年財報的多空策略也能比較。 |
| 資產 | QQQ(那斯達克 100)與 SHY(1–3 年期美國公債),us_fund_price 的還原價,股利再投入。 |
| 前視偏差 | 波動只用月底以前的日報酬,隔天收盤才成交。 |
| 權重 | QQQ = min(1, 15% ÷ 21 日實現波動),其餘 SHY,不用槓桿、不放空。 |
| 成本 | finlab sim() 美股預設:手續費 0、稅 0。另用每邊 0.1% 重跑(見三項驗證)。未估滑價;兩檔 ETF 流動性都很高。 |
| 換手率 | 每年單邊約 178%(QQQ 權重變動加總)。 |
| 基準 | QQQ 含息買進持有,同一段日子,不扣成本。日夏普不扣無風險利率;另附扣掉 BIL 報酬的版本。 |
| 樣本 | 全部是約 9 年的樣本內結果。參數(15%、21 日)沿用常見設定,沒有在本資料上挑選;前後兩段只是穩定度檢查,未做樣本外驗證。 |
| 軟體版本 | finlab 2.2.24。pandas 2.2 與 3.1 結果相同。 |
常見問題
波動度目標策略是什麼?
依資產最近的波動調整持有比例,讓組合的波動盡量接近一個固定水準。本文的版本是 QQQ 權重等於 15% 除以 21 日實現波動,最多 100%,其餘放短天期公債。
波動度目標會比買進持有 QQQ 賺得多嗎?
在 2017 到 2026 年沒有:年化 15.7% 對 19.8%。它贏的是風險調整後報酬(日夏普 0.98 對 0.89)與回撤(-22.8% 對 -35.1%),而且這個優勢主要來自 2022 年。
目標波動要設多少?
本文測了 10%、15%、20%,用 10 日或 21 日估計波動時三種都贏 QQQ。目標越低,平均持有 QQQ 越少、年化報酬越低;20% 的平均 QQQ 權重較高,日夏普 0.96。
估計波動要用幾天?
10 日與 21 日差不多,42 日明顯變差(9 組裡輸的兩組都是 42 日)。估計窗口越長,減碼越晚。
剩下的錢為什麼放 SHY 不放現金?
SHY 是 1 到 3 年期美國公債,波動很低,又有利息。本文沒有測現金或 BIL 的版本;可以在 strategy.py 把 SAFE 改成 BIL 自己比較。
可以加槓桿,讓平均曝險回到 100% 嗎?
本文沒有測。原始論文把組合的長期波動調到和原資產相同,需要時用槓桿;這個版本的報酬本文沒有算,融資成本與槓桿 ETF 的耗損也要另外扣。
這個策略每天要看盤嗎?
不用。每個月底收盤後算一次權重,隔天調整 QQQ 與 SHY 的比例即可。
延伸閱讀
- 美股量化策略總覽:FinLab 美股策略的績效比較與入門方式。
- 美股懶人配置回測:60/40、全天候、Faber 趨勢配置等固定與戰術配置的比較。
- 夏普比率計算工具:日夏普、月夏普的算法與差異。
- 回測工具與報表解讀:最大回撤、年化報酬怎麼看。
- 周轉率:換手率怎麼算、為什麼會吃掉報酬。
下載資源
| 檔案 | 內容 |
|---|---|
| strategy.py | 策略本身,加上 --validate 三項驗證與固定配置對照、--export 匯出下列兩個檔案 |
| data.csv | 策略與 QQQ 含息的每日淨值 |
| metrics.json | 本文主要統計 |
完整的 5 種持有方式研究程式(含本策略、固定配置與扣國庫券的對照)在市場中性多空與趨勢跟隨回測的下載區。
**投資警語:本文僅供教學參考,不構成投資建議。過去績效不代表未來表現,投資有風險。**本文回測為全段樣本內結果,前後兩段只是穩定度檢查,未經樣本外驗證。
最後更新:2026-10|回測區間:2017-08~2026-10|基準:QQQ 含息|作者:FinLab 量化研究團隊(經量化研究員審閱)
FinLab AI
想建立自己的策略?
用自然語言描述你的選股想法,AI 自動驗證、回測、給你答案
免費開始


