
執行這個策略
複製提示詞,讓 AI 依照上方證據的資料、條件與風險檢查重跑一次。
告訴你的AI:
設定 FinLab,用每個月的起點比較 QQQ 一次買進與分 12 個月買的期末差距,請讀:https://finlab.finance/setup?relatedUrl=/blog/dca-vs-lump-sum-backtest
手上有一筆錢,一次買進和分 12 個月平均買,哪個期末比較多?我們用 FinLab 資料把每個月月初都當成一次起點:SPY、QQQ 從 2016 年 1 月到 2025 年 11 月各 119 個起點,0050 從 2007 年 5 月起 223 個起點。一次買進期末錢比較多的比例,SPY 是 84.9%、QQQ 86.6%、0050 74.9%,分批期末平均少 5.0%、6.6%、4.2%。分批只在買完之前市場先跌的時候贏,例如 2022 年 1 月開始分批買 QQQ,12 個月後比一次買進多 27.5%。
分批換到的是買進期間比較小的跌幅:SPY 一年內的最大回撤平均從 14.5% 降到 8.6%。不過把同樣的效果拿來跟「一直只持有一半多一點的股票、其餘放短債」比,分批並沒有比較好,差別只在這段時間持有的股票比較少。
關鍵數字
分 12 個月、每月初買一次,沒買的部分 SPY、QQQ 放 BIL(1–3 個月美國國庫券 ETF),0050 放台幣現金(年息 0%)。
| 項目 | SPY | QQQ | 0050 |
|---|---|---|---|
| 起點月份 | 2016-01~2025-11 | 2016-01~2025-11 | 2007-05~2025-11 |
| 起點數 | 119 | 119 | 223 |
| 一次買進期末較多的比例 | 84.9% | 86.6% | 74.9% |
| 分批相對一次買進的平均差距 | -5.0% | -6.6% | -4.2% |
| 中位數差距 | -5.6% | -8.4% | -4.8% |
| 分批最好的起點 | 2022-01,+15.3% | 2022-01,+27.5% | 2008-05,+48.7% |
| 分批最差的起點 | 2020-04,-25.3% | 2020-04,-31.1% | 2009-03,-31.9% |
| 12 個月平均報酬:一次買進/分批 | 16.0%/9.5% | 22.3%/12.9% | 16.5%/9.0% |
| 12 個月內最大回撤平均:一次買進/分批 | -14.5%/-8.6% | -17.3%/-10.9% | -17.6%/-11.0% |
差距=分批期末財富 ÷ 一次買進期末財富 − 1,負值代表分批比較少。資料截至 2026-11-05,價格都含息。
怎麼比:同一筆錢、每個月一個起點
一次比較只有一個起點,結果會被那一天的行情決定。所以我們把每個月第一個交易日都當成「這天剛拿到一筆錢」:
- 一次買進: 起點當天收盤全部買進基金。
- 分批買進: 從起點開始分 N 個月買完,沒買的錢 SPY、QQQ 放 BIL,0050 放台幣現金。每次買進動用「剩餘餘額 ÷ 剩餘次數」,所以 BIL 賺到的利息也會一起投入。
- 比較日: 起點後第 N 個月的第一個交易日。到這天兩邊都已全額持有同一支基金,之後漲跌比例相同,這天的差距百分比會一直維持下去。Vanguard 的研究也用同樣的理由說明比較期間長短不影響結論。
SPY、QQQ 的含息價格從 2016 年 1 月開始,這是 FinLab 美股基金資料的起點。0050 用 2007 年 5 月起的還原價。起點逐月滾動,相鄰的起點有 11 個月重疊,所以 119 個起點不是 119 次獨立的結果,比例要當成這段期間的描述來看。
三支基金、9 組參數,一次買進都比較多
分幾個月買(6、12、18 個月)和多久買一次(每 5 個交易日、每月初、每季初)組成 9 組。下圖是每一組裡,分批期末贏過一次買進的起點比例:

