Como ler um backtest

Os oito números que o Blave Agent reporta — o que cada um significa e em quais confiar.

Última atualização 2026-09
Pontos principais
  • Um backtest roda um conjunto de regras de operação sobre dados históricos, para você ver como elas teriam se comportado antes de decidir colocar dinheiro real.
  • Retorno precisa ser lido junto com risco: a estratégia de exemplo btc_sma_cross rendeu +145.8%, o buy and hold +68.2%, e o drawdown máximo no mesmo período foi de −42.6%.
  • O exemplo não define data de fim do backtest, então cada execução vai até o dia em que é rodada; os números acima são um retrato de uma dessas execuções, e rodando você mesmo hoje vai obter outros.
  • O Sharpe é quanto retorno você obtém por unidade de risco total assumido: 0.5–1.0 é aceitável para uma estratégia de tendência; acima de 1.5 com menos de dois anos de backtest merece desconfiança.
  • Os custos comem uma vantagem fina: a mesma estratégia pagou 22% do capital em taxas ao longo de quatro anos, e o Omega dela é de apenas 1.04.

Você tem em mãos um relatório de backtest com retorno total de +145.8%, e não sabe se esse número deveria te animar ou te deixar em alerta. Um backtest roda um conjunto de regras de operação sobre dados históricos para ver como elas teriam se comportado; o que você recebe não é uma previsão de quanto vai ganhar, e sim um conjunto de números para julgar: retorno, risco e custo. A forma de julgar é ler os três juntos, não apenas o primeiro.

Um exemplo real para ancorar os conceitos

A estratégia btc_sma_cross (SMA45/SMA100 em BTCUSDT 1h, a partir de 2022-01-01) produziu os resultados abaixo. O exemplo não define data de fim do backtest, então cada execução vai até o dia em que é rodada: estes números são um retrato de uma dessas execuções, e rodando você mesmo hoje vai obter outros.

Retorno total
+145.8%
Benchmark (Buy & Hold)
+68.2%
Drawdown máximo
−42.6%
Índice de Sharpe
0.77
Índice de Sortino
0.72
Índice de Omega
1.04

A estratégia mais que dobrou o retorno do buy and hold — mas também teve um drawdown brutal de −42.6% em determinado momento. Se isso é aceitável depende inteiramente da sua tolerância a risco, e as métricas abaixo vão ajudar você a pensar sobre isso. O relatório também mostra dois números de custo — Total de taxas pagas (22% do capital aqui, ao longo de 4 anos) e Trades — que voltam a entrar em jogo na seção do Omega mais abaixo.

Este é um exemplo real gerado pelo próprio motor de backtest do Blave Agent. Se você ainda não tem uma estratégia própria e não sabe por onde começar, não precisa escrever uma do zero — todas as estratégias da biblioteca oficial de estratégias vêm com o backtest real, então você pode olhar os números primeiro e decidir depois se vai implantá-la.

Índice de Sharpe — retorno ajustado ao risco

Índice de Sharpe = retorno anualizado ÷ volatilidade anualizada (tanto de alta quanto de baixa). Ele responde: quanto retorno por unidade de risco total?

SharpeInterpretação
< 0Perdendo dinheiro em termos ajustados ao risco
0 – 0.5Fraco — mal compensa o risco
0.5 – 1.0Aceitável para trend following (nosso exemplo de SMA se encaixa aqui)
1.0 – 1.5Bom
> 1.5Forte — trate com ceticismo se o período de backtest for curto
Um Sharpe alto em um backtest curto é um sinal de alerta. Sharpe de 3.0 em 6 meses = menos de 130 pontos de dados. Isso é ruído, não sinal. Exija pelo menos 2 anos antes de confiar em um Sharpe acima de 1.5.

Índice de Sortino — risco apenas de baixa

O índice de Sortino é como o Sharpe, mas penaliza apenas a volatilidade de baixa. A variância de alta não conta como risco. Ele responde: quanto retorno por unidade de volatilidade ruim?

Para o SMA Cross, o Sortino (0.72) está próximo do Sharpe (0.77) — o que significa que a volatilidade da estratégia é bastante simétrica. Uma estratégia em que o Sortino é significativamente maior que o Sharpe tem grandes oscilações de alta, mas drawdowns controlados, o que é desejável.

