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

作帳行情是真的嗎?23 年台股數據:六月底買、七月中賣,
勝率近八成

作帳行情是真的嗎?用 finlab 回測台股 2003 至 2025 共 23 年:在六月半年報結帳日買進加權報酬指數、持有約十個交易日到七月中,平均上漲 2.06%、勝率 70%;改用 0050 實單複製平均每次賺 2.88%、近八成年份收紅。但「投信作帳買個股」「搶息」「小型股普漲」「外資作帳買盤」四種常見說法,全部被資料否決,真相是一個集中在權值大盤的季節性現象。附完整 Python 程式碼與可下載回測數據。

六月底買七月中賣

每年六月底,財經版面都會出現「作帳行情」「半年報行情」這幾個字。投信要結帳、法人要美化半年報持股、外資要回補,所以六月底到七月會有一波上漲。聽起來很有道理,但它到底是真的可重複,還是只是事後看圖說故事?

我們用 finlab 把台股加權報酬指數(含息)拉出來,從 2003 年測到 2025 年,一年只取一個獨立樣本,做了一個乾淨的事件研究。結論是:作帳行情這件事在大盤層級確實存在、而且統計上站得住腳;但市場上對它的四種主流解釋,幾乎全部錯了。

台股六月作帳行情:半年報結帳日買進加權報酬指數後的平均報酬曲線,2003 至 2025 年

關鍵數字(2003–2025,台股加權報酬指數)

進場時點 持有交易日 平均報酬 勝率 t 值
六月半年報結帳日(收盤) 5 日 +1.21% 57% +2.11
六月半年報結帳日(收盤) 8 日 +1.51% 70% +2.15
六月半年報結帳日(收盤) 10 日 +2.06% 70% +2.73
六月半年報結帳日(收盤) 12 日 +2.22% 78% +2.32
六月半年報結帳日(收盤) 15 日 +2.42% 78% +2.74
同期間任意 10 日(無條件基準) 10 日 +0.61%

(來源:finlab benchmark_return:發行量加權股價報酬指數,2003–2025 共 23 年,一年一個觀察值。t 值為跨年度單樣本 t 檢定,對虛無假設「平均報酬為零」。)

一句話:在六月結帳日收盤買進大盤、持有 8 到 15 個交易日(大約到七月中),23 年來平均報酬約 +2%,是同期間隨便挑十天平均報酬(+0.61%)的三倍多,而且 t 值穩定落在 2 以上。

作帳行情:泛指機構投資人在季底或半年底結帳日前後,為了美化財報或基金淨值持股,買進或撐住手中重押的股票,帶動指數短線走強的季節性現象。學名叫「window dressing(櫥窗效應)」。更多量化名詞可參考我們的量化投資詞彙表

什麼是作帳行情?為什麼是六月?

台灣的會計年度以 12 月底為年結,6 月底則是「半年」的結帳點:上市櫃公司要編半年報、基金與法人要結算上半年淨值與績效。Lakonishok, Shleifer, Thaler & Vishny (1991) 研究美國退休基金時就發現,基金經理人傾向在季底「美化持股」,把表現好的、權值大的標的買到帳上,這就是 window dressing 的原始定義。

六月底還疊了第二件事:台股的除權息旺季落在七、八月,六月底正好站在配息行情的起跑線前。兩股力量加起來,使得六月半年結這個時間點,比其他三個季底更容易出現結帳後的延續性上漲。

但「有故事」不等於「可賺錢」。早在 Lakonishok & Smidt (1988) 用九十年資料檢驗各種日曆效應時就提醒,許多看似穩定的季節性其實經不起跨期考驗。更直接的陷阱,是 Sullivan, Timmermann & White (2001) 指出的「資料探勘」問題:你把一年 250 個交易日、各種月份與節氣都試一遍,總會挑到幾個看起來很神的日期。所以下面每一步,我們都用一年一個獨立樣本、跨年度檢定,並且和其他三個季底、和無條件基準對照,盡量把運氣的成分擠掉。

事件研究:持有十到十五個交易日最甜

