作者:長安 I Biteye內容團隊
天氣不像選舉,沒有立場;不像 NBA,沒有主隊。但偏偏是這個市場,讓國內用戶湧進來。原因很簡單,每個人都有感受,每個人都覺得自己懂上海的天氣。
但「感覺懂」和「能賺錢」,是兩回事。
Biteye 今天分享三件事:
很多人第一次參與會有個誤區:拿手機天氣 App對照著押最高氣溫,但 App 顯示的是上海市區的溫度,而 Polymarket 結算用的是上海浦東機場(ZSPD 氣象站)的實測數據,這個數據通過 Wunderground這個美國氣象平台對外公開,PM 直接讀取 WU 上的記錄作為結算依據。
兩個地方,兩個數字。浦東機場位於城市東側,緊鄰長江入海口,受海風影響,氣溫通常比市區偏低。這個差距平時感覺不出來,但在檔位邊界的時候,可能就是押對和押錯的區別。
所以你在天氣市場評論區能看到這種困惑:「明明今天感覺比昨天暖,為什麼顯示的最高溫反而更低?」
WU 的數據直接來自機場每小時上報的 METAR 報文(全球民航通用的氣象電報格式)。
有一個細節藏在這裡:METAR 記錄的是華氏整數,WU 直接展示這個數字,不換算,不修正。
而大多數天氣預報系統、氣象模型輸出的溫度都帶小數點。你的模型算得越細緻,越容易忽略這個最粗糙的地方。
扒了 ZSPD 站近 1900 天的數據,上海最高氣溫的出現時段比想像中集中:
知道規律是第一步,但規律不會自己盯盤。每天最高溫什麼時候出現、是否有刷新、離檔位還差多少。
所以小編搭了這套系統:在每天結算前,盡可能準確地預測出當天的最高溫度落在哪個攝氏度檔位。

市場規則搞清楚之後,下個問題是:怎麼預測當天的最高溫度?
作為一個氣象小白,第一步是去問 ChatGPT:氣象行業到底是怎麼計算當天最高溫的,有哪些成熟方法。ChatGPT 給出了一套理論框架,Claude 把框架落地成代碼。 兩個 AI 配合著用,一個周末把系統搭起來了。
一共試了五種方法,最終只跑通三個。
1️⃣ WC + ECMWF 集成預報
預測最高溫,首先需要數據。採用了兩個來源:
兩個來源各有優劣,所以讓它們加權投票。權重根據當天天氣類型動態調整:晴天更信 WC,雲量大、風速高的天氣更信 ECMWF。
2️⃣實時訂正:用升溫數據推算峰值
預報是昨晚算出來的,但今天的天氣一直在變。所以這個模塊做的事是:用今天早上已經發生的實測數據,推算今天最高能到多少。
邏輯不複雜,小編發現上海早上 8-9 點是升溫最快的時間段。系統拿到這個時刻的實測溫度之後,查歷史數據:同一季節、同一時刻,過去平均還能再升多少度。
然後加兩個修正:
氣壓、露點、濕度也在計算之內,但由於回測後發現這些因子影響較小,相關性較低,所以刪除了。
但光靠外推還不夠穩,這裡用了一个卡爾曼增益的概念,說白了就是在「外推結果」和「原始預報」之間取一個加權平均,而且這個權重會隨著時間推移自動變化。
越晚,眼前發生的事越重要;越早,歷史預報的參考價值越大。
下午 2 點之後,系統判斷峰值大概率已過,直接從歷史記錄裡取今日最高溫鎖定結果,不再推算。
3️⃣ 今天是升溫日嗎?
這是整套系統裡最讓人滿意的模塊,每天凌晨做一個判斷:今天的最高溫會比昨天高嗎?
每天凌晨 2-4 點,系統會收集一批氣象數據,喂給這個模型:
模型輸出分成五檔:升溫日、偏升溫、持平、偏降溫、降溫日,同時給出置信度。
不過該方法在不同季節準確率差異很大。
最早試過用傅里葉分析擬合歷史氣溫的週期規律,看能不能直接預測當天最高溫。
結果發現它能告訴你的只是"歷史上這個季節平均是多少度"。上海天氣的隨機性太高,傅里葉擬合出來的是一條平滑的平均曲線,不是真實的每日波動。誤差 3.6°C,而且 100% 系統性低估,所以直接刪掉。
ERA5 是歐洲氣候中心的全球歷史重分析數據集,用來預測當天最高溫出現在幾點。
回測下來
聽起來還行,但問題是 PM 的精度更高,留給交易員判斷的時間窗口很短,如果做不到半小時以內的峰值判斷,还不如看 Polymarket 的數據,所以該方法被淘汰了。
Polymarket 的天氣市場會提前 4 天開放交易,熱門氣溫檔位通常在開市早期就被充分定價。直接在高概率檔位上買,盈虧比比較差。
所以小編採用的策略是:等信號,等升溫後的時間窗口再入場。
於是根據自建的天氣系統做了以下兩個操作:
16 號凌晨,Telegram 頻道推送了夜間模式的報告:明天是降溫日。理由是當晚雲況偏厚、季節和年內日序兩個特徵都指向降溫方向。
這時候小編沒有立刻下注。凌晨的信號只是第一層參考。
到了上午 11 點,系統推送了升溫期的實時報告。當時實測最高溫已經到了 12°C,+1°C 機率評分給出結果:今天再漲 1°C 的概率是 42%,偏向不會再升溫。
結合凌晨邏輯回歸的偏降溫信號,兩個模塊方向一致,這時候信號比凌晨清晰多了。於是押了16號最高溫不超過 13°C。
當天結算:12°C。前一天 15 號是 15°C,降了整整 3 度。
再比如今天 17 號的上海天氣,天氣系統還能起到預警作用:早上 7 點鐘受到的推送顯示,峰值時刻異常:22:00
正常晴天最高溫出現在下午1-3點,但今天峰值在晚上 22 點,說明這不是日照升溫,而是暖濕氣流夜間輸送。全天都在下雨,雲量97-100%,日照幾乎為零。
這時候打開 Polymarket,看到 12°C 的定價還在 53%。社區裡有人困惑:現在已經下午了,溫度才11°C,正常峰值時段早就過了,為什麼大家還在買12°C?
這個困惑的背後,是大家還在用晴天的邏輯判斷雨天的市場。
系統不會困惑。它早上就把今天的天氣類型識別清楚了,峰值時刻異常,當前溫度和市場預期之間存在明顯偏差。這是一個信息差,而信息差就是交易機會。
這正是搭這套系統的意義:在機會面前,更容易識別;在風險面前,更快預警。

做了一個周末的系統,不可能沒有漏洞:
一套剛跑了個周末的系統,能發現這些問題已經算有收穫。接下來邊跑邊修。
氣象學發展了幾百年,用上了衛星、超算、全球模型,天氣預報依然不敢保證明天100%準確。不是科學家不夠努力,是大氣系統本身就是混沌的,差一度初始條件,結果可能完全不同。
這套跑了個周末的系統,當然也會出錯。秋季準確率接近擲硬幣,冷空氣來早了系統可能沒反應過來,海風效應到現在還沒完全捕捉到。
但這不重要。做預測市場不需要每次都對,只需要在賠率有優勢的時候,比市場多看一層信息。
上海天氣市場還在早期,小編會持續跟蹤這套系統,邊跑邊改。如果你也在做 Polymarket 天氣市場,歡迎在評論區討論:你用什麼方法判斷入場時機?遇到過哪些讓你意外的結算結果?