Como Fazer Backtest de Estratégias da Polymarket no Order Book
Um último preço amostrado uma vez por hora não consegue dizer se a sua ordem teria sido executada. Veja como fazer backtest na Polymarket contra o book contra o qual ela realmente teria operado.
Para fazer o backtest de uma estratégia da Polymarket do jeito certo, você reproduz o order book histórico contra o qual a estratégia teria operado — toda a escada de bid/ask a cada mudança — e dimensiona os fills contra a liquidez que estava genuinamente em repouso ali. Fazer backtest sobre um último preço ou sobre um único mid superestima sistematicamente a sua vantagem, porque esconde o spread e o slippage que uma ordem real paga.
Por que backtests com último preço mentem
A maior parte dos dados da Polymarket disponíveis gratuitamente é o último preço negociado, muitas vezes amostrado uma vez por hora. Isso é suficiente para desenhar um gráfico e nada mais. Um backtest precisa responder a uma pergunta mais difícil: se a minha ordem estivesse em repouso (ou tivesse cruzado o spread) naquele momento, ela teria sido executada, em que tamanho e a que preço?
Responder a isso exige o order book — cada bid e ask em repouso com seu tamanho — e não um único número. Uma estratégia testada contra o mid assume que sempre foi executada no mid com slippage zero, o que nunca é verdade. Em mercados cripto de curtíssimo prazo, onde os spreads se alargam perto do settlement, essa suposição pode transformar uma estratégia perdedora em uma aparente vencedora.
Passo 1 — Obtenha dados de order book com profundidade total
Comece a partir de dados que registrem o book completo dos dois lados, capturados a cada mudança em vez de em um relógio fixo. A DepthFeed captura a Polymarket de forma orientada a eventos, direto do websocket do CLOB, de modo que cada evento de book e de mudança de preço é registrado com toda a escada de bid/ask — não uma amostra horária ou por minuto que ignora a vida de um mercado de cinco minutos.
Puxe os mercados que você quer pela REST API: descubra-os com GET /v3/{coin}/markets e, em seguida, puxe a profundidade de /v3/{coin}/markets/{id}/snapshots. Cada snapshot carrega os arrays de preço e tamanho de bid/ask, além dos timestamps de exchange e de recebimento em epoch-millis.
Passo 2 — Reconstrua o book a cada instante
Reproduza os snapshots em ordem de timestamp para reconstruir o book exatamente como ele estava em qualquer instante. Como os dados são orientados a eventos, a reconstrução é exata entre os eventos — não há adivinhação por interpolação. Esse é o estado ao qual a sua estratégia reage: o melhor bid, o melhor ask, a profundidade por trás de cada um e o spread.
Passo 3 — Modele os fills contra a profundidade real
Agora simule a execução com honestidade. Uma ordem a mercado caminha pelo book: é executada primeiro contra o melhor nível, depois contra o seguinte, até esgotar o seu tamanho — então o seu preço médio é pior do que o topo sempre que ela consome mais do que o nível de cima. Uma ordem em repouso entra na fila e só é executada se o mercado negociar atravessando o seu preço com tamanho suficiente por trás.
Dimensionar os fills contra a escada registrada é o ponto central: isso lhe dá slippage e probabilidade de execução realistas, em vez da ficção de que você sempre negociou no mid.
Passo 4 — Junte o preço do ativo subjacente
Os mercados de cripto up/down da Polymarket são movidos pelo movimento spot do ativo subjacente. Cada snapshot da DepthFeed é casado com um preço de referência da Binance de alta frequência pelo timestamp em epoch-millis, de modo que você consegue alinhar o estado do book com o movimento spot que reprecificou o contrato — essencial para qualquer estratégia que negocie a relação entre o preço da cripto e a probabilidade implícita do mercado.
Passo 5 — Vá ao vivo com o mesmo código
A REST API histórica e o stream WebSocket ao vivo emitem objetos de snapshot JSON idênticos. Isso significa que o loader que você escreveu para reproduzir o histórico lê o feed ao vivo sem alterações — sem reescrita entre pesquisa e produção. Faça o backtest, valide e então aponte o mesmo código para wss://api.depthfeed.com/v3/stream e opere.
Armadilhas comuns
- Usar dados de último preço: esconde o spread e o slippage; infla os retornos do backtest.
- Snapshots em intervalo fixo: uma amostra horária ou por minuto perde a maior parte da vida de um mercado de 5 minutos.
- Ignorar a posição na fila: supor que ordens em repouso sempre são executadas superestima estratégias passivas.
- Viés de look-ahead: reaja apenas a dados com um timestamp de recebimento igual ou anterior ao seu momento de decisão.
- Pular o ativo subjacente: a vantagem em cripto up/down normalmente vive na relação spot-para-probabilidade.
Key takeaways
- 01Faça o backtest contra o order book, não contra o último preço — é a profundidade que determina os fills.
- 02Use dados orientados a eventos: amostras em intervalo fixo perdem a vida de mercados de curtíssimo prazo.
- 03Modele ordens a mercado caminhando pelo book e ordens em repouso esperando na fila.
- 04Junte o preço da cripto subjacente para capturar a relação spot-para-probabilidade.
- 05Escolha dados cujo histórico e feed ao vivo compartilhem um único formato, para que você opere o código que testou.
Um último preço amostrado uma vez por hora não consegue dizer se a sua ordem teria sido executada. Veja como fazer backtest na Polymarket contra o book contra o qual ela realmente teria operado.
Começar grátis