準準準系統誕生過程

Curved computer monitor showing a stock prediction dashboard for Apple with charts and forecast data

Building an AI-Assisted Stock Prediction System

「我要的是能賺錢的預測,不然做系統幹嘛?」

從過度相信 AI,到理解資料、濾網
與模型比「會講話」更重要

做這套系統時,想法其實很直接。

既然要做股票預測系統,當然希望它能提供有用的判斷,而不是只產生一堆看起來很專業、實際上無法行動的分析文字。

最常對協作 AI 說的一句話是:

「如果不能幫助判斷,做這個系統到底要做什麼?」

但開發過程很快就發現,真正困難的從來不是叫 AI 寫出一個看似完整的分析頁面,也不是讓模型生成買進、賣出或觀望的建議。

困難的是,系統裡的資料到底是不是真實的、是不是即時的、是不是完整的,以及每一個判斷背後是否有合理的條件。

早期版本曾經過度相信 AI。

以為只要模型夠強、提示詞寫得夠詳細、系統裡加入更多指標,預測自然就會變準。但幾次失敗後才慢慢理解,AI 最危險的地方,不一定是它不知道答案,而是它可能在資料不足、資料錯誤或條件不完整時,仍然給出一段聽起來很有道理的答案。

這也是許多 AI 工具常見的現實。

系統通常會提醒「AI 可能出錯」,但真正的問題是:如果資料來源、資料時間、篩選邏輯與模型條件沒有設計好,再流暢的介面、再漂亮的結論,都只是把不可靠的資訊包裝得更像答案。

因此,這套系統的方向開始改變。

它不再追求讓 AI 看起來像一位無所不知的投資專家,而是嘗試建立一個能整合真實市場資料、過濾明顯風險、整理訊號並協助判斷的分析系統。

目前這個版本暫時稱為「準準準 7.0」本來是想用散戶AI股票預測…但不夠呼口號感 哈。

它不是保證獲利的工具,也不應被視為投資建議。市場本來就充滿不確定性,再完整的模型也可能失準。

但這個系統希望做到一件更實際的事:

把雜訊減少,把資訊整理清楚,讓判斷不只建立在感覺上。

AI預測個股漲跌的實際準確率約在 52% ~ 57% 之間(接近隨機猜測)

散戶AI股票預測真正要準,不能只靠 AI,必須串聯真實資料

早期系統雖然可以生成分析,但資料來源常常不夠完整。

有些數據是暫存資料,有些是測試資料,有些指標甚至被寫死在程式中。這種做法可以用來驗證介面和流程,但無法用來做真正的市場分析。

因為股票市場的變化不是固定的。

成交量、法人動向、融資融券、借券變化、營收、獲利、新聞情緒與題材熱度,都會隨時間改變。只要其中一個關鍵資料失真,後面的模型與結論就可能一起偏掉。

因此,這版系統開始整合較完整的分析維度,包括:

  • 爆量倍數
  • 成交量與流動性
  • 外資買賣超
  • 投信買賣超
  • 自營商買賣超
  • 法人連續買賣天數
  • 融資融券變化
  • 借券賣出異常
  • EPS
  • 本益比
  • 營收成長
  • 新聞情緒分數
  • 市場題材與關鍵字
  • 單日漲跌幅與乖離風險

這些資料不會直接保證預測正確,但至少能讓系統避免只根據單一訊號做判斷。

例如,成交量突然放大不一定代表行情啟動;法人買超也不一定代表股價一定上漲;新聞情緒正面,更不代表市場已經反映或未來一定會持續上漲。

真正重要的不是找到一個「神奇指標」,而是理解不同資料之間的關係,以及哪些條件需要被排除。

開發過程踩過的幾個大坑

這套系統從初期版本走到現在,過程中遇到的問題其實很典型。

有些是資料工程問題,有些是金融資料本身的時間差,有些則是程式邏輯與系統效能問題。

也正是這些錯誤,讓系統從一個看起來很會分析的 Demo,慢慢變成比較接近可用工具的樣子。

API 時間差造成的「消失籌碼」

系統初期最困擾的問題,是盤中掃描時,外資、投信、自營商與融資券等資料會突然全部變成 0。

第一時間很容易以為 API 壞掉、程式抓錯欄位,或資料來源中斷。