把「進場後持有 N 個交易日」的平均報酬畫成一條曲線(上方第一張圖),你會看到報酬從結帳日起穩定往上爬,在第 8 到第 15 個交易日之間進入一段平台,平均累積報酬大約 +2.0% 到 +2.4%,t 值在這段都維持在 2.3 以上。超過 20 個交易日之後,平均報酬還在高點附近,但波動變大、訊號變鬆,性價比下降。

我們也測了進場日的敏感度。把進場點從結帳日前三天移到後兩天、持有天數從 5 天掃到 15 天,做成一張報酬與 t 值的網格,最強的組合是在結帳日前一個交易日進場、持有 10 個交易日,t 值高達 3.43。換句話說,這個訊號不是只在某一個精準的進出點才成立,它在一整片合理的進出組合上都站得住,這正是穩健訊號該有的樣子。

更重要的是穩健性檢查。我們對 10 日報酬做「逐年剔除」(jackknife):每次拿掉一年再重算,23 次裡最低的 t 值還有 2.43,最高 3.15,全部都 ≥ 2.0。也就是說,這段報酬不是靠某一年撐起來的。貢獻最大的一年是 2003 年(+10.2%),最差的一年是 2008 年金融海嘯(−3.8%),把這兩個極端拿掉,結論都不變。

如果再嚴格一點,扣掉「那一年大盤本來就有的平均漲幅」,只看超額的季節性部分,結帳後 10 日的超額報酬仍有 +1.68%(t = 2.36,p = 0.028)。所以這 +2% 不是把大多頭年的趨勢算進去而已,它本身就帶著一塊獨立的季節性溢酬。

逐年拆解:23 年裡有 16 年收紅

逐年檢視:台股六月結帳日後 10 個交易日的大盤報酬,23 年勝率 70%

把每一年結帳後 10 日的報酬畫成長條圖,23 年裡 16 年收紅、勝率 70%,紅綠分佈相當均勻,沒有「全靠兩三根大紅棒」的脆弱感。下跌的年份多半對應到當年的系統性風險(2008 海嘯、2011 歐債、2015 股災、2022 升息),這也提醒我們:這是一個「平均而言占上風」的季節性偏向,不是每年保證上漲。

只有六月特別強:四個季底的對照

如果作帳行情只是「結帳日後大盤都會漲」,那 3、6、9、12 月底應該都一樣強。事實不是這樣。

四個季底結帳日後 10 個交易日的大盤平均報酬對照,只有六月特別強,2003 至 2025 年

季底結帳日 結帳後 10 日平均報酬 t 值
3 月底(Q1) +1.38% +1.59
6 月底(半年報) +2.06% +2.73
9 月底(Q3) +0.40% +0.44
12 月底(年報) +0.54% +0.73

(來源:finlab 加權報酬指數,2003–2025,結帳後 0 至 +10 交易日。)

四個季底裡,只有六月的結帳後延續性上漲達到統計顯著。九月、十二月幾乎沒有訊號,三月偏弱。這個對照很關鍵:它說明六月作帳行情綁定的是台灣半年報結算這個特定制度節點,而非泛泛的「結帳日通效應」,正好和 window dressing 的機制吻合。

值得一提的是,年底(12 月)在結帳「前」反而有明顯的卡位買盤(結帳前 10 日平均 +2.12%、t = 3.89),但那是另一個故事;本文聚焦的是可操作性最高、結帳「後」延續最穩的六月。

用 0050 實單複製:近八成勝率,含成本後依然站得住

指數不能直接買,但 0050(元大台灣 50)幾乎完美貼著加權指數。我們把規則落到 0050 上:在六月結帳日前一個交易日(倒數第二個六月交易日)收盤買進,約七月中(結帳後第 11 個交易日)賣出,一年只做這一趟,從 2007 測到 2025 共 19 年。

用 0050 複製六月作帳行情:六月底進場、七月中出場,19 年勝率 79%,2007 至 2025 年

指標 0050 季節性進出(2007–2025,19 次)
每次平均報酬 +2.88%
報酬中位數 +3.54%
勝率 79%(15/19 年收紅)
t 值 +2.99
每趟風險報酬(平均/標準差) 0.69
扣 0.15% 來回成本後平均 +2.73%(勝率仍 79%)
扣 0.30% 來回成本後平均 +2.58%

