Back to Markets

Polymarket backtesting

Replay a window of a Polymarket market against its reconstructed order book, apply your entry and exit rules, and read the fills, the equity curve, and the realised P&L that resulted.

The engine is in closed testing. Leave your email and we will tell you when it opens.

What the engine does

Order-book replay, not a price line

Each hour of the window is reconstructed from archived Polymarket depth. Orders walk the book and pay the spread, so size costs what size cost.

Four fill models, and what each one is for

Depth walk is the default: it walks the book and pays the spread, so an order larger than the top level fills like one. Top-of-book is simpler and, measured against real Polymarket fills, slightly more accurate at the median — it just cannot fill size the top level does not hold. Midpoint fills at the bid-ask midpoint, ignoring the spread entirely — a reference, not a cost estimate. Depth walk with depletion adds self-impact and needs the full-history dataset.

Rules over real book fields

Entry and exit conditions read price, mid, best bid, best ask, spread, depth, and hours to resolution — the fields the replayed book can actually produce.

Gaps disclosed, not smoothed

A market whose archive coverage falls below the threshold is refused rather than scored on partial data, and every result names the hours that were missing or degraded.

Metered in market-hours

A run costs simulated market-hours — window length times markets — charged against a monthly allowance. Usage and remaining runs are shown above the form.

Same engine over the API

Everything this page does is available at /v1/simulation with an API key, including the trade list and equity curve endpoints.

What it does not do

  • No Sharpe or Sortino ratio — the engine reports P&L, return, win rate, drawdown and trade count, and nothing is inferred beyond them.
  • No portfolio-level position sizing: size is a fixed share count per entry, not a Kelly or percent-of-bankroll rule.
  • Signed Parquet export of the underlying archive requires the full-history dataset, which is not part of Pro.
  • Coverage is per market and not uniform — a market with a thin archive cannot be backtested at all, however liquid it is today.

Frequently asked questions

What does PolySimulator backtesting actually replay?▾

It replays the reconstructed Polymarket order book for the markets and window you choose, hour by hour, and fills your orders against that depth. That is stricter than replaying a single price series: a large order walks the book and pays the spread, so the result reflects the liquidity that was actually there rather than an idealised mid-price.

Which metrics does the backtester report?▾

Realised profit and loss, total return, win rate, maximum drawdown, the number of simulated trades, and the market-hours the run consumed — plus the full trade list and equity curve. It does not report Sharpe or Sortino ratios.

Is backtesting free?▾

Backtesting is part of the Pro plan. Runs are metered in simulated market-hours and in runs per month, and the page shows what you have used and what remains before you start a run.

What happens when the archive does not cover a market?▾

The run is refused rather than scored on partial data. You can check coverage for a market and window from the form before running, and every result discloses which hours were missing or degraded.

Do I need to write code to backtest a strategy?▾

No. The form on this page defines the strategy — side, outcome, size, fill model, and a list of entry and exit conditions. The same engine is also reachable over the REST API at /v1/simulation for programmatic use.

How far back can I backtest?▾

As far back as the order-book archive covers the market you pick, subject to your plan’s maximum window length and monthly market-hour allowance. Coverage is per market, so check it from the form rather than assuming a uniform history depth.