Files
PolyWeather/README_ZH.md
T

9.7 KiB
Raw Blame History

🌡️ PolyWeather: Polymarket 天气交易监控系统

基于多源实时气象数据与 Polymarket 市场定价偏差分析的智能监控与指令系统。

🚀 运行指令

环境要求

  • Python 3.11 (必须,py-clob-client 依赖要求)
  • 已安装所有依赖:pip install -r requirements.txt

Windows 启动方式

# 方式一:使用 Python 3.11 启动器
py -3.11 run.py

# 方式二:激活虚拟环境后运行
.venv\Scripts\activate  # 激活虚拟环境
python run.py

Linux/VPS 启动方式

# 使用 screen 保持后台运行
screen -S polyweather
python3.11 run.py

# 按 Ctrl+A 然后 D 退出但保持运行
# 恢复:screen -r polyweather

该命令会同时启动:

  1. 监控引擎: 负责 7x24h 扫描并推送 85¢-95¢ 价格预警市场异常
  2. 指令监听器: 监听电报指令并返回实时信号。

🤖 电报机器人指令集

指令 描述 用法
/signal 获取交易信号 返回最早结算市场的 Top 5 档位
/city [城市名] 查询城市详情 获取指定城市的市场、预测和实测温度
/portfolio 查看模拟仓位 获取实时模拟交易盈亏汇总报告
/status 检查系统状态 确认监控引擎是否在线
/help 指令帮助 显示所有可用指令

/city 指令示例

/city chicago

返回内容:

📍 Chicago 市场详情
════════════════════

🕐 当地时间: 08:30

📊 Open-Meteo 预测
👉 今天: 最高 38°F
   02-08: 最高 42°F
   02-09: 最高 45°F

✈️ 机场实测 (KORD)
   🌡️ 32.0°F
   💨 风速: 12kt
   🕐 观测: 14:00 UTC

📅 2026-02-07 预测:38°F
──────────────────
🔥 40-41°F: No 94¢ →买NO
🔥 38-39°F: Yes 91¢ →买YES
⭐ 36-37°F: No 87¢ →买NO

支持城市缩写: chi (Chicago), nyc (New York), atl (Atlanta), sea (Seattle), dal (Dallas), mia (Miami)


🎯 智能动态仓位策略

系统结合 Open-Meteo 天气预测成交量价格锁定程度 自动决定仓位大小:

条件组合 仓位 标签 说明
价格 ≥90¢ + 天气支持 + 高成交量 $10 🔥高置信 三重确认,重注
价格 ≥90¢ + 天气支持 $7 中置信 双重确认
价格 ≥92¢ $5 📌价格锁定 纯价格锁定
其他 85-91¢ $3 💡试探 最小仓位试探

天气支持判断逻辑

  • 买 NOOpen-Meteo 预测温度在选项区间 之外 (±2° 容差)
  • 买 YESOpen-Meteo 预测温度 落入 选项区间

成交量判断

  • 高成交量:单个选项成交量 ≥ $5,000

📢 推送维度说明

1. 📂 城市预警汇总 (主动推送)

  • 优化机制: 同一轮扫描中,同一城市的所有异动将合并为一条消息发送,拒绝刷屏。

  • 触发内容: 包含该城市下所有符合条件的"价格预警"与"市场异常"。

  • 价格来源: 推送使用真实 Ask 价格(实际可成交价格),而非中间价

  • 推送格式:

    📍 Chicago 市场动态
    🕐 当地 08:30 | 预测最高:38°F
    ═══════════════════════
    
    ✈️ 机场实测 (KORD):
       🌡️ 32.0°F | 风速:12kt
       🕐 观测: 14:00 UTC
    
    ⚡ 40-41°F (2026-02-07): Buy No 87¢ | 预测:38°F [🛒 $10.0 🔥高置信]
    
    💡 策略建议:
    • 预测温度38.0°F落在40-41°F区间,市场与模型一致
    

2. ✈️ METAR 航空气象实测数据

当天结算的市场会自动获取 METAR 机场实测数据,在预警中显示真实观测值:

✈️ 机场实测 (KORD):
   🌡️ 12.0°F | 风速:15kt
   🕐 观测: 11:00 UTC

ICAO 机场代码映射表:

城市 ICAO 机场名称
Seattle KSEA Seattle-Tacoma International
London EGLC London City Airport
Dallas KDAL Dallas Love Field
Miami KMIA Miami International
Atlanta KATL Hartsfield-Jackson Atlanta
Chicago KORD O'Hare International
New York KLGA LaGuardia Airport
Seoul RKSI Incheon International
Ankara LTAC Esenboga Airport
Toronto CYYZ Pearson International
Wellington NZWN Wellington International
Buenos Aires SAEZ Ministro Pistarini

数据源: NOAA Aviation Weather Center (免费 API,无需 Key)

