원문 제목: "AI를 활용한 날씨 예측으로 하루에 200달러 벌기"
원문 작성자: Changan, Biteye
날씨는 선거처럼 입장이 없고, NBA처럼 홈팀이 없다. 그렇지만 이 시장 때문에 국내 사용자들이 몰려왔다. 그 이유는 매우 간단하다. 모든 사람이 느끼고, 모든 사람이 상하이의 날씨를 잘 안다고 느낀다.
하지만 '이해했다'와 '돈을 벌 수 있다'는 다른 문제이다.
Biteye가 오늘 공유하는 세 가지:
1. 결산 규정 이해
2. 날씨 예측 방법 수립
3. 시스템을 활용하여 다른 사람이 보지 못하는 거래 기회 찾기
1. 결산 기준 온도는 당신이 생각하는 것과 다르다
많은 사람들이 처음 참여할 때 잘못된 생각을 갖는다. 핸드폰 날씨 앱을 열어 최고 기온을 보면서 참여하지만, 앱은 상하이 시내의 기온을 표시하며, 반면 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% 시스템적인 과소평가이므로 직접적으로 제외되었습니다.
2. ERA5 피크 타임 예측
ERA5는 유럽 기후 센터의 글로벌 히스토리 재분석 데이터 세트로, 오늘의 최고 기온이 몇 시에 나타날지 예측하는 데 사용됩니다.
다시 테스트한 결과,
· ≤1시간 정확도 59.6%
· ≤2시간 정확도 81.3%
들리는 만큼 나쁘지 않지만, 문제는 오후의 정확도가 더 높으며, 거래자에게 주어지는 판단 시간이 매우 짧기 때문에 반 시간 내에 피크를 예측하지 못한다면 Polymarket 데이터를 확인하는 것보다 나은 방법이 없습니다. 그래서 이 방법은 폐기되었습니다.
Polymarket의 날씨 시장은 거래를 4일 앞서 진행하며, 인기있는 온도 대는 일반적으로 시장이 개방되자마자 충분히 가격이 매겨집니다. 높은 확률 대에 직접 투자하면 손실/이익 비율이 매우 낮습니다.
따라서 본 작가가 채택한 전략은 다음과 같습니다: 신호를 기다리고, 온난 후의 시간 창에 다시 진입합니다.
따라서 자체적으로 구축된 날씨 시스템을 기반으로 아래 두 작업을 수행했습니다:
사례 1:

16일 새벽, 텔레그램 채널이 야간 모드 보고를 게시했습니다: 내일은 온도 하락일 예정입니다. 이유는 밤에 구름이 굵고, 계절과 해내 몇 가지로 인해 온도가 떨어질 것으로 보입니다.
이때 편집자는 즉시 베팅하지 않았습니다. 새벽의 신호는 단층 참고자료일 뿐이었습니다.
오전 11시에 시스템이 올린 온난 기간의 실시간 보고서를 받았습니다. 그 때 측정된 최고 기온이 이미 12°C에 달했으며, +1°C 확률평가 결과는 다가오는 1°C의 상승 가능성이 42%라는 것을 보여줬습니다. 이로써 오늘 더 높아질 가능성은 거의 없는 것으로 판단됐습니다.
새벽의 로지스틱 회귀로 된 하락 경향 신호와 오전 시간대의 온난 기간 보고를 결합하여, 두 모듈이 동일한 방향으로 가리킨다면, 이제 신호는 새벽 때보다 더 명확해지게 됐습니다. 그래서 16일 최고 기온이 13°C를 넘지 않을 범위에 베팅을 했습니다.
해가 가는 동안: 12°C. 전날인 15일의 기온은 15°C로, 3°C나 하락했습니다.
사례 2:

