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

逢低買進回測:QQQ 跌 10% 才買,
兩種做法都沒通過驗證

逢低買進(buy the dip)有用嗎?QQQ 從半年高點跌 10% 才買,九年半只進場 14 次、77% 的日子拿著現金,年化 11.3%,一直抱著 QQQ(美國大型科技股 ETF)是 19.3%;平常五成、跌時加滿的做法比較接近,但也沒有通過驗證。

這組規則未通過驗證

不用操作程式,直接看報酬、最大跌幅與比較結果。

看比較結果
沒贏過一直持有 QQQ

逢低買進回測淨值:QQQ 含息、跌 10% 才買、平常五成跌時加滿

兩種逢低買進做法都沒有通過驗證。QQQ 從半年高點跌 10% 才買進,2017-04-03 到 2026-11-10 年化報酬 11.3%,一直抱著 QQQ(追蹤那斯達克 100 指數的 ETF,以美國大型科技股為主)是 19.3%,27 組參數全部輸。平常持有五成、跌 10% 時加到滿的做法比較接近(年化 15.7%),但九組只有 3 組贏,而且拿掉 2022 年就輸。

逢低買到的價格其實不差:有三個月後續資料的 13 次進場,63 個交易日後 QQQ 有 11 次比訊號當天高,平均漲 11.1%。規則輸在別的地方:77% 的交易日都拿著現金,QQQ 這十年大部分的漲幅,都發生在它等待下跌的時候。

本文提供研究結果,沒有推薦這些買賣規則。想自行重跑,可先 設定 FinLab 環境,再 下載研究程式(.py);其他檔案見 研究下載區。

逢低買進在這次測試的定義

「逢低買進」(buy the dip)是市場上的常見說法,沒有學術上的標準定義。大家說的通常是兩種習慣:一種是平常放現金,等跌了才買;另一種是平常就有部位,跌了再加碼。本文兩種都測,下面每個數字都來自同一支可下載的研究程式。

第一種規則(① 跌了才買)等 QQQ 的收盤價比近 126 個交易日的最高收盤低 10% 以上,隔天收盤買進;收盤價回到進場時記下的那個高點,或持有滿 63 個交易日(約三個月),兩者先到就賣。只有第一次跌破門檻那天算訊號:如果時間到賣出時 QQQ 還在門檻下,要等它先回到門檻上、再跌破一次才會重新進場。不在場時持有現金,現金不計利息。

第二種規則(② 底倉加碼)永遠不離場:平常持有五成 QQQ、五成現金,第一種規則的訊號在場時加到十成。每個月底與訊號切換時調回目標比重,中間讓比重隨價格漂移。這比較接近一般投資人說的「留一點現金等機會」。

設計 變動的參數 測試的參數(粗體為原參數)
① 跌了才買 高點天數 N、跌幅 X、最長持有 H N 63/126/252 日 × X 5%/10%/15% × H 21/63/126 日(27 組)
② 底倉加碼 平常比重 w、跌幅 X(N 126、H 63) w 25%/50%/75% × X 5%/10%/15%(9 組)

參數網格與過關條件在算任何報酬以前就寫定,之後沒有改。原參數放在網格中間,結果好不能靠挑角落的組合。

訊號出現在哪裡

逢低買進訊號:QQQ 從 126 日高點跌 10% 的 14 次進場、持有期間與跌幅線

九年半裡規則一共觸發 14 次(圖中三角形):2018 年與 2026 年各三次,其他年份大約一年一次;最後一次是 2026-11-02,資料結束時還在場。下半張圖可以看到 QQQ 跌到半年高點下 10% 的時間很少,大部分日子跌幅都在 5% 以內,這些日子規則手上都沒有股票。

14 次進場之後 結果
QQQ 回到原本高點而賣出 8 次,平均持有約 29 個交易日
持有滿 63 個交易日賣出 5 次(2018 年 10 月、2020 年 2 月、2022 年 1 月、2024 年 8 月、2025 年 3 月)
2026-11-10 仍在場 1 次
已出場的交易中賺錢的 13 次中 11 次,平均每次 +8.6%
訊號後 21 個交易日的 QQQ 平均 +4.3%(任一天起算:+1.7%),13 次中 9 次上漲
訊號後 63 個交易日的 QQQ 平均 +11.1%(任一天起算:+5.1%),13 次中 11 次上漲
訊號後 126 個交易日的 QQQ 平均 +20.3%(任一天起算:+10.6%),12 次中 11 次上漲