後來才發現,問題不在程式,而在資料更新時間。

台灣證交所不同資料的更新時間並不一致。例如,三大法人買賣超資料通常需要等盤後一段時間才會完整更新,融資融券相關資料也可能更晚才公布。

如果系統在資料尚未更新時直接抓取當日數字,就會把空白資料誤判為 0。

這會造成很嚴重的問題。

原本外資連續買超的股票,可能突然被系統判定為法人完全沒有動作;原本融資異常增加的標的,也可能因資料尚未公布而被錯誤排除。

後來加入了資料時間判斷機制。

當日資料尚未到達合理更新時間時,系統不直接使用空值,而是自動回溯前一個已完成結算的交易日資料,同時保留資料日期,避免使用者誤以為那是即時資訊。

這個改動看起來很小,但它讓整個資料層更可靠。

資料沒有更新,不代表數值為零。

這是金融資料系統中非常重要的基本原則。

冷門股的假爆量陷阱

爆量通常被視為市場關注度提升的訊號。

但系統一開始只看「今天成交量是過去平均成交量的幾倍」,很快就遇到一個問題。

一檔平常只成交 5 張的股票,今天成交 15 張,系統會判定它出現 3 倍爆量。

從數學上來看沒有錯。

但從市場流動性來看,這種訊號幾乎沒有意義。

成交量太低的標的,容易出現買賣價差大、成交不連續、價格容易被少量交易影響等問題。即使系統找到看似高倍數爆量,也不代表一般交易者能在合理價格下進出。

因此,系統後來加入流動性底線。

單日成交量未達一定門檻的股票,不再進入主要爆量排行與高優先分析清單。以目前設定來說,低於 500 張成交量,也就是約 500,000 股的標的,會被排除或標示為低流動性風險。

這並不代表低成交量股票一定沒有機會。

而是代表它們不適合被當成一般化的交易訊號,更不適合因為「爆量倍數漂亮」就直接被推到排行榜前面。

系統需要的不只是找到異常數字,而是判斷這個異常是否有市場意義。

全市場掃描帶來的效能問題

一開始的想法很理想。

既然系統可以抓資料,那就把市場上所有股票都掃過一次,找出最值得注意的標的。

但實際執行後才發現,當系統同時處理大量股票的歷史成交量、法人資料、基本面資料、新聞內容與情緒分析時,運算時間會迅速拉長。

如果再把每一檔股票都送進大型語言模型進行新聞摘要與情緒判讀,系統不只會變慢,也可能遇到 API 額度、成本與回應不穩定等問題。

因此,後來改成分層篩選。

第一層先用較快、成本較低的規則處理,例如:

  • 成交量是否達到最低門檻
  • 是否出現異常爆量
  • 是否有法人明顯買賣超
  • 是否有融資、借券或價格異常
  • 基本面是否存在明顯風險

通過第一層篩選後,再針對排名較前面的標的做更深入分析,例如新聞情緒、題材整理與模型預測。

目前主要將深度分析範圍控制在 Top 20 或 Top 30 左右。

這樣做不是因為市場只有 20 或 30 檔股票值得看,而是因為系統需要先把有限的運算資源用在相對有訊號、也相對有流動性的標的上。


準準準 7.0 的四大核心引擎

目前的系統不再只是抓籌碼資料、排序後顯示結果的工具。

整體架構逐漸朝向「資料採集、訊號分析、風險過濾、模型預測」四個層次發展。

全自動資料採集引擎

系統首先需要一個能穩定處理不同來源資料的基礎層。

目前整合的來源包括:

  • 台灣證券交易所盤後資料
  • Yahoo Finance 與 yfinance 市場資料
  • Google News RSS 新聞來源
  • 個股財務與估值資料
  • 法人買賣超與籌碼變化資料
  • 融資融券與借券相關資料

這一層的工作不只是把 API 串起來。

還需要處理資料格式差異、交易日判斷、更新時間、空值、重複資料、股票代碼對應與來源錯誤。

資料層沒有處理好,後面的模型再複雜也沒有意義。

AI 情緒與市場共識分析引擎

市場新聞與題材很難完全用傳統數字描述。

同一家公司可能因為獲利成長、接到新訂單、法說會內容、產業政策、供應鏈事件或市場傳言而受到關注。這些資訊通常散落在大量新聞、公告與討論內容中。

