Diário de um Portfólio de Robôs (1): Existe Vantagem que Sobrevive ao Futuro?

Abro o diário de um projeto real: montar uma metodologia de portfólio de robôs e testar a pergunta que mais incomoda no trading sistemático, existe vantagem que sobreviva no futuro?

Antes de começar

Rodo robôs em conta real há anos, então não espere uma história de iniciante. O que vem aqui é o registro de um projeto que levei mais longe do que tudo que já fiz: montar do zero uma metodologia para construir portfólio de robôs e usá-la para responder a pergunta que mais me incomoda em trading sistemático. Existe vantagem líquida que sobreviva no futuro? Vou contar etapa por etapa, com os números reais e a parte que ninguém mostra: os caminhos que não deram em nada e os bugs que eu mesmo causei. Enquanto escrevo isto, um portfólio montado por essa metodologia já roda em conta simulada, que é o passo de validação antes de pôr dinheiro real.

Sou engenheiro, tenho MBA em mercado de capitais e derivativos e opero robôs em conta real há anos. Já montei portfólio, já vi curva de capital impecável virar pó, já apanhei de drawdown que o backtest não mostrava. Então deixa eu ser direto sobre o que este diário é e o que não é. Não é a história de quem está começando. É o caderno de um projeto que resolvi documentar inteiro, em público, inclusive a parte que deu errado.

Por que o foco, desde o início, sempre foi o portfólio

A experiência me ensinou uma coisa cedo: rodar um único robô é perigoso e não faz sentido. Todo robô, por melhor que seja a curva, tem um modo de morte. Um dia o regime de mercado vira, o que funcionava para de funcionar, e ele entra num drawdown capaz de te tirar do jogo antes de você entender o que aconteceu. Apostar a conta inteira num sistema só é questão de tempo até levar esse tombo.

A proteção contra isso tem nome, e não é novidade pra ninguém que opera sério: diversificação. Vários robôs que não perdem ao mesmo tempo, que se cobrem. Enquanto um está sangrando, outro está girando e segurando a conta. O portfólio aguenta o que o robô sozinho não aguenta, porque o golpe que derruba um raramente derruba todos no mesmo dia. Por isso, desde o primeiro dia, o objetivo nunca foi achar O robô vencedor. Foi montar o portfólio certo. É esse o projeto, e é em cima dele que todo o resto da série acontece.

Mas tem um detalhe que muita gente pula. Diversificação multiplica e protege uma vantagem que já existe, ela não cria vantagem do nada. Junte dez robôs com vantagem pequena e de verdade, e o conjunto fica bem mais robusto que cada um sozinho, porque eles erram em momentos diferentes. Junte dez robôs sem vantagem nenhuma, e você só tem dez formas diferentes de não ir a lugar nenhum, com uma curva mais suave te enganando no meio do caminho. A diversificação é a alavanca, mas ela precisa de algo real embaixo para alavancar.

Só que diversificar levanta uma pergunta mais dura, que quase ninguém faz. Diversificar pressupõe que existe alguma coisa boa por baixo para diversificar. Espalhar capital entre dez robôs ruins continua sendo dez robôs ruins. Então a pergunta que organiza tudo é esta, e ela é menos óbvia do que parece. Existe vantagem real, líquida de custo, que sobreviva no futuro, em cima da qual valha a pena montar o portfólio? A maior parte do edge que aparece num backtest é só o passado se ajustando a si mesmo. Separar o que é vantagem do que é apenas memória do histórico foi o trabalho de meses.

O que eu queria construir

Eu não estava atrás do robô perfeito. Já caí nessa antes, caçando aquele com a melhor curva, o melhor Sharpe, o melhor resultado no histórico. Desta vez o objetivo era outro. Eu queria uma esteira: um processo repetível e auditável que pega uma leva grande de robôs gerados e devolve um portfólio final, sem eu precisar escolher a dedo qual presta. O produto é o método, não um robô específico.

Gerar os robôs, por sinal, é a parte que mais parece trabalho e menos importa. Uso um gerador que roda otimização genética e submete cada candidato a um gauntlet de robustez, com várias rodadas de Monte Carlo, validação out-of-sample e perturbação de parâmetros. É um processo sério. Mas tem uma armadilha que demorei pra enxergar. Passar nesse gauntlet prova que o robô não é um curve-fit grosseiro dentro daquele período, e não diz absolutamente nada sobre se a vantagem aguenta quando o regime de mercado vira. São dois eixos diferentes, a robustez ao ruído de um lado e a durabilidade entre regimes do outro, e o motivo de um não medir o outro é mecânico. O Monte Carlo embaralha a ordem dos trades, tira alguns, mexe nos parâmetros, sacode a primeira barra, mas faz tudo isso dentro do mesmo pedaço de história. Ele estressa o robô contra variações do período em que ele nasceu, e nunca contra um regime que o robô nunca viu. Por isso mata o curve-fit grosseiro e continua cego para a virada de regime. Um robô pode passar em todo teste de robustez que você jogar nele e mesmo assim morrer fora da amostra. Vi isso acontecer no meu próprio dado, e é o assunto do próximo capítulo.

