股票回測常見 3 種股利處理錯誤:把調整後價格序列當成可成交價格、在錯誤日期入帳現金,或完全忽略股利。這些做法都可能產生看似合理、實際帳戶價值卻不正確的圖表。
關鍵在於區分股票的市場成交價格,以及公司行動所產生的現金或股票。兩者都要追蹤。股利會改變股東有權取得的資產,但不會讓除息日的價格下跌從市場紀錄中消失。
錯誤一:把調整後收盤價當成報價來交易
歷史資料供應商通常會因股利調整價格,讓圖表呈現再投資後的總報酬。這類序列適合某些分析用途,但它不是訂單可能成交的價格。
假設某股票在除息前收盤價為 $100,每股股利為 $1。若隔天開盤價為 $99,且沒有其他價格變動,未調整的價格圖表會顯示下跌 1%。股利調整後的序列可能透過重新縮放歷史價格來消除這段落差。若回測用調整後序列產生訊號並模擬成交,就把報酬計算慣例和可交易報價混在一起了。
實際造成的問題取決於策略。以近期高點為基準的門檻,可能會因從未實際成交過的價格而觸發。停損單也可能在調整後的價位觸發。若用同一條調整後序列計算報酬,曲線可能看起來平穩,但成交價格卻來自另一套價格基準。
| 價格欄位 | 適用用途 | 不安全的假設 |
|---|---|---|
| 原始成交價或報價 | 在時點設定適當的情況下,用於訊號與模擬執行 | 已包含股東現金流 |
| 股利調整後收盤價 | 部分總報酬比較 | 可作為實際成交價格 |
| 調整後 OHLC K 線 | 了解調整方法後用於分析 | 盤中高低點等同於歷史報價 |
錯誤二:在除息日入帳股利
除息日會依適用的市場規則,決定哪些人有權取得股利。現金通常會在之後的發放日才入帳。在帳戶模擬中,這兩個日期各有不同用途。
假設你持有 100 股,跨過除息日,而已宣告的股利為每股 $0.50,兩週後發放。策略可能在除息日取得 $50 的應收股利,但此時還沒有 $50 可動用的現金。如果模擬器立刻把這筆錢加進購買力,就可能讓你用這筆股利買進,然而真實帳戶在收到股利前無法這麼做。
若只是計算長期持有策略的報酬,在除息日記錄取得股利的權利可能就足夠。若策略會再投資股利、追蹤購買力,或在交割前後交易,就應把應收股利和實際付款分開處理。使用當時已知的付款時程;後續的資料更正不應改寫系統當時能預期的內容。
對一般的多頭部位來說,除息日股價下跌幅度接近股利金額,並不代表一定發生交易虧損。帳戶持有的股票價值減少了,但同時有一筆應收股利。兩者是否正好抵銷,取決於市場變動、稅費、預扣稅,以及模擬採用的計算慣例。
錯誤三:因為股價已下跌就忽略股利
價格維持未調整、卻漏記現金流,會造成相反方向的扭曲。以股價從 $100 跌到 $99 為例,持有 100 股的投資人現在有價值 $9,900 的股票,而非 $10,000,另有 $100 的股利權利。若只計算股票價值,就會錯報 $100 的虧損;實際上,簡化後的總價值並未改變。
在長期樣本或持有大量高配息股票的投資組合中,這種錯誤可能影響很大。它也會影響訊號:若策略把每次除息日的跳空都解讀成一般的下跌,就可能剛好在錯誤的時機賣出。股利或許能解釋價格缺口,但不會決定市場接下來的走勢。
股票回測該如何建模股利?
先使用當時可得的原始價格來做決策並模擬成交,再把公司行動明確記錄為帳戶事件。回測需要多細,取決於它要回答什麼問題。
- 計算總報酬:將有權取得的股利納入投資組合價值,並清楚記錄再投資的假設。
- 模擬策略:在時間差會造成影響的情況下,分開追蹤持股、應收股利、現金支付與購買力。
- 產生訊號與模擬執行:使用能反映實際歷史市場價位及其可取得時間的價格欄位。
也要分別檢查股票分割、特別股利與預扣稅。$1 的一般股利和 $10 的特別股利可能造成不同的價格調整,也可能讓策略產生截然不同的行為。供應商單一的「調整後」標記通常不足以說明細節。
回測跨過除息日時,請確認帳戶在除息日前持有什麼、因此取得了什麼權利、現金何時入帳,以及決策採用哪一種價格序列。如果這些資訊全都隱含在單一的調整後收盤價欄位中,權益曲線就承載了你看不見的假設。
← 所有文章