(來源:finlab price:收盤價 之 0050 收盤對收盤報酬,未計息為保守估計。成本敏感度為事後扣除來回交易成本。)

平均每趟 +2.88%、近八成年份收紅,這是一個曝險只有約 12 個交易日的季節性部位,不是長抱整年。即使把手續費與證交稅這類來回成本扣到 0.30%,平均報酬仍有 +2.58%、勝率不變,代表它不是被成本吃光的微小邊際。

為了給最保守的實測,我們再用 finlab 的回測引擎把它跑成一個「只有六月底到七月中進場 0050、其餘時間空手」的帳戶,內含手續費 0.1425%、ETF 證交稅 0.1%,而且部位變動隔一個交易日才以開盤價成交(更貼近實單)。下面是完整互動式回測:權益曲線、逐年報酬、月報酬全在裡面,可以直接在文章中操作:

這個含成本、隔日開盤成交的版本,19 年累積報酬 +48.3%、勝率 68%(13/19)、最大回撤 −11.1%。它比前面那張乾淨的 +68.9%(收盤對收盤、未扣成本)低,差距正是真實世界的摩擦:隔日開盤成交吃掉一點價差、加上交易成本。帳戶層的年化只有約 2.1%、日夏普約 0.06,看起來很低,但那是因為這個帳戶一年有 11 個月在空手、現金拖累了年化數字;它要看的是「每次進場的勝率與報酬」,不是「整年滿倉的夏普」。關於夏普這個指標怎麼讀、為什麼空手期會拉低它,可以參考夏普比率是什麼

四個常見說法,資料全部否決

這一節是這篇和市場上其他作帳行情文章最不一樣的地方。大盤層級的季節性是真的,但坊間用來「教你怎麼賺」的四種版本,我們逐一用資料檢驗,結果全軍覆沒。

說法一:「投信作帳會把特定個股拉上去,跟著買就賺」

我們在六月中與結帳日,用「投信近 8 日淨買超股數 ÷ 近 60 日均量」這個強度指標,挑出投信買最兇的前 30 檔流動性股票組成籃子,和整個流動性股票池對照,從 2012 測到 2025。結果:持有 10 日,投信認養籃子平均 +0.88%,流動性股票池 +0.87%,兩者幾乎沒有差別(差距 +0.01%、t = 0.02)。多空(買最兇減賣最兇)也只有 +0.20%、t = 0.32,毫無統計意義。

換句話說,「跟著投信買認養股」吃不到超額報酬。作帳行情不是一個選股訊號,是一個指數現象。如果你想認真研究法人籌碼怎麼用,我們在法人籌碼選股策略外資買賣超避險指標裡有更細的拆解。

說法二:「作帳行情是小型股雨露均霑、全市場普漲」

如果是全市場普漲,那把每檔股票等權重平均(breadth,廣度報酬)應該漲得比市值加權的大盤指數更多。事實正好相反。

六月作帳行情集中在權值大盤,等權重廣度反而落後市值加權指數,2007 至 2025 年

區間 市值加權大盤 等權重(全市場) 廣度溢酬(等權減市值)
結帳前 10 日 +1.05% +0.40% −0.65%
結帳後 10 日 +2.10% +0.94% −1.16%(t = −2.35)
跨結帳日 −10 至 +10 +3.22% +1.39% −1.83%(t = −3.05)

(來源:finlab 流動性股票池等權報酬 vs 加權報酬指數,2007–2025。)

結帳後 10 日,等權重廣度反而比市值加權落後 1.16%(t = −2.35,p = 0.031),跨結帳日落後更達 1.83%。作帳行情高度集中在權值大、被法人重押的大型股,不是小型股普漲。這也和 window dressing 的邏輯一致:要美化半年報持股,買的是檯面上的權值龍頭,不是冷門小股。

說法三:「六月底搶息,高殖利率股最會漲」

台股七、八月除權息旺季在即,很多人以為六月底買高殖利率股「搶息」最甜。我們把流動性股票池依殖利率分三組,從結帳日前一天買進持有 12 日,2007 至 2025:高殖利率組平均只有 +0.02%,低殖利率組卻有 +1.37%,高減低的「搶息溢酬」是 −1.35%(t = −3.24,p = 0.006),方向完全相反。結帳後這段,資金明顯偏向成長型、低息的權值股,而不是高息定存股。

