Files

82 lines
3.0 KiB
Markdown

# Polymarket Copy Trader (Project B)
**Quantitative copy-trading bot for Polymarket** — follows the top 1% of profitable wallets using Bayesian credibility updates + Kelly position sizing + Favorite-Longshot bias correction.
## What's Different from Project A (Whale Watcher)
| Aspect | Project A (whale-watcher) | Project B (copy-trader) |
|---|---|---|
| Goal | Detect "insider" trades via LLM | Mirror statistically profitable wallets |
| LLM cost | $0.5-2 per signal | $0 (all math, no LLM) |
| Win rate evidence | 63.5% on 250 signals | Expected ≥55% from top-1% PnL data |
| Latency | Asynchronous | Real-time WebSocket |
## Phase Plan
-**Phase 0**: foundation, pool builder, Telegram notifier
-**Phase 1**: Trade stream (poll-based, 30s interval, restart-safe)
-**Phase 2**: Signal aggregator (Bayesian update + Kelly sizer + 5-layer filter)
-**Phase 3**: CLOB trader (optional, off by default — manual first)
-**Phase 4**: Dashboard (FastAPI for P&L tracking)
-**Phase 5**: Strategy analytics (signal outcome backfill + 6-dimension hit-rate dashboard for parameter tuning)
## Architecture (target)
```
Data API ──┐
├─→ Wallet Pool Builder ──→ SQLite (top 100 wallets)
└─→ Health score = f(PnL, trades, category diversity)
User WebSocket (User channel) per wallet
On each trade → check eligibility (size, price)
Bayesian credibility update
Softmax aggregation across wallets
Kelly sizing + Favorite-Longshot correction
Telegram notification + optional CLOB execution
```
## Running
```bash
# Main bot (6 asyncio loops: pool/stream/credibility/cleanup/health/outcome-resolve)
python -m src.main run
# Strategy analytics dashboard (http://localhost:8518/analytics)
python -m src.main dashboard
# CLI stats — hit rate / PnL
python -m src.main stats
# Manually backfill resolved-market outcomes onto historical signals
python -m src.main backfill --batch 500
# Docker (cloud)
docker compose build --no-cache && docker compose up -d
```
## Configuration
Copy `.env.example` to `.env` and fill in:
- Polymarket Gamma + Data API (no auth needed for reads)
- Telegram bot token + chat ID for notifications
- CLOB credentials (only if enabling live execution)
- Wallet pool criteria (PnL minimum, trade count, etc.)
## Why this will (probably) make money
- Polymarket data: **top 1% users capture 84% of all profits**
- Their edge = identifying mispriced contracts, NOT insider info
- Following their trades = systematic exposure to that edge
- Bayesian updating = self-correcting when a wallet's skill degrades
- Favorite-Longshot correction = avoid 70.8% user loss pattern
## Disclaimer
Backtesting not yet performed. Start with `ENABLE_EXECUTION=false` and observe signals via Telegram for 2-4 weeks before any live trading.