Como fazer backtest de estratégias em mercados de previsão

Um passo a passo — do seu primeiro snapshot até um backtest completo com simulação realista de execuções.

Por que o backtesting de mercados de previsão é diferente

Mercados de previsão não são como cripto spot. Os preços ficam limitados entre 0 e 1, os mercados têm horários de vencimento fixos e os perfis de liquidez não se parecem em nada com um livro de ofertas BTC/USDT. Uma estratégia que funciona na Binance não vai necessariamente funcionar na Polymarket. Você precisa de dados específicos de mercados de previsão — e precisa da profundidade do livro de ofertas, não só de feeds de preço.

Passo 1: obtenha os dados históricos

A PolyTest é uma API de backtesting para a Polymarket que permite a traders reproduzir livros de ofertas históricos e testar estratégias de trading em mercados de previsão de cripto. Cadastre-se em polytest.io, comece seu teste grátis de 3 dias, pegue uma chave de API e comece a fazer requisições. Você terá acesso a dados reais de snapshots em menos de 5 minutos.

# List BTC 5-minute markets
curl -H "X-API-Key: YOUR_API_KEY" \
  "https://api.polytest.io/api/v1/markets?coin=btc&market_type=5m&limit=20"

Passo 2: entenda os dados

Cada snapshot traz: melhor bid, melhor ask, preço médio, spread, volume, 8 níveis de profundidade do livro de ofertas (dos dois lados), o preço de referência da moeda subjacente e um timestamp em milissegundos. A profundidade do livro de ofertas é o grande diferencial — sem ela, você está apenas fazendo backtest contra o preço médio, o que não diz nada sobre como seriam suas execuções reais.

Passo 3: evite o viés de antecipação

O erro de backtesting mais comum é usar dados do futuro para tomar decisões no passado. Os snapshots da PolyTest são pontuais — cada um representa exatamente como o mercado estava naquele momento. Processe-os em ordem cronológica e use apenas dados que estariam disponíveis no momento da decisão. Nunca espie o próximo snapshot para decidir o que fazer agora.

Passo 4: simule execuções realistas

É aqui que a maioria dos backtests desmorona. Se você supõe que consegue comprar pelo preço médio, seus resultados vão parecer bem melhores do que a realidade. Use os dados de profundidade do livro de ofertas para simular execuções: percorra os níveis, consuma a liquidez disponível em cada preço e calcule seu preço médio de execução incluindo o slippage. Uma ordem de 100 cotas com preço médio de 0.52 pode na verdade ser executada a 0.527 se houver pouca liquidez no lado do ask.

function simulateFill(
  orderbook: { price: number; size: number }[],
  quantity: number
) {
  let filled = 0;
  let cost = 0;

  for (const level of orderbook) {
    const fillAtLevel = Math.min(level.size, quantity - filled);
    cost += fillAtLevel * level.price;
    filled += fillAtLevel;
    if (filled >= quantity) break;
  }

  return {
    avgPrice: cost / filled,
    filled,
    slippage: cost / filled - orderbook[0].price,
  };
}

Passo 5: leve o tempo em conta

Os mercados Up/Down da Polymarket são resolvidos em horários específicos. Um mercado BTC de 5 minutos que começa às 14:00 é resolvido às 14:05. Sua estratégia precisa saber quando entrar e quando o mercado fecha. Os snapshots da PolyTest incluem timestamps em milissegundos, então você pode modelar o momento de entrada com precisão. Não suponha que consegue entrar na abertura do mercado — quando você vê o preço, ele pode já ter se movido.

Passo 6: meça o que importa

A taxa de acerto sozinha engana em mercados de previsão. Acompanhe: P&L depois do slippage, drawdown máximo, índice de Sharpe se você roda a estratégia continuamente e como seus resultados mudam em diferentes condições de mercado. Uma estratégia que imprime dinheiro em mercados com tendência pode sangrar em mercados laterais. Use o filtro por intervalo de tempo da PolyTest para testar em períodos diferentes.

Erros comuns

Fazer backtest contra o preço médio em vez de simular execuções no livro de ofertas. Ignorar o spread — os spreads dos mercados Up/Down da Polymarket podem ser de 2-5 centavos, o que corrói as margens rapidamente. Testar em uma única moeda ou timeframe e supor que o resultado se generaliza. Fazer overfitting em uma janela de tempo curta. Não levar em conta que suas ordens moveriam o mercado se você operar com um tamanho relevante.