GOOD FORTUNE

仅限自用

赛马算法训练

① 上傳截圖自動辨識

不用選類型,直接傳圖即可 —— 模型會自己判斷這是排位表、 賠率表還是矩陣。一張圖裡並排放著連贏 QIN 和位置Q QPL 時會同時讀出來, 不必分兩次上傳。認錯了再用下拉手動指定。
矩陣只讓模型逐行讀出數字,配對關係由程式的三角解析器算 —— 模型讀數字很強、推理「第幾個數字對應哪個組合」很弱,而後者是純結構問題。
讀完自動用彩池恆等式校驗(WIN/QIN 約 1.2121、PLA/QPL 約 3.6364), 數字讀錯了這個和幾乎不可能還對得上。 辨識結果一律先填進下面的表格供你核對,不會直接拿去計算。
截圖會上傳到 Google 伺服器;需先在「模型」頁設定 Gemini API Key。

② 場次設定 —— 上傳截圖時會自動讀取,認錯了在這裡改

③ 彩池矩陣 + 手動文字輸入

認得馬會的三角矩陣布局 —— 每行同時裝了左右兩個三角, 14 匹馬合計 91 個組合會全部讀進來。有了這兩個矩陣,折扣指數 λ₁ / λ₂ 會由 本場數據反解,而不是套用文獻常數;留空則降級為文獻值並發出告警。

④ 排位表與賠率 —— 計算前請逐行核對

馬號馬名騎師WINPLA 評分評分變動帳面負磅減磅檔位 近六仗 退出名次
近六仗填最近一仗在前,例 1/2/3/5/7/7。 減磅是見習騎師的磅數,會自動換算成實際負磅。手動運算只做臨時備用, 不寫數據庫;賽果由程序在賽後自動回填。

⑤ 資料齊備度

按「計算」只算不存,結果不寫數據庫;「暫存草稿」只存到草稿列表,之後可重新載入繼續。
2026-09-07:原先的「基本面信任係數」滑桿已移除。464 場實測顯示它 單調有害 —— 每調高一檔結果都更差(0.35 時前三名口徑損失 0.0245,統計顯著), 現固定為 0,即夺冠概率直接採用彩池共識。

AI 獨立參考意見

把這場的排位表+賠率數據發給 AI(gemini-pro-latest),讓它自己判斷前三名並給理由。 完全獨立、僅供參考——不進任何計算鏈路,不影響上面「市場前三」這個實際採用的運算結果, 也不代表它比排位表/市場更準(這次會話的結論是:同樣的數據,AI 不太可能比嚴謹擬合過的統計權重 多看出什麼,純粹當一個額外的意見聽聽)。

歷史場次 

只讀。賽果由程序在賽後自動回填,這些就是訓練數據;「載入」只會把內容帶到手動運算頁當參考,不會回寫。
日期場地途程賽事成績更新時間

當前模型

訓練不等於採用:訓完先做時間序列回測,只有「前三名對市場的改進」 其 95% 信賴下界為正才會換上新模型 —— 只要求「改進>0」會把噪聲當模型採用。
464 場首次實測:六個基本面因子的係數全部塌向 0,前三名改進 +0.0076、標準誤 0.0109、95% 區間 [−0.0137, +0.0159] 橫跨 0,判定為噪聲、未採用, 當時估計約需 350 場才能看出這個量級的改進是否顯著。
2026-09-08 用 1642 場複測,這個估計被推翻:樣本大了十幾倍,改進不是「還不顯著」 而是變成負的——基本面因子在這批數據上打不過賠率,不是樣本不夠,是信號本身不在 那裡。store.list_models() 至今仍是 0 筆,這顆按鈕點了大概率還是「未採用」, 但機制留著——萬一哪天信號真的出現,回測門檻會接住它。

Gemini 截圖辨識設定

Key 存在本機 SQLite,只有登入後才能使用,頁面上不會回顯完整內容。 到 Google AI Studio 申請即可,有免費額度;一個賽馬日約 30 張圖,用量很小。

xAI(Grok)自動運算推薦設定

只給「自動中控」頁的「本場推薦」用,賠率一抓完自動叫一次,跟市場前四/ 田忌前四完全獨立、不影響它們的計算結果;跟上面 Gemini(人工運算頁「問問AI」用)是 兩套完全分開的帳號與設定,互不相依。到 x.ai 申請 API Key 即可。

