【量化生存筆記 #01】消失的 70% 獲利:你的回測數據帳本漏水了嗎?

更新 發佈閱讀 8 分鐘

「我出邏輯、AI 出代碼、我來負責踩雷與排雷。」

我是 QTnewbie。本週是我自學計畫的第一週。但我立刻就遇到了一個讓人懷疑人生的問題:為什麼同樣的策略,換了一種數據,我的報酬率會直接差了70%?

  • 本週實驗目標: 追蹤消失的 70% 獲利
  • 本週踩雷點: Close (收盤價) 數據的隱形帳單

在量化金融領域,大家總說回測要用 Adj Close。但對我這種剛進場的小白來說,Close (收盤價) 看起來親切多了,圖表長得完全沒問題啊。

難道這又是金融圈用來唬弄新手的術語?

一、 這不是消失的密室,是消失的 70% 獲利

為了搞清楚,我做了一個很單純(甚至有點天真)的實驗。

  • 標的:00878(國泰永續高股息)
  • 回測時間:2020/07/10 ~ 2026/03/27
  • 小白策略: 簡單粗暴的「站上均線就買,跌破就賣」。股價 > 20 天平均線 (MA20) 買進,反之賣出。
# 策略邏輯:當 Close > MA20 買入 (持有=1), 否則賣出 (持有=0)
data['MA20_Close'] = data['Close'].rolling(window=20).mean()
data['Signal_Close'] = np.where(data['Close'] > data['MA20_Close'], 1, 0)
vocus|新世代的創作平台

然後,我算出報酬率—— 193.90%

老實說,我當下的心情是:

「欸?這樣就可以了嗎?量化也太簡單了吧?」

(謝謝大家,我們今天到這裡結束——)

但糾斗媽爹,我們先冷靜一下。

既然大家一直強調 Adj Close,我還是決定做一件負責任的事:

同一個策略,用 Adj Close 再跑一次

vocus|新世代的創作平台

結果出來的那一刻,我真的愣住—— 263.30%

整整比 Close 多出了快 70%!

一樣的策略、一樣的時間,為什麼換個數據,我的錢就多出了「一整台特斯拉」的價差?到底是 Adj Close 會點石成金,還是 Close 偷偷吃了我的錢?

二、 Adj Close 的身世之謎:誰偷了我的股利?

為了解密這 70% 的差距,我開始查Adj Close 到底是什麼。

原來,問題出在「除息」

股票配息時,股價會往下掉。想像一下:

昨天股價 100 元。

今天公司配息 5 元給你(你的銀行帳戶多了 5 元)。

今天股價自動變成 95 元(除息)。

收盤時漲回 97 元(填息一部分)。

這時候,程式碼的「冷血邏輯」就出事了:

它只會計算 (今天收盤價 97 - 昨天收盤價 100) / 100 = -3%。 在程式的眼裡,你虧了 3 塊錢。但現實中,你口袋裡明明有 5 元股息加上 97 元股票,總價值是 102 元,你其實賺了 2 塊錢

程式碼直接忽略了你領走股利這件事。對它而言,那 5 塊錢像是突然從人間蒸發了。

長期下來,00878 這種季季配息的股票,你的報酬率就像一個底下破洞的存錢筒,每三個月就漏一次錢,難怪最後差了 70%!

三、 Adj Close 的計算玄學:還原記憶的橡皮擦

Adj Close 的做法其實很單純,本質就是一件事 :

「既然你領到了 5 元,那我就把這 5 元當作是你當初買股票的『退款』。」

所以,它會跑回歷史紀錄,把你當初買進的 100 元,改成 95 元

這就像是百貨公司的「買貴退差價」。因為你拿到了配息,所以你過去買股票的「成本變低了」。當成本變低,你算出來的漲幅自然就變大。累積四年下來,00878 這種高頻率配息的股票,透過這種「追溯減價」疊加出來的複利效應,就是那消失的 70% 獲利來源!

