Backtesting8 min de leitura
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 backtest de uma estratégia Polymarket, reproduza suas melhores ofertas/pedidos registrados e dimensione preenchimentos hipotéticos contra a liquidez observada. Inspecione carimbos de data/hora, cadência armazenada e lacunas; o arquivo não pode estabelecer o livro exato entre observações. Um último preço ou um único meio-termo também omite o spread e a profundidade que um pedido real encontraria.
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 com livros de profundidade total registrados em ambos os lados. DepthFeed ingere atualizações de Polymarket CLOB, mas as observações armazenadas seguem a cadência de captura documentada e podem ter lacunas. Inspecione os carimbos de data/hora disponíveis para seu mercado em vez de assumir que cada evento upstream foi retido.
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 observações registradas em ordem de carimbo de data/hora. Cada uma descreve o livro armazenado naquela observação, incluindo a melhor oferta, melhor pedido, profundidade e spread. Não infira um estado exato do livro ou preenchimentos garantidos entre observações; torne explícita qualquer suposição de interpolação ou persistência no backtest.
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.
Etapa 5 — Valide o adaptador de dados ao vivo
As respostas históricas de REST e os quadros ao vivo de WebSocket usam contratos documentados distintos. Valide um adaptador para seus identificadores, carimbos de data/hora e campos antes de alimentar ambos em lógica de estratégia compartilhada. Faça backtest em observações armazenadas, em seguida, teste forward-test do adaptador ao vivo com paper trading.
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.
Pontos principais
- 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