作者:Changan I Biteye內容團隊
天氣不像選舉,沒有立場;不像NBA,沒有主隊。但偏偏是這個市場,讓國內用戶湧進來。原因很簡單,每個人都有感受,每個人都覺得自己懂上海的天氣。
但「感覺懂」和「能賺錢」,是兩回事。
Biteye 今天分享三件事:
讀懂結算規則
建立天氣的預測方法
用系統找到別人看不到的交易機會
一、先搞清楚:這個天氣市場到底怎麼結算的?
1.結算的溫度,不是你以為的那個
很多人第一次參與會有個迷思:拿手機天氣App 對照著押最高氣溫,但App 顯示的是上海市區的溫度,而Polymarket 結算用的是上海浦東機場(ZSPD 氣象站)的實測數據,這個數據透過Wunderground這個美國氣象平台對外公開,PM 直接讀取WU 上的記錄作為結算。
兩個地方,兩個數字。浦東機場位於城市東側,緊鄰長江入海口,受海風影響,氣溫通常比市區低。這個差距平常感覺不出來,但在檔位邊界的時候,可能就是押對和押錯的差別。
所以你在天氣市場評論區能看到這種困惑:「明明今天感覺比昨天暖,為什麼顯示的最高溫反而更低?」
2.數字對了,但單位不是你想的那個
WU 的資料直接來自機場每小時上報的METAR 報文(全球民航通用的氣象電報格式)。
有一個細節藏在這裡:METAR 記錄的是華氏整數,WU 直接展示這個數字,不換算,不修正。
而大多數天氣預報系統、氣像模型輸出的溫度都帶小數點。你的模型算得越精細,越容易忽略這個最粗糙的地方。
3.上海氣溫規律
扒了ZSPD 站近1900 天的數據,上海最高氣溫的出現時段比想像中集中:
四個季節都高度集中在11:00-13:00,
夏季12:00 的集中度最高,單一小時佔全季的27.6%。
秋季的峰值時段略偏早,10:00 也是高頻時段之一。
知道規律是第一步,但規律不會自己盯盤。每天最高溫什麼時候出現、有沒有刷新、離檔位還差多少。
所以小編搭了這套系統:在每天結算前,盡可能準確地預測當天的最高溫度落在哪個攝氏度檔位。
二、五種方法,三個跑通了
市場規則搞清楚之後,下一個問題是:怎麼預測當天的最高溫度?
身為一個氣像小白,第一步是去問ChatGPT:氣象產業到底是怎麼計算當天最高溫的,有哪些成熟方法。 ChatGPT 給了一套理論框架,Claude 把框架落地成程式碼。 兩個AI 配合著用,一個週末把系統搭起來了。
總共試了五種方法,最後只跑通三個。
跑通的:
1️⃣ WC + ECMWF 整合預報
預測最高溫,首先需要數據。採用了兩個來源:
Weather Company(WC) 是一個商業氣象API,提供逐小時預報數據,精度高;
ECMWF 是歐洲中期天氣預報中心的全球氣像模型,對大範圍天氣系統更敏感。
兩個來源各有優劣,所以讓它們加權投票。權重依當天天氣類型動態調整:晴天更信WC,雲量大、風速高的天氣更信ECMWF。
2️⃣即時訂正:以升溫資料推算峰值
預報是昨晚算出來的,但今天的天氣一直在改變。所以這個模組做的事是:用今天早上已經發生的實測數據,推算今天最高能到多少。
邏輯不複雜,小編發現上海早上8-9 點是升溫最快的時段。系統拿到這個時刻的實測溫度之後,查歷史資料:同一季節、同一時刻,過去平均還能再升多少度。
然後再加兩個修正:
雲多就乘以一個折扣,雲量越厚升溫越受阻。
風大也乘一個折扣,強風會加速熱量散失。算出來一個"外推估算"。
氣壓、露點、濕度也在計算之內,但由於回測後發現這些因子影響較小,相關性較低,所以刪除了。
但光靠外推還不夠穩,這裡用了一個卡爾曼增益的概念,說白了就是在「外推結果」和「原始預報」之間取一個加權平均,而且這個權重會隨著時間推移自動變化。
早上6 點,外推才佔20%,大部分還是信預報
到中午12 點,外推佔72%
下午1 點之後,幾乎完全信實測,佔85%
越晚,眼前發生的事越重要;越早,歷史預報的參考價值越大。
下午2 點之後,系統判斷峰值大概率已過,直接從歷史記錄取今日最高溫鎖定結果,不再推算。
3️⃣ 今天是升溫日嗎?
這是整套系統裡最讓人滿意的模組,每天凌晨做個判斷:今天的最高溫會比昨天高嗎?
每天凌晨2-4 點,系統會收集一批氣象數據,餵給這個模型:
氣壓在過去3 小時、12 小時的變化
凌晨的風向和風速,雲況
昨天的升降幅度,近三天的溫度趨勢,昨天的溫度是偏高還是偏低
加上月份、季節、當天是一年中第幾天,昨天有沒有下雨
模型輸出分成五檔:升溫日、偏升溫、持平、偏降溫、降溫日,同時給予信賴度。
不過此方法在不同季節準確率差異很大。
冬季最準:冷空氣來了,氣壓急升、北風加強,訊號極為清晰,模型一眼就能看出來。
秋天最差:冷暖氣團反覆拉鋸,今天剛升溫明天就回落,歷史規律在這個季節失效最快。
淘汰的方法:
傅立葉數值預測
最早試過用傅立葉分析來擬合歷史氣溫的周期規律,看能不能直接預測當天最高溫。
結果發現它能告訴你的只是"歷史上這個季節平均是多少度"。上海天氣的隨機性太高,傅立葉擬合出來的是一條平滑的平均曲線,不是真實的每日波動。誤差3.6°C,而且100% 系統性低估,所以直接刪掉。
ERA5 峰值時刻預測
ERA5 是歐洲氣候中心的全球歷史重分析資料集,用來預測當天最高溫出現在幾點。
回測下來
≤1小時準確率59.6%
≤2 小時準確率81.3%
聽起來還行,但問題是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?
這個困惑的背後,是大家還在用晴天的邏輯來判斷雨天的市場。
系統不會困惑。它早上就把今天的天氣類型識別清楚了,峰值時刻異常,當前溫度和市場預期之間存在明顯偏差。這是一個資訊差,而資訊差就是交易機會。
這正是搭這套系統的意義:在機會面前,更容易辨識;在風險面前,更快預警。
系統還有哪些不足
做了一個週末的系統,不可能沒有漏洞:
秋季準確率只有63.7%,接近拋硬幣。冷暖氣團在這個季節反覆拉鋸,今天升溫明天回落,歷史規律在秋天失效最快。
氣壓特徵在實盤裡拿不到。 訓練模型的時候用了氣壓變化作為特徵,回測效果不錯。冷空氣過境的訊號很清晰。但實盤運作時,當前介面拿不到即時氣壓資料。
沿海修正還在等數據啟動。 浦東機場的海風效應是真實存在的,系統也建造了對應的修正模組,但回測樣本還不夠多。
一套剛跑了一個週末的系統,能發現這些問題已經算是收穫。接下來邊跑邊修。
結語
氣象學發展了幾百年,用上了衛星、超算、全球模型,天氣預報仍不敢保證明天100%準確。不是科學家不夠努力,是大氣系統本身就是混沌的,差一度初始條件,結果可能完全不同。
這套跑了一個週末的系統,當然也會出錯。秋季準確率接近拋硬幣,冷空氣來早了系統可能沒反應過來,海風效應到現在還沒完全捕捉到。
但這不重要。做預測市場不需要每次都對,只需要在賠率有優勢的時候,比市場多看一層資訊。
上海天氣市場還在早期,小編會持續追蹤這套系統,邊跑邊改。如果你也在做Polymarket 天氣市場,歡迎在留言區討論:你用什麼方法判斷入場時機?遇到過哪些讓你意外的結算結果?

