|
|
vor 7 Monaten | |
|---|---|---|
| .claude | vor 8 Monaten | |
| doc | vor 7 Monaten | |
| packages | vor 7 Monaten | |
| scripts | vor 8 Monaten | |
| .dockerignore | vor 7 Monaten | |
| .env.example | vor 7 Monaten | |
| .gitignore | vor 7 Monaten | |
| CLAUDE.md | vor 7 Monaten | |
| Dockerfile | vor 7 Monaten | |
| README.md | vor 7 Monaten | |
| docker-compose.yml | vor 7 Monaten | |
| package.json | vor 8 Monaten | |
| pnpm-lock.yaml | vor 7 Monaten | |
| pnpm-workspace.yaml | vor 8 Monaten | |
| tsconfig.base.json | vor 8 Monaten | |
| turbo.json | vor 8 Monaten |
Polymarket 天气预测市场套利机器人。通过比较专业气象模型(GFS / ECMWF / ICON 集合预报)的概率与 Polymarket 每日温度市场的隐含概率,自动发现并交易定价偏差。
| 策略 | 说明 |
|---|---|
| TAIL_NO | 在尾部区间买入 NO — 当模型概率 < 5% 但市场 YES 价格 > 3¢ 时 |
| LATENCY_ARB | 新气象数据使概率偏移 > 5%,市场尚未重新定价时交易 |
| PARITY_ARB | 当某事件所有 YES 价格之和偏离 100¢ 时的纯套利 |
| OBSERVED_YES | 峰值时段(当地 11:00–14:00)在观测温度区间买入 YES,市场尚未反映已知高温 |
| OBSERVED_NO | 在观测日最高温度以下的区间买入 NO(全天有效,最高置信度策略) |
TypeScript monorepo,使用 Turborepo + pnpm workspaces。
packages/
core/ — 共享类型、工具函数、Prisma schema、常量
weather-engine/ — GFS/ECMWF/ICON 预报获取(Open-Meteo)、HKO 香港天文台预报、集合概率计算
market-engine/ — Polymarket Gamma API 扫描、CLOB 订单簿读取、认证下单
strategy/ — 信号生成(Tail NO / Latency Arb / Parity Arb / Observed YES/NO)、风控、Kelly 仓位、组合追踪
trading-engine/ — 机器人主循环、流水线编排、健康检查服务
dashboard/ — Next.js App Router 仪表盘,实时市场数据、信号、手动下单
core (叶子节点 — 无内部依赖)
↑
weather-engine, market-engine (依赖 core)
↑
strategy (依赖 core + weather-engine + market-engine)
↑
trading-engine (依赖以上所有)
dashboard (依赖 core,直接读取数据库)
git clone <repo-url> && cd poly-weather
pnpm install
cp .env.example .env
# 编辑 .env,填入你的 Polymarket 钱包私钥和地址
# 仅启动 PostgreSQL + Redis(本地开发)
docker compose up -d postgres redis
# 或者启动全部服务(包括 bot + dashboard)
docker compose up -d
pnpm db:generate
pnpm db:push
pnpm derive-keys
# 将输出的 key/secret/passphrase 填入 .env
# 方式一:Docker 全栈启动
docker compose up -d
# 方式二:本地开发
pnpm i
pnpm build
pnpm bot:start # 启动交易机器人
pnpm dashboard:dev # 启动仪表盘 http://localhost:3000
| 服务 | 端口 | 说明 |
|---|---|---|
postgres |
5432 | PostgreSQL 16 数据库 |
redis |
6379 | Redis 7 缓存 |
bot |
3001 | 交易机器人(健康检查端口) |
dashboard |
3000 | Next.js 仪表盘 |
docker compose up -d # 启动全部
docker compose up -d postgres redis # 仅基础设施
docker compose logs -f bot # 查看 bot 日志
docker compose down # 停止全部
pnpm install # 安装所有依赖
pnpm build # 构建所有包
pnpm dev # 开发模式(全部包)
pnpm test # 运行测试
pnpm db:generate # 生成 Prisma Client
pnpm db:push # 推送 schema 到数据库
pnpm db:studio # 打开 Prisma Studio
pnpm bot:start # 启动交易机器人
pnpm dashboard:dev # 启动仪表盘开发服务器
pnpm derive-keys # 从 PRIVATE_KEY 派生 L2 API 密钥
参见 .env.example,关键变量:
| 变量 | 说明 |
|---|---|
DB_PASSWORD |
PostgreSQL 密码 |
DATABASE_URL |
PostgreSQL 连接串(引用 ${DB_PASSWORD}) |
REDIS_URL |
Redis 连接地址 |
PRIVATE_KEY |
Polymarket 钱包私钥 |
FUNDER_ADDRESS |
Polymarket 代理钱包地址 |
DRY_RUN |
true(默认)模拟交易,false 真实下单 |
AUTO_EXECUTE |
false(默认)仅检测信号,不自动下单 |
24 个城市,分 3 个优先级:
| 模型 | 权重 |
|---|---|
| ECMWF | 30% |
| GFS | 25% |
| HKO | 25% |
| ICON | 20% |
HKO 为香港市场的官方结算数据源,每日更新 4 次。
| 端点 | 说明 |
|---|---|
/health |
基本状态(运行/停止、运行时长、DryRun 模式) |
/metrics |
详细指标(持仓、日 PnL、最近一轮结果) |
/auto-execute |
自动执行开关 |
Private