27 格沒有一格超過 50%。分批的期間越長,輸得越多:
| 分幾個月買(每月初) | SPY 平均差距 | QQQ 平均差距 | 0050 平均差距 |
|---|---|---|---|
| 6 個月 | -2.3% | -3.1% | -2.3% |
| 12 個月 | -5.0% | -6.6% | -4.2% |
| 18 個月 | -7.5% | -9.8% | -5.8% |
買進頻率的影響小得多。同樣分 12 個月,QQQ 每 5 個交易日買一次平均差 -7.1%,每月初 -6.6%,每季初 -5.4%。每季初買反而差得少,因為第一次就投入四分之一,整段期間平均投入的比例比較高。
用 100 萬來看:QQQ 一次買進 12 個月後平均變 122.3 萬,分 12 個月買平均 112.9 萬,少約 9.4 萬;119 個起點裡有 103 個比較少。
分批什麼時候贏:買完之前市場先跌
把每個起點的期末差距,對照基金在那 12 個月本身的報酬:

點幾乎排成一條往右下的線,相關係數 SPY -0.83、QQQ -0.84、0050 -0.79。基金在這 12 個月上漲,分批多半輸;下跌,分批多半贏:
| SPY | QQQ | 0050 | |
|---|---|---|---|
| 12 個月上漲的起點 | 104 個(87.4%) | 105 個(88.2%) | 164 個(73.5%) |
| 上漲時分批贏的比例 | 8.7% | 6.7% | 7.3% |
| 12 個月下跌的起點 | 15 個 | 14 個 | 59 個 |
| 下跌時分批贏的比例 | 60.0% | 64.3% | 74.6% |
上漲時分批還是有少數贏的起點,那是先跌後漲,分批剛好在低點多買。下跌時分批也不是一定贏,如果先漲後跌,分批後面幾次反而買在高點。
所以一次買進贏得多,原因是股市大多數 12 個月都在漲:這段期間 SPY、QQQ 將近九成的起點,12 個月後是賺的。分批等於在上漲的時間裡留著一部分錢在場外。
分批贏的起點集中在幾段時間:美股是 2018 年 8~10 月、2021 年 8 月~2022 年 8 月,其餘只有零星幾個;0050 是 2007~2008 年金融海嘯、2011 年歐債、2015 年 2~8 月、2018 年,加上和美股同一段的 2021~2022 年。下圖是 QQQ 分批最好和最差的兩個起點:

2022 年 1 月起,一次買進一年後剩 0.66,分批剩 0.85。2020 年 4 月,美股剛從新冠崩盤反彈,一次買進一年後變 1.79,分批只有 1.23。
分批換到的是比較小的回撤
分批的好處在跌幅。12 個月內的最大回撤,分批平均比較淺,在一次買進跌最深的起點差得更多:
| 一次買進回撤最深的起點 | 一次買進的最大回撤 | 分批的最大回撤 |
|---|---|---|
| SPY,2020-02 起 | -33.7% | -6.6% |
| QQQ,2021-12 起 | -35.1% | -19.0% |
| 0050,2007-11 起 | -54.1% | -46.7% |
如果這筆錢一年內就要用,或者一次虧三成會讓你賣在低點,這個差別是實際的。但它的代價是平均報酬:QQQ 12 個月平均報酬從 22.3% 掉到 12.9%。
把風險算進來,分批也沒有比較好。比較期間內的夏普值扣掉 BIL 報酬後,分批較高的起點 SPY 只有 40.3%、QQQ 37.0%、0050 44.8%(0050 的現金是 0% 利率,扣不扣都一樣)。不扣無風險利率的話,SPY 有 51.3% 的起點是分批較高,但這是因為放在 BIL 的錢幾乎沒有波動、卻有利息,會把夏普值墊高,不能當成分批比較好的證據。
我們也拿分批跟一個更簡單的做法比:從頭到尾只放 54.2% 在基金、其餘放 BIL,每月初調回這個比例。54.2% 是分 12 個月買的期間裡,平均投入在基金的比例(13 ÷ 24)。分批贏它的起點,SPY 49.6%、QQQ 50.4%、0050 48.9%,跟擲硬幣差不多。也就是說,分批的結果大致就是這段期間少持有一半股票的結果,沒有因為「分散買點」多賺。
0050:19 年、223 個起點
0050 的資料比美股長,包含 2008 年金融海嘯:

2008 年 5 月起分批買 0050,一次買進一年後虧 25.7%,分批還賺 10.6%,差距 48.7%,是三支基金裡分批贏最多的一次。但 2009 年 3 月股市落底後開始分批,一次買進一年後賺 68.3%,分批只賺 14.5%,少 31.9%。整段 223 個起點裡,分批贏 56 個(25.1%)。
只看跟美股同一段時間(2016-01 起的 119 個起點),0050 分批贏的比例是 16.8%,平均少 7.5%,跟 SPY、QQQ 差不多。2025 年起的起點分批輸很多:2025 年 9 月起的 12 個月 0050 漲了 112.5%,分批只賺 48.0%,少 30.3%。
台幣現金假設年息 0%,接近活存。改成年息 1%,分批贏的比例從 25.1% 變 25.6%,平均差距從 -4.2% 變 -3.7%,結論不變。0050 的手續費兩邊都是買進金額的 0.1425%,一次付和分 12 次付總額相同,不影響差距;手續費最低 20 元的限制,在每次買 1.4 萬元以上時沒有影響。
驗證結果
判斷條件在開跑前先寫定,之後沒有改,也列在 research.py 開頭的說明裡。分批要被判定「比較好」,第一列要至少 7/9,其餘每一列都要超過 50%:
| 檢查(原值:分 12 個月、每月初) | SPY | QQQ | 0050 |
|---|---|---|---|
| 9 組參數中分批贏過半的組數 | 0/9 | 0/9 | 0/9 |
| 前半段起點分批贏的比例 | 10.2% | 5.1% | 32.4% |
| 後半段起點分批贏的比例 | 20.0% | 21.7% | 17.9% |
| 每邊 0.1% 成本(含 BIL 買賣)後分批贏的比例 | 15.1% | 13.4% | 25.1%(台股預設手續費) |
| 扣 BIL 的夏普值分批較高的比例 | 40.3% | 37.0% | 44.8% |
| 分批贏「固定 54.2% 持有」的比例 | 49.6% | 50.4% | 48.9% |
| 拿掉分批領先最多的起點年份後 | 10.3%(去掉 2022) | 8.4%(去掉 2022) | 21.8%(去掉 2008) |
前半段是 SPY、QQQ 2016-01~2020-11(59 個起點)、0050 2007-05~2016-07(111 個起點),後半段是之後的起點。只有 QQQ 對「固定 54.2% 持有」的比較是 50.4%,剛好過半,其餘每一項都沒過;條件要全部成立,所以三支基金的分批買進都不成立。
反過來看一次買進:9 組全部贏過半,前後半段各自贏(SPY 89.8%、80.0%;QQQ 94.9%、78.3%;0050 67.6%、82.1%),加上成本也贏。依照事先寫好的條件,三支基金都是一次買進比較好。
跟 Vanguard 的研究比較
這不是新發現。Constantinides(1979)在理論上證明分批買進不是最佳的投資方式;Rozeff(1994)用美股歷史資料比較,同樣是一次買進較好。Vanguard 的 Shtekhman、Tasopoulos 與 Wimmer(2012)用美國、英國、澳洲的歷史資料,得到一次買進大約三分之二的時間勝出。
Finlay 與 Zorn(2023)用美國 Russell 3000 指數 1979~2022 年的資料,一次買進贏分 3 個月買的比例是 66.4%,贏分 6 個月買的比例是 73.7%,這組數字假設未投入的錢沒有利息。他們的主要分析用 MSCI 世界指數 1976~2022 年,未投入的錢改算國庫券利息後,100% 股票的組合對分 3 個月買,仍有 65% 是一次買進贏。
我們分 6 個月、每月初買的結果,一次買進贏的比例是 SPY 75.2%、QQQ 76.8%、0050 69.0%,跟 Vanguard 的 73.7% 接近;我們的分批有算 BIL 利息,對分批比較有利,一次買進仍然贏。分 12 個月時一次買進贏得更多(SPY 84.9%),是因為留在場外的時間更長,Vanguard 也寫到分批期間越長,分批越吃虧。我們的美股期間只有 2016 年以後,正好是美股報酬很高的十年,這可能是一次買進贏的比例比 Vanguard 長期資料高的原因之一。
那為什麼還有人選擇分批
Statman(1995)用行為財務學解釋分批買進的吸引力:一次買進之後馬上大跌,人會強烈後悔「早知道就分批」;分批讓人不用為單一時點負責。如果這份後悔會讓人在下跌時賣出,代價可能比分批少賺的更大:2020 年 2 月一次買進 SPY,一年內最深跌了 33.7%,而分 12 個月買平均只少 5.0%。
所以這份結果能用在下面這種判斷:
- 一次買進: 期末錢比較多的機率最高。能接受買完馬上跌三成,而且不會因此賣出的人適用。
- 短期間分批: 如果一次買進會讓你在下跌時睡不著,期間短一點的代價比較小。本文分 6 個月平均少 2.3%~3.1%,Vanguard 建議的是 3 個月左右;分 12 個月的代價約是 6 個月的 2 倍,分 18 個月約 2.5~3 倍。
- 降低股票比例: 如果真正的需求是少承受一點波動,長期持有較低的股票比例比較直接。上面的比較顯示,分批的效果跟暫時少持有股票差不多,分批買完後波動就回到 100% 股票。
定期定額和一筆錢分批,是兩件事
一般說的定期定額,多半是每個月從薪水撥一筆錢去買。那時候錢是每個月才進來,沒有「一次買進」可選,每月一到手就買,就等於有錢就全買。本文比較的是另一個情境:錢已經在手上,要不要故意分開買。想試算每月投入多少、幾年後累積多少,可以用複利計算機。
如果你在找定期定額要買哪些台股,可以看存股推薦 2026 的定期定額標的研究。如果要決定美股買哪一支,看 QQQ vs SPY、VOO、VTI 十年回測,同一個 Nasdaq-100 指數也可以比較 QQQM 和 QQQ 的費用與流動性。想在下跌時加碼,可以看 VIX 恐慌指數抄底實測與融資維持率擇時 0050;想用資產配置控制回撤,看懶人投資組合回測。
程式碼
下面這段用 QQQ 和 BIL 重算每個起點的差距,複製到 Python 就能跑:
顯示程式碼
import finlab
from finlab import data
finlab.login() # finlab 會引導你登入
data.set_market("us")
data.truncate_end = "2026-11-05"
prices = data.get("us_fund_price:adj_close")[["QQQ", "BIL"]].dropna()
days = prices.index
month_starts = days.to_series().groupby(days.to_period("M")).min()
def dca_vs_lump_sum(start, months=12):
"""同一筆錢:起點全買,對比分 months 個月每月初買,還沒買的放 BIL"""
window = month_starts.loc[start:].iloc[:months + 1]
buy_days, end = window.iloc[:months], window.iloc[months]
qqq, bil = prices["QQQ"], prices["BIL"]
# 一次買進:起點收盤全買,持有到比較日
lump_sum = qqq[end] / qqq[buy_days.iloc[0]]
# 分批:每次動用「剩餘餘額 ÷ 剩餘次數」
shares, cash, last = 0.0, 1.0, buy_days.iloc[0]
for i, day in enumerate(buy_days):
cash *= bil[day] / bil[last] # 放在 BIL 的部分照樣有利息
spend = cash / (months - i)
cash -= spend
shares += spend / qqq[day]
last = day
averaged = shares * qqq[end]
return averaged / lump_sum - 1
starts = month_starts.index[:-12]
gaps = [dca_vs_lump_sum(period) for period in starts]
dca_wins = sum(gap > 0 for gap in gaps)
print(len(gaps), "個起點,分批贏", dca_wins, "個")
print("平均差距", round(sum(gaps) / len(gaps), 4))
print("2022-01 起", round(dca_vs_lump_sum("2022-01"), 4))資料截至 2026-11-05 時,印出 119 個起點、分批贏 16 個,平均差距 -0.0656,2022-01 起 0.2751。把 "QQQ" 換成 "SPY" 就能重算 SPY。完整的 research.py 還包含 9 組參數、0050、每邊成本、回撤、夏普值與固定比例對照。
回測方法與限制
| 項目 | 做法 |
|---|---|
| 資料 | SPY、QQQ、BIL 用 us_fund_price:adj_close(含息),去掉休市列;0050 用 etl:adj_close 還原價。資料截至 2026-11-05 |
| 期間 | 美股起點 2016-01~2025-11,只有約 10 年,主要是多頭;0050 起點 2007-05~2025-11,含 2008 年金融海嘯(0050 在 2003 年上市,FinLab 的還原價從 2007-04-23 開始) |
| 起點 | 每個月第一個交易日,相鄰起點重疊,比例不是獨立樣本 |
| 成交價 | 都用收盤價成交,沒有計算滑價 |
| 成本 | 美股預設 0;壓力測試每筆買賣 0.1%,包含 BIL 的買進與賣出。0050 用台股手續費 0.1425%,一次付與分次付總額相同;固定比例對照每月調整時,0050 賣出另扣 ETF 證交稅 0.1% |
| 未投入的錢 | SPY、QQQ 放 BIL(1–3 個月國庫券 ETF,費用已在價格裡);0050 放台幣現金,年息 0%,另跑 1% |
| 稅 | 未計股利稅、資本利得稅與匯差;含息價格假設股利全額再投入 |
| 前視 | 買點只依日期決定,不看價格,沒有前視問題 |
| 樣本內外 | 全段樣本內。參數只有分幾個月與多久買一次,9 組全部列出 |
這份結果能說什麼
- 在 2016~2026 年的 SPY、QQQ 與 2007~2026 年的 0050,同一筆錢一次買進,期末錢比較多的起點佔 75%~87%,分批平均少 4%~7%;風險調整後分批也沒有比較好。
- 分批期間越長,代價越大。
- 結果只代表這段期間。如果未來剛好在分批買完之前大跌、而且沒有很快回升,分批多半會贏,但沒有辦法事先知道。
常見問題 FAQ
單筆投入和定期定額哪個好?
手上已經有一筆錢的話,歷史上一次買進比較常贏。本文實測分 12 個月買,一次買進期末較多的起點 SPY 佔 84.9%、QQQ 86.6%、0050 74.9%,Vanguard 用美國長期資料也得到約三分之二。分批的好處是買進期間跌得少。
定期定額要分幾個月?
分越久代價越高。分 6 個月每月初買,平均比一次買進少 SPY 2.3%、QQQ 3.1%、0050 2.3%;分 18 個月少 7.5%、9.8%、5.8%。Vanguard 的建議也是真要分批,就用三個月左右的短期間。
定期定額每週買還是每月買比較好?
差別很小。分 12 個月買 QQQ,每 5 個交易日買一次平均少 7.1%,每月初少 6.6%。每週買不會比較好,只是手續費次數比較多。
為什麼一次買進比較常贏?
因為股市大多數時間在漲。這段期間 SPY、QQQ 將近九成的起點,12 個月後是上漲的;分批的錢有一部分留在場外,少賺了這段漲幅。只有 12 個月內下跌時,分批才多半贏。
0050 單筆投入還是定期定額?
0050 從 2007 年 5 月起 223 個起點,分 12 個月買贏的比例是 25.1%,比美股高,因為包含 2008 年金融海嘯與 2011 年歐債。只看 2016 年以後,分批贏的比例是 16.8%,跟美股差不多。
已經在下跌了,還要一次買嗎?
沒有辦法用「現在在跌」判斷之後還會不會跌。2020 年 4 月美股剛大跌完,那時開始分批的人一年後比一次買進少 25%~31%。本文的買點只依日期,沒有測試看價格決定買點的做法。
可以自己重跑嗎?
可以。透過 AI 輔助安裝流程裝好 FinLab,下載 research.py 直接執行;或到 FinLab Studio 用對話改成其他基金或期間。想從頭了解回測,可以看回測入門與量化交易總覽,美股研究整理在美股量化策略總覽。
下載資源
| 檔案 | 內容 |
|---|---|
| research.py | 完整研究:三支基金、9 組參數、前後半段、成本、回撤、夏普值、固定比例對照與 0050 現金利率敏感度 |
| data.csv | 每個起點月份、每組參數的分批相對一次買進差距,以及 12 個月內的最大回撤 |
| metrics.json | 本文引用的全部統計 |
投資警語:本文僅供教學參考,不構成投資建議。過去績效不代表未來表現,投資有風險。本文所有回測均為全段樣本內結果。文中提到的 ETF 只用來說明研究結果,不是買賣建議;稅務請依個人情況諮詢專業人士。
最後更新:2026-11|回測區間:2007-05~2026-11|基準:各基金一次買進(含息)|作者:FinLab 量化研究團隊(經量化研究員審閱)
FinLab AI
想建立自己的策略?
用自然語言描述你的選股想法,AI 自動驗證、回測、給你答案
免費開始


