Creating a backtest — the form, step by step
Aktualisiert: 2026-08-14
Open Backtester → New Backtest. The form is three settings cards plus the strategy editor below them.
1. Market
Coin — BTC by default (deepest history and live volume; ETH/SOL are sparse until late 2025). Contract type — 5m / 15m (default) / 1h / 4h / 24h: 5m and 15m are the most active; longer ones are rarer but hold longer.
2. Date range — the data-availability calendar
Every day in the calendar carries three stripes showing what data actually exists: top — Polymarket markets, middle — Polymarket price ticks, bottom — Binance ticks (spot, needed by indicators). A grey day = no data. Presets: 7d / 14d / 30d / 3M / 5M and ⤢ fit to data. By default the calendar picks the last 14 days that have data.
If your selection includes days without data, the run button is blocked — narrow the range or hit “⤢ fit to data”. One-day backtests are allowed; the maximum is 365 days.
3. Capital and fees
Capital ($) — the virtual bot’s starting balance (default 1000). All $-metrics scale from it; set the amount you’d actually give a bot.
Fee model:
Polymarket (real curve): fee = coefficient × p × (1 − p) × shares
Flat % (custom): fee = rate × trade notional
Understand the default “7”: it is the curve coefficient (the Crypto-category feeRate 0.07), not 7% of the trade. The fee peaks at price 0.50 — ≈1.75% of notional there (example: 100 shares at 0.50 → 0.07 × 0.5 × 0.5 × 100 = $1.75) and approaches zero at the edges (100 shares at 0.90 → $0.63). Flat 0% is for friction-free analysis only — never make decisions from such a run.
4. Strategy
Load strategy pulls a saved one into the editor (and switches coin/period to its config), or build from scratch — the same 7 cards as in Strategies: Market · Position size · Entry conditions · Exit conditions · Entry time window · Market context filters · Circuit breakers. A worked build: the teaching example; indicator reference: the Indicators reference inside the app.
The exchange minimum order is 5 shares (check docs.polymarket.com). Any size passes in a backtest, but a live bot with a tiny
Fixed $orFixed Shares < 5won’t be able to place orders. Keep sizes comfortably above the minimum.
Set Circuit breakers on every run (a drawdown stop) — free insurance and a mandatory habit before going live.
5. Launch
Run Backtest → the Run page: progress bar, stage, the engine’s live log (you can see why each condition fired) and a real-time table of closed trades. Feel free to leave — the bell will tell you when it’s done. If a run stalls, the system re-queues and retries it automatically; after three failed attempts it is honestly marked Failed.