這張表就是逢低買進的人期待的樣子:QQQ 跌 10% 之後通常會反彈,交易本身也大多賺錢。兩次虧損是 2018 年 10 月(-5.3%)與 2022 年 1 月(-7.4%),都是持有滿 63 天被迫出場。問題出在兩筆交易之間。2020 年 2 月規則在疫情崩跌中買進、賺了 13.6%,卻因持有期滿在 2020-05-29 收盤賣出,三個交易日後(2020-06-03)QQQ 就收復 2 月的高點;之後它一直拿著現金,等到 2020 年 9 月的下一個訊號,而這段期間 QQQ 持續上漲。

兩種原參數的結果

原參數 ① 跌了才買 ② 底倉加碼 QQQ 一直持有
結論 ✗ 沒通過 ✗ 沒通過 基準
年化報酬 11.3% 15.7% 19.3%
日夏普(每承擔一分波動的報酬) 0.783 0.922 0.880
最大回撤(最慘跌幅) -22.4% -23.3% -35.1%
贏 QQQ 的參數 27 組中 0 組 9 組中 3 組 —
平均持有 QQQ 的比例 22.8% 61.5% 100%

日夏普是每日報酬平均除以標準差再乘以 252 的平方根,不扣無風險利率,定義參考 Sharpe(1994),這裡把無風險利率設為零。年化報酬依實際經過的年數計算。前半段到 2022-01-18,後半段從 2022-01-19 開始,把交易日對半切。名詞可查 夏普比率 與 最大回撤。

下面嵌入的 FinLab 互動報告是規則①的原參數。報告裡的對照線是不含息的標普 500,比本文用的 QQQ 含息容易贏,報告內的評等也是對這條對照線,不代表通過本文驗證;報告從 2018 年 2 月第一筆交易開始算,夏普也用報告自己的算法,所以數字和表格略有不同。

鄰近參數:沒有穩定的高原

逢低買進參數熱圖:27 組參數的日夏普與 QQQ 的差距,依高點天數、跌幅與持有天數

規則①的 27 格全是橘色,也就是都輸 QQQ。最好的幾格是跌 10%、最多持有 126 天,日夏普 0.82,仍比 QQQ 低 0.06。跌幅門檻改成 15% 明顯更差:這麼深的下跌很少見,規則只有 5% 到 19% 的日子持有 QQQ,持有 21 天的三格日夏普只剩 -0.04 到 0.22。跌幅 10% 時,126 日與 252 日高點的結果完全相同,因為挑到的是同一個高點。

底倉加碼參數熱圖:9 組參數的日夏普與 QQQ 的差距,依平常比重與加碼跌幅

規則②有三格贏 QQQ,三格都是跌 10% 加碼;改成 5% 或 15%,不論平常比重多少都輸。只在一個門檻成立、往兩邊挪就消失,正是參數網格要抓的單點結果。過關條件要九格中至少七格贏。

驗證項目

逢低買進驗證:兩種原參數每項檢查和對照的日夏普差距,標示過或沒過

每一項都過才算通過。規則①六項全沒過;規則②過三項、沒過三項。BIL 是 1–3 個月美國國庫券 ETF,扣掉它的報酬,看的是規則比放現金多賺多少。

檢查 ① 跌了才買 ② 底倉加碼 QQQ 或對照
七成參數贏 QQQ 27 組中 0 組 ✗ 9 組中 3 組 ✗ —
前後半段都贏 QQQ(前/後) 0.763/0.822 ✗ 1.019/0.816 ✗ 1.087/0.677
每邊 0.1% 成本的日夏普 0.765 ✗ 0.913 ✓ 0.880
扣掉 BIL 的日夏普 0.624 ✗ 0.784 ✓ 0.776
拿掉領先最多的 2022 年 0.929 ✗ 1.199 ✗ 1.223
閒置資金放 BIL,對同平均比重的 QQQ+BIL 0.911 ✗ 0.977 ✓ 1.231/0.945

美國多數券商買賣股票和 ETF 不收手續費,所以 FinLab sim() 在美股的預設成本是零;每邊 0.1% 是另外加上的價差與滑價假設。這對兩種規則影響都很小:規則①整段只買 14 次、賣 13 次,規則②每月只把漂移的比重調回目標,日夏普從 0.922 降到 0.913。