OpenAI(GPT)自動運算推薦設定

跟上面 xAI 是兩套完全獨立的 AI:各自的 Key、模型、設定,互不讀取。每場開跑前 跟 xAI 同時收到逐字相同的客觀數據(排位表+賠率+組合彩池,不含任何本站計算結果或前四名單), 各自獨立給出前四,互相看不到對方。GPT 失敗只影響 GPT 那一欄。
GPT 與 xAI 另外要求對自己得出的前四做結果交叉驗證(逐一核對入選馬與獨贏/位置/連贏/位置Q/二重彩/三重彩賠率及排位表是否矛盾, 有矛盾重新計算後再給出;當場沒抓到二重彩/三重彩就不列),驗證內容在推薦的 ? 裡;Claude 不加,當對照。模型清單由 OpenAI 即時提供。 到 platform.openai.com 申請 API Key(與 ChatGPT 訂閱分開計費)。

Claude(Anthropic)自動運算推薦設定

第三個獨立 AI:自己的 Key、模型,跟 xAI、GPT 互不讀取。每場開跑前跟它們同時收到 逐字相同的客觀數據(不含任何本站計算結果或前四名單),各自獨立給出前四,互相看不到對方; 不加 GPT/xAI 那段結果交叉驗證要求(當對照組)。Claude 失敗只影響 Claude 那一欄。未設置 Key 或未選模型時不會呼叫、 也不計失敗;統計從第一場有 Claude 結果的賽馬日起算。模型清單由 Anthropic 即時提供。 到 console.anthropic.com 申請 API Key(與 Claude 訂閱分開計費)。

賽後複盤 —— 每一場錯在哪

要回答的不是「有沒有猜中」,而是排位表相對市場是幫了忙還是幫了倒忙。 猜錯但比市場更接近真相,排位表仍有價值;猜對卻比市場更遠離,那只是運氣。
對實際冠軍逐因子拆解,就能看出是哪個因子把牠壓低了 —— 這是把「這場錯了」變成「下次該改哪裡」的唯一途徑。 (2026-09-16:判詞原本用的是「模型」,但線上模型從未訓練成功, 該判詞曾 100% 恆為「與市場一致」;已改用排位表評分,現在會真的隨場次變化)。

A/E 追蹤 —— 「排位表認可」這個功能的看門狗

A/E = 實際發生數 ÷ 按市場賠率算的期望發生數。覆蓋率回答不了這個問題 —— 直接押最熱門就有三成命中率,那是市場的功勞。
A/E > 1 有超出市場的信息;≈ 1 市場早已定價;< 1 市場過度下注。
2026-09-07 改:原先追的是 S1~S7 及其複合條件,464 場實測全部「與市場無異」, 篩選層已整層移除,不再追蹤。現在只追唯一通過檢驗的那一條 —— 排位表認可與否,按市場排名分層。若新數據上這個差距消失,說明該功能該下線。

手動運算排位權重

排位表獨立評分完全不看賠率,只用下面這幾欄。
2026-09-09 用 1640 場 5 折交叉驗證重新擬合定案——早年在 183~788 個 樣本上擬合會把近績學成負係數,那是樣本量撐不住多維估計的產物,不是 「權重不該學」;1640 場量級後五折獨立收斂到同一組正係數,樣本外覆蓋率 比舊版顯著高 +2.74pt(95% 區間 [+0.35,+5.13]pp)。
下面「單獨區分力」「單獨用時冠軍命中」兩欄 2026-09-10 用現在全部 1650 場重算(此前是 465 場、且數據源是一張沒跟著新場次更新的舊表): 近績 0.188 > 騎師 0.102 > 評分變動 0.088 > 檔位 0.023 >> 出賽間隔 0.001——出賽間隔資訊量趨近 0,這也是現行權重把它設成 0% 的依據。
欄位權重單獨區分力單獨用時冠軍命中說明

自動運算排位權重

自動運算線走的是 auto_model.py 裡**另一份獨立的權重表**,跟上面手動線那套 數值不同——「跑法(前置傾向)」這個實驗性因子 2026-09-16 只加到手動線,當時順帶把其餘 幾項重新歸一化,自動線沒有跟上,所以兩邊至今不一致。
兩欄「單獨區分力」「單獨用時冠軍命中」是同一批離線實驗的數字, 兩條線共用,不隨權重變化。
欄位權重單獨區分力單獨用時冠軍命中說明

