O que um drawdown de 99,99% me ensinou sobre construir bots de trading

O primeiro bot de trading que coloquei em uma conta real perdeu quase tudo. Win rate: 25%. Drawdown máximo: 99,99%. Ele não estourou porque o mercado foi cruel. Estourou porque eu o construí do jeito que a maioria das pessoas constrói seu primeiro bot — como um protótipo sustentado pelas minhas próprias opiniões.

Esta é a história de por que apaguei todas as regras manuais do sistema que veio depois dele, e o que essa decisão me ensinou sobre onde o julgamento humano realmente pertence em uma estratégia automatizada.

Curva de capital ilustrativa subindo modestamente até um pico e então desabando quase a zero Ilustrativo, não são dados reais de desempenho. O colapso não foi um único trade ruim — foram mil decisões pequenas, confiantes e erradas.

O erro confortável

Quando você começa, as regras hard-coded parecem controle. Stop-loss em 3%. Take-profit em algum número redondo. Position sizing a partir de uma fórmula que você leu em um post de blog. Cada regra parece prudente isoladamente. Juntas, elas formam uma máquina frágil que nunca viu a situação que está prestes a enfrentar.

Meu primeiro sistema estava cheio dessas regras. Ele também fazia todo o processamento numérico na CPU, em loops, do jeito que você escreveria um script descartável. Nada disso importava enquanto eu fazia backtest com dados limpos e amigáveis. Tudo isso passou a importar no momento em que as condições reais — fees, slippage, a possibilidade de liquidação — apareceram. Um stop fixo de 3% que parece disciplinado no papel se torna uma máquina que vende em cada pedacinho de ruído e nunca deixa uma tese respirar. O drawdown não foi um único trade catastrófico. Foram mil decisões pequenas, confiantes e erradas.

A lição desconfortável

A lição não foi “ajustar melhor o stop-loss”. Foi que eu era o gargalo. Cada limiar hard-coded era eu congelando um palpite dentro do sistema e forçando o futuro a obedecê-lo.

Então, no sistema seguinte, criei uma regra sobre regras: dentro da parte do modelo que de fato aprende, não há nenhuma regra manual. Nem stop-loss, nem take-profit, nem position sizing, nem leverage. Se uma decisão afeta como a estratégia age, o modelo tem que aprendê-la a partir das consequências de agir — não herdá-la da minha intuição. (A segurança em nível de sistema — limites de exposição, um kill-switch — é uma camada separada, e ela permanece. O que sai sou eu escrevendo o trade à mão.)

Isso parece extremo, e é. Também impõe uma disciplina que, silenciosamente, resolve várias falhas comuns de iniciante:

Onde os humanos ainda pertencem

Remover as regras manuais não remove o humano. Apenas o realoca. Eu não decido mais o que o modelo faz em um determinado momento. Eu decido o que significa “bom” — o objetivo pelo qual ele é recompensado (reward), as condições sob as quais ele treina, os custos que ele deve respeitar. Projetar essa objective function é a parte mais humana de todo o empreendimento, e errá-la é muito mais perigoso do que qualquer trade ruim isolado, porque o modelo vai otimizar exatamente o que você pediu, não o que você quis dizer.

Essa é a troca que eu faria todas as vezes: parar de fingir que consigo escrever à mão a decisão para cada estado futuro e, em vez disso, dedicar esse esforço a definir o mundo no qual o sistema aprende.

A conclusão

Um drawdown de 99,99% é um professor caro, mas claro. O bot não falhou por falta de regras. Ele falhou porque tinha as minhas regras — rígidas, não testadas contra a realidade e substituindo o aprendizado em vez de viabilizá-lo.

Se você está construindo seu primeiro sistema, a coisa mais útil que você pode apagar é a sua própria certeza.


Esta é a parte 1 de um registro anônimo e contínuo sobre a construção de um sistema de trading com aprendizado por reforço (RL). É sobre método e erros, não sobre sinais — nada aqui é conselho de investimento, e nenhum detalhe da estratégia é compartilhado.