Os seis filtros de robustez do gauntlet e o muro da virada de regime que nao e testado

Por que comparo tudo com a divisão igual de capital

Tem um estudo que eu mantenho na cabeça o tempo todo. DeMiguel, Garlappi e Uppal (2009, Review of Financial Studies) testaram 14 modelos de otimização de portfólio (Markowitz, Bayes-Stein, minimum-variance, a família inteira) contra a coisa mais boba que existe: dividir o capital igualmente entre os ativos, o tal do 1/N. Repare que o 1/N já é a diversificação na forma mais crua que existe, pega os ativos e divide igual, sem nenhuma inteligência. O resultado foi que nenhum dos 14 superou o 1/N de forma consistente em Sharpe fora da amostra. Décadas de teoria de portfólio empatando ou perdendo para uma simples divisão igual.

E é justamente por não ter inteligência nenhuma que o 1/N é o adversário certo. Ele não estima retorno, não estima risco, não tem um único parâmetro para ajustar, então não tem como estar viciado no passado. Qualquer coisa mais esperta que eu ponha no lugar dele carrega um risco que ele não tem: o de estar só me ajustando ao histórico. Por isso a régua não é “meu portfólio é bom?”, e sim “meu portfólio paga para existir, ou seja, ele bate aquilo que não tem o que errar?”.

É isso que eu uso como adversário. Toda vez que a esteira monta um portfólio, a primeira pergunta não é “ele é bom?”. É “ele bate o 1/N do mesmo conjunto, fora da amostra?”. E o spoiler honesto, que vou desenvolver ao longo da série, é que na maioria das vezes ele não bate em retorno. Bate em risco. Essa diferença parece sutil, mas é o ponto central de tudo. Uma máquina que controla risco não é a mesma coisa que uma máquina que ganha mais, e confundir as duas é onde mora boa parte da ilusão em montagem de portfólio quantitativo.

Curva de backtest in-sample subindo e a realidade out-of-sample divergindo para baixo

Eu tento derrubar minhas próprias conclusões

Mostro o que deu errado porque é ali que está a informação que interessa. Bailey e López de Prado (2014) têm um termo duro pra backtest superajustado: charlatanismo financeiro. O argumento é simples e desconfortável. Com tentativas suficientes, você acha uma estratégia de Sharpe alto só por acaso, sem nenhuma vantagem real por trás. E dá pra calcular exatamente quanto.

O melhor Sharpe esperado por puro acaso, quando se testa N estratégias independentes, é dado por:

E\!\left(\max_{n\le N} SR_n\right) \approx \sqrt{V}\left[(1-\gamma)\,\Phi^{-1}\!\left(1-\tfrac{1}{N}\right) + \gamma\,\Phi^{-1}\!\left(1-\tfrac{1}{N\,e}\right)\right]

Sem assustar com os símbolos: N é o número de tentativas, V é a variância dos Sharpes que você testou, Φ⁻¹ é o inverso da distribuição normal (a função quantil), γ é a constante de Euler-Mascheroni (cerca de 0,577) e e é o número de Euler. O que ela diz é direto: o melhor Sharpe que aparece sozinho cresce com a raiz do logaritmo do número de tentativas.

Vale entender por que aparece essa raiz do logaritmo, porque é o que torna a coisa traiçoeira. Quando você sorteia muitos números de uma curva em sino, o maior deles tende a ficar a uns √(2 · ln N) desvios-padrão acima da média. É um crescimento lento, mas que nunca para. Na prática isso quer dizer duas coisas. Dobrar o número de tentativas quase não muda nada, então mais busca não te salva. Mas pular de algumas centenas para dezenas de milhares empurra o melhor Sharpe de pura sorte de cerca de 1,8 para perto de 2,5. Procurar mais sempre entrega um Sharpe in-sample mais bonito, mesmo quando não existe vantagem nenhuma por baixo.

Rodei essa conta no meu próprio caso, com três anos de histórico. Com poucas centenas de tentativas, o melhor Sharpe in-sample esperado por puro ruído já passa de 1,8; em alguns milhares de tentativas, de 2,1; em dezenas de milhares, passa de 2,5. Tudo isso sem vantagem nenhuma, só sorte. Então “achei 600 robôs que passaram” não prova absolutamente nada. Ruído também produz centenas de sobreviventes. A probabilidade de overfitting do meu conjunto de candidatos, medida por validação cruzada combinatória, deu 0,91, o que significa que ranquear pelo backtest quase não prevê o que acontece fora da amostra. É por isso que o Sharpe deflacionado e a probabilidade de overfitting entram cedo na conversa.

Melhor Sharpe in-sample por puro acaso sobe de 1,8 a 2,5 conforme o numero de tentativas

A única defesa contra isso é tentar derrubar a própria ideia antes que o mercado derrube. Levei isso a sério. Rodei auditorias adversariais sobre o código que decide dinheiro, uma delas com 21 agentes que sozinha cortou o portfólio de 60 para 34 robôs, contratei uma IA externa só pra caçar furo nas minhas conclusões e refiz cada cálculo crítico de forma independente. Mais de uma vez isso pegou um erro meu que já estava carimbado como “validado”. Vou contar cada um, sem dourar.