BIL 那兩列,是給大部分時間拿現金的規則看的。每天固定持有 23% QQQ、77% 國庫券,日夏普就有 1.231,比規則①把閒置資金放國庫券的 0.911 高得多。這個組合的夏普高,是因為國庫券利息(這段期間 BIL 年化 2.4%)幾乎沒有波動卻算成報酬,不扣無風險利率的夏普會獎勵這一點。所以常拿現金的規則要贏的是這個固定組合,只贏 QQQ 不夠。規則②贏了自己的固定組合(0.977 對 0.945),但參數網格和前半段沒過,仍算不通過。

為什麼等下跌的成本比省下來的多

回撤圖可以看到逢低買進的優點。規則①最大回撤只有 22.4%,2022 年 QQQ 跌 32.6%,它只虧 7.4%,那一年領先 QQQ 25 個百分點,是它領先最多的一年。拿掉 2022 年,規則①日夏普 0.93,QQQ 是 1.22。

逢低買進回撤比較:QQQ 含息、跌了才買、底倉加碼

代價是其他時間。2019、2020、2021、2023、2024 年 QQQ 每年漲 25% 到 55%,規則①這幾年只有 8% 到 24%,因為大部分漲幅發生時它拿著現金。等跌 10% 才買,就表示價格接近高點時都不在場,而這十年 QQQ 大部分時間都接近高點。

下跌後確實有反彈:訊號後 63 個交易日 QQQ 平均漲 11.1%,任意一天起算的 63 個交易日只有 5.1%。但規則只在 23% 的日子有持股,只吃到這些反彈。這就是 Sharpe(1975) 談的擇時問題:在股票與現金之間切換的經理人,大約要四次猜對三次,才能跟上一直持有,因為不在場的時間會錯過股市長期的報酬。逢低買進只做一種判斷「現在買」,其他時間都不在場。

規則②平常至少持有五成,少放掉一些漲幅。它的日夏普領先 QQQ,靠的是 2022 年大部分時間停在五成底倉、把虧損縮小到 20.3%。強勢年份它都落後,光 2023 年就少了 22.6 個百分點;拿掉 2022 年,它的日夏普 1.199 對 QQQ 的 1.223。

回測方法

  • 資料: FinLab us_fund_price 的 QQQ 與 BIL 還原收盤價(含配息)。2016 年的價格用來暖機 252 日高點,績效從 2017-04-03 算到 2026-11-10,2026-11-12 用 finlab 2.3.8 跑完。
  • 成交時點: 收盤後出訊號,下一個交易日收盤成交(sim() 預設)。跌幅用還原價計算,除息不會被當成下跌。
  • 前視偏差: 高點與跌幅只用訊號當天以前的收盤價,成交再晚一天。單一 ETF 全期都存在,沒有下市造成的生存者偏誤;但選 QQQ 這檔過去十年表現很好的基金,本身就帶有事後之明。
  • 權重: 規則①只有十成 QQQ 或十成現金。規則②目標五成或十成,月底與訊號切換時調回,中間隨價格漂移。
  • 成本與滑價: 預設零手續費,另跑每邊 0.1%。沒有計算資本利得稅、融資或市場衝擊。
  • 周轉與流動性: 規則①整段 27 筆買賣。QQQ 是成交量最大的美股 ETF 之一,但沒有估算規則的資金容量。
  • 現金: 回測中不計利息;BIL 檢查另外把國庫券報酬加到閒置資金上。
  • 限制: 這是單一 ETF、單一個十年的全段樣本內研究,期間包含一次崩跌和一次空頭,沒有樣本外期間。事先固定參數能減少看結果挑參數,但這個點子本身來自市場經驗。Bailey 等人(2017) 說明單次回測為什麼會高估規則的表現,本文沒有估算過度擬合機率。

用 AI 代理重跑

照 FinLab 安裝流程 幫 AI 代理裝好 FinLab 技能,Claude Code、Codex、Gemini CLI 都可以用;AI 代理使用說明 介紹代理能用 FinLab 資料做哪些事。直接安裝的指令是:

顯示程式碼
npx skills add koreal6803/finlab-ai --skill finlab -g -y

