AI 實驗 · 強化學習 · 2026

三個 AI 交易員,
每天早上給我一份投資早報。

我用強化學習訓練了短、中、長線三個 AI Agent,讓它們看同一份市場資料各自判斷,再依恐慌指數(VIX)調整誰的話比較算數。系統每天收盤後自動跑完,把結果寫成早報寄到信箱。

但這頁最重要的不是系統,而是樣本外驗證之後,我發現它贏不了「買進持有」,以及我怎麼因此改了它的角色。

270支股票各自訓練模型
3個 Agent(短線 PPO/中線 PPO/長線 Transformer)
3,087個特徵欄位(技術、總經、基本面)
42支走完 3 年樣本外驗證
01 · 架構

四層自動化流程

每個工作日收盤後,四個步驟依序自動執行,不需要人介入。

L1

市場資料層

下載台股、美股、ETF、加密貨幣的價量與總經資料,計算成特徵表。

RSI · MACD · 布林帶RVOL 5/10/20/60ATR · OBV · VWAPBeta · 相關係數ROIC · ROE · ROA
↓
L2

回測訓練層

每支股票獨立訓練三個 Agent,年化報酬未達 20% 或回撤超過 20% 就自動重訓,最多三次。夜間還能自動搜尋超參數。

短線 PPO看數天內的動能與量能變化
中線 PPO看數週的趨勢與均線結構
長線 Transformer用注意力機制讀較長的價格序列
↓
L3

訊號整合層

三個 Agent 各自給出「買/觀望/賣」與信心值,再依 VIX 加權:市場越恐慌,越聽長線的;越平靜,越聽短線的。

VIX短線中線長線
< 15 平靜50%35%15%
15–20 ← 範例當天 18.040%35%25%
20–2530%40%30%
25–3020%35%45%
≥ 30 恐慌15%25%60%
↓
L4

早報層

把訊號翻成人看得懂的建議,依收件人各自的觀察清單產生不同版本,用 Gmail 寄出。

02 · 產出

一份早報長這樣

以 2026/04/16 的真實訊號重新排版,只挑四支大型股示範;收件人與完整清單已移除。

長條長度=該 Agent 的信心值。注意台積電:三個 Agent 都說「買」,但短、中線信心只有 0.06,綜合結果仍是「持有」。

03 · 驗證

誠實的結果:大多數贏不了買進持有

用 2023/01 到 2026/03 的資料做逐步前移(walk-forward)的樣本外測試:模型只用過去的資料訓練,再拿它沒看過的未來資料考試。每一個點是一支股票。

-50%-50%0%0%50%50%100%100%150%150%打平線AMZN:策略 -17% / 買進持有 36%2881:策略 19% / 買進持有 24%SPY:策略 22% / 買進持有 22%2412:策略 9% / 買進持有 9%6274:策略 117% / 買進持有 119%CAT:策略 49% / 買進持有 49%AAPL:策略 37% / 買進持有 29%GOOG:策略 -32% / 買進持有 48%GOOGCRDO:策略 79% / 買進持有 78%2330:策略 4% / 買進持有 58%233000713:策略 21% / 買進持有 21%2308:策略 76% / 買進持有 76%2301:策略 -37% / 買進持有 36%MU:策略 -27% / 買進持有 83%MUAMAT:策略 55% / 買進持有 60%VST:策略 5% / 買進持有 75%LITE:策略 111% / 買進持有 112%6770:策略 13% / 買進持有 14%BRK-B:策略 16% / 買進持有 16%TSLA:策略 33% / 買進持有 40%TSM:策略 69% / 買進持有 69%QQQ:策略 32% / 買進持有 31%CEG:策略 23% / 買進持有 43%COHR:策略 121% / 買進持有 87%COHR1815:策略 81% / 買進持有 81%LRCX:策略 -28% / 買進持有 75%LRCXTER:策略 44% / 買進持有 59%2883:策略 17% / 買進持有 17%6282:策略 -9% / 買進持有 8%WDC:策略 105% / 買進持有 105%2360:策略 94% / 買進持有 95%NVDA:策略 122% / 買進持有 121%NVDAVRT:策略 156% / 買進持有 163%CSCO:策略 6% / 買進持有 24%AVGO:策略 78% / 買進持有 80%2344:策略 43% / 買進持有 62%2317:策略 36% / 買進持有 35%8081:策略 34% / 買進持有 28%2929:策略 19% / 買進持有 -27%2929GLD:策略 25% / 買進持有 25%JPM:策略 33% / 買進持有 34%2207:策略 2% / 買進持有 2%買進持有 年化報酬 →RL 策略 年化報酬 →
贏買進持有差不多(±0.5%)輸給買進持有
8支贏過買進持有
13支幾乎打平(多半是一直持有,等於沒做事)
21支輸給買進持有
年化報酬中位數:策略 32%,買進持有 46%。
輸最多的是美光、科林研發、Google、台積電:都是大漲股。AI 在中途判斷「該下車」,結果錯過了後面的漲幅。

另有 9 支的基準資料檢查後發現有誤(多支股票的大盤報酬完全相同),所以不列入統計。

04 · 學到的事

所以我改了它的工作

改角色

從「選股」變成「警報」

預設一律持有,只有三個 Agent 同時喊賣才出場。它不再負責賺錢,而是負責提醒「現在要小心」,目的是少做錯誤的下車。

先驗證再相信

訓練分數好看不算數

台積電三個 Agent 在訓練報告上年化 25–38%,樣本外實考只有 3.9%,同期買進持有是 58%。只有拿沒看過的資料考試,才看得出真實能力。

查資料

數字太整齊就要懷疑

9 支股票的大盤基準一模一樣,代表那批資料抓錯了。沒有逐筆檢查的話,這些假數字會讓結果看起來更好。

AI 負責的

  • 寫資料管線、特徵工程與訓練程式
  • 大量試錯:調超參數、自動重訓
  • 每天的推論與早報排版

我負責的

  • 決定三個時間尺度與 VIX 加權規則
  • 設計樣本外驗證、判讀結果
  • 看到輸給大盤後,決定改成「持有+過濾」