O que vem nos próximos capítulos

Este é o primeiro de um diário aberto. O que vem pela frente:

  1. a queda do portfólio “ótimo” numa era que ele nunca tinha visto, e a descoberta de que escolher os melhores robôs pelo passado é pior do que escolher na sorte;
  2. o debate longo sobre onde, afinal, está a vantagem no forex, e o mapa dos caminhos que não levam a lugar nenhum;
  3. o pivô que mudou o jogo, quando parei de caçar o robô eterno e passei a tratar os robôs como descartáveis;
  4. o bug que inverteu vencedores e perdedores da noite para o dia;
  5. o drawdown que quase ninguém olha, o das posições abertas e não o dos trades fechados;
  6. a esteira em si, a metodologia em seis etapas, sem a receita proprietária;
  7. a auditoria que cortou o portfólio de 60 para 34 robôs;
  8. e o deploy, o portfólio no ar, em conta simulada.

E aí a série não acaba. O portfólio está rodando agora em demo, e eu sigo postando: o mês de simulação, o que esse mês me ensinou, a decisão de levar ou não para o dinheiro real, e o acompanhamento ao vivo depois disso. É um projeto em andamento, não um case fechado com final feliz.

O próximo capítulo

No próximo vem o primeiro tombo. Peguei o portfólio com o melhor número possível dentro da janela de teste, rodei numa era que ele nunca tinha visto, e ele afundou. E pior do que afundar: descobri, no dado, que selecionar os “melhores” robôs pelo desempenho passado é mensuravelmente pior do que usar todos com peso igual. Vou mostrar a tabela inteira. Se você monta portfólio de robôs, esse capítulo provavelmente vai te incomodar. A mim incomodou bastante.

Acompanhe a série pra não perder. O próximo sai em poucos dias.

Perguntas frequentes

O que é a “esteira” de montagem de portfólio?

É a metodologia central do projeto. Um processo em etapas que recebe uma leva grande de robôs, descarta os que não sobrevivem fora da amostra, remove os redundantes, equilibra o portfólio pelo número efetivo de apostas independentes e corta até caber num teto de risco, entregando um portfólio final sem seleção manual.

Por que mostrar os erros, e não só os acertos?

Porque no trading sistemático o erro é onde está a informação útil. Um backtest bonito é fácil de produzir. Entender por que ele mente é o trabalho de verdade. Cada caminho sem saída que eu documento economiza meses de quem for tentar o mesmo.

Vão sair os parâmetros e o código dos robôs?

Não. O diário entrega a metodologia, as lições e os números honestos. A receita específica, ou seja, parâmetros, composição exata do portfólio e código, fica de fora. O valor aqui é o método e o raciocínio, não o copia e cola.

O portfólio já está em dinheiro real?

Ainda não. No momento ele roda em conta simulada, que é o passo de validação operacional. É onde a metodologia vira ordem executada num book, sem risco de capital, antes de qualquer decisão sobre dinheiro real. Esse acompanhamento é a continuação da série.

Referências

  • DeMiguel, V.; Garlappi, L.; Uppal, R. (2009). Optimal Versus Naive Diversification: How Inefficient Is the 1/N Portfolio Strategy? Review of Financial Studies, 22(5), 1915-1953. Nenhum dos 14 modelos de otimização supera consistentemente o 1/N em Sharpe out-of-sample.
  • Bailey, D. H.; Borwein, J. M.; López de Prado, M.; Zhu, Q. J. (2014). Pseudo-Mathematics and Financial Charlatanism: The Effects of Backtest Overfitting on Out-of-Sample Performance. SSRN 2308659 / Notices of the AMS.
  • Bailey, D. H.; López de Prado, M. (2014). The Deflated Sharpe Ratio: Correcting for Selection Bias, Backtest Overfitting, and Non-Normality. SSRN 2460551 / Journal of Portfolio Management.
  • Moskowitz, T.; Ooi, Y. H.; Pedersen, L. H. (2012). Time Series Momentum. Journal of Financial Economics, 104(2). Referência central nos próximos capítulos.

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.

Quero meu Robô Gratuito
🔒 Acesso Direto no WhatsApp
⚠️ Aviso de risco: O conteúdo do Invista Já é educacional e informativo sobre algotrading e estratégias quantitativas e não constitui recomendação ou consultoria de investimento, nem oferta ou solicitação de compra ou venda de qualquer ativo. Operações no mercado financeiro envolvem risco de perda, inclusive do capital investido, e resultados passados não garantem resultados futuros. Avalie seu perfil de risco e, se necessário, consulte um profissional certificado antes de investir.
Flavio Araújo
Flavio Araújo

Engenheiro com MBA em Mercado de Capitais e Derivativos. Atua há mais de 10 anos no Mercado Financeiro, com 6 anos dedicados ao Algotrading e estratégias quantitativas. Especialista em validação de robustez e automação de investimentos.

Artigos: 158