不想安裝的話,FinLab Studio 在瀏覽器也能做同樣的研究。第一句可以這樣問:「下載逢低買進的研究程式,用原本登記的參數跑規則①,列出進場日期和 BIL 對照。」如果一開始就請 AI 設計新的逢低規則,得到的是另一個實驗,結果不能和上面的表格比較。

規則①的核心只要幾行。這段重現原參數的結果,登入由 FinLab 自動引導。

顯示程式碼
import finlab
import numpy as np
import pandas as pd
from finlab import data
from finlab.backtest import sim
 
finlab.login()
data.set_market("us_fund")
qqq = data.get("us_fund_price:adj_close")["QQQ"].loc[:"2026-11-10"].dropna()
 
# 近 126 個交易日的最高收盤,以及比它低 10% 以上的日子
high = qqq.rolling(126).max()
below = (qqq / high - 1 <= -0.10).to_numpy()
 
hold = np.zeros(len(qqq), dtype=bool)
inside, target, age = False, np.nan, 0
for i in range(1, len(qqq)):
    if inside:
        age += 1
        # 收回原本的高點,或持有滿 63 個交易日就賣
        inside = qqq.iloc[i] < target and age < 63
    elif below[i] and not below[i - 1]:
        # 第一次跌破 10%:隔天收盤買進
        inside, target, age = True, high.iloc[i], 0
    hold[i] = inside
 
position = pd.DataFrame({"QQQ": hold}, index=qqq.index).loc["2017-04-03":]
report = sim(position, upload=False, end_date="2026-11-10")

完整的 研究程式 會跑兩個參數網格、成本與 BIL 檢查,並輸出下方的下載檔;同一支程式也會跑這批研究的美股庫藏股與 Altman Z 分數。

逢低買進常見問題

逢低買進有用嗎? 在這次測試中,QQQ 跌 10% 才買的報酬低於一直持有,27 組參數都是如此。下跌後通常會反彈,但規則錯過了這十年大部分的漲幅。

逢低買進和定期定額哪個好? 兩者回答的問題不同。定期定額把新資金分批投入,單筆與定期定額的實測 發現多數起點一次買進比較好;等下跌才買是更嚴格的等待,問題相同。

用 VIX 恐慌指數抄底呢? 那是用恐慌程度而不是價格當訊號。VIX 突破 40 的回測 看的是極少數的恐慌時刻,次數比 QQQ 跌 10% 少得多。

台股可以逢低買進 0050 嗎? 本文只測 QQQ。台股的做法可參考 融資維持率抄底 0050 與 乖離率回測,後者發現乖離率比較像動能因子,不適合當抄底訊號。

為什麼不用熱圖上 0.82 那一格? 它仍輸 QQQ,而且看完結果再挑最好的格子,就是參數網格要防止的過度擬合。

回撤比較小,代表比較安全嗎? 回撤淺是因為大部分時間沒有投資。每天固定 23% QQQ、其餘放國庫券也跌得比較少,而且日夏普比規則①高(1.231 對閒置資金放國庫券的 0.911)。

想看已驗證與未通過的美股規則,可以讀 美股量化交易策略比較;同樣在 QQQ 和現金之間切換的研究還有 波動度目標策略、200 日均線大盤濾網 與 QQQ 網格交易。回測方法 說明成交時點與常見偏差,逢低買進 等名詞可查量化詞彙表。

研究下載

檔案 內容
開啟跌了才買報告(網頁) 瀏覽器直接開啟,不需安裝:規則①的每日淨值、每筆交易與逐年報酬
開啟底倉加碼報告(網頁) 規則②的同一份報告
下載每日績效資料(CSV) 兩種規則、QQQ 與 BIL 的每日淨值,可用試算表開啟
下載完整測試結果(JSON) 每組參數、每項檢查與每筆交易,供 AI 或程式讀取
下載研究程式(Python) 給 AI 代理或會寫程式的人,設定 FinLab 後重跑

投資有風險,過去績效不代表未來表現。本內容僅供教學與研究,不構成投資建議,請依個人風險承受度審慎評估。本文沒有推薦買賣 QQQ 或任何標的,也不保證歷史上的規律會延續。

最後更新:2026-11|回測區間:2017-04-03 至 2026-11-10|作者:FinLab 量化研究團隊。團隊以 FinLab 資料維護台股、美股的可重跑研究。

FinLab AI

想建立自己的策略?

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

免費開始

更多風險與資產配置研究

查看全部