為了做到「追溯減價」這件事,Adj Close 會乘以一個「調整係數」把過去的股價往下縮,讓歷史股價看起來平滑連續。

vocus|新世代的創作平台

(AI 幫我手刻了一版,我貼在下面👇)

def calculate_manual_adj(price_df):
"""
手動計算調整因子:從最後一次配息往回連乘。
為什麼要倒著算?因為我們要保持「今天」的價格真實,去修正「過去」的價格。
"""
adj_factors = pd.Series(1.0, index=price_df.index)
div_dates = price_df[price_df['Dividends'] > 0].index

# 從最新的配息倒推回過去
for ex_date in div_dates[::-1]:
div_amount = price_df.loc[ex_date, 'Dividends']
prev_idx = price_df.index.get_loc(ex_date) - 1

if prev_idx >= 0:
pre_ex_price = price_df.iloc[prev_idx]['Close']
# 計算調整因子:(除息前股價 - 股利) / 除息前股價
factor = (pre_ex_price - div_amount) / pre_ex_price
# 將該日期之前的所有歷史價格都乘以這個因子,縮小過去的股價
adj_factors.iloc[:prev_idx + 1] *= factor

return price_df['Close'] * adj_factors
vocus|新世代的創作平台

你會發現,當我們把CloseAdj Close 放在一起比較,因為不停乘以小於 1 的係數,越久以前的 Adj Close 就會被縮得越小。

也就是說,越早期的價格,會被壓得越低。

四、 小白的碎碎念環節:理論與現實的拉扯

在本週的排雷實驗中,我總結出幾件重要的事情:

  1. 小心「隱形帳單」: 如果你只看 Close 做回測,你其實是在模擬一個「領到股利後就把現金丟進大海」的行為。你的策略沒變,但你的錢就在這四年中慢慢漏掉了。
  2. 關於「假訊號」的都市傳說: 網路上很多文章警告說,用 Close 會因為除息的大跳空導致技術指標(如 MA20)發生「骨折」,發出錯誤的賣出訊號。但我實測 00878 的結果發現:其實沒那麼明顯。 可能是因為這幾年是強勢牛市,股價漲幅完全蓋過了除息的跌幅,所以指標並沒有因此崩潰。不過,這不代表它不存在,只是剛好這次被運氣救了一命。
  3. 穿越時空的虛擬股價: 雖然 Adj Close 找回了獲利,但也帶來了一個很靈異的現象。 回頭看 2022 年,我的 Adj Close 資料顯示股價只有 10.0 元 左右,但事實上,當年翻遍報紙,00878 的最低價明明還有 12.多塊

本週排雷總結:

  • 踩到的雷:Close 做長線回測,會嚴重低估你的複利能力。
  • 避雷方案: 算報酬率時請認準 Adj Close


下期劇透:既然 Adj Close 這麼好,幫我們還原了真實獲利,那為什麼它顯示的「10.0 元」是真實世界裡根本沒出現過的價格?如果我當時真的設了一個「股價低於 12 元就買進」的指令,這場回測是不是就會變成一場「根本不可能成交」的穿越劇?

👉 下週目標:「Adj Close 是解答,還是另一個陷阱?」

我們下期見!

留言
avatar-img
讓AI幫我做量化交易,會不會出事?
0會員
1內容數
一個完全不懂金融,也不會寫程式的菜鳥小白最近決定做一件很奇怪的事: 用 AI 做量化交易。
你可能也想看
Thumbnail
大家好,我是小股民Gumin,個人分析,請斟酌參考 想多學一點觀念可以申請小股民的社團唷~ {連結在這}:https://www.cmoney.tw/forum/club/4064 剛剛吸完喵喵打起精神來寫個文章,我想跟大家聊聊要怎麼進出場才是最合適的 我們先來探討做波段跟做
Thumbnail
大家好,我是小股民Gumin,個人分析,請斟酌參考 想多學一點觀念可以申請小股民的社團唷~ {連結在這}:https://www.cmoney.tw/forum/club/4064 剛剛吸完喵喵打起精神來寫個文章,我想跟大家聊聊要怎麼進出場才是最合適的 我們先來探討做波段跟做
Thumbnail
本文深度解析賽勒布倫尼科夫的舞臺作品《傳奇:帕拉贊諾夫的十段殘篇》,如何以十段殘篇,結合帕拉贊諾夫的電影美學、象徵意象與當代政治流亡抗爭,探討藝術在儀式消失的現代社會如何承接意義,並展現不羈的自由靈魂。
Thumbnail
本文深度解析賽勒布倫尼科夫的舞臺作品《傳奇:帕拉贊諾夫的十段殘篇》,如何以十段殘篇,結合帕拉贊諾夫的電影美學、象徵意象與當代政治流亡抗爭,探討藝術在儀式消失的現代社會如何承接意義,並展現不羈的自由靈魂。
Thumbnail
全新版本的《三便士歌劇》如何不落入「復刻經典」的巢臼,反而利用華麗的秀場視覺,引導觀眾在晚期資本主義的消費愉悅之中,而能驚覺「批判」本身亦可能被收編——而當絞繩升起,這場關於如何生存的黑色遊戲,又將帶領新時代的我們走向何種後現代的自我解構?
Thumbnail
全新版本的《三便士歌劇》如何不落入「復刻經典」的巢臼,反而利用華麗的秀場視覺,引導觀眾在晚期資本主義的消費愉悅之中,而能驚覺「批判」本身亦可能被收編——而當絞繩升起,這場關於如何生存的黑色遊戲,又將帶領新時代的我們走向何種後現代的自我解構?
Thumbnail
無論是經濟衰退、產業景氣趨緩、利率變化都有回歸正常的時候,中長期投資該思考的問題是,當情勢轉為對股市有利的時候,哪些股票可以明顯回升,哪些無法回復到先前的榮景?
Thumbnail
無論是經濟衰退、產業景氣趨緩、利率變化都有回歸正常的時候,中長期投資該思考的問題是,當情勢轉為對股市有利的時候,哪些股票可以明顯回升,哪些無法回復到先前的榮景?
Thumbnail
京元電:先前「市場低估 AI 轉型」的論述,已在股價飆漲 26% 後被完全實現。受 AI 佔比 70% 目標及 Rubin 平台利多激勵,市場已迅速將 2027 年的樂觀預期定價。報酬風險比處於極度不利水平。策略上建議已持有者評估獲利了結,新進者應保持紀律、耐心等待回落。
Thumbnail
京元電:先前「市場低估 AI 轉型」的論述,已在股價飆漲 26% 後被完全實現。受 AI 佔比 70% 目標及 Rubin 平台利多激勵,市場已迅速將 2027 年的樂觀預期定價。報酬風險比處於極度不利水平。策略上建議已持有者評估獲利了結,新進者應保持紀律、耐心等待回落。
Thumbnail
本文探討投資時應重視的因素,尤其是持股數量與實際獲利的意義。通過對大明與小明兩位投資者的案例分析,指出報酬率並不是唯一的重要指標,持股數量和本金使用率才能真實反映出投資能力。文章強調,投資沒有對錯,關鍵在於每位投資者根據自身風險承受能力和投資策略做出合理選擇,最終達到舒適的生活狀態。
Thumbnail
本文探討投資時應重視的因素,尤其是持股數量與實際獲利的意義。通過對大明與小明兩位投資者的案例分析,指出報酬率並不是唯一的重要指標,持股數量和本金使用率才能真實反映出投資能力。文章強調,投資沒有對錯,關鍵在於每位投資者根據自身風險承受能力和投資策略做出合理選擇,最終達到舒適的生活狀態。
Thumbnail
長期以來,西方美學以《維特魯威人》式的幾何比例定義「完美身體」,這種視覺標準無形中成為殖民擴張與種族分類的暴力工具。本文透過分析奈及利亞編舞家庫德斯.奧尼奎庫的舞作《轉轉生》,探討當代非洲舞蹈如何跳脫「標本式」的文化觀看。
Thumbnail
長期以來,西方美學以《維特魯威人》式的幾何比例定義「完美身體」,這種視覺標準無形中成為殖民擴張與種族分類的暴力工具。本文透過分析奈及利亞編舞家庫德斯.奧尼奎庫的舞作《轉轉生》,探討當代非洲舞蹈如何跳脫「標本式」的文化觀看。
Thumbnail
時間是投資最強大的槓桿,而錯失時間的唯一補償方式,就是要支付對應的「代價」。 ⸢我是在47歲才開始有系統、有章法的投資,當我意識到投資的重要性時,才發現我已經落後了至少20年的時間。⸥ 在這之前總覺得工作雖然壓力很大,但收入也算穩定,省吃儉用,也能一點一滴慢慢存下未來的退休金。但漸漸地發現,產業疊
Thumbnail
時間是投資最強大的槓桿,而錯失時間的唯一補償方式,就是要支付對應的「代價」。 ⸢我是在47歲才開始有系統、有章法的投資,當我意識到投資的重要性時,才發現我已經落後了至少20年的時間。⸥ 在這之前總覺得工作雖然壓力很大,但收入也算穩定,省吃儉用,也能一點一滴慢慢存下未來的退休金。但漸漸地發現,產業疊
Thumbnail
財報或前景展望是在中長期趨勢過程,觸發市場心理與股價波動的事件,如果公布財報或前景展望,使得股價出現突破或跌破,那是因為原本就已經具有潛在的力量足以驅動股價,公布訊息只是讓潛在的力量發揮出來。
Thumbnail
財報或前景展望是在中長期趨勢過程,觸發市場心理與股價波動的事件,如果公布財報或前景展望,使得股價出現突破或跌破,那是因為原本就已經具有潛在的力量足以驅動股價,公布訊息只是讓潛在的力量發揮出來。
Thumbnail
若說易卜生的《玩偶之家》為 19 世紀的女性,開啟了一扇離家的窄門,那麼《海妲.蓋柏樂》展現的便是門後的窒息世界。本篇文章由劇場演員 Amily 執筆,同為熟稔文本的演員,亦是深刻體察制度縫隙的當代女性,此文所看見的不僅僅是崩壞前夕的最後發聲,更是女人被迫置於冷酷的制度之下,步步陷入無以言說的困境。
Thumbnail
若說易卜生的《玩偶之家》為 19 世紀的女性,開啟了一扇離家的窄門,那麼《海妲.蓋柏樂》展現的便是門後的窒息世界。本篇文章由劇場演員 Amily 執筆,同為熟稔文本的演員,亦是深刻體察制度縫隙的當代女性,此文所看見的不僅僅是崩壞前夕的最後發聲,更是女人被迫置於冷酷的制度之下,步步陷入無以言說的困境。
Thumbnail
最近我與美股探路客的 Andrew 進行了一次私下交流。他人相當不錯,並且分享了一些實用的補充分析工具。原本我打算將這些私人交流的內容保留,但由於他分享的資訊已經收錄於他的著作中,因此,我決定將這些內容公開分享給各位參考。 他介紹了一個網站,我覺得非常實用,而且竟然可以看台股。此外,他提到使用的分
Thumbnail
最近我與美股探路客的 Andrew 進行了一次私下交流。他人相當不錯,並且分享了一些實用的補充分析工具。原本我打算將這些私人交流的內容保留,但由於他分享的資訊已經收錄於他的著作中,因此,我決定將這些內容公開分享給各位參考。 他介紹了一個網站,我覺得非常實用,而且竟然可以看台股。此外,他提到使用的分
Thumbnail
我從2020年9月正式踏入股市,這隻股票報酬率是我目前最高的波段報酬,當初買進是因為疫情期間......
Thumbnail
我從2020年9月正式踏入股市,這隻股票報酬率是我目前最高的波段報酬,當初買進是因為疫情期間......
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News