12 de Setembro de 2026 · risco

5 regras de dimensionamento, 1 sinal: o que realmente faz diferença no seu backtest

5 regras de dimensionamento, 1 sinal: o que realmente faz diferença no seu backtest

É provável que o sinal de entrada seja o elemento menos importante do seu backtest. Posso pegar uma regra de momentum medíocre, deixar todos os horários de entrada e saída intactos, mudar apenas a função que decide quantos contratos manter e levar o Sharpe líquido de 0.41 para 0.71 e o drawdown máximo de 31% para 13%. Mesmas operações. Mesmas execuções. Estratégia diferente.

Essa afirmação incomoda as pessoas, e deveria mesmo, porque sugere que a maior parte do tempo gasto ajustando períodos de lookback e limites de filtros é dedicada ao fator menos importante. Então vou mostrar os resultados reais e, depois, dar razão aos críticos, porque existe uma versão errada desse argumento e vale saber qual versão estou defendendo.

1 sinal, 6 maneiras de manter a posição

O sinal: contrato perpétuo ETHUSDT na Binance USDⓈ-M, candles de 1 hora, comprado quando a EMA de 12 horas está acima da EMA de 96 horas, zerado nos demais casos, sem posições vendidas. De julho de 2022 a junho de 2026. 431 operações completas. Taxas taker nos dois lados a 5.0 bps, funding pago ou recebido a cada 8 horas sobre a posição real, slippage modelado com base na profundidade do topo do livro. É um sinal deliberadamente sem graça — escolhi esse porque ninguém o defenderia, o que torna o teste bem limpo.

Todas as linhas abaixo usam horários de candle de entrada e saída idênticos. A única diferença é a função de dimensionamento.

Regra de dimensionamentoSharpe líquidoDD máx.Notional negociado/ano (× posição média)Custos como % do PnL brutoAlavancagem máxima
Notional fixo de $10k0.4118.2%246×14%1.0×
Fração fixa, 100% do patrimônio0.4430.8%251×15%1.0×
Volatilidade realizada inversa de 20 dias0.6814.1%690×29%4.4×
Meta de volatilidade anualizada de 20%, rebalanceamento por hora, sem limite0.7112.9%1,180×41%6.3×
Meta de volatilidade de 20%, faixa de não negociação de 20%, limite de alavancagem de 3×0.6615.3%402×19%3.0×
Meio Kelly com média/variância móvel de 60 dias0.5224.6%830×33%8.1×
0.41 → 0.71Sharpe líquido, entradas idênticas
41%do PnL bruto consumido pelo rebalanceamento por hora
6.3×alavancagem máxima usada discretamente pelo resultado com melhor Sharpe

Observe a diferença. Entre as linhas de pior e melhor resultado, há uma diferença relativa de 73% no Sharpe e um fator de 2.4 no drawdown. Agora encontre um parâmetro de sinal de entrada neste conjunto de dados que mova o Sharpe em 0.30 sem também indicar um overfitting óbvio. Eu procurei. O período do par de EMA muda o valor em cerca de 0.12 em toda a grade plausível, e a maior parte desse movimento é ruído que não se sustenta fora da amostra.

Por que o ajuste inverso à volatilidade parece tão bom, e quanto disso é real

O mecanismo não é misterioso. Com notional fixo, o tamanho da posição não tem correlação com a volatilidade realizada, o que significa que o risco em dólares por operação é proporcional à volatilidade daquela semana. No ETH, durante esse período, a volatilidade realizada de 20 dias variou de 31% a 118% anualizada. A estratégia com notional fixo assumiu 3.8× mais risco em dólares em março de 2024 do que em julho de 2023, não porque o sinal estivesse mais confiante, mas porque o mercado estava mais agitado. Quase todo o drawdown se concentra no quintil de maior volatilidade. O dimensionamento inverso à volatilidade elimina essa relação, e eliminá-la é uma melhora real no perfil da série de retornos.

Mas parte do ganho de Sharpe é um artefato de medição, e, se você não separar as duas coisas, tomará decisões ruins depois. O Sharpe divide pelo desvio padrão dos retornos. O ajuste à volatilidade é, por definição, uma operação que estabiliza o desvio padrão dos retornos. Você está otimizando diretamente o denominador. Uma regra que ajusta as posições para atingir uma volatilidade ex ante constante melhora o Sharpe em quase qualquer série de retornos com agrupamento de volatilidade, inclusive séries sem vantagem alguma. Verifiquei isso com sinais embaralhados: randomizar os horários de entrada, manter o ajuste à meta de volatilidade, e o Sharpe ainda melhora cerca de 0.06 em relação ao notional fixo sobre uma base de média zero. É pouco, mas diferente de zero, e decorre puramente da mecânica.

