Polymarket Bot Tutorial · 32개 중 27장

Polymarket의 날씨 및 기후 예측 bot: hurricane 상륙 시장, daily max temperature, El Nino/La Nina(ENSO), NOAA 및 NWS data source, 그리고 weather data를 trading signal로 변환하는 방법.

이 장에서 다루는 내용

Polymarket의 weather market은 과소평가된 카테고리입니다. 공공 data source가 깔끔하고, price discovery가 느리며, 적극적인 trader도 드뭅니다. bot에게는 분명한 edge가 있지만, 시장은 대체로 얇습니다. 이 장에서는 hurricane, temperature, ENSO 시장을 다룹니다.

  • tradeable signal로서의 weather
  • hurricane 시장: NHC data
  • daily max temperature: NWS data
  • ENSO(El Nino/La Nina) cycle
  • Latency: weather update는 느림(소매 trader에게 유리)
  • Risk: forecast model error tail
  • Code: NOAA hurricane data를 가져와 position 조정하기

tradeable signal로서의 weather

Weather market은 무료이면서 권위 있는 data source(NOAA, NWS, NHC)의 지원을 잘 받고, 판단이 아니라 객관적 측정치에 따라 resolve됩니다. 그래서 체계적인 전략에 이상적입니다-edge는 news를 사람보다 빨리 읽는 데 있는 것이 아니라 data interpretation에 있습니다.

단점은 volume이 modest하다는 점입니다. hurricane market은 생애 거래량이 $500k-2M 정도일 수 있고, city temperature market은 $50-200k 수준일 수 있습니다. politics나 sports에서 대규모로 잘 작동하는 전략은 weather로 그대로 옮겨지지 않습니다-edge의 dollar 규모는 시장의 total liquidity에 의해 제한됩니다.

여기에 맞는 bot pattern은: 여러 weather market에 걸쳐 작고 분산된 position을 잡고, resolution까지 보유하는 것입니다. weather는 day-trading market이 아닙니다. 속도는 느린 편입니다.

hurricane 시장: NHC data

hurricane season(Atlantic: 6월-11월)에는 landfall location, intensity, named-storm count에 대한 Polymarket market이 생깁니다. data source는 National Hurricane Center(NHC)의 공개 advisory로, active storm 중에는 6시간마다, hurricane이 landfall까지 <72시간 남았을 때는 3시간마다 업데이트됩니다.

전략: NHC의 forecast cone이 시장과 다른 특정 landfall probability를 시사할 때, NHC의 공식 forecast에 더 가까운 쪽에 베팅합니다. NHC는 시장이 결국 수렴하게 될 source-of-truth입니다.

주의사항: long-tail risk입니다. hurricane은 때때로 forecast가 예상하지 못한 행동을 합니다. NHC가 100%가 아니라 80% 맞는다고 가정하고 position size를 잡으세요.

daily max temperature: NWS data

Polymarket은 일부 US 도시를 대상으로 daily-temperature-threshold market을 제공합니다. "Will NYC reach 95°F on Aug 15?" 같은 형태입니다. data source는 하루 2-3회 업데이트되는 National Weather Service forecast와 사후 observation입니다.

market은 보통 NWS forecast probability를 어느 정도 noise와 함께 가격에 반영합니다. edge는 NWS forecast에 bias가 있다는 점입니다(보통 극단적 폭염 사건에 대해 보수적). 특정 도시/시즌의 bias 방향을 아는 bot은 NWS가 체계적으로 과소평가하는 쪽에 베팅합니다.

제약: 낮은 volume($50-100k가 일반적), 작은 position size, hold-to-resolution. Cycle: 당일 아침 진입, 저녁에 resolve.

ENSO(El Nino/La Nina) cycle

El Niño / La Niña forecast market은 수개월 horizon과 깔끔한 data(NOAA의 월간 ENSO 업데이트)를 가집니다. Polymarket의 implied probability는 각 월간 업데이트 이후 NOAA forecast confidence를 종종 1-2주 뒤에야 따라갑니다.

bot pattern: release day에 NOAA 업데이트를 읽고, NOAA의 forecast 조정과 일치하는 쪽에 베팅한 뒤, 시장이 따라잡을 때까지 1-2주 보유합니다. 시즌당 여러 번의 업데이트가 여러 entry point를 제공합니다.

volume은 modest하지만($100-500k per cycle), 이 전략은 매우 느려서 순수한 quant retail도 이 niche에서 제한적인 bot 경쟁과 겨룰 수 있습니다.

Latency: weather update는 느림(소매 trader에게 유리)

weather data update는 sub-second이 아니라 분~시간 단위입니다. 이것은 의미 있는 소매 trader의 장점입니다. sports와 crypto market을 지배하는 latency arb는 여기에는 적용되지 않습니다.

