# Probtrade Bot

> Autonomous trading bot for Polymarket via prob.trade. Run strategies, manage risk, scan markets. Requires the probtrade skill for API access.

- Skill: `vlprosvirkin/probtrade-bot` (Agent Skill, multi-file: 6 files)
- Install (CLI): `npx skillmds@latest add vlprosvirkin/probtrade-bot`
- Raw SKILL.md: https://api.skillmd.com/api/skills/vlprosvirkin/probtrade-bot/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Integrations & APIs
- Author: vlprosvirkin (https://skillmd.com/u/vlprosvirkin)
- Updated: 2026-09-10
- Page: https://skillmd.com/skills/vlprosvirkin/probtrade-bot

---


# probtrade-bot — Autonomous Polymarket Trading Bot

Autonomous trading bot that uses the [probtrade](https://clawhub.ai/probtrade/prob-trade-polymarket-analytics) skill to trade on Polymarket via [prob.trade](https://app.prob.trade). Includes built-in risk management, pluggable strategies, and dry-run mode.

**Requires:** The `probtrade` skill must be installed and configured with API keys.

## Setup

1. Install and configure the `probtrade` skill first (API key required)
2. Edit `{baseDir}/config.yaml` to set your strategy and risk limits
3. By default, `dry_run: true` — the bot will only log, not trade

## Commands

### Run Bot
Start the autonomous trading loop. Scans markets and places orders every cycle.
```bash
python3 {baseDir}/scripts/bot.py run
```

Override strategy:
```bash
python3 {baseDir}/scripts/bot.py run --strategy pair_arb
```

### Scan Markets
Run a single scan to see what the strategy would do, without placing orders.
```bash
python3 {baseDir}/scripts/bot.py scan
```

### Bot Status
Check balance, positions, open orders, and risk state.
```bash
python3 {baseDir}/scripts/bot.py status
```

### List Strategies
See all available strategies.
```bash
python3 {baseDir}/scripts/bot.py strategies
```

## Built-in Strategies

- **momentum** — Contrarian momentum / mean reversion. Buys markets where YES price dropped significantly in 24h, betting on reversion.
- **pair_arb** — Async pair cost arbitrage. Finds markets where YES + NO price < $0.95, buys the cheaper side for guaranteed profit on resolution.

## Creating Your Own Strategy

1. Create a file in `{baseDir}/lib/strategies/` (e.g. `my_strategy.py`)
2. Implement a class that extends `Strategy`:

```python
from lib.strategy_base import Strategy, Signal, get_yes_price, get_price_change

class MyStrategy(Strategy):
    name = "my_strategy"

    def initialize(self, config):
        self.threshold = config.get("my_param", 0.15)

    def scan(self, markets, positions, balance):
        signals = []
        for m in markets:
            if should_buy(m):
                signals.append(Signal(
                    market=m["condition_id"],
                    side="BUY", outcome="Yes",
                    order_type="LIMIT", amount=5,
                    price=get_yes_price(m),
                    confidence=0.8,
                    reason="My reason"
                ))
        return signals
```

3. Set `strategy: my_strategy` in `config.yaml`
4. Test: `python3 {baseDir}/scripts/bot.py scan --strategy my_strategy`

## Risk Management

The bot enforces risk limits defined in `config.yaml`:
- **max_position_size**: Maximum USDC per single order
- **max_daily_spend**: Total USDC allowed per day
- **max_open_positions**: Maximum concurrent positions
- **max_drawdown_pct**: Circuit breaker — halts all trading if portfolio drops by this %
- **max_consecutive_losses**: Circuit breaker trigger after N losses in a row

## Environment Variables

Override config values via env vars:
- `DRY_RUN=true` — force dry run mode
- `STRATEGY=pair_arb` — override strategy
- `LOOP_INTERVAL=60` — override scan interval
- `PROBTRADE_SKILL_PATH=/path/to/probtrade/lib` — path to probtrade skill lib

## Output

All commands output structured data (JSON or formatted text) for easy parsing by AI agents.

