by casatrick
Python Polymarket arbitrage bot - 5 crypto strategies for BTC, ETH, XRP, and SOL prediction markets.
# Add to your Claude Code skills
git clone https://github.com/casatrick/polymarket-arbitrage-bot-pythonGuides for using ai agents skills like polymarket-arbitrage-bot-python.
polymarket-arbitrage-bot-python is an open-source ai agents skill for AI coding assistants such as Claude Code, Codex CLI, and ChatGPT, built by casatrick. Python Polymarket arbitrage bot - 5 crypto strategies for BTC, ETH, XRP, and SOL prediction markets. It has 452 GitHub stars.
polymarket-arbitrage-bot-python's catalog security scan is still queued. You can run an instant dependency and prompt-injection check now with the "Scan for vulnerabilities" button above.
Clone the repository with "git clone https://github.com/casatrick/polymarket-arbitrage-bot-python" and add it to your Claude Code skills directory (see the Installation section above).
polymarket-arbitrage-bot-python is primarily written in Python. It is open-source under casatrick on GitHub, so you can review or fork the full source.
Yes. SkillsLLM lists many other AI Agents skills you can browse and compare side by side. Open the AI Agents category from the badge at the top of this page, or use the Related Skills and comparison links further down to weigh polymarket-arbitrage-bot-python against similar tools.
No comments yet. Be the first to share your thoughts!
Unlocks once the catalog security scan passes (runs nightly).
The deep catalog scan for this skill is still queued. Run an instant dependency check now instead.
Python Polymarket arbitrage bot for crypto prediction markets (BTC, ETH, XRP, SOL). Runs five strategies in parallel - intra-market, combinatorial, cross-platform, endgame, and momentum/mean-reversion - with composite signal ranking and risk controls.
Landing page: casatrick.github.io/polymarket-arbitrage-bot-python (overview, quick start, FAQ) · Full docs (this page): strategy breakdown, configuration, and risk management · Source: github.com/casatrick/polymarket-arbitrage-bot-python
https://github.com/user-attachments/assets/a85d94c6-0f45-414b-8f49-70f44c4cb85e
Demo: Polymarket arbitrage bot scanning crypto markets and ranking multi-strategy signals.
A complete breakdown of the five arbitrage strategies used by this Polymarket arbitrage bot - covering intra-market arbitrage, combinatorial arbitrage, cross-platform arbitrage, endgame arbitrage, and momentum/mean-reversion trading across 5-minute, 15-minute, and 1-hour timeframes.
I build and maintain trading infrastructure like this for clients on Polymarket. Available as:
All builds ship with paper-trading mode first, full source code ownership, and no black-box logic - you get the same level of parameter transparency shown in this doc.
Contact: Telegram @casatrick · GitHub: casatrick/polymarket-arbitrage-bot-python
.env) and never hardcoded or logged.A Polymarket arbitrage bot is an automated trading system that scans Polymarket's prediction markets for pricing inefficiencies and executes trades to capture the resulting spread. This bot runs five distinct arbitrage and trading strategies in parallel, each targeting a different type of market inefficiency, then ranks and executes the highest-quality signals automatically.
This document covers how each strategy works, how signals are scored, and how to configure the bot's params.
How Polymarket YES/NO arbitrage works: in binary prediction markets, YES and NO token prices should always sum to $1.00. When combined YES + NO pricing falls below $1.00 after fees, buying both outcomes locks in a guaranteed, risk-free profit - the core mechanic behind most Polymarket arbitrage bot strategies.
| Parameter | Description | Default |
|---|---|---|
min_spread_pct |
Minimum profit % required | 1.5% |
max_position_usd |
Maximum position size | $500 |
fee_pct |
Polymarket fee percentage | 2.0% |
For multi-outcome Polymarket markets (e.g., price-range or bracket markets), all outcome prices should sum to $1.00. When the total falls below $1.00, buying every outcome guarantees a profit - a scalable extension of classic Polymarket arbitrage bot logic to markets with 3+ outcomes.
| Parameter | Description | Default |
|---|---|---|
min_deviation_pct |
Minimum deviation from $1.00 | 2.0% |
max_position_usd |
Maximum position size | $300 |
min_outcomes |
Minimum number of outcomes required | 3 |
This strategy compares Polymarket prediction prices against real-time spot prices from exchanges like Binance and CoinGecko. When a significant discrepancy appears, the bot trades on the assumption that Polymarket pricing will converge toward fair value - a directional, convergence-based approach rather than risk-free arbitrage.
Fair probability is estimated using:
Buy the underpriced outcome (YES or NO) and hold for market correction.
| Parameter | Description | Default |
|---|---|---|
min_price_diff_pct |
Minimum price difference to trigger | 3.0% |
max_position_usd |
Maximum position size | $1000 |
stale_threshold_sec |
Maximum age of price data | 30s |
When a market approaches resolution and one outcome shows very high probability (>93%), buying that outcome captures a small but near-certain return. This is one of the more capital-efficient strategies in a Polymarket arbitrage bot, since time-to-resolution is short and predictable.
Buy the high-probability outcome and hold to resolution.
| Parameter | Description | Default |
|---|---|---|
min_probability |
Minimum outcome probability | 0.93 |
max_time_to_resolution_hrs |
Maximum hours until resolution | 48 |
min_annualized_return_pct |
Minimum annualized return | 100% |
max_position_usd |
Maximum position size | $2000 |
This strategy tracks Polymarket YES/NO prices as a time series and applies standard technical indicators: Z-score, RSI, rate of change, and VWAP divergence - the same tools used in crypto and equities momentum trading, adapted for prediction markets.
Mean Reversion Buy (Oversold):
Mean Reversion Sell (Overbought):
| Timeframe | Lookback | Entry Z-score | Take Profit | Stop Loss |
|---|---|---|---|---|
| 5-minute (scalping) | 12 candles (1 hr) | ±2.0σ | 1.5% | 1.0% |
| 15-minute (swing) | 16 candles (4 hrs) | ±1.8σ | 3.0% | 2.0% |
| 1-hour (position) | 24 candles (1 day) | ±1.5σ | 5.0% | 3.0% |
Each timeframe has its own parameter set in MomentumConfig:
tf_5m_lookback, tf_5m_entry_zscore, tf_5m_take_profit_pct, tf_5m_stop_loss_pcttf_15m_* (same pattern)tf_1h_* (same pattern)The StrategyAggregator scores every signal (0.0-1.0) using a weighted composite:
score = (profit_score × 0.30) +
(confidence_score × 0.25) +
(strategy_priority × 0.20) +
(urgency_score × 0.15) +
(risk_reward_score × 0.10)
| Component | Description |
|---|---|
profit_score |
Expected profit % ÷ 10 (capped at 1.0) |
confidence_score |
Signal confidence (0.0-1.0) |
strategy_priority |
Strategy-type weight (see below) |
urgency_score |
HIGH = 1.0, MEDIUM = 0.67, LOW = 0.33 |
risk_reward_score |
Risk/reward ratio × 5 (capped at 1.0) |
| Rank | Strategy | Priority | Reliability |
|---|---|---|---|
| 1 | Intra-market | 1.00 | Risk-free arbitrage |
| 2 | Combinatorial | 0.95 | Risk-free arbitrage |
| 3 | Endgame | 0.90 | High probability |
| 4 | Cross-platform | 0.80 | Directional, requires convergence |
| 5 | Momentum / mean-reversion | 0.70 | Technical, less certain |
The bot's risk layer includes: