Automated-Trading-System-Kalshi-Weather-Model 是一套以 XGBoost 為核心的自動化交易系統。它預測紐約、邁阿密、奧斯汀、芝加哥四座城市的每日最高溫,並透過 Kalshi API 在對應的天氣事件市場自動下單。專案以 Jupyter Notebook 為主,涵蓋資料收集、模型訓練、自動執行到績效分析的完整流程。
這是一套自動化機器學習交易系統。它的目標很明確:預測紐約、邁阿密、奧斯汀、芝加哥四座城市的每日最高溫,並依預測結果在 Kalshi 的天氣事件市場下單。Kalshi 是美國受監管的事件合約交易所,「某城市今日最高溫落在某區間」本身就是一種可交易的合約,因此一個夠準的溫度模型可以直接轉化為交易訊號。
系統核心是 XGBoost 迴歸模型。四座城市各自獨立建模,訓練資料取自 NOAA 等氣象來源的歷史天氣紀錄,超參數以 grid search 搭配手動調校最佳化。模型輸出每日最高溫預測,再由交易程式對應到 Kalshi 的合約區間。
專案用三本 Jupyter Notebook 組織整條流程:Final_Prediction_Model.ipynb 訓練模型,KalshiTradingV2.ipynb 串接 Kalshi API 自動下單,MSE of Settled Trades.ipynb 在交易結算後以 MSE 評估預測誤差。作者把開發過程歸納為三階段:先手動交易理解市場,再訓練模型,最後交給自動化執行。
這是一個以 Jupyter Notebook 為主的研究型專案,不是可全域安裝的 CLI 工具。流程是:取得專案、安裝相依套件、在 Jupyter 或 VS Code 開啟 notebook,逐格執行。下單部分需要 Kalshi 帳號與 API 憑證。
README 指定的執行順序如下。先訓練模型,確認預測可用後再串接交易,最後在交易結算後檢視績效。
requirements.txt 的完整套件與版本,重現環境時可能需自行補齊;其二,KalshiTradingV2.ipynb 會以真實資金下單,首次執行務必先用小額,或在了解每一格行為後再連線。
專案由資料目錄與三本 notebook 構成一條線性管線:資料進來、訓練模型、產生預測、對應下單、結算後評估。下表把各組成依階段列出。核心是三本 notebook,其餘目錄是它們的輸入與產出。
| 你的目的 | 開啟的 Notebook |
|---|---|
| 訓練或重新訓練溫度模型 | Final_Prediction_Model.ipynb |
| 串接 Kalshi、執行自動下單 | KalshiTradingV2.ipynb |
| 檢視已結算交易的誤差與績效 | MSE of Settled Trades.ipynb |
以下是專案 README 與目錄結構所載的方法,而非社群技巧。它說明這套系統如何從資料走到可評估的交易決策。
專案依「手動交易 → 模型訓練 → 自動執行」推進:先以人工下單建立對市場的理解,再訓練模型取代直覺,最後把決策交給自動化程式。
來源 · 專案 README紐約、邁阿密、奧斯汀、芝加哥分別訓練獨立的 XGBoost 模型,以反映各地不同的氣候型態,而非共用單一模型。
來源 · 專案 README模型最佳化結合 grid search 與手動調校。訓練資料取自 NOAA 等氣象來源的歷史紀錄,作為訓練與驗證輸入。
來源 · 專案 README以四座城市已結算交易的 MSE(均方誤差)評估預測準確度,作為模型是否堪用的客觀依據,而非只看單筆損益。
來源 · MSE of Settled Trades.ipynb以下用 notebook 的執行順序,示意一輪完整流程:訓練四城模型、產生當日最高溫預測、對應到 Kalshi 合約區間下單,隔日結算後以 MSE 檢視誤差。終端輸出為示意,實際數值依當日資料與市場而定。
關鍵在於把問題收斂成一個可量測的數字:每日最高溫。它同時是模型的預測目標、Kalshi 合約的結算依據,也是 MSE 評估的對象。三者對齊,模型誤差就能直接連到交易成效,讓「模型好不好」有客觀答案。
三本 notebook 的切分也呼應這點:訓練、執行、評估各自獨立,任何一步出問題都能單獨重跑,不必牽動其他步驟。
KalshiTradingV2.ipynb 會在 Kalshi 上以真實資金下單。天氣預測本質帶有不確定性,模型誤差會直接造成虧損。先以最小金額驗證,再逐步放大。
requirements.txt 的套件與版本明細,重現環境時可能需自行補齊或處理版本衝突。
這套系統的價值在於它的結構:資料 → 模型 → 下單 → 評估的閉環。要延伸,通常是沿著這條線替換或加厚某一段。
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