Motor de Backtesting
Monte Carlo + replay histórico antes de ir ao vivo
O Motor de Backtesting permite testar uma estratégia de trading contra o passado antes de arriscar capital nela. Em vez de adivinhar se "comprar todo mercado com edge de 5pp ou mais" ou "vender tudo acima de 95%" realmente dá lucro, você roda as regras através de condições históricas e lê números concretos: taxa de acerto, P&L, drawdown máximo, índice de Sharpe e um registro completo de trades. Ele fica em /dashboard/backtest e é a ponte entre uma ideia e uma posição ao vivo.
Esta é uma das ferramentas mais ignoradas da plataforma, e é exatamente por isso que traders disciplinados se apoiam nela. Uma estratégia que parece obviamente lucrativa na sua cabeça muitas vezes produz uma taxa de acerto de 48% e um drawdown feio assim que você a reproduz. É melhor descobrir isso aqui do que no saldo da sua conta.
O Que o Motor Realmente Faz
A Predite roda dois motores de backtest complementares por trás da mesma página. Eles respondem a perguntas diferentes, e usuários sérios rodam ambos.
1. Simulação de Monte Carlo
O painel principal roda uma simulação de Monte Carlo que modela como uma estratégia se comporta ao longo de centenas de dias de trading simulados. Ele é construído sobre estatísticas históricas da Polymarket — edge médio, variância do edge, taxa de acerto base e tempo típico de manutenção de cada arquétipo de estratégia — e então simula dia a dia se uma oportunidade aparece, qual seria o tamanho da sua posição e como ela é resolvida.
É fundamental notar que a simulação é determinística por configuração. As mesmas entradas sempre produzem o mesmo resultado (ela é semeada a partir de um hash da sua configuração), de modo que você pode ajustar um parâmetro de cada vez e ver exatamente como ele altera o desfecho. Mude as entradas que carregam a semente e você obtém um caminho novo. Isso torna o Monte Carlo ideal para *varreduras de parâmetros*: "o que acontece com a taxa de acerto e a contagem de trades quando elevo meu edge mínimo de 5 para 10?"
Quatro arquétipos de estratégia estão disponíveis:
- •EV Follower — segue os sinais de edge da IA; compra quando a IA acha que um mercado está mal precificado. ~58% de acerto base, e a segunda estratégia mais ativa.
- •Mean Reversion — opera contra probabilidades extremas, esperando que voltem para o meio. Menos trades, com edge maior.
- •Momentum — pega tendências de preço. A maior frequência de trades das quatro, e o menor tempo de carregamento (3 dias contra os 5 do EV Follower), então é a que gira capital mais rápido.
- •Contrarian — aposta contra a manada. Trades raros, de alta convicção e alta variância.
2. Replay histórico
Acima do painel de Monte Carlo fica o widget de replay (rotulado como BETA). Este é o motor mais literal: ele percorre snapshots reais e registrados de mercado em ordem cronológica e simula entradas e saídas tick a tick. Onde o Monte Carlo pergunta "como uma estratégia como esta deveria se comportar estatisticamente", o replay pergunta "o que *esta estratégia exata* teria feito sobre o histórico de preços real *deste mercado específico*".
O replay lê das tabelas market_snapshots / market_history, que são preenchidas por crons em segundo plano (a cada 15 minutos para o feed de snapshots, a cada 4 horas para o feed de scan). Por causa disso, o replay precisa de dados acumulados para ser significativo — veja a seção de pegadinhas.
Como Rodar um Backtest, Passo a Passo
- Abra /dashboard/backtest. Você cairá no cartão de configuração com padrões sensatos já preenchidos ($10.000 de capital, edge mínimo de 5pp, janela de 6 meses).
- Escolha uma estratégia no menu suspenso (EV Follower, Mean Reversion, Momentum ou Contrarian). Este é o maior fator isolado a influenciar seus resultados.
- Defina seu capital inicial. Use um número realista — o mesmo com que você realmente pretende operar. Os tamanhos de posição escalam a partir dele, então $1.000 e $100.000 produzem P&L absolutos e drawdowns bem diferentes.
- Configure a entrada — edge mínimo. Este é o seu filtro. O motor só "entra" em um trade quando o edge modelado ultrapassa esse limiar (em pontos percentuais). Um número mais alto significa trades menos frequentes, porém de maior qualidade.
- Configure o sizing — % máxima de posição e fração de Kelly. A % máxima de posição limita quanto do capital qualquer trade individual pode usar. A fração de Kelly escala o tamanho da aposta a partir do edge: 0,5 é meio-Kelly, a escolha mais comum porque o Kelly completo (1.0) é matematicamente ótimo, mas brutalmente volátil. O motor adota o menor valor entre o seu limite máximo de posição e o tamanho derivado do Kelly.
- Configure as saídas — % de stop-loss e % de take-profit. Elas delimitam o quanto uma posição pode se mover contra você (stop) ou a seu favor (alvo) antes de ser encerrada. Elas moldam o tamanho dos ganhos e perdas individuais, o que por sua vez determina o seu perfil de drawdown.
- Escolha sua janela de lookback. Selecione 30 dias, 90 dias ou 180 dias de histórico simulado (rodadas mais longas de 1 ano também estão disponíveis). Janelas mais longas geram mais trades e números estatisticamente mais confiáveis; janelas mais curtas mostram o comportamento do regime recente.
- Clique em Run. Os resultados são renderizados em cerca de meio segundo.
Para o widget de replay, o fluxo é semelhante, mas você adicionalmente cola um Market ID (um condition ID da Polymarket como 0x1a2b... ou um ticker da Kalshi como PRES-2028), escolhe uma janela (7 a 90 dias) e define seus dólares por trade. Deixe o Market ID em branco e ele recai no caminho do Monte Carlo.
Lendo os Resultados
Após uma rodada, o motor destaca quatro métricas principais em cartões grandes, depois uma segunda linha de estatísticas de apoio e, em seguida, visualizações.
Os quatro números que mais importam
- •Total Return (%) — o ganho ou perda percentual sobre o capital inicial ao longo da janela. Verde é positivo, vermelho é negativo. Este é o destaque, mas nunca o leia sozinho.
- •P&L ($) — lucro ou perda absoluto em dólares. Útil para checar no instinto se a estratégia vale o seu tempo no seu nível de capital real.
- •Win Rate (%) — parcela dos trades encerrados que deram lucro. Não dê peso excessivo a isso. Uma taxa de acerto de 45% pode ser altamente lucrativa se os ganhos forem maiores que as perdas, e uma taxa de acerto de 70% pode dar prejuízo se as perdas forem enormes. Sempre combine com o P&L.
- •Sharpe Ratio — retorno por unidade de volatilidade, anualizado (o motor anualiza os retornos diários por √252). Esta é a melhor pontuação de qualidade resumida em um único número. Como guia aproximado: abaixo de 1.0 é fraco, 1.0–2.0 é sólido, acima de 2.0 é excelente para estratégias de mercado de previsão. Uma estratégia com retorno total menor, mas Sharpe muito maior, costuma ser a melhor para operar porque é mais suave e mais fácil de escalar.
As estatísticas de apoio
- •Total Trades — o tamanho da sua amostra. Menos de ~20 trades significa que os outros números são ruidosos; trate-os como direcionais, não como verdade absoluta.
- •Max Drawdown (%) — a maior queda de pico a vale no patrimônio durante a rodada. Este é o seu número de dor. Pergunte com honestidade: *eu teria continuado operando ao longo de um drawdown tão profundo sem entrar em pânico?* Se o drawdown máximo for de 35% e você desistiria em 20%, a estratégia não é viável para você, independentemente do seu retorno.
- •Average Hold (days) — quanto tempo as posições ficam abertas. Isso revela a cadência: uma média de 3 dias é gestão ativa; uma média de 12 dias é paciência.
Distribuição de resultados e o registro de trades
- •A Equity Curve plota o valor da conta ao longo da janela. Você quer uma curva que sobe de forma constante para cima e para a direita. Uma curva que dispara cedo e depois sangra, ou uma com um único penhasco enorme, é um alerta mesmo que o ponto final seja positivo.
- •Os Monthly Returns dividem o P&L em baldes por mês. A consistência importa: uma estratégia que dá lucro em 5 de 6 meses é mais confiável do que uma que deve todo o seu retorno a um único mês de sorte.
- •O Trade Log lista trades individuais com lado (YES/NO), entrada, saída, tamanho, P&L, tempo de manutenção e resultado. Leia especificamente seus melhores e piores trades — se todo o seu retorno veio de um único outlier, você não tem edge, você tem uma coincidência.
- •Use Export CSV (canto superior direito do registro de trades) para extrair *todos* os trades — não apenas os últimos 10 exibidos — para uma planilha, para uma auditoria mais profunda. Os campos do CSV são higienizados contra injeção de fórmulas, então é seguro abri-lo diretamente no Excel ou no Sheets.
Dicas para Backtests Confiáveis
- •Mude uma variável de cada vez. Como o Monte Carlo é determinístico, você pode isolar o efeito de, digamos, a fração de Kelly mantendo todo o resto constante. Varra 0,25 / 0,5 / 1.0 e observe como o Sharpe e o drawdown máximo se movem juntos.
- •Otimize para Sharpe e drawdown, não para retorno bruto. É fácil turbinar o retorno aumentando o tamanho das posições; é difícil fazer isso sem explodir o drawdown. O retorno total de melhor aparência raramente é a melhor estratégia.
- •Exija uma amostra de verdade. Estenda a janela para 90 ou 180 dias para ter trades suficientes. Uma rodada lucrativa de 30 dias com 8 trades não é evidência.
- •Faça uma verificação cruzada entre Monte Carlo e replay. Se uma estratégia parece ótima no Monte Carlo, valide a mesma lógica no histórico de um mercado real por meio do widget de replay. A concordância entre os dois é um sinal forte; a discordância significa que é preciso investigar mais a fundo.
- •Alinhe o backtest à forma como você realmente vai operar. Use seu capital real, seus limites de posição reais e regras de saída que você de fato vai honrar. Um backtest de uma estratégia disciplinada que você não vai seguir não tem valor.
Pegadinhas e Limites
- •Backtests são direcionais, não profecia. Ambos os motores são explicitamente rotulados como aproximações. O Monte Carlo usa *estatísticas* históricas, não uma reprodução de cada trade real; o motor de replay usa snapshots em cache e um modelo de uma posição por vez. Desempenho passado não garante resultados futuros — a ressalva padrão é verdadeira aqui por motivos reais.
- •O replay precisa que os dados existam. O motor de replay exige pelo menos 10 snapshots de um mercado, e idealmente mais de 50 ao longo de pelo menos um dia inteiro, antes de retornar uma saída útil. Em uma implantação nova ou em um mercado pouco coberto, você verá um aviso de
data_quality: insufficientoulimited. A solução é simplesmente tempo — deixe os crons de snapshot acumularem histórico. - •Contagens baixas de trades trazem avisos. Se menos de 3 a 5 trades forem encerrados, o motor sinaliza alta variância diretamente nas notas. Acredite no aviso.
- •Overfitting é o pecado capital. Se você ajustar os parâmetros até a curva ficar perfeita, você memorizou ruído histórico, não encontrou um edge durável. Uma estratégia que sobrevive a várias janelas diferentes e a uma configuração ligeiramente distinta é muito mais crível do que uma que é perfeita em exatamente um ajuste.
- •Limite de taxa. Os backtests são limitados a 10 rodadas por hora por usuário porque cada replay pode varrer milhares de snapshots. Planeje suas varreduras de parâmetros em vez de ficar martelando o Run.
Requisitos de Plano
O Motor de Backtesting está disponível nos planos Pro ($59/mês) e Bot ($99/mês). Ele não está incluído no Starter ($29/mês) — usuários do Starter verão um bloqueio de upgrade em /dashboard/backtest.
O backtesting em si nunca envolve dinheiro real, então o Pro é suficiente para usar todos os recursos desta página. Para depois implantar uma estratégia validada como um bot automatizado ao vivo operando no CLOB da Polymarket, você precisará do plano Bot, que desbloqueia o Bot Builder e a execução ao vivo. O caminho recomendado é: faça backtest no Pro ou no Bot → faça paper trading das sobreviventes → entre ao vivo no Bot.
Como Se Conecta ao Restante da Predite
O Backtesting fica no meio de um pipeline de validação. As estratégias que você testa aqui espelham as condições usadas pelo EV Scanner e pelo Bot Builder, então uma configuração que vai bem no backtest se traduz quase diretamente em regras de bot ao vivo. Depois que uma estratégia passa no backtest, o passo natural é testá-la para a frente, sem risco, no Paper Trading, antes de comprometer capital. Sobre dimensionamento, cuidado para não misturar: o backtest aplica um tamanho de posição fixo próprio, enquanto a Calculadora de Kelly roda a fórmula de Kelly de verdade, edge / (1 − preço), com um quarto de Kelly por padrão e teto de 25% da banca. Os dois não vão bater, e é pelo número de Kelly que se dimensiona. E quando você estiver pronto para automatizar um edge comprovado, a biblioteca de Estratégias de Bot permite ligar exatamente essas regras num bot rodando continuamente.