O Bot Que Perseguia o Próprio Rabo

Uma vez dei ao meu bot de trading ao vivo o que parecia um lampejo de inteligência: a capacidade de se adaptar. Depois de uma sequência de perdas, ele ficava mais cauteloso; depois de uma sequência de ganhos, mais agressivo. Parecia responsivo, quase vivo — um sistema que prestava atenção em como estava se saindo e se ajustava de acordo.

O que eu havia construído de fato era uma máquina que reagia a ruído e chamava isso de aprendizado. Ela apertava e afrouxava em resposta ao que era, na maior parte, ruído de amostra pequena, e, como cada ajuste moldava o que acontecia em seguida, ela passava o tempo perseguindo ansiosamente o próprio rabo.

A funcionalidade que parecia inteligente

A ideia era sedutora em sua razoabilidade. Se o bot tinha acabado de perder várias vezes seguidas, certamente as condições eram desfavoráveis, e ele deveria elevar seus padrões antes de arriscar mais. Se estava numa sequência de vitórias, as condições eram boas, e ele podia se permitir avançar com mais força. Adaptar-se ao ambiente. Responder ao feedback. O que poderia ser mais sensato do que um sistema que se ajusta a como está se saindo?

Lembro-me de estar satisfeito com isso. Fazia o bot parecer menos um conjunto fixo de regras e mais algo dotado de discernimento.

Ao que ele estava de fato se adaptando

O problema é o que contava como “feedback”. O bot se ajustava com base num número minúsculo de resultados recentes — um mero punhado de trades. E um punhado de trades costuma carregar evidência insuficiente para sustentar uma inferência confiável sobre o que vem a seguir.

Algumas perdas seguidas são uma das coisas mais corriqueiras que podem acontecer em qualquer sequência de apostas incertas. É a cara da aleatoriedade vista de perto. Mas o bot não conseguia distinguir entre uma mudança significativa nas condições e o agrupamento totalmente normal da sorte, então tratava toda sequência curta como uma mensagem e, obedientemente, mudava seu comportamento em resposta.

Reagir a ruído parece exatamente aprender

Por dentro, a reação exagerada é difícil de distinguir da adaptação. O bot estava, num sentido estrito, “respondendo ao mercado”. Mas ao que ele realmente respondia era à variância — o agrupamento aleatório de ganhos e perdas que ocorre em qualquer processo com um elemento de acaso — e reetiquetava essa variância como percepção.

Essa é a armadilha no cerne de boa parte do maquinário de trading, humano e automatizado por igual: uma sequência de resultados recentes parece enormemente informativa e é, na maior parte, ruído. Quanto mais rápido um sistema se move para agir sobre esses resultados, com mais fidelidade ele rastreia o ruído em vez de qualquer coisa real.

A parte que se auto-reforça

Piorou, porque os ajustes realimentavam justamente aquilo que estava sendo medido. Ficar cauteloso após perdas significava menos trades, o que significava que o punhado seguinte de resultados era ainda menor e mais errático, o que significava oscilações maiores no sinal ao qual o bot reagia, o que significava ajustes mais bruscos. O sistema estava respondendo a um número que ele próprio distorcia — um laço com pouca coisa do lado de fora para ancorá-lo.

Um laço de realimentação é só tão estável quanto a coisa à qual está ancorado. O meu estava ancorado, na maior parte, à sua própria sorte recente, ou seja, ancorado a quase nada. Então ele oscilava: cauteloso, depois ousado, depois cauteloso de novo, cada oscilação uma reação à oscilação anterior, e não ao mundo.

Por que amostras pequenas mentem

Por baixo de tudo isso há um único e nada glamouroso fato estatístico: amostras pequenas não se equilibram na média, elas oscilam. Todo o conforto do “os números vão me dizer” repousa em ter números suficientes para a sorte se cancelar. Um punhado de trades é o regime oposto — fortemente influenciado pelo acaso, onde alguns poucos resultados bons ou ruins podem arrastar a média para quase qualquer lugar.

Qualquer regra que responda depressa a uma janela recente curta — sem um sinal validado de forma independente ou alguma detecção de mudança real por trás — está, na maior parte, respondendo ao acaso. A responsividade, justamente aquilo que fazia a funcionalidade parecer esperta, era grande parte do que a tornava errada aqui. Quanto mais rápida esse tipo de reação, mais perto ela chega da superstição.

A solução: reagir mais devagar, ou nem reagir

O conserto, naquele protótipo, foi tirar os reflexos do bot — parar de deixar que uma sequência curta de resultados mudasse seu comportamento de qualquer forma. A lição mais ampla que guardei é mais simples: desconfie de adaptações movidas por sequências curtas de resultados. Se um sistema for se ajustar afinal, a evidência para ajustar deveria ser grande o bastante, e reunida devagar o bastante, para plausivelmente significar algo, em vez de rastrear os últimos lances de sorte.

É um tanto contraintuitivo que tornar um sistema mais lento para reagir possa torná-lo melhor. Mas a velocidade de reação só é uma virtude quando há sinal real a que reagir. Quando a entrada de curto prazo é, na maior parte, ruído, boa parte da responsividade que você adiciona é apenas uma forma mais rápida de ser enganado.

Nem toda adaptação é inteligência

A coisa mais profunda que tirei disso é uma distinção à qual agora me agarro: reagir e aprender não são o mesmo ato, ainda que possam usar o mesmo rosto. Aprender extrai um padrão estável de um grande corpo de evidência. Reagir apenas espelha a coisa mais recente que aconteceu. Um sistema que se ajusta instantaneamente aos seus últimos resultados não se tornou necessariamente inteligente. Pode ter se tornado supersticioso — executando pequenos rituais em resposta a coincidências, convencido de que notou algo.

“Ele se adapta às condições” soa como uma funcionalidade. Parte das vezes, é uma descrição educada de um sistema perseguindo o próprio rabo. A questão nunca é apenas se algo se adapta. É se aquilo a que ele se adaptava algum dia foi real.

— Sem sinais, sem retornos, isto não é aconselhamento de investimento.