用AI玩天氣預測,一天躺賺200美金

作者:Changan I Biteye內容團隊

天氣不像選舉,沒有立場;不像 NBA,沒有主隊。但偏偏是這個市場,讓國內用戶湧進來。原因很簡單,每個人都有感受,每個人都覺得自己懂上海的天氣。

但「感覺懂」和「能賺錢」,是兩回事。

Biteye 今天分享三件事:

  1. 讀懂結算規則

  2. 建立天氣的預測方法

  3. 用系統找到別人看不到的交易機會

一、先搞清楚:這個天氣市場到底怎麼結算的?

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 小時的變化

  • 凌晨的風向和風速,雲況

  • 昨天的升降溫幅度,近三天的溫度趨勢,昨天的溫度是偏高還是偏低

  • 加上月份、季節、當天是一年中第幾天,昨天有沒有下雨

模型輸出分成五檔:升溫日、偏升溫、持平、偏降溫、降溫日,同時給出置信度。

不過該方法在不同季節準確率差異很大。

  • 冬季最準:冷空氣來了,氣壓急升、北風加強,信號極其清晰,模型一眼就能看出來。

  • 秋季最差:冷暖氣團反覆拉鋸,今天剛升溫明天就回落,歷史規律在這個季節失效最快。

淘汰的方法:

  1. 傅里葉數值預測

最早試過用傅里葉分析擬合曆史氣溫的週期規律,看能不能直接預測當天最高溫。

結果發現它能告訴你的只是"歷史上這個季節平均是多少度"。上海天氣的隨機性太高,傅里葉擬合出來的是一條平滑的平均曲線,不是真實的每日波動。誤差 3.6°C,而且 100% 系統性低估,所以直接刪掉。

  1. 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 天氣市場,歡迎在評論區討論:你用什麼方法判斷入場時機?遇到過哪些讓你意外的結算結果?

來源
免責聲明:以上內容僅為作者觀點,不代表Followin的任何立場,不構成與Followin相關的任何投資建議。
喜歡
收藏
1
評論