使用手冊

實戰專案 · 預測市場 / 機器學習

用機器學習預測每日高溫, 在 Kalshi 下單。

AruneshDev 開源的 Kalshi 天氣交易系統:以 XGBoost 預測紐約、邁阿密、奧斯汀、芝加哥四城每日最高溫,透過 Kalshi API 在天氣事件市場自動下單。涵蓋資料收集、模型訓練、自動執行與 MSE 績效分析的 Notebook 流程。

Automated-Trading-System-Kalshi-Weather-Model 是一套以 XGBoost 為核心的自動化交易系統。它預測紐約、邁阿密、奧斯汀、芝加哥四座城市的每日最高溫,並透過 Kalshi API 在對應的天氣事件市場自動下單。專案以 Jupyter Notebook 為主,涵蓋資料收集、模型訓練、自動執行到績效分析的完整流程。

aruneshdev/automated-trading-system-kalshi-weather-model
星標
—
分支
—
授權
—
資料截至
—
閱讀時間
6 分
更新日期
開啟原始報告
GitHub Stars
78
預測城市模型
4
核心 Notebook
3
授權 License
未標示

01這是什麼

用 XGBoost 預測高溫,在 Kalshi 自動下單。

這是一套自動化機器學習交易系統。它的目標很明確:預測紐約、邁阿密、奧斯汀、芝加哥四座城市的每日最高溫,並依預測結果在 Kalshi 的天氣事件市場下單。Kalshi 是美國受監管的事件合約交易所,「某城市今日最高溫落在某區間」本身就是一種可交易的合約,因此一個夠準的溫度模型可以直接轉化為交易訊號。

系統核心是 XGBoost 迴歸模型。四座城市各自獨立建模,訓練資料取自 NOAA 等氣象來源的歷史天氣紀錄,超參數以 grid search 搭配手動調校最佳化。模型輸出每日最高溫預測,再由交易程式對應到 Kalshi 的合約區間。

專案用三本 Jupyter Notebook 組織整條流程:Final_Prediction_Model.ipynb 訓練模型,KalshiTradingV2.ipynb 串接 Kalshi API 自動下單,MSE of Settled Trades.ipynb 在交易結算後以 MSE 評估預測誤差。作者把開發過程歸納為三階段:先手動交易理解市場,再訓練模型,最後交給自動化執行。

  1. 手動交易

  2. 模型訓練

  3. 自動執行

  4. 績效分析

一套自動化機器學習系統,預測四座美國城市的每日最高溫,並在 Kalshi 預測市場執行交易。

— 專案 README 自述

02環境與安裝

取得專案,依序執行三本 Notebook。

這是一個以 Jupyter Notebook 為主的研究型專案,不是可全域安裝的 CLI 工具。流程是:取得專案、安裝相依套件、在 Jupyter 或 VS Code 開啟 notebook,逐格執行。下單部分需要 Kalshi 帳號與 API 憑證。

bash
# 取得專案並安裝相依套件
git clone https://github.com/AruneshDev/Automated-Trading-System-Kalshi-Weather-Model.git
cd Automated-Trading-System-Kalshi-Weather-Model
pip install -r requirements.txt

執行順序:三本 Notebook

README 指定的執行順序如下。先訓練模型,確認預測可用後再串接交易,最後在交易結算後檢視績效。

bash
# 1 · 訓練 XGBoost 溫度模型
Final_Prediction_Model.ipynb

# 2 · 串接 Kalshi API 自動下單
KalshiTradingV2.ipynb

# 3 · 結算後以 MSE 評估績效
MSE of Settled Trades.ipynb

03能力總覽

從資料到下單的完整管線。

專案由資料目錄與三本 notebook 構成一條線性管線:資料進來、訓練模型、產生預測、對應下單、結算後評估。下表把各組成依階段列出。核心是三本 notebook,其餘目錄是它們的輸入與產出。

資料 · 01

/Data

歷史氣象資料

蒐集自 NOAA 等氣象來源的歷史天氣資料集,作為四城溫度模型的訓練輸入。

模型 · 02

Final_Prediction_Model.ipynb

XGBoost 訓練

訓練四城每日最高溫預測模型,含 grid search 與手動超參數調校。

模型 · 03

XGBoost

梯度提升樹

以 XGBoost 迴歸預測每日最高溫;紐約、邁阿密、奧斯汀、芝加哥各自獨立建模。

執行 · 04

KalshiTradingV2.ipynb

Kalshi API 下單

串接 Kalshi API,依模型輸出在對應的天氣事件市場自動執行交易。

評估 · 05

MSE of Settled Trades.ipynb

MSE 績效

交易結算後,以 MSE 衡量四城預測誤差與整體成效。

產出 · 06

/Xg_boost Training

訓練產出物

存放模型訓練過程的中間產物與設定,供重訓與檢視。

紀錄 · 07

/SettledPredictions

結算結果

紀錄已結算的預測與交易結果,作為回測與績效分析的依據。

文件 · 08

/Common Task Docs

任務文件

專案的共用任務說明與相關文件。

你想做什麼,開哪一本

