[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-82186":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":9,"language":10,"languages":9,"totalLinesOfCode":9,"stars":11,"forks":12,"watchers":12,"openIssues":12,"contributorsCount":13,"subscribersCount":13,"size":13,"stars1d":13,"stars7d":13,"stars30d":14,"stars90d":13,"forks30d":13,"starsTrendScore":13,"compositeScore":15,"rankGlobal":9,"rankLanguage":9,"license":16,"archived":17,"fork":17,"defaultBranch":18,"hasWiki":19,"hasPages":17,"topics":20,"createdAt":9,"pushedAt":9,"updatedAt":28,"readmeContent":29,"aiSummary":30,"trendingCount":13,"starSnapshotCount":13,"syncStatus":31,"lastSyncTime":32,"discoverSource":33},82186,"polymarket-weather-bot","risedownlabs\u002Fpolymarket-weather-bot","risedownlabs","Polymarket weather trading bot Polymarket weather betting bot Polymarket weather trading bot Polymarket weather betting bot Polymarket weather trading bot Polymarket weather betting bot Polymarket weather trading bot Polymarket weather betting bot Polymarket weather trading bot Polymarket weather betting bot Polymarket weather trading bot",null,"TypeScript",6,1,0,93,0.9,"MIT License",false,"main",true,[21,22,23,24,25,26,27],"bot","nodejs","polymarket","prediction-markets","trading-bot","typescript","weather","2026-06-12 02:04:24","# WeatherBet — Polymarket Weather Trading Bot\n\nAutomated trading on Polymarket temperature markets. Compares multi-source weather forecasts (Open-Meteo, METAR) against market prices, gates entries on expected value, sizes with fractional Kelly, and persists state under `data\u002Fmarkets\u002F`.\n\n[![Node.js](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FNode.js-≥20.10-339933?logo=node.js&logoColor=white)](https:\u002F\u002Fnodejs.org\u002F)\n[![TypeScript](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FTypeScript-5.7-3178C6?logo=typescript&logoColor=white)](https:\u002F\u002Fwww.typescriptlang.org\u002F)\n[![License: MIT](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FLicense-MIT-blue.svg)](LICENSE)\n\n## Overview\n\nMarkets resolve on airport **METAR** station IDs (e.g. `KLGA`, `KORD`, `KDAL`) — not city-center geocoding.\n\n| Stage | Module |\n|-------|--------|\n| Scan | `scan.ts` — Gamma discovery, station mapping |\n| Forecast | `forecasts.ts` — ECMWF, HRRR\u002FGFS via Open-Meteo; METAR via Aviation Weather |\n| Size | `math.ts` — EV gate, fractional Kelly, calibration from history |\n| Execute | `clob.ts` (live) or simulated balance (paper) |\n| Persist | `storage.ts` → `data\u002Fmarkets\u002F` |\n\nRisk controls: EV gate before entry, spread filter (skip if spread > $0.03), ~20% stop-loss, breakeven trail after +20% gain.\n\n## Requirements\n\n- Node.js 20.10+\n- Paper mode: no wallet\n- Live mode: Polygon wallet + Polymarket proxy\n\n## Install\n\n```bash\ngit clone https:\u002F\u002Fgithub.com\u002Frisedownlabs\u002Fpolymarket-weather-bot.git\ncd polymarket-weather-bot\nnpm install\ncp env.example .env\n```\n\n## Run\n\n**Paper** (default — `WEATHERBOT_CLOB_LIVE` unset or `0`):\n\n```bash\nnpm run dev -- run\nnpm run dev -- status\nnpm run dev -- report\n```\n\n**Live**:\n\n```env\nWEATHERBOT_CLOB_LIVE=1\nWEATHERBOT_POLY_PRIVATE_KEY=0x...\nWEATHERBOT_POLY_PROXY_WALLET=0x...\n```\n\n```bash\nnpm run build\nnpm start -- run\n```\n\n| Command | Description |\n|---------|-------------|\n| `npm start -- run` | Scan loop + position monitor |\n| `npm start -- status` | Balance and open positions |\n| `npm start -- report` | Resolved market stats |\n| `npm run dev -- \u003Ccmd>` | Development via `tsx` |\n\n## Configuration\n\nAll variables use `WEATHERBOT_*` prefix (`src\u002Fconfig.ts`, `env.example`).\n\n| Variable | Purpose |\n|----------|---------|\n| `WEATHERBOT_VC_KEY` | Visual Crossing API key |\n| `WEATHERBOT_CLOB_LIVE` | `1` = live CLOB; `0`\u002Funset = paper |\n| `WEATHERBOT_POLY_PRIVATE_KEY` | Signing key (live) |\n| `WEATHERBOT_POLY_PROXY_WALLET` | Polymarket funder (live) |\n\n### Data sources\n\n| Source | Auth | Use |\n|--------|------|-----|\n| Open-Meteo | None | ECMWF, HRRR\u002FGFS |\n| Aviation Weather | None | Live METAR |\n| Polymarket Gamma | None | Markets, `clobTokenIds` |\n| Visual Crossing | API key | Historical \u002F resolution helpers |\n\n## Pipeline\n\n```mermaid\nflowchart LR\n    A[Open-Meteo \u002F METAR] --> B[Forecast Engine]\n    C[Polymarket Gamma] --> D[Market Scanner]\n    B --> E[EV + Kelly Sizer]\n    D --> E\n    E --> F{Paper or Live?}\n    F -->|Paper| G[Sim Balance]\n    F -->|Live| H[CLOB Orders]\n    G --> I[data\u002Fmarkets\u002F]\n    H --> I\n```\n\n## Source layout\n\n```\nsrc\u002F\n├── index.ts\n├── scan.ts\n├── forecasts.ts\n├── math.ts\n├── polymarket.ts\n├── clob.ts\n├── storage.ts\n└── report.ts\ndata\u002Fmarkets\u002F\n```\n\n## Calibration\n\nResolved markets under `data\u002Fmarkets\u002F` feed back into sizing logic. Run `report` to inspect win rate and calibration drift before enabling live mode.\n\n## Limitations\n\n- Model error, station changes, or late METAR revisions can move resolution away from forecast buckets.\n- Paper mode uses Gamma prices; live slippage and fill timing differ.\n\n## License\n\nMIT — see [LICENSE](LICENSE).\n","WeatherBet 是一个针对 Polymarket 平台上天气温度市场的自动化交易机器人。它通过对比多个来源的天气预报（如 Open-Meteo 和 METAR）与市场价，使用期望值（EV）门控和分数凯利准则来决定交易规模，并将状态保存在 `data\u002Fmarkets\u002F` 目录下。项目采用 TypeScript 编写，支持 Node.js 20.10 及以上版本，具备模拟模式和实盘模式，适用于对天气相关预测市场感兴趣且希望利用自动化工具提高交易效率的用户。",2,"2026-06-11 04:08:00","CREATED_QUERY"]