3. 价格预警 (触发模拟买入)

  • 触发条件: Buy Yes 或 Buy No 价格在 85¢-95¢ 区间。
  • 关联动作: 系统根据智能仓位策略自动执行 $3-$10 的模拟开仓。
  • 用途: 高胜率/即将锁定区间提醒,适合平仓或收割。

4. 👀 市场异常

  • 大户入场: 检测到单笔 >$5000 的大额交易且买卖比失衡。
  • 异常交易流: 成交量突然放大 (>2倍历史标准差)。

5. 📅 每日盈亏总结

  • 触发时间: 北京时间 23:55 左右自动推送。
  • 内容: 汇总当日所有模拟仓位的浮动盈亏、余额变动及胜率统计。

6. 🎯 交易信号 (/signal 指令)

优先显示最早结算日期的市场,按机会价值排序,返回 Top 5 档位:

🎯 即将结算市场 (2026-02-06)
共 43 个活跃选项

🔥 1. Dallas 76-77°F
   💡 预测80.7°高于77° → 买NO ✓
   📊 Buy No 94¢ | ⏳接近锁定

🔥 2. Atlanta 56-57°F
   💡 预测60.4°高于57° → 买NO ✓
   📊 Buy No 94¢ | ⏳接近锁定

⭐ 3. Miami 62-63°F
   💡 预测65.3°高于63° → 买NO ✓
   📊 Buy No 88¢ | ⏳接近锁定

锁定状态说明:

  • 🔒锁定: 价格 ≥95¢
  • 接近锁定: 价格 85-94¢
  • 👀观望: 价格 70-84¢
  • ⚖️均衡: 价格 <70¢

📊 模拟交易报告格式

通过 /portfolio 指令查看,报告按目标日期分组显示:

📊 模拟交易报告
════════════════════

📈 【2026-02-06】 小计: +2.45$
──────────────────
🟢 Chicago 40-41°F
   NO 87¢→92¢ 预测:38 | +0.47$
🟢 Chicago 32-33°F
   NO 94¢→98¢ 预测:38 | +0.12$

💰 持仓总计: +6.89$

📈 历史战绩:
累计成交: 18笔 | 胜率: 100.0%
已投入: $90.00 | 盈亏: +12.50$ (+13.9%)

════════════════════
💳 账户余额: $639.11

🛠️ 环境配置 (.env)

# Telegram 机器人
TELEGRAM_BOT_TOKEN=your_bot_token
TELEGRAM_CHAT_ID=your_chat_id

# Polymarket API (用于批量获取实时盘口价格与交易历史)
POLYMARKET_API_KEY=your_api_key_here

# 代理设置 (如需要,VPS 部署时可删除)
HTTPS_PROXY=http://127.0.0.1:7890
HTTP_PROXY=http://127.0.0.1:7890

🏗️ 项目架构

本项目基于 py-clob-client 官方客户端,并配备 REST API 备用方案:

  • 主要方式:使用 py-clob-client SDK 获取市场数据、订单簿、下单等
  • 备用方式:当 SDK 失败时,自动切换到直接 REST API 调用 (/price, /book)
  • 核心 API 封装在 src/data_collection/polymarket_api.py

价格获取

# SDK 方式 (主要)
price = clob_client.get_price(token_id, side="BUY")

# REST API 备用 (当 SDK 失败时)
resp = requests.get("https://clob.polymarket.com/price", params={
    "token_id": token_id,
    "side": "BUY"
})

📂 数据文件说明

文件 说明
data/paper_positions.json 模拟仓持仓、余额、交易历史
data/pushed_signals.json 已推送信号记录(防刷屏)
data/active_signals.json 当前活跃交易信号
data/all_markets.json 全量市场缓存
data/price_history.json 价格历史(用于趋势计算)

📋 核心功能特性

  • 智能动态仓位: 结合天气预测、成交量、价格锁定程度自动调整仓位 ($3-$10)。
  • 预测温度追踪: 每笔交易记录买入时的 Open-Meteo 预测温度,方便复盘验证。
  • 智能合并推送: 按城市汇总预警,界面整洁不刷屏。
  • 全自动模拟交易: 内置模拟仓位系统,支持 85-95¢ 区间自动跟单,记录实战胜率。
  • 极速价格同步: 采用 Polymarket 批量 API 接口,一次同步全量城市,无延迟、无 404。
  • 北京时间适配: 所有推送时间戳与每日总结均自动转换为北京时间 (UTC+8)。
  • 智能日期选择: 自动定位最早的活跃市场日期,结算后自动顺延。
  • 温度单位自适应: 美国市场切换华氏度 (°F),其他地区显示摄氏度 (°C)。
  • 全量数据持久化: 信号记录、推送历史、交易仓位均保存至本地 JSON。

🔄 VPS 更新步骤

# 1. 本地推送代码
git add . && git commit -m "update" && git push

# 2. VPS 拉取并重启
ssh root@VPS_IP "cd ~/PolyWeather && git pull && screen -S polyweather -X quit; screen -dmS polyweather python run.py"