아침 8시 NOAA 업데이트를 8시 15분에 읽는 retail bot은, 시장의 느린 trader들이 아직 업데이트를 보기도 전에 새로운 fair value에서 FOK를 넣을 수 있습니다. 15분 latency budget은 news arb에서의 2초 budget에 비해 충분히 넉넉합니다.

trade-off는 다음과 같습니다: 얇은 volume 때문에 빠른 bot이라도 각 market에 배치할 수 있는 position은 작습니다. breadth-not-depth pattern(21장)이 weather에서는 훨씬 더 강하게 적용됩니다.

Risk: forecast model error tail

weather forecast에는 알려진 error bar가 있습니다. NHC는 매년 hurricane forecast error를 공개하는데, landfall location은 72시간 lead time에서 평균 100-200마일 정도의 error를 보입니다. NWS temperature forecast는 7일 lead time에서 평균 2-4°F의 error를 보입니다.

position size에 대한 시사점: "forecast가 맞다"고 높은 확신으로 베팅하지 마세요. forecast가 70-80%의 시간에 맞는다고 가정하고 position을 잡으세요. forecast를 절대적인 진리처럼 받아들이는 bot은 model이 빗나간 20-30%의 거래에서 손실을 봅니다.

hurricane 카테고리는 특히 tail이 큽니다. forecast-low-probability location에 Cat 5가 landfall하면, 확신에 찬 short position은 사실상 무한 손실이 됩니다. 단일 hurricane에 대한 exposure는 weather allocation의 10%로 제한하세요.

Code: NOAA hurricane data를 가져와 position 조정하기

Reference: hurricane season 동안 NHC advisory feed를 polling하고 forecast cone 변경 시 alert합니다.

import requests, feedparser
NHC_RSS = "https://www.nhc.noaa.gov/index-at.xml"

def poll_nhc():
    while True:
        feed = feedparser.parse(NHC_RSS)
        for entry in feed.entries:
            storm_id = entry.id
            advisory = parse_advisory(entry.summary)
            prev = load_last_advisory(storm_id)
            if advisory["track"] != prev.get("track"):
                alert(f"track update for {storm_id}: {advisory['track']}")
            save_advisory(storm_id, advisory)
        time.sleep(900)  # 15 min

Polymarket landfall market은 시즌 시작 시 NHC storm ID와 수동으로 매칭하는 것이 가장 좋습니다. Polymarket의 market title이 NHC의 naming을 일관되게 따르지 않기 때문에 자동 매칭은 취약합니다.

자주 묻는 질문

Polymarket은 어떤 weather market을 제공하나요?
Hurricane landfall(어디에, 언제), seasonal hurricane count, 주요 US 도시의 daily max/min temperature, ENSO state(El Nino vs La Nina vs Neutral), monthly rainfall totals. Polymarket은 때때로 novelty weather market(snow on Christmas 등)도 상장합니다.
Polymarket bot용 weather data는 어디서 얻나요?
Hurricane(NHC.gov), temperature(NWS.weather.gov), ENSO(Climate Prediction Center)를 포함한 공식 US weather data는 NOAA(noaa.gov)에서 얻습니다. 모두 무료이고 문서화가 잘 된 API입니다. Europe forecast는 ECMWF를 사용합니다. 국제적으로는 WMO와 각국 national met service를 사용합니다.
소매 bot이 weather에서 시장을 이길 수 있나요?
때때로 가능합니다. weather는 대부분의 quant trader가 무시하고 공식 forecast가 실시간으로 시장에 반영되는 경우가 드물기 때문에, 소매가 edge를 가질 수 있는 몇 안 되는 카테고리 중 하나입니다. hurricane season 동안 30분마다 NHC update를 가져오는 bot은 종종 mispricing을 포착합니다.
weather market의 latency budget은 어느 정도인가요?
느립니다 - 초가 아니라 분~시간 단위입니다. NHC update는 조용한 기간에는 6시간마다, 활동적인 기간에는 3시간마다 발행됩니다. NWS daily forecast는 하루 두 번 업데이트됩니다. 이것은 commodity-cloud VPS만으로도 충분한, Polymarket의 드문 카테고리입니다.
weather bot의 최악의 경우는 무엇인가요?
forecast error의 폭발입니다. 공식 forecast는 hurricane이 Miami를 강타할 것이라고 말하고, 당신은 Miami landfall에 long을 잡습니다. 그런데 hurricane이 방향을 틀어 Tampa를 강타합니다. 엄격한 규칙: 단일 weather event에 bankroll의 5-10% 이상을 베팅하지 마세요. forecast는 보이는 것보다 더 자주 틀립니다.
weather market은 연중 내내 있나요?
네, 하지만 volume은 계절성을 띱니다. hurricane은 6월-11월(Atlantic basin)에 피크를 보입니다. temperature market은 지속적입니다. ENSO 업데이트는 매달 있습니다. novelty market(snow, rainfall)은 관련 시즌에 몰립니다. 연중 weather bot은 월별로 다른 market을 사용합니다.