Backtest · MetaTrader 5

Backtest, forward test e walk-forward: o que cada um prova

Três jeitos de testar uma estratégia antes de arriscar dinheiro, o que cada um responde, o que nenhum deles garante e a ordem em que fazer.

Quem monta a própria estratégia passa por uma pergunta antes de qualquer outra: isso funciona? E "funciona" tem três respostas diferentes, que vêm de três testes diferentes. Confundir os três é o jeito mais comum de ligar uma estratégia que nunca teve chance.

Backtest: o que teria acontecido

O backtest roda a sua regra sobre o histórico de cotações e mostra o que teria acontecido se ela estivesse ligada. No MetaTrader 5 é o Testador de Estratégias: você escolhe o ativo, o período, o tempo gráfico, e o relatório sai com dezenas de números (explicamos cada um deles em Desmistificando o simulador de estratégias).

O que ele prova: que a regra é executável, que ela opera com a frequência que você imaginava, e que no passado ela deu o resultado que o relatório mostra.

O que ele não prova: que vai dar o mesmo resultado no futuro. E tem uma armadilha própria: como você vê o passado inteiro, é fácil ajustar a regra até ela "acertar" aquele passado. Chama-se sobreajuste. Uma estratégia com dez parâmetros afinados no mesmo histórico quase sempre tem um backtest bonito e uma vida real curta.

Forward test: o que acontece a partir de agora

Forward test é ligar a estratégia em conta demo (ou em conta real com o menor lote) e deixar rodar por um período, sem mexer. O histórico ela nunca viu; cada dia é novo.

O que ele prova: que a estratégia se comporta fora do laboratório, com preços que ela não conhecia, com a execução de verdade (ordem enviada, ordem executada, horários, feriados). Se o backtest dizia 20 operações por mês e o forward faz 3, alguma coisa está diferente entre o que você testou e o que está rodando.

O que ele não prova: consistência. Dois ou três meses de forward test são poucas operações; um resultado bom nesse período pode ser sorte, e um ruim pode ser a sequência de perdas normal da estratégia. O forward test responde "está rodando como deveria?", não "vai ganhar?".

Walk-forward: o teste que engana menos

Walk-forward é o backtest feito com honestidade. Você divide o histórico em fatias. Otimiza os parâmetros na primeira fatia e testa na segunda, que a otimização não viu. Depois anda uma fatia: otimiza na segunda, testa na terceira. E assim por diante, até o fim do histórico.

O resultado que interessa é só o das fatias de teste, emendadas. Se a estratégia continua boa nas fatias que ela não viu, os parâmetros não estão decorados: estão capturando algo que se repete. Se o resultado desaba fora da fatia de otimização, o backtest bonito era sobreajuste.

Linha do tempo em fatias: em cada linha, duas fatias de otimização seguidas de uma de teste, deslocando-se uma fatia para a frente
Walk-forward: otimiza em duas fatias, testa na seguinte, anda uma fatia, repete. Só as fatias de teste contam.

O que ele prova: que a estratégia sobrevive a dados que não foram usados para afiná-la. É o mais próximo de "futuro" que o passado consegue oferecer.

O que ele não prova: continua sendo passado. Um mercado que mude de regime (um ano de tendência forte depois de anos de lateralidade, por exemplo) pode derrubar qualquer estratégia, walk-forward incluído.

A ordem certa

  1. Backtest primeiro, para saber se a regra faz o que você pensou. Aqui você descarta a maioria das ideias, e é bom que seja aqui, onde não custa nada.
  2. Walk-forward no que sobreviveu, para descobrir se o resultado depende de parâmetros decorados.
  3. Forward test no que passou pelos dois, para conferir a execução de verdade antes de pôr o lote que interessa.

Quem pula direto do backtest para a conta real está apostando que o passado inteiro se repete. Às vezes dá certo. Quase sempre é o caminho mais caro de aprender o que os dois outros testes teriam mostrado de graça.

O que isso tem a ver com montar a estratégia em blocos

Uma vantagem de construir a estratégia com blocos prontos, como no Centurion, é que a regra nasce escrita: o sinal, o filtro, a saída e o limite de risco são peças com nome, não linhas de código que só você entende. Você sabe exatamente o que está rodando, e trocar uma peça não exige reescrever o resto.

E vale uma regra simples para a etapa de teste: cada peça que você acrescenta é um parâmetro a mais para decorar o passado. Se a estratégia precisa de oito filtros para dar lucro no backtest, o que está dando lucro é a memória, não a regra.