Por isso, quando comparo regras de dimensionamento internamente, Sharpe nunca é o único número na planilha. Quero Calmar, quero PnL líquido por unidade de notional médio alocado e quero a decomposição do bruto ao líquido, porque esses 3 fatores juntos são muito mais difíceis de manipular com um truque no denominador.

A estimativa de volatilidade é um modelo e vaza dados como um

A causa mais comum de um bom resultado de dimensionamento ser falso: a estimativa de volatilidade usa informações do candle cujo tamanho de posição está calculando. Se sua série de volatilidade for calculada com uma janela centralizada, com o `rolling().std()` padrão do pandas aplicado após uma reamostragem que inclui o candle parcial atual, ou com uma padronização da amostra inteira, há vazamento de dados. É sutil porque a volatilidade é persistente, então o vazamento é pequeno em cada linha e a curva de patrimônio ainda parece plausível. Só fica um pouco suave demais justamente nas semanas que importam.

Nossos agentes verificam 4 aspectos de cada regra de dimensionamento antes de promover um resultado para a fila de paper trading:

  1. Disponibilidade no momento da decisão. O tamanho usado no candle que abre às 14:00 precisa ser calculável com dados cujo horário de fechamento seja ≤ 13:59:59.999. Verificamos isso recalculando a série de tamanhos com um frame truncado em uma amostra aleatória de 200 pontos de decisão e comparando os resultados.
  2. O período de lookback do estimador é um parâmetro real. Uma janela de volatilidade de 20 dias e uma de 60 dias são duas estratégias diferentes. O lookback entra na grade walk-forward junto com todo o resto; se o resultado só funciona com um período específico, isso revela fragilidade.
  3. Trajetória da alavancagem, não apenas o pico. Exiba a distribuição completa da alavancagem bruta. O resultado sem limite com ajuste à volatilidade acima passou 4% das horas acima de 5×, algo que nunca aparece numa tabela-resumo e determina completamente se a estratégia pode ser implementada.
  4. Sensibilidade do dimensionamento como teste de robustez. Se o Sharpe desaba quando você muda a meta de volatilidade de 20% para 25%, a estratégia não está ajustada à volatilidade; ela está ajustada à alavancagem, e você encontrou sua vantagem escolhendo um número.

O limite de alavancagem não é um enfeite de gestão de risco, faz parte da definição da estratégia. Os níveis da Binance para ETHUSDT reduzem a alavancagem máxima conforme o notional da posição cresce, e a taxa de margem de manutenção também aumenta. Um backtest que deixa a regra de ajuste à volatilidade chegar a 6.3× com notional de $400k está descrevendo uma posição que a plataforma não permitirá manter com essa margem. A linha com limite na tabela custa 0.05 de Sharpe e é a única das duas que descreve algo real.

É no rebalanceamento que o dinheiro vai embora

Repare na coluna de custos. O rebalanceamento por hora para atingir a meta de volatilidade trouxe o melhor Sharpe de manchete e também entregou 41% do PnL bruto à corretora. Isso equivale a negociar por ano 1,180× o notional médio da posição, com 5 bps por lado, além do spread e do impacto. A solução ingênua é rebalancear menos vezes, seguindo um calendário. A solução melhor é uma faixa de não negociação: só redimensionar quando a posição atual se desviar da meta além de certo limite.

Uma faixa de 20% reduziu o notional negociado anual de 1,180× para 402× — uma redução de 66% — e custou 0.05 de Sharpe. Já testei isso em 8 sinais e o padrão se repete: faixas entre 15% e 25% recuperam a maior parte do benefício de controle de risco com um terço do giro, e qualquer valor abaixo de 10% significa pagar taxas por uma precisão cosmética numa quantidade que, de todo modo, você estima com uma janela de 20 dias. Não dá para rebalancear com 3 casas decimais usando um número com erro padrão de 15%.

Em fevereiro, tivemos uma execução em que o relatório escrito por um agente atribuiu uma melhora de 0.22 no Sharpe ao "filtro de entrada aprimorado". A diferença era uma linha no módulo de dimensionamento. O filtro não havia mudado. Agora faço o relatório exibir no topo o hash da configuração de dimensionamento, porque atribuir corretamente os resultados exige disciplina e os modelos gostam tanto quanto qualquer pessoa de contar uma história bem arrumada.

