Files
profitable-expert-advisor/polymarket/docs/QUICKSTART.md
T
zhutoutoutousan 98a87a69ca Update
2026-02-13 08:03:25 +01:00

4.4 KiB

Polymarket Trading Framework - Quick Start Guide

Installation

cd polymarket
pip install -r requirements.txt

# For live trading, also install:
pip install py-clob-client ethers

Configuration

Create a .env file in the polymarket directory:

# Required for live trading
POLYMARKET_PRIVATE_KEY=your_private_key_here
POLYMARKET_CHAIN_ID=137
POLYMARKET_SIGNATURE_TYPE=0
POLYMARKET_FUNDER_ADDRESS=your_wallet_address

# Optional
POLYMARKET_INITIAL_BALANCE=1000.0
POLYMARKET_MAX_POSITION_SIZE=0.5
POLYMARKET_REQUEST_DELAY=0.1

Quick Examples

1. Discover Markets

from polymarket import GammaClient

gamma = GammaClient()
events = gamma.get_events(active=True, closed=False, limit=10)
for event in events:
    print(f"{event['title']}: {event['slug']}")

2. Get Market Prices

from polymarket import GammaClient, ClobClient

gamma = GammaClient()
clob = ClobClient()

# Get market
market = gamma.get_market_by_slug('will-bitcoin-reach-100k-by-2025')
prices = gamma.get_market_prices(market)

# Get orderbook
token_id = market['clobTokenIds'][0]
best_bid_ask = clob.get_best_bid_ask(token_id)
print(f"Best Bid: {best_bid_ask['bid']}, Best Ask: {best_bid_ask['ask']}")

3. Run a Backtest

from datetime import datetime, timedelta
from polymarket import BacktestEngine
from polymarket.strategies.examples import SimpleProbabilityStrategy

# Create strategy
strategy = SimpleProbabilityStrategy(
    threshold=0.15,  # Trade when probability deviates 15% from 0.5
    min_confidence=0.7
)

# Set period
end_date = datetime.now()
start_date = end_date - timedelta(days=30)

# Run backtest
engine = BacktestEngine(strategy, start_date, end_date, initial_balance=1000.0)
results = engine.run()
engine.generate_report()

4. Live Trading

from polymarket import LiveTradingEngine
from polymarket.strategies.examples import SimpleProbabilityStrategy

# Create strategy
strategy = SimpleProbabilityStrategy()

# Create engine
engine = LiveTradingEngine(strategy, poll_interval=60)

# Add markets to monitor
engine.monitor_tag(tag_id=21, limit=10)  # Monitor crypto markets

# Start trading
engine.start()

Creating Your Own Strategy

from polymarket.strategies import BaseStrategy, MarketSignal

class MyStrategy(BaseStrategy):
    def __init__(self):
        super().__init__(name="MyStrategy", initial_balance=1000.0)
        self.my_parameter = 0.2
    
    def analyze_market(self, market_data):
        prices = market_data.get('prices', {})
        yes_price = prices.get('Yes', 0.5)
        
        # Your trading logic here
        if yes_price < 0.3:  # Undervalued
            return MarketSignal(
                action='BUY',
                token_id=market_data['market']['clobTokenIds'][0],
                size=0.2,  # 20% of balance
                confidence=0.8,
                reason="Yes probability is undervalued",
                metadata={}
            )
        
        return None
    
    def get_parameters(self):
        return {'my_parameter': self.my_parameter}

API Reference

GammaClient (Market Discovery)

  • get_events() - Fetch active events
  • get_event_by_slug() - Get event by slug
  • get_market_by_slug() - Get market by slug
  • get_tags() - Get all categories
  • get_sports() - Get sports leagues
  • search_events() - Search events

ClobClient (Trading Data)

  • get_price() - Get current price
  • get_orderbook() - Get full orderbook
  • get_best_bid_ask() - Get best bid/ask
  • get_market_depth() - Get market depth
  • calculate_impact() - Calculate price impact

DataClient (Portfolio)

  • get_positions() - Get user positions
  • get_trades() - Get trade history
  • get_portfolio() - Get portfolio summary

Notes

  1. Historical Data: Polymarket API may not provide full historical data. The backtesting engine uses simulated price evolution. For production, you'd need to store historical snapshots.

  2. Rate Limits: Be mindful of API rate limits. The framework includes request delays, but check Polymarket documentation for current limits.

  3. Authentication: Live trading requires proper authentication with py-clob-client. See Polymarket documentation for setup.

  4. Testing: Always test strategies thoroughly in backtesting before live trading.

Next Steps