說法四:「外資作帳,結帳日前後大買」

六月結帳日前後外資其實是累積賣超,並非作帳買盤,2012 至 2025 年平均

把 2012 到 2025 年外資每日買賣超在結帳日前後加總起來看,結帳日前後十個交易日,外資平均是累積淨賣超,一路到七月中(結帳後第 9、10 日)才轉成買超。所以推動六月作帳行情的,並不是外資的結帳買盤。外資在大盤裡的角色我們另外在為什麼外資大賣,台股反而漲有完整討論。

把四個說法放在一起看,結論很乾淨:六月作帳行情是一個集中在權值大盤、偏成長型大型股、和個別法人籌碼與搶息都無關的季節性現象。能吃到它的工具,是大盤型 ETF(0050),不是任何一種選股版本。

回測方法與口徑限制

漂亮的數字必須交代清楚是怎麼算出來的,否則只是另一篇看圖說故事。以下是本文的回測口徑:

項目 本文做法
基準資料 大盤用 benchmark_return:發行量加權股價報酬指數(含息總報酬指數),不是純價格指數,避免低估報酬
0050 報酬 price:收盤價 之收盤對收盤、未計息,屬保守估計(實際含息會更高)
樣本設計 一年只取一個獨立觀察值,避免重疊視窗造成的自我相關污染統計檢定
交易成本 事件研究本身不含成本;0050 另做 0.15% 與 0.30% 來回成本敏感度;finlab 互動回測內含手續費 0.1425% 與 ETF 證交稅 0.1%
成交假設 finlab 回測的部位變動隔一個交易日以開盤價成交,貼近實單;事件研究為收盤對收盤
流動性與股票池 個股橫截面檢驗(投信、殖利率、規模)限定近 20 日均成交額 > 5,000 萬元的流動性股票池,避免回測買得到、實單買不到
前視偏差 投信買賣超為當日收盤後才可得,進場一律設在訊號日收盤;不使用任何未來資訊
樣本內外 全段為樣本內事件研究;但 2003–2014 與 2015–2025 兩個子期間分別檢驗,後段結帳後 10 日仍有 +2.07%、勝率 82%、t = 2.83,等於用近十年資料做了一次準樣本外驗證
週轉率與容量 一年僅進出一次、曝險約 12 個交易日,週轉率低;0050 流動性充足,容量不是限制,但本文未估算大資金的市場衝擊

最大的限制要說在前面:季節性異象天生有資料探勘風險(Sullivan, Timmermann & White, 2001)。我們用跨年度檢定、逐年剔除、跨季底對照、子期間切分四道關卡來壓低這個風險,但它仍是一個「平均而言占上風」的統計偏向,不是物理定律。任何一年都可能因為當年的系統性事件而失效(2008、2022 就是例子)。回測方法與更多陷阱可參考什麼是回測

怎麼用?用 AI 跟 finlab 跑一次

FinLab 的核心是讓你用白話跟 AI 對話、由 finlab 套件在底層跑真資料,而不需要你去背 Python 語法。上面所有數字,核心邏輯其實只有幾行:

顯示程式碼
from finlab import data
import pandas as pd
 
# 1. 載入台股加權「報酬」指數(含息),以及交易日曆
#    finlab 需要資料時會自動引導你登入,照指示操作即可
bench = data.get("benchmark_return:發行量加權股價報酬指數").iloc[:, 0].dropna()
trading_days = pd.DatetimeIndex(sorted(bench.index))
 
# 2. 找出每一年六月的最後一個交易日(半年報結帳日)
def june_close(year):
    june = trading_days[(trading_days.year == year) & (trading_days.month == 6)]
    return june[-1] if len(june) else None
 
# 3. 從結帳日買進、持有 10 個交易日,計算每一年的報酬
returns = []
for year in range(2003, 2026):
    anchor = june_close(year)
    position = trading_days.get_loc(anchor)
    one_year = bench.iloc[position + 10] / bench.iloc[position] - 1
    returns.append(one_year)
 