예를 들어 오늘 17일의 상하이 날씨, 날씨 시스템은 여전히 경고 기능을 하고 있습니다: 아침 7시에 받은 푸시는, 피크 타임이 예외적이라는 것을 보여줬습니다: 22:00
일반적으로 맑은 날씨의 최고 기온은 오후 1-3시에 나타납니다만, 오늘 최고점은 밤 10시로, 이는 일조로 인한 상승이 아닌 따뜻하고 습한 공기의 야간 이동을 보여줍니다. 하루 종일 비가 오고, 구름량은 97-100%로, 일조는 거의 없습니다.
이때 Polymarket을 열어보면, 12°C의 가격이 여전히 53%입니다. 커뮤니티에서 혼란스러워하는 사람이 있습니다: 지금은 이미 오후인데, 온도는 11°C에 불과합니다. 일반적인 피크 타임은 이미 지났는데, 왜 여전히 12°C를 사는 건가요?
이 혼란의 배경에는 여전히 맑은 날씨의 논리로 비오는 날씨의 시장을 판단하는 문제가 있습니다.
시스템은 혼란스럽지 않습니다. 그것은 이미 오늘의 날씨 유형을 아침에 확실하게 판단했으며, 피크 타임이 예외적임을 알아냈습니다. 현재 온도와 시장 기대 사이에 큰 차이가 있습니다. 이것은 정보 격차인데, 정보 격차는 거래 기회입니다.
바로 이것이 이 시스템을 갖추는 의미입니다: 기회 앞에서 더 쉽게 인식하며; 위험 앞에서 더 빨리 경고합니다.

시스템의 부족한 점은 무엇일까요?
주말에 만든 시스템이 있으면 결함이 없을 수 없다는 것은 확실합니다:
· 가을 예측 정확도는 63.7%에 불과하여 코인 던지기에 가깝습니다.
· 이 시기에는 찬날과 따뜻한 날이 계속해서 오가며, 오늘은 온도가 오르고 내일은 내려가며, 가을에는 역사적인 규칙이 가장 빨리 무효화됩니다.
· 실전에서는 기압 특성을 확보할 수 없습니다. 모델을 학습할 때 기압 변화를 특성으로 사용했는데, 백테스트 효과는 괜찮았습니다.
· 한파가 휩쓸리는 신호는 매우 명확합니다. 그러나 실전에서는 현재 인터페이스에서 실시간 기압 데이터를 가져올 수 없습니다.
· 해안 수정은 여전히 데이터 활성화를 기다리고 있습니다. 푸동 공항의 해풍 효과는 실제로 존재하며, 시스템은 해당 보정 모듈을 구축했지만 백테스트 샘플이 아직 충분하지 않습니다.
주말에 실행된 시스템은 이러한 문제를 발견할 수 있기에 이미 성과가 있는 것입니다. 이제 런닝 및 수정을 진행할 것입니다.
수백 년의 기상학 발전, 위성, 초급련산장치 및 글로벌 모델을 사용하더라도 내일의 날씨를 100% 정확하다고 확언하지는 못합니다. 과학자들이 충분히 노력하지 않았기 때문이 아니라, 대기계 자체가 혼돈스럽기 때문에 초기 조건이 조금만 다르다 해도 결과가 완전히 달라질 수 있습니다.
주말에 실행된 이 시스템도 물론 오류가 발생할 수 있습니다. 가을 예측 정확도가 코인 던지기에 가깝고, 한파가 너무 일찍 오면 시스템이 반응하지 못할 수 있으며, 해상 효과도 아직 완전히 포착되지 않을 수 있습니다.
하지만 이것은 중요하지 않습니다. 시장을 예측하는 데 필요한 것은 매번 옳은 예측을 하는 것이 아니라, 시장이 도박확률이 우세할 때에만, 시장보다 한 단계 더 많은 정보를 보는 것입니다.
BlockBeats 공식 커뮤니티에 참여하세요:
Telegram 구독 그룹:https://t.me/theblockbeats
Telegram 토론 그룹:https://t.me/BlockBeats_App
Twitter 공식 계정:https://twitter.com/BlockBeatsAsia