YinOnMars Prediction Experiment #29 : Multi-Model AI Fusion Stock Forecast with QQCDR Engine
AI 股票預測實驗系列第 29 篇,記錄我透過人機協作開發的 QQCDR AI Engine 所產生的預測結果。系統並非單一模型,而是採用 LightGBM(技術分析)、XGBoost(籌碼/總經分析) 與 LLM(新聞事件分析) 三大專家模型,並目標Meta-Learner 多模型融合(Blending)架構 計算最終預測勝率。本次實驗針對 台積電(2330)、聯電(2303) 與 日月光投控(3711) 進行預測,並於收盤後進行實際結果驗證,以持續優化整體模型表現。
「目前系統進入資料累積階段,每天收盤後執行backfill_results.py 回填實際結果,累積滿足夠資料後將升級為 Meta-Learner 多模型融合架構,讓系統自己學習三個專家的最佳權重組合,與還需要修改。在此之前,系統預測結果僅供參考,不建議直接作為買賣依據。」
投資有風險,這裡只是實驗系統的分享。
預測都會公開驗證,讓大家一起追蹤 AI 的長期表現…
2330 台積電 (台股)
| 股票 | AI預測 | 預測 | 預估價格 |
|---|---|---|---|
| 2330 台積電 | 上漲 49.8% 下跌 50.2% | 🟠 保守觀望 | 2187.80 ~ 2212.20 |
| 操作 | 技術 | 籌碼/景氣 | 事件 |
|---|---|---|---|
| 🚫大盤硬斷路器 | 55.3 | 97.0 | 16.7 |
2303 聯電 (台股)
| 股票 | AI預測 | 預測 | 預估價格 |
|---|---|---|---|
| 2303 聯電 | 上漲 58.7% 下跌 41.3% | 🟡 觀察候補 | 112.75 ~ 115.32 |
| 操作 | 技術 | 籌碼/景氣 | 事件 |
|---|---|---|---|
| 🚫大盤硬斷路器 | 76.5 | 90.0 | 0.0 |
3711 日月光投控 (台股)
| 股票 | AI預測 | 預測 | 預估價格 |
|---|---|---|---|
| 3711 日月光投控 | 上漲 59.4% 下跌 40.6% | 🟡 觀察候補 | 548.66~548.90 |
| 操作 | 技術 | 籌碼/景氣 | 事件 |
|---|---|---|---|
| 🚫大盤硬斷路器 | 76.5 | 97.0 | 0.0 |
修改後台股收盤檢討
這次花了大約一整天的時間,從一開始只是想調 Event_Score 的權重,結果一路往下挖,發現真正的問題完全不在表面上看到的那些分數,而是藏在更底層的驗證邏輯裡。整理一下這趟debug的脈絡:
問題不是模型不準,是尺子本身是歪的。 最先發現 daily_scanner.py 的連買天數只要轉賣就直接歸零,完全沒有記錄「連續賣超」這件事,導致籌碼分數結構性只會偏高。修完以為告一段落,結果往下追才發現更根本的問題:系統標記為 Return_30D 的欄位,實際算的其實是「隔天」報酬,跟訓練模型用的標籤(後來也發現同樣是隔天定義)雖然彼此一致,但跟直覺上「30天」的預期完全對不上。更嚴重的是,不管用隔天還是30天,拿系統算出來的絕對報酬去判斷「準不準」,從頭到尾都沒有扣掉大盤同期的漲跌——大盤這段期間剛好重挫將近8%,任何做多策略的絕對報酬看起來都會很難看,這跟系統本身有沒有選股能力是兩件事,卻被混在一起判讀了好幾輪。
每修一層,就會冒出下一層。 把標籤天期從隔天改成20個交易日、把回填邏輯跟大盤基準都對齊到同一套時間尺度、把超額報酬正式整合進系統的日常報告——這三件事做完之後,US模型的AUC從原本幾乎等於瞎猜的0.51,穩定提升到0.57~0.58,這是這次debug裡少數可以百分之百確定「真的變好」的部分。但同一時間,扣除大盤後的分箱校準表(分數越高、命中率該越高)依然呈現扁平甚至微幅下滑的狀態,代表AI_Prob目前的排序鑑別力還是不足,這件事沒有因為修好時間尺度和大盤污染就自動解決,需要更長時間、涵蓋不同市場狀況的資料才能確認到底是哪個環節在拖累。
這次貼的即時畫面,算是意外的驗收。 這是超額報酬校準邏輯整合進系統後,第一次在正式介面上看到「歷史同分區間命中率50.7%、N=806」這種提示同步顯示出來,代表修改真的落地生效了,不只是我這邊測試時能跑,主程式介面上也拿得到正確的數字。另外也意外看到「大盤硬斷路器」在這種重挫盤面下確實有正常啟動、強制關閉買入建議,這算是系統原本就設計好、這次沒有動到但驗證了依然運作正常的一道防線。事件專家(LLM)在這幾檔个股上給出明顯偏空的分數(16.7、0.0、0.0),也跟之前發現的「LLM 98%都判偏多」不完全矛盾——比較合理的解釋是:平常大部分候選股新聞面平淡、LLM預設偏正面,但在真正劇烈的下跌事件(台積電AI泡沫疑慮、聯電法說會前跌停)發生時,LLM確實能正確抓到明確的利空,只是這種「有把握判斷」的比例目前偏低,多數時間仍是偏態的雜訊居多。
目前能做的修正大致做完了,剩下的是時間問題。 接下來不會再做大動作的架構調整,而是讓系統照常運作、持續累積回填資料,等資料涵蓋到不只是這一波重挫、也有盤整和上漲階段之後,再回頭看分箱校準表會不會隨資料量增加而改善,那時候才是真正該決定要不要調整融合權重或砍掉哪個分量的時間點。
台積電 TSM (美股)
| 股票 | AI預測 | 預測 | 預估價格 |
|---|---|---|---|
| TSM | 上漲 38.9% 下跌 61.1% | 🔴 看空 | 355.19~366.88 |
| 操作 | 技術 | 籌碼/景氣 | 事件 |
|---|---|---|---|
| 🚫大盤硬斷路器 | 48.9 | 22.0 | 16.7 |
聯電 UMC (美股)
| 股票 | AI預測 | 預測 | 預估價格 |
|---|---|---|---|
| UMC | 上漲 51.5% 下跌 48.5% | 🟠 保守觀望 | 16.79 ~ 17.43 |
| 操作 | 技術 | 籌碼/景氣 | 事件 |
|---|---|---|---|
| 🚫大盤硬斷路器 | 57.9 | 22.0 | 83.3 |
日月光投控 ASX (美股)
| 股票 | AI預測 | 預測 | 預估價格 |
|---|---|---|---|
| ASX | 上漲 54.6% 下跌 45.4% | 🟠 保守觀望 | 30.55 ~ 31.69 |
| 操作 | 技術 | 籌碼/景氣 | 事件 |
|---|---|---|---|
| 🚫大盤硬斷路器 | 55.0 | 22.0 | 83.3 |
台美股收盤檢討
台美股系統大檢修檢討 (07-28)
系統大調整背景
花了整天時間從調整事件分數權重開始挖,結果發現真正的問題根本不在表面上看到的那些分數,而是藏在更底層的驗證邏輯裡——尺子本身是歪的,不是秤的問題。
(1) 今日結果
台股三檔:台積電(2330)跌 2.98% 收 2280、聯發科(2303)跌 9.92% 收 113.5、日月光(3711)跌 8.88% 收 554,全部方向錯。美股三檔:TSM 跌 1.70% 收 392.31、UMC 跌 9.01% 收 17.36、ASX 跌 7.17% 收 33.93,也全部方向錯。三檔都有「硬斷路器啟動」警示,卻還是被推薦,整個系統在這波重挫盤面下根本失效。
(2) 發現的根本問題
問題 1:籌碼分數結構性偏高
daily_scanner.py 的連買天數邏輯只要一轉賣就歸零,根本沒有記錄「連續賣超」這件事。導致籌碼分數永遠只會看「連買」不會看「連賣」,結構性就會偏多、分數偏高。這解釋了為什麼 2303 跟 3711 的籌碼分明明都是 90~97 分「資金匯聚」,結果實際內盤 76%、成交量砍 32%。——已修正:現在會同時記錄連賣超的天數。
問題 2:Return_30D 的標籤定義根本是錯的
系統標記為「Return_30D」的欄位,實際上算的是「隔天」報酬,不是 30 天報酬。跟訓練模型用的標籤雖然彼此一致,但完全對不上直覺上「30 天預測」的預期。導致所有的「預測準度」都是在評估隔天報酬,不是真正的 30 天。——已修正:把標籤天期從隔天改成 20 個交易日。
問題 3:大盤污染——根本沒有扣掉大盤漲跌
最嚴重的問題:用系統算出來的絕對報酬去判斷「準不準」,從頭到尾都沒有扣掉大盤同期的漲跌。大盤這段期間重挫近 8%,任何做多策略的絕對報酬看起來都會很難看,但這不代表系統沒有選股能力——只是被大盤拖累了。我們把「系統有沒有選股能力」跟「大盤漲跌」混在一起判讀好幾輪,導致所有的評估都是歪的。——已修正:把回填邏輯跟大盤基準對齊到同一套時間尺度,正式整合超額報酬進系統日常報告。
(3) 修改後的成果驗證 AUC 從 0.51 提升到 0.57~0.58
US 模型的 AUC(模型鑑別力)從「幾乎等於瞎猜的 0.51」穩定提升到 0.57~0.58。這是這次 debug 裡唯一可以百分之百確定「真的變好」的部分。雖然幅度不大,但方向是對的。
超額報酬校準邏輯正式上線
這次貼的即時畫面就是驗收:第一次在正式介面上看到「歷史同分區間命中率 50.7%、N=806」這種提示同步顯示,代表修改真的落地生效了,不只是測試環境能跑。
硬斷路器依然正常運作
在這種重挫盤面下確實有正常啟動、強制關閉買入建議,這是系統原本就設計好、這次沒有動到但驗證了依然運作正常的一道防線。三檔都有「🔴 大盤硬斷路器啟動」是因為系統確實抓到了風險。
(4) 各專家現狀評估
籌碼分(已修正,但仍需觀察)
修了連賣超的記錄邏輯,但現在的問題是資料回填才做完,需要等後續新資料進來才能看到修正有沒有真的降低籌碼分的偏多傾向。目前還不能確定籌碼分會不會真的變準。
技術分(LightGBM):50 多分盤整
三檔都是盤整判斷卻全部方向錯,但這個不是今天特別失準,是本來就在這個水位。需要等資料涵蓋更多市場狀況才能判斷。
LLM 事件專家:有進展但仍有偏態
之前發現「LLM 98% 都判偏多」,現在看到 UMC 給 0.0 分「偏空」、TSM 給 16.7 分、ASX 給 16.7 分,看起來改善了。解釋是:平常候選股新聞面平淡、LLM 預設偏正面,但在真正劇烈的下跌事件(台積電 AI 泡沫疑慮、聯電法說會前跌停)發生時,LLM 確實能正確抓到明確的利空。只是這種「有把握判斷」的比例目前還是偏低,多數時間仍是雜訊居多。
Macro 景氣趨勢:34.2 分資金渙散(正常)
三檔都是 34.2 分「資金渙散」,這是對的,代表系統有抓到市況。但這個訊號沒有被綜合勝率重視,被其他分數淡化。
(5) 還沒解決的問題
分箱校準表依然扁平
扣除大盤後的分箱校準表(分數越高、命中率該越高)依然呈現扁平甚至微幅下滑的狀態,代表 AI_Prob 目前的排序鑑別力還是不足。這件事沒有因為修好時間尺度和大盤污染就自動解決。
原因:需要更長時間、涵蓋不同市場狀況的資料才能確認到底是哪個環節在拖累。現在才累積 806~959 筆同分區間的資料,還不夠判斷。
(6) 今日發現 & 系統驗證
大盤硬斷路器確實有在工作
三檔都有啟動警示,代表系統的風險管理機制沒有問題。問題是這個警示沒有強制否決綜合勝率,散戶看到「硬斷路器啟動」卻還有「多方優勢 → 觀察候補」,會很困惑。
LLM 在劇烈下跌時有把握,平時是雜訊
UMC 的 LLM 判斷對了(0.0 分偏空、情緒分 -3),但在平常新聞平淡的時候 LLM 就是在尋常判偏多。這不是 LLM 爛,而是訓練資料的偏態問題。
系統自己也在進化
這次修改正式上線後,系統開始提示「超額報酬校準」的數據,這代表系統現在可以正確評估自己在大盤下跌環境下的真實表現,而不是被絕對報酬混淆。
(7) 接下來的修改方向
不會再做大動作架構調整
工程面的地基修正大致做完了,再改架構只會又挖出新問題。剩下的是時間問題。
持續累積回填資料
接下來讓系統照常運作,持續累積回填資料。等資料涵蓋到不只是這一波重挫、也有盤整和上漲階段之後,再回頭看分箱校準表會不會隨資料量增加而改善。
等資料夠了再決定融合權重
那時候才是真正該決定要不要調整融合權重或砍掉哪個分量的時間點。現在調整權重就是在賭,因為分箱校準表還沒穩定。
硬斷路器的優先權需要提高
雖然沒有重新架構,但要把「硬斷路器啟動 = 直接禁止買入訊號」這個邏輯寫死,不要讓綜合勝率還有迴旋空間。
(8) 信心等級 🟡 有進展但還不夠格。
現況:
- AUC 從 0.51 提升到 0.57~0.58 ✅ 方向對
- 超額報酬邏輯上線 ✅ 架構對
- 硬斷路器正常運作 ✅ 風控對
- 但分箱校準表仍扁平 ❌ 鑑別力還不夠
為什麼還不夠格:
- 歷史命中率 29%~48%(台股)、44.8%~51.1%(美股),都還在 50% 上下
- 這次三檔全部方向錯,是修改後第一次驗收,樣本太少不能下結論
- 分箱校準表沒有改善,代表即使修了底層邏輯,鑑別力的問題還沒解決
下一個關鍵點: 等資料涵蓋到 1500~2000 筆同分區間、包含盤整跟上漲階段的資料後,再看分箱校準表有沒有改善。如果有改善,代表系統真的變準了;如果還是扁平,代表需要換思路調整融合邏輯。
明天行動:
目前把校正回歸結果的準確率報告從「絕對報酬」改成「超額報酬(扣除0050大盤同期表現)」計算,避免大盤漲跌污染判斷,之後系統自動產生的報告就是乾淨版本,不用再手動另外跑驗證腳本。清除舊資料重新訓練與回填…驗證幾天看結果。
- 暫停對綜合勝率的解讀,因為底層邏輯剛改,不穩定
- 繼續看籌碼分、LLM、Macro 各個分量有沒有改善
- 讓硬斷路器繼續保護,不要聽綜合勝率買進

發表迴響