How to Backtest a Polymarket Up/Down Strategy

Up/Down markets look simple, but the price you pay for each share changes everything. This guide walks through backtesting a Polymarket Up/Down strategy properly, from hypothesis to go-live.

Published by the Runbot team

How Up/Down contracts pay out

An Up/Down market asks whether an asset will close a window higher or lower than it opened. You buy shares of Up or Down; the winning side settles at 1 and the losing side at 0. If you buy Up at 0.55, you gain 0.45 per share when right and lose 0.55 when wrong.

That asymmetry is the key to backtesting: the win rate you need depends on the price you pay.

The break-even win rate

Ignoring fees, a position bought at price p breaks even when your win rate equals p. Buy at 0.50 and you need to be right more than 50% of the time; buy at 0.65 and you need more than 65%. A strategy with a 60% win rate is profitable if it enters around 0.50 but loses money if it routinely pays 0.65.

So a backtest that only reports direction accuracy is not enough. It must simulate the actual entry price for every trade.

Step-by-step backtesting process

  1. Write down a hypothesis. For example: "When 1-minute RSI on BTC is deeply oversold near the start of a 15-minute window, Up is underpriced." A clear hypothesis keeps you from fitting noise.
  2. Choose the window. Signals behave very differently on 20-second, 15-minute and 1-day contracts. Test one timeframe at a time.
  3. Define signals on the underlying asset. Indicators, order flow or candle patterns computed on BTC or ETH, not on the contract price alone.
  4. Add a maximum entry price. Only buy when the share price is below the probability your model implies. This single rule often matters more than the signal.
  5. Model costs. Include trading fees and the spread you would realistically cross.
  6. Run on a long history. Use as much data as possible, across different market regimes, so the result does not depend on one trending month.
  7. Evaluate the right metrics. Look at expectancy per trade, win rate versus average entry price, number of trades, maximum drawdown and the longest losing streak.
  8. Check robustness. Keep part of the data aside as an out-of-sample test, and prefer parameter values whose neighbors also perform well.
  9. Go live small. Start with small size and compare live results to the backtest before scaling.

Common mistakes

  • Measuring direction accuracy without simulating entry prices.
  • Ignoring fees and spread on short windows, where they are a large share of the edge.
  • Optimizing dozens of parameters on a short sample, then trusting the best result.
  • Using information in the backtest that would not have been available at entry time (look-ahead bias).
  • Sizing up after a few winning days instead of after a statistically meaningful number of trades.

Doing it with Runbot

With Runbot you can describe the hypothesis to the AI Agent, for example "trade 15-minute BTC Up/Down, buy Up when 1-minute RSI is below 25, never pay more than 0.55", and it builds the rules, backtests them, optimizes parameters and deploys the bot on Polymarket when you are ready. See prediction market bots and the Polymarket integration.

Disclaimer

This guide is educational and is not financial advice. Prediction markets carry a risk of partial or total loss, and backtest results do not guarantee future performance. See our risk disclaimer.

Launch Your AI Trading Platform

Tell us about your project. Most partners go live within 1-2 weeks, and we handle the integration end to end.