手動運算市場權重

機率引擎的係數。效用 V = β_mkt × ln q + Σ β_k × x_k,場內 softmax 後得到奪冠機率 ——q 是彩池賠率去水後的市場機率,x_k 是排位表因子的場內標準化值。
非市場因子的先驗一律為 0(2026-09-08 定案):1642 場實測舊先驗把前三名口徑相對市場 拉低 0.0564,逐因子消融沒有一個是正貢獻。這不是刪因子——特徵照算,只是在數據證明它們有用 之前不加權。因此冷啟動時模型嚴格等於市場投注份額。
權重欄顯示的是當前實際在用的值:採用過訓練模型就顯示訓練值,否則顯示先驗值。
因子權重說明

自動運算市場權重

自動線的機率引擎係數。因子定義與手動線各存一份(model.py 與 auto_model.py), 但兩邊讀的是同一個已採用的訓練模型,所以一旦有模型被採用,兩條線會同步。
分開列是為了讓將來真的出現分叉時能一眼看到,而不必去比對兩個原始檔。
因子權重說明

騎師資料表

數據來自 HKJC 官方騎師頁面(非本項目自行統計),本季/上季戰績逐位擷取, 另附「大熱統計」(該騎師策騎大熱門馬的次數與成績)。每位騎師的更新時間見末列, 使用中會自動觸發重抓,服務常駐時每兩天也會巡查一次過期條目。
騎師國籍年齡 本季冠本季亞本季季本季殿 本季出賽本季勝出率 上季冠上季出賽上季勝出率 大熱出賽大熱%大熱勝出%大熱入位% 更新時間

馬匹資料表

只保留目前在役的馬匹(已退役/已取消登記一律不收,2026-09-07 起 每次重新整理都會把新退役的自動篩掉),資料來自 HKJC 官方馬匹頁面的檔案區 (血統/馬主/評分/進口類別)。按評分降序;每匹馬的更新時間見末列, 使用中會自動觸發重抓,服務常駐時每兩天也會巡查一次過期條目。
「前置傾向」來自另一個庫(歷史賽果的沿途走位,非本頁資料): 0~100%,數字越高代表這匹馬歷史上早段越常跑在前面;點左側 ▸ 可展開最近 逐場走位明細。這是排位表評分第 6 維「跑法」用的同一份數據 (2026-09-16 實驗性上線,僅手動運算頁生效)。
馬名出生地毛色/性別 評分冠亞季出賽 前置傾向 練馬師馬主父系母系更新時間

自動中控

全自動閉環:排位表每天自動抓一次(來源馬會,抓不到改用贏跑網),比賽日每場開跑前自動抓賠率、跑運算並請 xAI、GPT、Claude 各出一份獨立前四,賽後自動回填官方賽果入庫。算法程式、排位表權重、資料表都跟「手動中控」頁各自獨立; 共用的只有騎師/馬匹統計,以及「模型」頁「重新訓練」採用的訓練模型(目前沒有採用任何模型)。
載入中…
場次賽事開跑時間(HKT)運算前四信心操作

排位前四

排位表評分(近績/騎師/檔位等,完全不看賠率)選出的前四。每場運算照常計算、照常存庫; 2026-10-25 起自動中控、看板、運行總覽改顯示田忌前四,排位前四統一在這裡查看。 覆蓋=實際前三全部落在這四匹裡;與看板同一口徑,9/23 起計入統計。

SpeedPRO

HKJC 官网 SpeedPRO 原始数据(能量數值/分段時間/跑法評述),每周二、五自动抓取存档;比赛日前每天 12:00 再重抓一次(更新退出馬/後備馬/檔位)。 不参与市场运算,也不发给 AI(backtest 已验证能量數值控制市场赔率/排位表评分后 净区分力趋近于零,详见内部记录);只有田忌排名会用到。

資料庫更新 —— 騎師/馬匹資料

