OpenChart
Claude·Codex와 함께하는 무료 데스크톱 차트 도구. 알림 설정·차트 움직임 분석·데이터 제공자 선택
저장소 정보는 아직 수집하지 않았습니다.
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
Multi-agent edge-detection and execution system for prediction markets and sports betting on Kalshi and Polymarket US. Research first, execute second.
저장소 README에서 가져옴
README 전체를 불러오는 중입니다.
README 전문 보기 ↗Scans thousands of Kalshi markets, cross-references 12 sportsbooks and free data APIs, prices fair value with a normal-CDF model, and executes Kelly-sized limit orders — every bet cleared through 21 risk gates and logged with fill-accurate accounting for closing-line-value tracking.
| Category | Coverage | Data sources |
|---|---|---|
| 🏟️ Sports betting | NFL, NBA, MLB, NHL, NCAAB/NCAAF, UFC, soccer/MLS, F1, NASCAR, PGA, IPL, esports: 31 game filters, plus 8 futures filters | The Odds API (12 sportsbooks), ESPN, NHL/MLB Stats, NWS |
| 🏆 Championship futures | Super Bowl, NBA Finals, Stanley Cup, World Series, PGA Tour — priced with N-way de-vig | Sportsbook outright odds |
| 📈 Prediction markets | Crypto (BTC, ETH, XRP, SOL, DOGE), S&P 500 + VIX, weather (13 cities), politics | CoinGecko, Yahoo Finance, NWS |
The betting logic data-flow diagram, every box linked to the code it describes, is on the homepage; docs/diagrams/ is its source.
Fair value is a sport-specific normal-CDF model over a weighted-median consensus of 12 sportsbooks (sharp books like Pinnacle/Circa weighted 3×, recreational 0.7×), then adjusted by team-stats win%, sharp-money line movement, weather, pitcher matchups, rest/back-to-back fatigue, and book-disagreement signals. Sports Guide → breaks down each signal and the de-vig math.
[!IMPORTANT] Every scan defaults to preview mode. No money is risked until you pass
--execute. Each scan row shows a Gate column (R18) that previews whether it will pass the static risk gates —okif all clear, or a short label (score,conf,no-fav,pred-off,live-off, etc.) for the failing gate.
Every order runs the gates in order. Gates 2b, 8 and 9 trim the size; every other gate rejects. The thresholds live in .env, and the defaults are in the AGENTS.md gate table.
| # | Gate | Action |
|---|---|---|
| 1 | Daily loss limit | Reject |
| 2 | Open position count | Reject |
| 2b | Total and per-sport open exposure, as a fraction of equity | Reject + cap |
| 3 | Edge threshold, per sport or global, plus the exchange fee | Reject |
| 3.05 | Claimed edge above MAX_EDGE (a model or matching bug) | Reject |
| 3.5 | Market price floor (lottery-ticket filter) | Reject |
| 3.55 | Market price ceiling (cost/payout ratio) | Reject |
| 3.6 | Bid/ask spread and 24h volume (liquidity) | Reject |
| 3.7 | Days to event, game markets only (futures exempt) | Reject |
| 4 | Composite score | Reject |
| 4.5 | Minimum confidence | Reject |
| 4.6 | Cheap NO bets need high edge and high confidence | Reject |
| 4.6b | Edge floor on every NO bet | Reject |
| 4.7 | Prediction categories (crypto, weather, SPX, mentions, companies, politics) off unless ALLOW_PREDICTION_BETS=true | Reject |
| 4.8 | Games already in progress off unless ALLOW_LIVE_BETS=true | Reject |
| 5 | Already holding this market |
All limits configurable via .env. Every gate traces to a documented calibration finding — the per-rule history (why the price floor, the NO-side guard, the per-sport edge floors, one-way confidence bumps, and the prediction-market block exist) lives in Architecture → Risk Management.
Bet size scales with edge, divided by batch count to control total exposure. Edge is soft-capped above 15% before sizing (trusted_edge()) to damp Kelly on likely-overstated signals — raw edge remains in gates and reports.
bet = max(unit, (kelly_frac / batch) * trusted_edge(edge) * bankroll)
Result is capped by max bet ($100), the bet-ratio cap, and available bankroll. Architecture → Position Sizing has the full edge→contracts worked example and every KELLY_* knob.
bankroll is the balance summed across Kalshi's exchange shards (sharded 2026-08-24: Crypto → 2, Tennis & Baseball → 3). Cash does not follow the markets, so the executor moves the shortfall to an order's shard before placing it — see Architecture → Exchange shards.
# 0. Clone repo and enter project
git clone https://github.com/ai-automation-tools/edge-radar.git
cd Edge-Radar
# 1. Create + activate virtual environment
python -m venv .venv
# macOS/Linux (bash/zsh):
source .venv/bin/activate
# Windows PowerShell:
# .venv\Scripts\Activate.ps1
# 2. Install dependencies and create env file
python -m pip install --upgrade pip
pip install -r requirements.txt
cp .env.example .env
# 3. Verify environment (API keys, dependencies)
python scripts/doctor.py
# 4. Preview opportunities (no money risked)
python scripts/scan.py sports --filter nba
# 5. Execute with risk controls
python scripts/scan.py sports --filter nba --execute --unit-size 1 --max-bets 5
# 6. Settle bets and view P&L
python scripts/kalshi/kalshi_settler.py report --detail --save
[!TIP] All scanners share the same flags:
--execute,--unit-size,--max-bets,--pick,--ticker,--save,--date,--exclude-open. Use--date tomorrow --exclude-opento avoid double-betting.
| Guide | What it covers |
|---|---|
| Setup Guide | First-time install, API keys + RSA private key generation, .env wiring, safe rollout plan (dry-run → low-stakes → normal), automation, ongoing monitoring, troubleshooting |
Expand any section for copy-paste CLI examples by workflow.
python scripts/scan.py sports --filter nhl
python scripts/scan.py sports --filter mlb --execute --unit-size 1 --max-bets 10
python scripts/scan.py sports --filter mlb --date tomorrow --exclude-open
python scripts/scan.py sports --filter nba --save
python scripts/scan.py futures --filter nba-futures
python scripts/scan.py futures --filter mlb-futures --execute --unit-size 2 --max-bets 5
python scripts/scan.py futures --filter nba-futures --save
python scripts/scan.py prediction --filter crypto
python scripts/scan.py prediction --filter weather
python scripts/scan.py prediction --filter crypto --execute --unit-size 1 --max-bets 5
python scripts/kalshi/kalshi_executor.py status --save
python scripts/kalshi/risk_check.py --report positions --save
python scripts/kalshi/kalshi_settler.py settle
python scripts/kalshi/kalshi_settler.py report --detail --save
python scripts/backtest/backtester.py
python scripts/backtest/backtester.py --simulate --save
python scripts/backtest/backtester.py --sport mlb --confidence high --min-edge 0.10
Analyzes settled trades for win rate, ROI, profit factor, Sharpe ratio, equity curves, max drawdown, and calibration — broken down by sport, category, confidence level, and edge bucket. The --simulate flag runs what-if scenarios across edge thresholds, confidence tiers, and categories; --save exports reports.
Edge-Radar ships with two slash commands for Claude Code:
| Skill | Definition | Description |
|---|---|---|
/edge-radar | skills/edge-radar/SKILL.md | Unified command center — scan, bet, status, settle, risk, detail, backtest across Kalshi sports, futures, and prediction markets. |
/edge-radar-analysis | skills/edge-radar-analysis/SKILL.md | Post-hoc performance report — trade ledger + slices by sport, category, side, edge bucket, confidence, price, calibration, longshots, streaks, daily P&L. |
The skill source of truth lives in
skills/. Claude Code loads them from.claude/skills/, which on Windows are directory junctions toskills/(git-ignored, sincecore.symlinks=false). After a fresh clone, recreate the junctions once:pwsh -File scripts/setup/link_skills.ps1.
Prefer copy-paste recipes over slash commands? The Prompt Library has 35 ready-to-use natural-language prompts — daily scans, execution sessions, live/prop betting, futures, portfolio routines, and backtesting — grouped by workflow.
/edge-radar status # Balance, positions, P&L
/edge-radar scan nba # Preview NBA opportunities
/edge-radar bet mlb --unit-size 1 # Scan + execute on confirm
/edge-radar settle # Settle + P&L report
/edge-radar-analysis 30 --save # 30-day performance report to reports/Performance/
Routes natural language to the correct scanner, enforces all risk gates, always previews before executing. All CLI flags work inline.
[!NOTE] Requires Claude Code CLI, Desktop, or IDE extension.
Gemini CLI / OpenAI Codex — add the skill content to your
GEMINI.mdorAGENTS.mdfor equivalent functionality.
Pre-built scripts scan all sports, rank by composite score, and execute with Kelly sizing. See the Automation Guide.
# Install all scheduled tasks at once
python scripts/schedulers/automation/install_windows_task.py install all
| Task | Schedule | Description |
|---|---|---|
daily-summary | 4:50 AM PT | Morning P&L digest — yesterday settled + open exposure + today pending + 7d context. Emailed at 5:00 AM PT (U2, 2026-04-30) |
scan | 8:00 AM ET | Preview scan — saves report, no bets |
execute | 8:00 AM ET | Scan + execute — places live orders |
settle | 11:00 PM ET | Settle bets, update P&L |
next-day | 9:00 PM ET | Scan + execute tomorrow's games |
calibration | 2:00 AM, 1st of month | 30-day calibration report — Brier, calibration curve, prescriptive recommendations |
Reports save to reports/Sports/schedulers/ with full execution details.
Want the complete pipeline — emails, midday/late runs, weekly calibration/backtest/analysis — beyond the installer's core tasks? See the owner's live task-schedule — the full ~20-task roster the repo owner actually runs (documented as a recommended starting point), with copy-paste .bat/.sh templates and schtasks registration.
| Guide | Description |
|---|---|
| Documentation Index | Central index and map linking all guides, references, and specifications |
| Setup Guide | Install, API keys, .env, safe rollout, automation, and monitoring — the single end-to-end operator guide |
| Automation Guide | Windows Task Scheduler for daily betting — one-command installer for the core tasks |
| Task Schedule (owner's live setup) | The full ~20-task automation pipeline the repo owner runs — recommended template, with .bat/.sh templates and schtasks setup |
| Scripts Reference | Every script, flag, and example |
| Kalshi Coverage & Guides | Coverage matrix — which sports/markets are configured and what bet types |
| Sports Guide | Edge detection model, consensus de-vig, daily workflow |
All external data is free. Only Kalshi requires a funded account.
| API | Purpose |
|---|---|
| Kalshi | Market data + order execution (API key + RSA signing) |
| The Odds API | 12 US sportsbook odds (500 free req/mo) |
| ESPN | NBA, NFL, NCAAB, NCAAF standings + line movement |
| NHL Stats API | Standings, goal differential, last 10 record |
| MLB Stats API | Standings, run differential, pitcher stats |
| NWS | Hourly forecasts for 61 NFL/MLB outdoor venues |
| CoinGecko | Crypto prices + 24h volatility |
| Yahoo Finance | S&P 500 + VIX implied volatility |
| Reject |
| 6 | Per-event cap | Reject |
| 6b | Opposing side already held or resting on the game (futures exempt) | Reject |
| 7 | Same matchup bet within the series-dedup window | Reject |
| 8 | Bet size cap | Cap |
| 9 | Bet ratio cap against the batch median | Cap |
| NFL, NBA, NHL, MLB, golf championships |
| Prediction Markets | Crypto, weather, S&P 500, politics |
| Architecture | Pipeline, edge models, risk gates, data flow, and project structure |
| MLB Filtering | 10 filter categories for MLB picks |
| Roadmap | Open enhancement work |
| Changelog | Full project history |