O que o paper trading faz com sua regra de dimensionamento

É aqui que a diferença entre backtest e paper trading fica maior, e o motivo é basicamente aritmético. O dimensionamento que responde à volatilidade faz o tamanho da posição oscilar por um fator de 4 a 8 ao longo da amostra. As duas pontas desse intervalo esbarram em restrições da plataforma que o backtest nunca modelou.

Na ponta menor: incremento de quantidade e notional mínimo. O contrato perpétuo ETHUSDT tem incremento de quantidade de 0.001 e mínimo de $5. Se o tamanho da posição no regime de baixa volatilidade for 0.0004 ETH, o backtest mantém a posição e o paper trading não mantém nada. Parece um caso extremo, até você perceber que uma regra de ajuste à volatilidade coloca seus tamanhos menores nos mercados mais calmos, que, para um sinal de tendência, frequentemente são justamente onde estão as boas entradas. Na ponta maior: limites de posição, níveis de margem e o fato de que uma posição de 6× exige disciplina de margem isolada para a qual você não fez backtest com um modelo de liquidação.

Detectamos um caso em que a curva de patrimônio do paper trading acompanhou o backtest com diferença de até 3% durante 6 semanas e depois divergiu bastante. A causa foi o arredondamento: truncamento com `int()` em vez de arredondar para o incremento, no dimensionador de ordens, aplicado a posições com média de 1.4 incrementos. O backtest dimensionava em espaço contínuo, e o dimensionador em produção perdia 20-30% da posição pretendida em cada operação pequena. Nada de modelo de execução exótico, nenhuma história sobre latência. Truncamento.

Onde os críticos têm razão

3 objeções procedem, e não quero ignorá-las.

Primeiro, e mais importante: o dimensionamento aloca a vantagem, não consegue criá-la. Se a expectativa bruta do seu sinal for zero ou negativa após taxas e funding realistas, todas as regras da tabela perdem dinheiro — as sofisticadas só perdem com um perfil de variância mais bonito. Escolhi um sinal com uma vantagem líquida pequena, mas positiva, nesse período. Aplique as mesmas 6 regras a um sinal com −1.2 bps líquidos por operação e a classificação se mantém, mas o patrimônio final fica abaixo do inicial em todos os casos. O dimensionamento é um multiplicador de alguma coisa. Você ainda precisa ter essa coisa.

Segundo, o ajuste à volatilidade tem um modo de falha real e bem documentado: reduz a alavancagem no fundo de uma liquidação rápida e volta a aumentá-la depois da recuperação brusca. Numa reversão acentuada em V, o notional fixo vence, às vezes com folga. A queda das ações em março de 2020 e a liquidação do mercado cripto em agosto de 2024 penalizaram o dimensionamento responsivo à volatilidade na perna de recuperação. Meu período de 4 anos de ETH contém, por acaso, mais períodos de volatilidade agrupada e movimento gradual do que reversões bruscas em V, o que favorece as linhas de ajuste inverso à volatilidade. Um período diferente inverte parte da ordem, e, se eu tivesse começado com uma tabela de 2020, estaria defendendo uma versão mais fraca desse argumento.

Terceiro, a regra de dimensionamento está tão sujeita a overfitting quanto qualquer outra coisa. O meio Kelly com estimativas móveis é o sinal de alerta na minha tabela: parece sofisticado, tem fundamento teórico e produziu o segundo pior drawdown, porque a estimativa móvel da média de uma série de retornos ruidosa é lixo, e Kelly é extremamente sensível a ela. Qualquer regra de dimensionamento que use uma estimativa de retorno esperado como entrada herda o erro dessa estimativa, amplificado. Regras que usam apenas uma estimativa de variância se comportam muito melhor, porque a variância é o único momento estatístico que você consegue estimar de fato com 4 anos de dados por hora.

O que eu levaria disso tudo: quando um resultado de backtest surpreender você, confira o módulo de dimensionamento antes de procurar alguma sacada no sinal. E, ao reportar um Sharpe, informe junto a trajetória da alavancagem e a decomposição dos custos, porque um número tão dependente de uma decisão de dimensionamento não é uma propriedade do sinal.

dimensionamento de posiçãoajuste à volatilidadeíndice de Sharpegestão de riscobacktesting
← Todos os artigos