result = pd.Series(returns)
print(f"平均報酬 {result.mean():.2%},勝率 {(result > 0).mean():.0%}")
# 平均報酬 2.06%,勝率 70%

你可以把整段邏輯貼給你的 AI 助理,請它幫你改成 0050 實單、加上交易成本、或換成其他季底再測一次。完整的事件研究腳本與每年進出場明細,都在文末提供下載。想看更多用 AI 對話做量化研究的範例,可以從量化交易完整指南開始。

適合誰、不適合誰

說明
適合 已經長期持有 0050 或大盤型 ETF 的人,把六月底到七月中視為「分批加碼的季節性窗口」;想用一個規則明確、低週轉的季節性偏向,輔助原本的資產配置
不適合 想靠它選個股、追投信認養股、或搶高息股的人(資料顯示這些版本沒有優勢);無法承受單一年份失效(如 2008、2022)的人;把它當成保證每年上漲的人

這是一個季節性「偏向」,最務實的用法是把它疊在既有的長期部位上,而不是當成獨立致富策略。把它和其他季節性研究一起看會更有感:例如我們對紅包行情的實測(網傳 80% 勝率其實只有 60%)、冰風暴概念股季節效應,以及處置股進出場時機

常見問題

Q1:作帳行情到底是真是假? 在大盤層級是真的。台股加權報酬指數在六月結帳日後 10 個交易日,2003–2025 平均上漲 2.06%、勝率 70%、t = 2.73,並通過逐年剔除與子期間檢驗。但坊間「跟投信買個股」「搶息」「買小型股」等操作版本,經資料檢驗都沒有優勢。

Q2:為什麼是六月,不是其他季底? 六月底是台灣半年報的結帳點,疊上七、八月除權息旺季在即。四個季底對照中,只有六月的結帳後延續上漲達統計顯著(九月、十二月幾乎無訊號),顯示它綁定的是半年報結算這個制度節點。

Q3:最佳的進出場時間是什麼時候? 統計上最強的組合是六月結帳日前一個交易日進場、持有約 10 到 15 個交易日(大約到七月中)。但訊號在一整片合理的進出組合上都成立,不需要追求精準到某一天。

Q4:用 0050 真的可以複製嗎?成本會不會吃掉? 可以。0050 季節性進出 2007–2025 平均每趟 +2.88%、勝率 79%;扣 0.30% 來回成本後仍有 +2.58%、勝率不變。它曝險只有約 12 個交易日,週轉率低,成本不是主要障礙。

Q5:買投信認養股、外資作帳股可以嗎? 資料顯示不行。投信買最兇的前 30 檔,持有 10 日只贏流動性股票池 +0.01%(t = 0.02);而外資在結帳日前後其實是累積賣超。作帳行情是指數現象,不是選股訊號。

Q6:這個策略每年都會賺嗎? 不會。它是一個平均而言占上風的季節性偏向,23 年裡有 7 年是負的,通常對應當年的系統性風險(2008、2011、2015、2022)。請把它當成提高勝算的偏向,不是保證。

Q7:我要怎麼自己驗證? 文末提供完整的 Python 事件研究腳本與每年進出場、報酬的 CSV,你可以用 pip install finlab 自己重跑,或把程式碼貼給 AI 助理改成你想測的版本。

延伸閱讀

想自己動手?用白話跟 AI 對話、由 finlab 跑真台股回測,免費開始使用 FinLab,把這個季節性套到你自己的資產配置上。

下載與重現

  • 完整事件研究與 0050 季節性回測腳本:strategy.py
  • 每年進出場日期與報酬資料:data.csv
  • 完整互動式回測報告已內嵌於本文上方,可直接操作

最後更新:2026-06|回測區間:2003-06 至 2025-07(事件研究)/2007–2025(0050 實單)|資料截至 2026-06-17|作者:FinLab 量化研究團隊(經量化研究員審閱)

投資有風險,過去績效不代表未來表現。本內容僅供教學與研究參考,不構成投資建議,請依個人風險承受度審慎評估。

FinLab AI

想建立自己的策略?

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

免費開始

更多總經與市場研究

查看全部