跟下面「自動運算」排程完全獨立,只共用同一批騎師/馬匹資料庫(只讀)。
錄入觸發
已停用(2026-10-03 起手動運算不再保存場次,此觸發點隨之停用,資料更新靠下面的全量巡查)。原規則:每次保存場次,後台刷新該場出現的騎師+馬匹資料(含大熱統計)。 2 秒/請求;同一條記錄 45 分鐘內剛刷過會自動跳過,不重複打官網。
每兩天全量巡查
每兩天一輪,無條件重抓全部騎師+全部馬匹,不按「多久沒更新」篩選(2026-09-17 起從每天改為每兩天:這兩個資料庫目前未接入運算算法,近期實驗顯示候選因子權重≈0,沒必要天天全量重抓)。 10 秒/請求,全量約需 4 小時,後台線程執行,不影響網站使用。
熔斷保護
馬會賽果、騎師/馬匹資料、SpeedPRO 這條抓取線若收到 HTTP 403/429(疑似被限流/拦截), 立即暫停這條線的全部請求 3 小時,冷卻期滿自動恢復,不需要人工介入。 自動中控的馬會排位表、馬會賠率各有自己的熔斷(見下面「自動運算排程」),互不連帶。

自動運算排程

跟「手動中控」頁各自獨立(算法程式、排位表權重、資料表);共用的只有騎師/馬匹統計, 以及「模型」頁「重新訓練」採用的訓練模型(目前沒有採用任何模型)。
排位表
每天一次真實請求,逐場跟庫裡比對,有變化才更新、沒變化保持原樣。
來源是馬會官方排位表頁(一場一頁,請求間隔 ≥ 3 秒);馬會抓不到或頁面認不出就改用贏跑網。 兩邊同一天 140 匹逐欄比對一致。馬會頁面上退出馬的資料會被清空,這時沿用庫裡原來那份、只標退出; 原本沒退出、後來才退出的記為臨場退出。馬會排位表遇 403/429 當天停止、改用贏跑網, 跟下面賽果那條的 3 小時暫停各自獨立。
賠率+運算
每場開跑前 2 分鐘抓一次賠率;抓賠率前先順帶刷新一次這一場排位表 (有變化才更新),運算完自動請 xAI、GPT、Claude 各出一份獨立前四。改期開跑會按新時間重抓。 過了窗口不補——賽後賠率已定格,補一份賽後快照對運算沒有用。
賠率直接向馬會官方抓,一次請求抓齊獨贏、位置、連贏、位置Q、二重彩完整賠率表+三重彩最熱門 20 組 (請求間隔 ≥ 6 秒),六種原樣存庫;前四種照舊進市場/田忌運算,二重彩/三重彩只原封不動發給 AI。 馬會收到任何 HTTP 錯誤當天停止、不重試;馬會抓不到就改向贏跑網抓獨贏、位置、連贏、位置Q (兩邊同一刻的數字逐項一致),那一場就沒有二重彩/三重彩。 自動中控的「抓賠率+運算」按鈕走同一套(同一場 1 分鐘內已向馬會抓過就沿用那份,不重複請求)。
SpeedPRO
每週二、週五查。當天若還是舊一期(新一期常在白天才發布),每小時再查一次, 直到抓到新一期或當天結束;抓到後自動整理進分析附表。
另外,當期的比賽日還沒過,每天 12:00 強制重抓一次(失敗每小時重試)——馬會發布後會刪掉退出馬、 補上後備馬、重排檔位,田忌排名要用最新名單。不參與市場/AI 運算。
賽果
每 60 秒檢查一次;每場開跑 20 分鐘後開始嘗試抓官方結果,抓不到 5 分鐘後重試, 不設放棄時間點——結果遲早會發布。抓到就直接補齊名次,不需要手動錄入; 同時同步進統計表(騎師勝率、馬匹場地/途程往績、距上仗天數都從這裡算)。

運行日誌

只顯示抓取/輪詢/資料庫更新相關的後台日誌,不含逐次頁面訪問記錄。 最新的排在最上面。
賽季跑道 · 每場覆蓋 僅展示最近 7 個有統計的比賽日(9/23 起)
逐場詳情

運行總覽

本工具僅供數據分析與研究之用,所有輸出均為統計模型之推演結果,不構成任何形式之投注建議、財務建議或勝負保證,亦不對其準確性、完整性或時效性作任何明示或默示之擔保。
賽事結果受馬匹健康狀況、起步表現、閘位與跑法互動、騎師臨場決策、場地與天氣變化等大量不可觀測、不可預測之因素影響,任何模型均無法窮盡;歷史回測表現亦不代表未來結果。
程序開發和設計目的僅在於研究程序的計算能力和調教算法參數,而非對任何賽事結果之預測或保證,請勿用來做任何投注和解讀,由此產生之一切決策與後果,概由使用者自行判斷並承擔全部責任,與本工具開發者無關。