Vamos começar pelos números, porque eles são o argumento inteiro. Um trade taker de ida e volta numa grande venue de perpétuos custa cerca de 0,10% do notional em comissões. O funding numa posição comprada lotada pode chegar a 10-30% ao ano contra você. Uma ordem a mercado grande em relação à profundidade do topo do book paga impacto pela lei da raiz quadrada, além do spread. E um backtest que lê a revisão de hoje dos dados de ontem ganha uma vantagem de vários pontos percentuais ao ano que nunca existiu.
O número surpreendente é o primeiro. Não por ser grande — mas pelo que ele faz com a frequência de negociação. Todo mundo concorda com "inclua as taxas" e em seguida testa uma estratégia que negocia quarenta vezes por dia. A 0,10% por ida e volta, quarenta trades são 4% do notional por dia em custos. Não existe sinal num perp de mid-cap que supere essa barra. A estratégia não chegava nem perto de ser viável, e o backtest sem taxas dizia que era genial.
Taxas são um filtro, não um desconto
O modelo mental que a maioria carrega é que as taxas apenas raspam a curva: mesma forma, um pouco mais baixa. Isso está errado. Taxas são um filtro de frequência. Elas apagam por completo as variantes de alta frequência de uma vantagem e deixam as variantes lentas praticamente intactas. Quando nosso pipeline passou a aplicar as tabelas reais de maker/taker por venue, as estratégias que morreram não foram as ideias ruins — foram boas ideias negociando com frequência demais. A correção quase sempre foi um timeframe mais longo, não um sinal melhor. Hoje abandonamos qualquer coisa cujo retorno médio por trade fique abaixo de 0,15% do notional, porque depois dos custos de ida e volta não sobra nada para compor.
Funding é um imposto sobre a posição, e ele tem memória
Futuros perpétuos pagam funding a cada hora ou a cada oito horas, e isso não é ruído: é estruturalmente correlacionado exatamente com os trades que sistemas de momentum querem fazer. Quando todo mundo está comprado, o funding é positivo, e a sua posição comprada de momentum paga a conta. Um backtest sem acúmulo de funding favorece sistematicamente o trend-following em perpétuos. Aprendemos isso do jeito constrangedor — uma família inteira de estratégias de funding-carry foi abandonada automaticamente porque o engine não estava creditando o funding que elas foram desenhadas para colher. O sinal estava correto. Faltava a contabilidade.
O impacto escala com a raiz quadrada do seu tamanho
A ficção educada do backtest baseado em barras é que você executa no fechamento. Para ordens pequenas isso é mais ou menos verdade. Para qualquer coisa relevante, o modelo aceito é que o impacto cresce com a raiz quadrada do tamanho da ordem em relação ao volume, e ele nunca volta. Nós incorporamos uma estimativa de impacto pela lei da raiz quadrada em cada execução e na própria curva de capital. Isso pesa mais justamente onde é menos conveniente: capacidade. Uma estratégia pode ser genuinamente lucrativa com $50k e estruturalmente deficitária com $5M, e só uma curva que considera impacto mostra onde fica essa fronteira.
Look-ahead se esconde nos dados, não no código
Ninguém escreve if tomorrow_close > today_close: buy(). O look-ahead entra pelo encanamento dos dados: sentimento de notícias carimbado pelo horário de publicação em vez do horário de ingestão, taxas de funding cruzadas pelo período que cobrem em vez de quando ficaram conhecidas, universos de símbolos "atuais" aplicados ao histórico (viés de sobrevivência), indicadores econômicos revisados substituindo o número que de fato saiu na hora. Nossa regra é point-in-time em todo lugar: cada série suplementar é carimbada por quando nós poderíamos ter sabido daquilo, e um backtest só pode ler o que existia naquele nanossegundo.
O teste de um backtest não é se a curva sobe. É se o mesmo código, alimentado com os mesmos sinais ao vivo, produz os mesmos trades — e você só descobre isso conferindo, todo dia, para sempre.
Essa última frase é um processo de verdade, não um slogan. Todo dia reproduzimos a janela de cada estratégia em paper trading no engine de backtest e comparamos os trades um a um. Quando paper e replay discordam, um dos dois está mentindo, e normalmente é um custo ou um timestamp. As quatro linhas de custo acima são simplesmente as que mentiram para nós primeiro.
← Todos os artigos