你的目的開啟的 Notebook
訓練或重新訓練溫度模型Final_Prediction_Model.ipynb
串接 Kalshi、執行自動下單KalshiTradingV2.ipynb
檢視已結算交易的誤差與績效MSE of Settled Trades.ipynb

04方法論 · 依官方結構

三階段開發與 MSE 評估。

以下是專案 README 與目錄結構所載的方法,而非社群技巧。它說明這套系統如何從資料走到可評估的交易決策。

三階段開發路徑

專案依「手動交易 → 模型訓練 → 自動執行」推進:先以人工下單建立對市場的理解,再訓練模型取代直覺,最後把決策交給自動化程式。

來源 · 專案 README

四座城市各自建模

紐約、邁阿密、奧斯汀、芝加哥分別訓練獨立的 XGBoost 模型,以反映各地不同的氣候型態,而非共用單一模型。

來源 · 專案 README

超參數以 grid search 調校

模型最佳化結合 grid search 與手動調校。訓練資料取自 NOAA 等氣象來源的歷史紀錄,作為訓練與驗證輸入。

來源 · 專案 README

用 MSE 衡量成效

以四座城市已結算交易的 MSE(均方誤差)評估預測準確度,作為模型是否堪用的客觀依據,而非只看單筆損益。

來源 · MSE of Settled Trades.ipynb

05使用實例

一輪從預測到結算的流程。

以下用 notebook 的執行順序,示意一輪完整流程:訓練四城模型、產生當日最高溫預測、對應到 Kalshi 合約區間下單,隔日結算後以 MSE 檢視誤差。終端輸出為示意,實際數值依當日資料與市場而定。

Kalshi-Weather-Model · jupyter


> ▸ Final_Prediction_Model.ipynb
# [載入 /Data:NOAA 歷史氣象紀錄]
# [依城市切分:NYC · Miami · Austin · Chicago]


claude: 為四座城市各訓練一個 XGBoost 迴歸模型,
claude: 以 grid search 搜尋超參數,再手動微調。
# [trained 4 city models]
# [模型與設定寫入 /Xg_boost Training]


> ▸ KalshiTradingV2.ipynb
# [連線 Kalshi API · 讀取當日天氣事件市場]


claude: 取得各城當日最高溫預測,對應到 Kalshi
claude: 的溫度區間合約,在符合條件的市場下單。
  hl: NYC   預測高溫 → 對應區間合約 → 送出委託
  hl: Miami / Austin / Chicago → 同一流程
# [orders submitted · 待當日結算]


> ▸ MSE of Settled Trades.ipynb
# [讀取 /SettledPredictions:已結算結果]


claude: 將預測高溫與實測高溫比對,計算各城 MSE,
claude: 檢視哪一座城市的模型誤差最大、需要重訓。
ok: [輸出四城 MSE 與已結算交易績效報表]

        

溫度區間是 Kalshi 上可交易的合約。 一個夠準的高溫模型,就是一條交易訊號。

— 這套系統把天氣預測接成下單決策的核心邏輯

這條流程為什麼這樣設計

關鍵在於把問題收斂成一個可量測的數字:每日最高溫。它同時是模型的預測目標、Kalshi 合約的結算依據,也是 MSE 評估的對象。三者對齊,模型誤差就能直接連到交易成效,讓「模型好不好」有客觀答案。

三本 notebook 的切分也呼應這點:訓練、執行、評估各自獨立,任何一步出問題都能單獨重跑,不必牽動其他步驟。

06注意事項

上線前先看清楚邊界。

07進階路徑

把模型換成你的市場。

這套系統的價值在於它的結構:資料 → 模型 → 下單 → 評估的閉環。要延伸,通常是沿著這條線替換或加厚某一段。

進階玩法地圖

**1. 換城市或換市場。**收集目標城市的歷史氣象資料,沿用 Final_Prediction_Model.ipynb 的訓練流程重新建模,再把 KalshiTradingV2.ipynb 指向對應的合約。

**2. 擴充特徵。**在資料層加入更多氣象變數(濕度、氣壓、風速、雲量),重新訓練後用 MSE 比較是否真的降低誤差。

**3. 換模型比較。**XGBoost 之外可試 LightGBM 或時序模型,套進同一份 MSE 評估框架做公平比較,而非各說各話。

**4. 加風控層。**在 KalshiTradingV2.ipynb 的下單前加入部位上限、單日虧損上限與停損規則,降低單一誤判的衝擊。

**5. 自動化排程。**把 notebook 流程改寫為腳本並定時排程,減少手動逐格執行,但要先補上監控與告警。

最該先讀的三份檔案

① Final_Prediction_Model.ipynb——XGBoost 溫度模型的完整訓練程式。 ② KalshiTradingV2.ipynb——Kalshi API 串接與自動下單邏輯。 ③ MSE of Settled Trades.ipynb——結算後的誤差與績效分析。原始碼:github.com/AruneshDev/Automated-Trading-System-Kalshi-Weather-Model

手動交易 → 模型訓練 → 自動執行: 先理解市場,再交給模型,最後交給自動化。

— 專案 README 的三階段開發路徑