Direto ao ponto
Parei de procurar o robô que dura para sempre, porque o dado mostrou que robô de setup decai. Mudei o jogo: tratar robô como peça descartável e proteger o portfólio com um disjuntor de drawdown. Aplicado aos 62 robôs na era de 2014 a 2018, o disjuntor transformou uma sangria de 1.690 dólares em algo perto do zero, com a variante conservadora terminando em +245, e cortou o drawdown máximo de 3.334 para cerca de 567 dólares. E o melhor: ele funciona exista ou não vantagem.
O capítulo anterior fechou as portas uma a uma. Selecionar robôs pelo passado, tendência no EURUSD, multiplicar pares, o USDJPY, o payout alto, tudo beco sem saída. A conclusão por eliminação não foi achar o robô mágico nem o par mágico. Foi mudar a pergunta. Se nenhum robô dura, talvez o erro esteja em querer que ele dure.
Robô não é eterno, é perecível
A virada começou quando eu aceitei uma coisa simples e desconfortável. Robô de setup não tem vantagem permanente, ele tem vantagem casada com um regime, e quando o regime vira ele para de funcionar. Eu já tinha o dado disso, o portfólio ótimo afundando na era que nunca tinha visto. Insistir em encontrar o robô robusto que atravessa qualquer mercado é brigar contra o próprio dado.
Então inverti a lógica. Em vez de caçar o robô eterno, montei uma esteira que trata robô como peça perecível. Ela gera uma safra fresca de robôs sobre o dado recente, colhe enquanto a safra está no ponto, e quando ela envelhece, gera outra. O jogo deixa de ser previsão e passa a ser número mais disjuntor. Eu não preciso saber qual robô vai morrer, nem quando o regime vira. Preciso de muitos robôs frescos e de um corte que aja no instante em que qualquer um deles começar a sangrar de verdade.
Antes da fábrica, eu tentei prever o regime
Eu não cheguei na ideia de tratar robô como descartável por dedução. Cheguei depois de tentar o contrário e bater a cabeça. A ideia anterior era montar um banco de especialistas de regime: rodar o gerador por janela de tempo, uma era de cada vez, e ficar com os robôs que reaparecem bem em mais de uma era. A aposta era que um robô bom num certo tipo de regime, digamos uma alta sustentada de juros, voltaria a funcionar no próximo regime parecido.
Antes de gastar semanas de processamento gerando todas as janelas, rodei primeiro os testes baratos, o que eu chamo de teste de cinco dólares, o experimento barato que pode matar a premissa antes de você queimar semanas no caro, e foi o que me poupou meses. Um deles deu certo, e é o disjuntor que vem a seguir. Mas o teste da premissa que sustentava o banco inteiro falhou feio. O regime macro até recorre, só que o edge inverte de sinal dentro do mesmo regime entre eras. O robô que ganhava numa alta de juros de uma década perdia na alta de juros da década seguinte. E o teto de informação é cruel: em dezoito anos cabem só cinco a dez viradas de regime de verdade, poucas demais para eu provar, estatisticamente, que qualquer especialista recorre. Os regimes existem, e desde Hamilton (1989) a gente sabe modelá-los, mas são raros demais para virar um gatilho confiável.
Arquivei o banco de regimes. Não porque ficou provado que não existe edge de regime, mas pela razão honesta: ele não é barato de validar, o caminho caro esbarra nesse teto de pouquíssimos exemplos, e a defesa que eu já tinha em mãos, o disjuntor, funciona independente de existir edge. Esse é o pulo do gato. Quando a sua defesa não depende de você acertar a previsão, você para de tentar adivinhar a virada e passa a só reagir a ela. Prever exige acertar o futuro com cinco exemplos na mão. Reagir exige apenas medir o presente, e por isso é a única das duas em que eu confio para defender dinheiro de verdade.
O disjuntor: a peça que funciona exista ou não vantagem
O disjuntor é a única peça do projeto que eu testei e validei sem ressalva. A regra começa na construção. Para cada robô, eu rodo Monte Carlo e gero centenas de cenários alternativos da curva dele. Disso eu tiro o teto:
\theta_i = Q_{0,95}\big(\mathrm{maxDD}_i^{(1)},\,\mathrm{maxDD}_i^{(2)},\,\dots,\,\mathrm{maxDD}_i^{(M)}\big)Aqui o maxDD na m-ésima simulação é o pior rebaixamento do robô naquele cenário, e Q de 0,95 é o percentil 95 sobre as M simulações. Em palavras, eu pergunto qual o pior drawdown que esse robô ainda produz em 95% dos cenários, e trato isso como o limite do que é normal para ele. Ao vivo, se o rebaixamento passar desse teto, não é mais um dia ruim qualquer, é sinal de que o robô quebrou, e eu corto. O teto é calculado só com o período de construção e aplicado daí para a frente, sem nunca espiar o futuro.
Apliquei esse corte aos 62 robôs no caminho de 2014 a 2018. Sem o disjuntor, é a sangria de 1.690 dólares que eu mostrei no capítulo dois, concentrada em 2015 e 2016, que sozinhos somaram quase 1.700 no vermelho (−774 e −940). Com o disjuntor ligado, o resultado foi para perto do zero, a variante mais conservadora terminou em +245, e o drawdown máximo despencou de 3.334 para cerca de 567 dólares. No fim, 62 dos 62 robôs foram cortados, 60 deles já em 2014 e 2015, antes de a sangria virar bola de neve.
E não foi sorte de calibração, o que importa muito. Testei de três formas. Primeiro, repeti a conta com cinco definições diferentes de teto, mais conservadora, mais frouxa, baseada em percentil ou em múltiplo do desvio, e o resultado se manteve em todas, com o drawdown máximo ficando entre 247 e 922 dólares conforme a definição, sempre uma fração dos 3.334 sem disjuntor. Segundo, conferi que o corte não aconteceu no fundo, o erro clássico de vender no pânico bem na hora errada. Terceiro, e o mais revelador, montei um controle: em vez de cortar pelo teto, cortei os robôs em momentos sorteados ao acaso, milhares de vezes, e comparei. O disjuntor real bateu o corte aleatório por dois a três desvios-padrão. Esse número é o que mais vale, porque ele diz que o gatilho tem sinal de verdade. Cortar pelo drawdown carrega informação, não é só reduzir exposição às cegas, senão o corte aleatório teria empatado. Kaminski e Lo (2014) mostraram exatamente isso num estudo formal, que regras de stop podem agregar valor quando os retornos têm momentum e regime, em vez de só limitar perda.
Por que Monte Carlo, e não o drawdown histórico
Por que usar o teto do Monte Carlo, e não simplesmente o pior drawdown que o robô já teve no histórico? Pelo mesmo motivo que eu não uso o drawdown máximo para rankear, lá do capítulo dois. O pior drawdown histórico é um ponto só, um único caminho que por acaso aconteceu. Ele não me diz se aquilo é o normal do robô ou um azar isolado. O Monte Carlo me dá a distribuição inteira dos drawdowns plausíveis daquele robô, e aí o percentil 95 separa o ruim normal do quebrado. Um teto tirado de um ponto só me faria cortar cedo demais um robô são, ou tarde demais um robô que já era.
A parte honesta: preserva capital, não cria lucro
Aqui entra a honestidade que esta série promete. O disjuntor não fabricou vantagem nenhuma. Os 62 robôs continuaram sem edge naquela era. O que mudou foi que, em vez de sangrar por cinco anos, eles foram cortados cedo e o capital ficou preservado em caixa. Aquele breakeven não é lucro, é dinheiro que parou de ser perdido.
Parece pouco, mas é exatamente o que uma fábrica de descartáveis precisa. Eu não estou apostando que cada safra de robôs tem vantagem garantida. Estou aceitando que algumas vão decair, e garantindo que, quando decaem, o estrago tem teto e o capital sobrevive para a próxima safra. O disjuntor é o que torna o descarte barato. Ele não promete ganho, ele garante que a perda tem limite, e é por isso que ele funciona mesmo quando não há vantagem nenhuma para defender.
Validar não é operar
Uma confusão que eu precisei resolver no caminho, e que vale registrar. Construir robôs por era serve de bancada de teste, para eu medir quanto tempo uma safra dura antes de decair. Mas safra velha só serve para medir, nunca para operar. No mercado de verdade só entra a safra mais fresca, e quando ela envelhece eu reponho com uma nova, gerada no dado mais recente. Misturar as duas coisas, testar e operar, é o caminho mais curto para se enganar com um robô que já passou do ponto. Esse cuidado é o que separa um walk-forward honesto de uma ilusão de robustez.
O que isso montou, e o próximo capítulo
Esse capítulo deu ao projeto a espinha que faltava. Robôs tratados como peças descartáveis, um disjuntor que limita o estrago de cada um, e a divisão igual de capital por cima. Não é uma máquina de adivinhar o mercado, é uma máquina de sobreviver à decadência sem depender de previsão. Mas antes de eu poder confiar em qualquer um desses números, levei um susto que quase me fez deletar robôs bons. Um bug fez vencedores virarem perdedores da noite para o dia. É o assunto do próximo capítulo.
Acompanhe a série para não perder. O próximo sai em poucos dias.
Perguntas frequentes
O que é um disjuntor de drawdown?
É uma regra que corta um robô quando o rebaixamento dele passa de um teto definido na construção. Ele não prevê nada, apenas reage ao drawdown medido ao vivo. Serve para limitar o estrago de um robô que parou de funcionar, transformando uma sangria longa em capital preservado.
Por que reagir em vez de prever a virada de regime?
Porque em quase duas décadas de histórico cabem só um punhado de viradas de regime, poucas demais para validar qualquer previsor sem cair em ajuste a poucos eventos. Reagir ao drawdown não exige acertar o futuro, só medir o presente, e por isso é uma defesa confiável.
Por que o teto vem do Monte Carlo?
Porque o pior drawdown histórico é um único caminho, e não diz se aquilo é normal ou azar isolado. O Monte Carlo gera a distribuição inteira de drawdowns plausíveis do robô, e o percentil 95 dessa distribuição separa o ruim normal do robô quebrado, dando um teto mais confiável.
O disjuntor aumenta o lucro?
Não. Ele preserva capital e limita a cauda, não cria vantagem. No teste, ele transformou uma perda de 1.690 dólares em algo perto do zero, sem inventar lucro nenhum. É exatamente por funcionar sem depender de edge que ele é a peça mais confiável do projeto.
Referências
- Kaminski, K. M.; Lo, A. W. (2014). When Do Stop-Loss Rules Stop Losses? Journal of Financial Markets, 18, 234-254. Regras de stop podem agregar valor sob momentum e regime, não só limitar perda.
- Chekhlov, A.; Uryasev, S.; Zabarankin, M. (2005). Drawdown Measure in Portfolio Optimization. International Journal of Theoretical and Applied Finance, 8(1), 13-58.
- Hamilton, J. D. (1989). A New Approach to the Economic Analysis of Nonstationary Time Series and the Business Cycle. Econometrica, 57(2), 357-384. Modelo de mudança de regime; regimes são reais, porém raros.
Presente para Leitores: Robô de Gradiente Linear Gratuito
Estou liberando o acesso ao meu setup pessoal de Gradiente Linear sem custo nenhum. É só clicar e me pedir o arquivo.
Quem escreve: Flávio Araújo
Trader algorítmico há mais de 13 anos, MBA em Mercado de Capitais e Derivativos. Mantém um laboratório próprio que já rodou mais de 20 milhões de backtests e analisou mais de 20 mil estratégias, e opera um portfólio de robôs acompanhado publicamente no blog. LinkedIn · Instagram · YouTube