Sortino vs. SharpeO que isso sugere
Sortino ≈ SharpeRetornos simétricos — a volatilidade de alta e de baixa são semelhantes
Sortino >> SharpeRetornos com assimetria positiva — grandes ganhos, pequenas perdas (ideal)
Sortino << SharpeRetornos com assimetria negativa — pequenos ganhos, perdas grandes ocasionais (perigoso)

Drawdown máximo (MDD) — seu pior momento

O drawdown máximo é a maior queda do pico ao vale no capital durante o backtest. Se o capital atingiu um pico de $100,000 e caiu para $57,380 antes de se recuperar, MDD = −42.6%.

O MDD importa porque mede quanta dor você teria que suportar para permanecer na estratégia. A maioria das pessoas desiste bem antes da recuperação.

Nunca aloque mais capital do que você conseguiria suportar psicologicamente perder duas vezes seguidas.
Se o MDD é −42.6%, uma alocação de $100K significa que você pode enfrentar uma perda contábil de $42,600. Se isso fizer você parar a estratégia, aloque menos.

Índice de Omega — o quadro completo

Índice de Omega = retornos totais acima de um limiar ÷ retornos totais abaixo dele. O limiar geralmente é 0 (ponto de equilíbrio). Ao contrário do Sharpe, o Omega captura toda a distribuição de retornos, não apenas média e variância.

OmegaInterpretação
< 1.0Mais perda total do que ganho — não lucrativo
1.0 – 1.1Marginalmente lucrativo, frágil sob custos do mundo real
1.1 – 1.3Sólido
> 1.5Forte — ou possivelmente overfitted

O SMA Cross tem Omega = 1.04 — apenas ligeiramente acima de 1.0. Depois dos 22% do capital pagos em taxas ao longo de 4 anos, a vantagem no mundo real é pequena. Isso é normal para uma estratégia de trend following; os índices de Sharpe e Sortino são as melhores métricas de qualidade primárias para esse tipo de estratégia.

Os cinco erros mais comuns em backtest

1

Lookahead bias: usar dados que não estavam disponíveis no momento da decisão. Por padrão o Blave Agent executa na abertura da próxima barra para evitar isso (a exceção são as barras que a própria estratégia marca como exec_at_close — por exemplo a liquidação na virada de contrato de futuros, que é executada no fechamento daquela mesma barra), mas cálculos de indicadores personalizados ainda podem introduzi-lo — por exemplo, calcular um Z-score usando a média de toda a série.

2

Pular o período de aquecimento (warm-up): indicadores como SMA(100) precisam de 100 barras antes de fazerem sentido. As primeiras 100 barras devem ser excluídas da medição de desempenho. O parâmetro WARMUP do Blave Agent cuida disso automaticamente.

3

Otimizar no dataset completo: se você faz uma varredura de parâmetros usando todos os dados disponíveis e depois reporta o desempenho nos mesmos dados, está reportando o erro de treino, não a generalização. Sempre reserve pelo menos 20–30% dos dados para validação fora da amostra (out-of-sample). (Como isso funciona na prática no Blave, veja Como funciona a validação fora da amostra.)

4

Ignorar as taxas: o btc_sma_cross pagou 22% do capital em taxas ao longo de 4 anos. Para estratégias de frequência mais alta, as taxas podem facilmente superar o alpha. Ajuste a taxa ao mercado que você realmente opera: FEE = 0.0005 corresponde ao taker de 0.05% dos futuros USD-M da Binance no VIP0 (o maker é 0.02%); o spot da Binance cobra 0.1% tanto de maker quanto de taker no primeiro nível, então uma estratégia de spot escrita com 0.0005 subestima os seus custos.

5

Confundir retorno total com retorno ajustado ao risco: uma estratégia que retorna 200% com um MDD de −80% não é "melhor" do que uma que retorna 80% com um MDD de −15%. A primeira fará com que a maioria dos usuários reais saia em pânico perto do fundo.

O que estes números não vão te dizer

  • Todos estes números vêm do mesmo trecho de história. Mude o período e os números mudam — o conjunto acima é o retrato de uma execução, não o histórico fixo desta estratégia.
  • Quanto mais curto o período, mais incerto fica cada número. Um Sharpe de 3.0 em 6 meses é ruído, não sinal; a mesma desconfiança vale para Sortino e Omega, que se alimentam da mesma série de retornos.
  • Evite todos os cinco erros acima e o que você tem é um backtest honesto, não uma estratégia lucrativa. A pergunta seguinte à honestidade é se aquele histórico é sorte, e isso precisa ser testado à parte.