系統目前使用大型語言模型協助進行新聞摘要與初步情緒判讀。

透過 Llama 3.3 70B 等模型,將新聞內容整理成較短的重點,並嘗試給出 -3 到 +3 的市場情緒分數。

  • -3 代表明顯負面或高風險訊號
  • 0 代表資訊中性、影響不明或市場反應有限
  • +3 代表較明顯的正面訊號或市場關注度提升

這個分數不是預測股價的答案。

它比較像是把原本難以量化的新聞面資訊,轉成可以與成交量、籌碼、基本面和技術指標一起比較的特徵。

大型語言模型在這裡的角色,不是當投資顧問。

它更像是一個快速整理大量文字資訊的研究助手。

新聞內容仍可能有偏誤、延遲、重複或誤導性,因此情緒分數不應單獨使用,而必須搭配其他資料一起判斷。

防雷濾網與風險排除機制

系統發展過程中,一個很重要的理解是:

高勝率訊號不一定等於可交易訊號。

有些標的可能因為資料條件看起來很漂亮而被模型挑中,但實際上流動性太低、基本面風險過高、短期漲幅過大,或籌碼結構不穩定。

因此,系統加入了一系列防雷條件。

流動性過濾

成交量不足的股票,即使出現高倍數爆量,也可能只是少量成交造成的統計現象。

系統會排除或降低低流動性標的的優先度,避免排行榜被冷門股票占據。

基本面風險檢查

系統會參考 EPS 與本益比等基本面資訊。

當公司處於虧損狀態,或估值明顯偏高時,系統不會直接判定不能交易,但會降低預測分數,並顯示風險提醒。

  • EPS 小於 0
  • 本益比高於設定門檻
  • 營收或獲利趨勢明顯惡化
  • 基本面資料缺失或過期

這些條件不代表股價一定下跌。

市場上也存在高成長、高估值或短期轉機型公司。但若系統要提供較保守的分析,這些風險不應被忽略。

過熱與乖離保護

單日急漲的股票常常吸引注意力,但也可能伴隨短線獲利了結、波動放大與追高風險。

系統因此加入價格乖離與單日漲跌幅的冷卻機制。

當股價在短時間內出現過大漲幅,系統會降低追價型訊號的分數,提醒市場可能已經提前反映部分利多。

這不是判定股票不能再漲。

而是避免系統只因為看到大量正面訊號,就忽略短期風險。

動態量化預測模型

系統目前以 XGBoost Pipeline 作為其中一個主要預測架構。

XGBoost 適合處理多種結構化特徵,例如成交量變化、法人買賣超、價格波動、基本面數據、新聞情緒與市場狀態。

輸入特徵可能包括:

  • 爆量倍數
  • 成交量與流動性
  • 法人連續買賣天數
  • 外資、投信、自營商買賣超
  • 融資融券變化
  • 借券賣出異常
  • 單日漲跌幅
  • 技術乖離
  • EPS 與本益比
  • 營收成長
  • 新聞情緒分數
  • 題材與產業關聯性

模型的目的,不是宣稱能預知市場,比較合理的定位是:根據過去資料與目前條件,估計某些市場情境下出現特定結果的相對機率,並協助將標的排序。

不同市場的結構不完全相同,因此系統也嘗試採用不同權重,台股較容易受到法人籌碼、投信作帳、產業題材與本地市場結構影響;美股則可能更受到財報、產業趨勢、政策、宏觀數據與國際新聞情緒影響。

因此,不適合用完全相同的固定公式處理所有市場,目前系統會依市場特性調整資料權重,但這些權重仍需要持續回測、觀察與修正。

系統目前提供的幾種分析視角

除了預測分數外,系統也提供幾種不同用途的資訊整理方式。

高優先觀察清單

系統會根據流動性、基本面、籌碼、價格狀態與模型訊號,整理出相對值得進一步研究的標的。

台股與美股採用不同的評分與篩選門檻,避免因市場特性不同而使用不適合的單一標準。

這份清單的意義不是「保證會上漲」。

比較合理的使用方式,是將它視為研究起點,進一步檢查公司基本面、新聞內容、技術位置、財報、產業狀況與個人風險承受能力。

爆量排行

