Atualizado em 07/08/2026
Resposta rápida. O backtest esconde o preço em que a ordem realmente é executada, o tempo que ela leva para chegar na bolsa, o comportamento da carteira no dia em que tudo cai junto e a mão do operador que desliga o robô no pior momento. Nada disso entra na simulação. E existe um quinto risco, que é o próprio número do backtest estar errado por causa de um erro na regra do robô.
Um backtest positivo mede a lógica da estratégia contra o histórico. Ele não mede execução. O simulador preenche a ordem no preço do sinal e no instante do sinal, com a corretora sempre no ar, o spread do arquivo de dados e o stop respeitado ao centavo. A conta real cobra as quatro coisas que ficaram de fora: latência, deslizamento, correlação sob estresse e intervenção humana.
Antes de chegar nessas quatro, vale olhar para o número em si. Achei uma regra morta na entrada do meu robô de grade que inflava o resultado em cerca de 36%, e o campeão da lista virou prejuízo depois do conserto. O código rodava sem erro nenhum. A curva subia. O número era falso.
Antes de continuar: este artigo trata da execução em conta real. Para a matemática da estratégia e as travas que seguram a grade, comece por gradiente linear no algotrading: a grade sem trava arruína a conta.
Legenda: a distância entre a curva do backtest e a curva da conta real é a soma de latência, deslizamento, risco de cauda e intervenção humana.
O que o simulador supõe e o mercado não cumpre
Vale listar as suposições uma a uma, porque cada uma delas tem um preço em reais. A primeira é que existe alguém do outro lado disposto a negociar no preço do sinal, no volume que o robô pediu. A segunda é que a ordem chega instantaneamente. A terceira é que o spread do arquivo de dados históricos é o spread do momento da entrada. A quarta é que o stop sempre executa no preço marcado.
Nenhuma das quatro é verdade o tempo todo. A ordem entra numa fila. O spread alarga justamente quando o mercado se mexe, que é o mesmo instante em que o robô costuma disparar a entrada, então o pior preço aparece com mais frequência nas operações que mais importam para o resultado. E o stop, num salto de preço, vira uma ordem a mercado executada no primeiro preço disponível. Que pode estar bem longe do planejado.
Eu, particularmente, prefiro medir esse atrito por operação em vez de olhar o resultado total do teste. Um custo de meio ponto por operação desaparece dentro do lucro acumulado de um relatório anual, e quem lê o rodapé nunca vê aquele meio ponto, mesmo ele estando presente em cada uma das entradas do período. Multiplique por duzentas operações. Vira o resultado inteiro da estratégia.
Latência e deslizamento: onde a diferença aparece de verdade
Latência é o tempo entre o robô decidir e a bolsa registrar. Uma corretora que devolve a confirmação em 50 ms e outra que devolve em 200 ms podem derrubar uma estratégia e passar despercebidas em outra. O que separa os dois casos é o tempo de permanência da operação.
Um modelo de reversão à média no mini-dólar define a entrada numa banda de preço. Se a ordem leva 200 ms para sair, o preço pode já ter deixado a banda quando ela chega, e a operação que o backtest registrou no limite da banda acontece em outro lugar da curva. Num swing trade que carrega a posição por três dias, o mesmo atraso não muda coisa alguma. Por isso não existe “melhor corretora”: existe a latência que o seu modelo aguenta.
O deslizamento é a mesma história vista pelo preço. Quanto mais operações a estratégia faz, mais vezes você paga esse pedágio, e é por isso que uma estratégia de duzentas operações por ano precisa de um custo unitário muito menor do que uma de vinte. Essa conta é a outra metade da discussão entre payoff alto e frequência alta: frequência só compensa se o atrito por operação for pequeno.
Quando o erro está dentro do próprio backtest
A regra morta que eu encontrei no robô de grade era uma condição de entrada que nunca reprovava nada. Ela estava escrita, aparecia no código, e na prática deixava passar todo sinal. O efeito foi inflar o resultado em cerca de 36% e colocar no topo do ranking um robô que dava prejuízo depois do conserto. Levei semanas para achar isso.
Erro assim tem três origens comuns. A primeira é a condição que lê o fechamento de uma vela que ainda não fechou, entregando ao robô uma informação que ele não teria no instante da decisão e produzindo uma curva que nenhuma execução real conseguiria reproduzir. A segunda é o arquivo de dados com tick sujo, que gera preço que nunca existiu. A terceira é o relatório resumido, que apaga a ordem dos trades e esconde que metade do lucro veio de um trimestre só.
Correlação sob estresse e o stop que é pulado
O backtest calcula a correlação entre os ativos ao longo de todo o período, e a maior parte de qualquer período é mercado calmo. É por isso que uma carteira montada com um banco, uma varejista e uma produtora de commodities parece diversificada no relatório. No dia da liquidação, quem precisa de dinheiro vende o que consegue vender, e o que consegue vender é o que tem liquidez. Os três caem juntos.
Esse é o risco de cauda, e a literatura sobre ele é direta: modelos apoiados em distribuição normal subestimam a frequência dos eventos extremos (Taleb, 2020). Num salto de preço, o stop não protege como no teste, porque não existe preço no meio do salto. A ideia aqui nunca foi fazer um portfólio que ganhe muito. Foi fazer um portfólio que tenha controle do risco de cauda, e as duas coisas se medem de formas diferentes.
A mão do operador é o risco que ninguém coloca na planilha
A estratégia é sistemática. Quem olha a tela não é. O algotrading tira o emocional da decisão de entrar e sair, e não tira a ansiedade de quem acompanha a curva de capital caindo por três semanas seguidas.
O padrão se repete e acontece com todo mundo. O stop do dia estava projetado na casa dos quatrocentos reais, aí vem um daqueles dias de fúria, você dobra a mão para recuperar e fecha o dia dois mil reais negativo. Desligar o robô no meio de um rebaixamento faz a mesma coisa com a conta, porque você realiza a perda inteira e entrega para o mercado a parte da curva que vinha depois, que era justamente a recuperação que o backtest mostrava. Mexer em parâmetro no meio do pregão é pior. Vira outro sistema, sem teste nenhum.
A regra padrão precisa ser não intervir, com as exceções escritas antes de ligar o robô. Escritas mesmo, em um arquivo, com o critério numérico ao lado.
Como eu decido que um robô pode ser ligado
O teste que mais reprova candidato aqui é o de sensibilidade de parâmetro. Se a estratégia cruza a média de quinze e você troca por quatorze ou por nove e ela vira negativa, o resultado bonito era encaixe no histórico, e o robô vai para o lixo. Rodo variação de 30% nos parâmetros e olho se a região inteira em volta continua positiva, não só o ponto que o otimizador achou.
Depois vem o Monte Carlo, em duas frentes. Embaralhar a ordem dos trades milhares de vezes mostra que a sequência registrada no backtest foi uma entre muitas possíveis, e que o rebaixamento máximo daquela sequência específica é só um sorteio dentro de uma distribuição bem mais larga do que o relatório sugere. Leio o resultado no percentil 95. É dele que sai o teto de rebaixamento do robô.
Esse teto existe por um motivo prático. Eu não gosto de ficar reotimizando robô, porque reotimizar é ajustar o modelo ao passado recente mais uma vez, e o problema que derrubou o robô costuma ser mudança de regime, não parâmetro velho. Prefiro definir o teto no percentil 95, e quando o robô bate esse valor ele sai da carteira e entra outro. A decisão fica tomada antes, no frio.
Por último, dois a três meses em conta simulada com a infraestrutura definitiva, comparando operação a operação com o que o backtest previa para o mesmo período. É esse confronto que mede latência, deslizamento e falha de conexão em números da sua conta, e não em estimativa. Só depois disso entra dinheiro de verdade. A lógica da estratégia de gradiente linear passa pela mesma esteira que qualquer outra.
O checklist de segurança operacional
- Auditoria tecnológica. Meça a latência da sua corretora em horário de pregão. A anunciada no site não serve. Registre também o custo médio de deslizamento por operação nas primeiras cem ordens.
- Auditoria da regra do robô. Confira se alguma condição usa dado que só existe depois da decisão e se alguma trava nunca reprova nada. Foi esse segundo caso que inflou meu resultado em 36%.
- Teto de rebaixamento por escrito. Tire o número do percentil 95 do Monte Carlo, escreva o valor em reais e defina o que acontece quando ele for atingido.
- Protocolo de intervenção. A regra padrão é não intervir. As exceções ficam escritas antes de ligar o robô, cada uma com o seu critério numérico ao lado, e a mesma exigência vale tanto para desligar o sistema quanto para mexer no tamanho da posição.
- Simulado antes do real. Dois a três meses, na infraestrutura definitiva, comparando cada operação executada com a que o backtest esperava.
Perguntas Frequentes
Um backtest positivo é inútil?
Não. Ele valida a lógica da estratégia contra o histórico, e sem isso nem faz sentido continuar. O erro é tratar o backtest como a última etapa em vez da primeira.
Qual a melhor corretora para operar robôs?
Depende do tempo de permanência da sua operação. Um modelo intradiário que entra numa banda de preço sente 150 ms de atraso; um swing trade de três dias não sente. Meça a latência e o deslizamento por operação e compare com o ganho médio esperado do seu modelo.
Como evitar intervir emocionalmente no robô?
Escreva as regras de intervenção antes de ligar o sistema e automatize o desligamento por limite de perda, para que a decisão não dependa de você no dia ruim. A regra padrão é não intervir.
O que fazer durante uma queda abrupta do mercado?
Nada que não estivesse decidido antes. O plano de risco precisa ter o limite de perda diária e o teto de rebaixamento já definidos, porque no meio do evento o preço se move mais rápido do que a sua decisão.
Referências e Literatura Quant
- Viés de backtest: López de Prado, M. (2019), “The 7 Reasons Most Machine Learning Funds Fail”. Lista as falhas de método que invalidam um backtest antes de qualquer questão de execução.
- Custo de execução: Almgren, R., & Chriss, N. (2000), “Optimal Execution of Portfolio Transactions”. Modela o impacto do próprio envio da ordem sobre o preço obtido.
- Risco de cauda: Taleb, N. N. (2020), “Statistical Consequences of Fat Tails”. Mostra por que a distribuição normal subestima a frequência dos eventos extremos.
- Custo de Spread no Backtest: A Cunha Entre o Papel e a Conta Real
- Anatomia de uma Estratégia Real: Keltner e Estocástico no EUR/USD, e a Degradação de Só 1%
- Anatomia de uma Estratégia Real: Bollinger e WaveTrend no EUR/USD, 7 Anos Abertos Sem Esconder Nada
- Diário de um Portfólio de Robôs (5): O Bug que Inverteu Vencedores e Perdedores
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
