Os oito números que o Blave Agent reporta — o que cada um significa e em quais confiar.
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.
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.
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 anualizado ÷ volatilidade anualizada (tanto de alta quanto de baixa). Ele responde: quanto retorno por unidade de risco total?
| Sharpe | Interpretação |
|---|---|
| < 0 | Perdendo dinheiro em termos ajustados ao risco |
| 0 – 0.5 | Fraco — mal compensa o risco |
| 0.5 – 1.0 | Aceitável para trend following (nosso exemplo de SMA se encaixa aqui) |
| 1.0 – 1.5 | Bom |
| > 1.5 | Forte — trate com ceticismo se o período de backtest for curto |
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. Sharpe | O que isso sugere |
|---|---|
| Sortino ≈ Sharpe | Retornos simétricos — a volatilidade de alta e de baixa são semelhantes |
| Sortino >> Sharpe | Retornos com assimetria positiva — grandes ganhos, pequenas perdas (ideal) |
| Sortino << Sharpe | Retornos com assimetria negativa — pequenos ganhos, perdas grandes ocasionais (perigoso) |
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.
Í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.
| Omega | Interpretação |
|---|---|
| < 1.0 | Mais perda total do que ganho — não lucrativo |
| 1.0 – 1.1 | Marginalmente lucrativo, frágil sob custos do mundo real |
| 1.1 – 1.3 | Sólido |
| > 1.5 | Forte — 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.
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.
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.
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.)
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.
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.