爆量排行用來找出成交量明顯高於平常水準的股票。

但系統不只看爆量倍數,也會搭配成交量絕對值、法人動向與價格波動,避免低流動性股票因為少量交易而產生假訊號。

三大法人排行

透過外資、投信與自營商的買賣超資料,可以觀察資金是否集中在特定股票、產業或題材。

但法人買賣超不是單純的買進訊號。

不同法人有不同交易目的,有些可能是避險、套利、指數調整或短期部位調整。因此,系統將法人資料視為重要參考,而不是單一結論。

融資與借券風險提醒

當融資快速增加、法人沒有同步支持,或借券賣出異常升高時,市場波動風險可能提高。

系統會將這些條件標示為風險提醒,協助使用者在市場情緒高漲時,仍保留對槓桿與籌碼結構的注意。

曾經嘗試過 AI 模擬股市專家開會,但最後砍掉了

系統開發過程中,曾經做過一個很有趣的實驗。

當時設定了不同角色的 AI 專家,模擬分析師、技術派、基本面研究員、籌碼研究員與風險控管角色,讓它們針對市場方向與個股訊號進行討論。

一開始看起來很有意思,每個角色都有不同觀點,也會互相提出質疑。整個畫面很像一場小型投資會議。

但幾次模擬後,發現它沒有真正帶來更好的結果,原因很簡單…AI 角色雖然可以生成不同立場的論點,但它們仍然依賴相近的資料、相似的語言模式與既有規則。表面上是在辯論,實際上常常只是把同一批資訊用不同語氣重複說一次。

而且,模擬出來的「專家會議」容易變得過度保守,當市場條件稍微不明確,結論往往落在「降低曝險、等待確認、停損、保留現金」這一類標準建議。

這些建議並不一定錯,但它們沒有解決最重要的問題

  • 哪些資料真的值得關注?
  • 哪些條件讓風險提高?
  • 哪些訊號只是雜訊?
  • 什麼時候應該重新檢查原本的假設?

比起讓一群 AI 專家進行看似專業的辯論,更重要的是把資料、規則、濾網與模型做好。因此,這個功能最後被拿掉,系統重新回到比較單純的核心…

  • 真實資料
  • 合理清洗
  • 市場濾網
  • 風險提醒
  • 模型排序
  • 人工判斷

簡單,不代表粗糙,有時候,拿掉看起來很厲害、實際上沒有增加判斷品質的功能,反而才是系統開始成熟的時候。

讓數據說話,讓 AI 協助整理,而不是替人承諾結果

開發這套系統的初衷,不是做出一個永遠正確的預測工具。

市場沒有任何系統能保證獲利,也不應相信任何宣稱能穩定預知漲跌的模型。

這套系統真正想處理的,是資訊過載與判斷混亂。

當市場上同時存在大量新聞、技術線圖、法人資料、基本面數字、社群討論與不同說法時,最需要的不是更多意見,而是更清楚的資料結構與風險條件。

「準準準 7.0」這散戶AI股票預測目前仍在持續調整。

模型權重、資料來源、篩選門檻、新聞情緒判讀與市場規則,都還需要不斷回測與修正。系統不是終點,而是一個讓資料更容易被整理、讓假設更容易被驗證的工具。

AI 可以協助處理大量資料、整理資訊與發現可能被忽略的訊號,但最後的投資決策,仍必須考慮個人的資金配置、風險承受能力、投資週期與停損紀律。

真正值得持續優化的,不是讓 AI 講得更像專家。

而是讓系統在面對真實資料、時間差、雜訊與市場風險時,仍然能提供更清楚、更誠實、更有邏輯的分析。

本文僅分享系統開發與資料分析經驗,不構成任何投資建議、買賣推薦或獲利保證。金融市場具有風險,任何投資決策應自行評估並承擔風險。

散戶AI股票預測畫面截圖

更多文章…
AI 股票預測實驗 Day 1|AI 多模型融合預測
AI 股票預測實驗 Day 2|AI 多模型融合預測
預測實驗室


探索更多來自 YinOnMars | 產品火星人 的內容

訂閱即可透過電子郵件收到最新文章。

發佈留言

探索更多來自 YinOnMars | 產品火星人 的內容

立即訂閱即可持續閱讀,還能取得所有封存文章。

繼續閱讀