Openclaw Bot Prob Trade
Autonomous trading bot for Polymarket via prob.trade. Run strategies, manage risk, scan markets. Requires the probtrade skill for API access.
Description
name: probtrade-bot version: 1.0.0 description: "Autonomous trading bot for Polymarket via prob.trade. Run strategies, manage risk, scan markets. Requires the probtrade skill for API access." homepage: https://github.com/vlprosvirkin/openclaw-bot-prob-trade user-invocable: true metadata: {"openclaw":{"requires":{"bins":["python3"],"skills":["probtrade"]},"emoji":"🤖","install":[{"id":"python3","kind":"brew","formula":"python@3","bins":["python3"],"label":"Install Python 3","os":["darwin","linux"]}]}}
probtrade-bot — Autonomous Polymarket Trading Bot
Autonomous trading bot that uses the probtrade skill to trade on Polymarket via 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
- Install and configure the
probtradeskill first (API key required) - Edit
{baseDir}/config.yamlto set your strategy and risk limits - 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.
python3 {baseDir}/scripts/bot.py run
Override strategy:
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.
python3 {baseDir}/scripts/bot.py scan
Bot Status
Check balance, positions, open orders, and risk state.
python3 {baseDir}/scripts/bot.py status
List Strategies
See all available strategies.
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
- Create a file in
{baseDir}/lib/strategies/(e.g.my_strategy.py) - Implement a class that extends
Strategy:
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
- Set
strategy: my_strategyinconfig.yaml - 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 modeSTRATEGY=pair_arb— override strategyLOOP_INTERVAL=60— override scan intervalPROBTRADE_SKILL_PATH=/path/to/probtrade/lib— custom path to probtrade skill lib
Output
All commands output structured data (JSON or formatted text) for easy parsing by AI agents.
Reviews (0)
No reviews yet. Be the first to review!
Comments (0)
No comments yet. Be the first to share your thoughts!