【Python量化實測】勝率僅31%卻能年賺8.9%?
本文內容僅為個人量化研究心得分享,非證券投資顧問建議,亦不構成任何買賣推薦。實際交易可能面臨滑價、流動性不足、交易成本增加等回測無法完全模擬之風險。過去績效不代表未來獲利保證,投資人應獨立思考並自行承擔風險。
💡 三秒看懂重點
- 打破高勝率迷思: 實測台股 8 年數據(含 2025 模擬測試),勝率僅 31.7%,但長期獲利穩定。
- 盈虧比是靈魂: 輸一次平均賠 -5%,但贏一次平均賺 +13% (盈虧比 2.78)。
- 地獄考驗: 回測期間曾出現 連續 24 次停損,最大回撤達 -43%。這不是無風險套利,而是考驗人性的逆勢操作。
- 實戰成果: 策略成功捕獲 緯創 (+133%)、廣達 (+106%) 等波段大魚。
- 特別觀察: 2025 年模擬數據表現異常優異,驗證了策略在趨勢盤的爆發力。
一、前言:某天我在 YouTube 上看到...
前幾天我在 YouTube 上滑到廖崧沂(Liao Songyi)老師的影片,他提到一句讓我印象深刻的話:
這句話聽起來很吸引人,畢竟誰不想大賺小賠?但身為一個習慣用數據說話的工程師,我心中其實充滿問號:
- 🤔 一根 K 線就停損? 這樣會不會一直被洗出場?
- 🤔 連虧 20 次本金不會賠光?
- 🤔 長期真的能打敗大盤嗎?
與其憑感覺猜測,我決定直接動手!我用 Python (vectorbt) 寫了一套回測系統,把台股過去 8 年 (2018/01 - 2025/12)、超過 2,000 檔 股票的歷史數據全部丟進去跑一遍。
結果讓我重新認識「獲利」這件事...
二、策略核心:狙擊手模式 (不開槍則已,一開槍必中)
要把影片中的概念變成程式碼,不能用模糊的「型態漂亮」,必須轉化為精確的數學邏輯。
📋 進場 6 大檢查點 (缺一不可)
| 檢查項目 | 量化條件 | 白話文解釋 |
|---|---|---|
| 1️⃣ 趨勢確認 | MA8 > MA21 > MA55 | 均線呈現多頭排列,確保大方向向上。 |
| 2️⃣ 動能檢查 | 均線發散度 > 2% | 短期均線比長期均線高出 2% 以上,代表趨勢加速中,非盤整。 |
| 3️⃣ 強度過濾 | ADX > 20 | ADX 是趨勢強度指標,大於 20 代表趨勢明確,避開死魚盤。 |
| 4️⃣ 突破訊號 | 收盤創 20 日新高 | 不猜底,等股價真正突破盤整區間才進場。 |
| 5️⃣ 籌碼同步 | 投信連買 ≥ 2 天 | 跟著「大人」(法人)走,確保後續有買盤支撐。 |
| 6️⃣ 量能爆發 | 當日量 > 5MA > 20MA | 有量才有價,確認攻擊訊號真實性。 |
(💡 研究心得:這套檢查表可以幫助投資人過濾掉 80% 的無效交易。)
🛡️ 防守鐵律
- 硬停損: 進場後虧損達 6% 立刻出場。
- 移動停利: 收盤跌破 21日均線 (月線) 出場。
為什麼是 6%? 台股一根長黑 K 平均跌幅約 5-7%。設定 6% 能在「慘劇發生前」逃生。太緊 (3%) 容易被洗,太鬆 (10%) 傷太重。
三、殘酷數據:1,036 筆交易的真實成績單
回測跑完後,我們得到了 1,036 筆 交易紀錄。這不是少數幸運兒的結果,而是大數法則的展現。
📊 8 年回測績效總表
| 項目 | 數值 | 備註 |
|---|---|---|
| 回測期間 | 2018/01 - 2025/12 | 測試年份 |
| 起始資金 | 100 萬 | 假設 |
| 最終資金 | 196 萬 | (回測計算值) |
| 總報酬率 | +96% | 年化 8.9% (採 10% 資金保守策略) |
| 總交易次數 | 1,036 次 | 平均每週 2-3 次出手 |
| 勝率 | 31.76% | 每 10 次約 7 次賠錢 |
| 盈虧比 (P/L) | 2.78 | 贏一次賺的錢,抵過 2.78 次虧損 |
| 期望值 | +1.0% | 每筆交易平均預期獲利 |
| 最大回撤 | -43.98% | 發生於 2022 年股災 |
🔍 特別觀察:2025 年的異常現象
我在回測數據中包含了一段 「2025 年模擬壓力測試」。結果顯示,策略在 2025 年的表現異常優異:
- 勝率: 32.97% (與歷史相當)
- 盈虧比: 飆升至 4.45 (歷史平均僅 2.61)
- 捕獲個股: 南亞科 (+163%)、台達電 (+156%)
💡 我的看法:
這並不是因為 2025 年特別好賺,而是證明了這套策略具有 「凸性 (Convexity)」。在平淡年份可能小賠,但在趨勢明顯的年份(如 2025 或 2023),獲利會呈指數級爆發。
四、與 0050 比較:誰比較強?
為了客觀評估策略表現,我們將 8 年回測結果與同期 0050 進行比較:
| 項目 | 本策略 | 0050 (估算) |
|---|---|---|
| 年化報酬率 | 8.9% | 約 10-11% |
| 最大回撤 | -43.98% | 約 -35% |
| 勝率 | 31.76% | 約 70%+ (持有即勝) |
| 操作難度 | 需紀律停損 | 買入持有即可 |
結論: 單純以報酬率來看,長期持有 0050 的績效略優於本策略。但本策略的價值在於:
- 爆發力: 在趨勢明確年份(如 2023、2025)表現優於大盤。
- 學習價值: 透過量化回測,理解「大賺小賠」的邏輯。
五、風險揭露:你能忍受「連續 24 次停損」嗎?
做量化交易不能只看賺錢,要看最慘的時候會怎樣。數據顯示,回測期間曾出現 連續 24 次停損 的極端情況。這主要發生在 2022 年的大空頭市場。
📉 壓力測試:連虧 24 次會破產嗎?
假設我們採用 固定比例資金管理,每次投入帳戶總資金的 10%,且每次都觸發 6% 停損(實際損失本金的 0.6%):
計算公式:
結論: 雖然連續被打臉 24 次很痛,但你的本金只會減損約 13.5%,並不會破產。只要接下來抓到一隻像 緯創 (+133%) 這樣的股票,不僅虧損全補回來,資產還會創新高。
六、實戰 MVP:以「緯創」為例
這套策略最經典的戰役,就是在 2023 年 5 月 抓到了 AI 伺服器龍頭 緯創 (3231)。
- 進場點 (2023-05-19): 股價突破盤整創 20 日高,投信連續買超,ADX 轉強。
- 出場點 (2023-08-02): 股價跌破 21MA (月線),獲利了結。
- 戰果: +133.51%
如果你是憑感覺做股票,很可能在賺 20% 的時候就跑了,根本吃不到後面這段最肥的魚身。量化交易沒有感情,它只遵守紀律,抱到趨勢結束為止。
七、研究總結:給投資人的 3 個思考
看完了 8 年的數據回測,我整理出三個核心體悟供大家參考:
- 放棄預測,專注確認: 不要去猜底部在哪,耐心等待「均線發散 + 投信連買」的訊號出現。
- 嚴格執行停損: 回測顯示,-6% 是一個有效的保命線。不要因為不想賠錢而凹單,那會讓你錯失下次進場的機會。
- 資金分散是關鍵: 既然勝率只有 30%,單筆投入建議不超過總資金的 10%,這是度過連敗期的救生圈。
「散戶最大的優勢,不是比勝率,而是比紀律能不能活得久。」
(喜歡這篇文章嗎?歡迎分享給需要在股市中找方向的朋友!)