Executar um backtest não é suficiente

Índice:

Anonim

O backtest é uma forma de verificar a eficácia de uma estratégia no passado. Esta ferramenta realmente funciona?

Quando você começa no mundo da negociação, uma das primeiras coisas que aprende é o conceito de backtesting. Ou seja, antes de usar uma estratégia é aconselhável, senão imprescindível, verificar os resultados de algumas regras em períodos anteriores. Chamamos essas regras de sistema de negociação ou simplesmente sistema. O conceito em si, ou pelo menos a ideia, é muito bom. Embora agora pareça óbvio para nós, nem sempre foi. Além disso, ainda hoje existem comerciantes ou investidores que preferem, por engano ou omissão, confiar seu capital ao futuro do destino.

Obviamente, todo mundo especula com seu capital como bem entende. Claro, com meios a pelo menos um clique de distância para pelo menos tentar verificar, e com relativa facilidade, os retornos que uma estratégia teve no passado, parece no mínimo absurdo não fazê-lo.

Nota: Omitimos as partes de uma análise que não são quantificáveis. Algo que acontece em todos os tipos de análise. Sempre há algo que sentimos falta.

Retornos anteriores não garantem retornos futuros

Alguns daqueles que relutam em quantificar suas estratégias podem alegar - e muito bem argumentado - que retornos passados ​​não garantem retornos futuros. Mas, tendo em vista que eles têm razão, sempre chego à seguinte conclusão: se você não pode garantir que o que funcionou continuará a funcionar, o que o faz pensar que o que não funcionou funcionará agora. Pode funcionar? Sim, mas parece mais um ato de fé do que qualquer outra coisa.

A esperança é a última coisa a ser perdida porque, claro, antes de perdê-la, o que você certamente perderá é o seu capital.

O backtest também não funciona

Com a ideia de que um backtest é melhor do que confiar na astrologia, devemos continuar a refinar para não cometer os mesmos erros que muitos comerciantes cometeram, cometem e, infelizmente, continuarão a cometer.

Nesse ponto, devemos colocar óleo sobre tela para afirmar que um backtest é melhor do que depender da aleatoriedade do destino, mas está longe de ser suficiente.

Por que não é suficiente?

Um backtest é suficiente para verificar se, tendo usado um determinado sistema de negociação no passado, teríamos gerado certos resultados. Mas a ferramenta termina aí. A própria palavra diz, ‘Voltar’ (passado) e ‘testar’ (prova). Extrapolando, sem analisar mais, alguns resultados são ainda - embora em menor medida - outro ato de fé. Pois por acaso pode continuar a funcionar, e ter encontrado um sistema que funciona sem saber porque ou que funciona e não se sabe até quando. Essa forma de proceder de alguns analistas quantitativos contrasta com sua crítica incessante à análise técnica. Ou seja, eles criticam algo que eles próprios, inconscientemente, aplicam no dia a dia.

O que há para analisar?

Supondo que um sistema tenha parâmetros fixos, é necessário verificar sua validade em diferentes ambientes de mercado. Mesmo em ambientes que não existem. Verifique como um sistema teria funcionado em ambientes de alta volatilidade e baixa volatilidade, antes e depois de mudanças estruturais, em mercados altistas, baixistas e laterais. E assim poderíamos continuar quase indefinidamente.

Se o sistema possuir parâmetros variáveis, o que costuma acontecer na maioria dos casos, faremos o mesmo processo, mas tendo em mente que o sistema é modificável e, portanto, otimizável. E, o próprio fato de ser otimizável o torna suscetível a ser superotimizado. Este ponto é de vital importância para tentar obter retornos estáveis ​​no futuro.

A etapa usual após encontrar uma estratégia que funcionou bem no passado é tentar otimizar o modelo. Grande erro. Primeiro você teria que colocá-lo em tensão, ou o que chamo de estressar o sistema. Coloque-o para funcionar no pior ambiente possível conhecido por tais sistemas. Assim, por exemplo, se tivermos um sistema de tendência, será necessário colocá-lo para funcionar em períodos laterais prolongados para ver como ele se comporta quando não existe um cenário favorável para gerar retornos do sistema. A razão para isso é que não sabemos o que acontecerá no futuro, então nos colocarmos no pior cenário possível nos leva o mais longe possível da aleatoriedade inevitável (e desejável).

O que fazer além de estressar?

Os conceitos que mudam tudo são teste direto e teste fora da amostra. Mas, se não conhecemos o futuro, como vamos testar algo sobre algo que não conhecemos? Temos duas opções, que veremos em breve. Por outro lado, temos o conceito de fora da amostra. A escolha desta amostra - que recomendo que sejam bastantes (não apenas uma) e com distribuições de probabilidade que apresentem características díspares - é essencial para conseguir um sistema que funcione. A ideia é que o backtest e a otimização sejam realizados em períodos distintos. Assim, as amostras grátis permanecerão. Embora seja do gosto do analista. Isso pode ser feito de outra forma, mas podemos cair em erros estatísticos que não são o objetivo deste artigo.

  • A primeira forma de realizar o processo é o que chamaremos de tradicional: fazemos um sistema, otimizamos e depois de olhar algumas métricas o colocamos para funcionar com dinheiro fictício ou com pouco dinheiro real. Se tudo correr bem, colocamos para funcionar na prática.
  • A segunda forma de realizar o processo é o que chamaremos de 'novo', embora na realidade tenha poucas novidades: fazemos um sistema, otimizamos, verificamos a estabilidade dos parâmetros ao longo do tempo, realizamos testes de amostra, testes avançados artificiais e nós os colocamos para trabalhar com um teste avançado real. Se tudo correr bem, colocamos para funcionar na prática.

A segunda forma de proceder, comparada à primeira, é baseada em dois conceitos: estabilidade dos parâmetros ao longo do tempo e testes artificiais para frente. Os testes diretos artificiais não são um tipo de teste fora da amostra que tenta simular um teste direto real. Vamos pensar no seguinte:

Fizemos um processo para um sistema no ano passado. Colocar para funcionar deste mês (julho) até o final do ano (dezembro) é praticamente o mesmo que avançar todos os 6 meses e simular o teste de avanço de janeiro a julho. Não é a mesma coisa, porque as condições reais sempre nos oferecem situações difíceis de inventar, mas avançamos mais e alcançamos melhores resultados. E depois dessas "invenções", porque são na verdade invenções, realizamos o teste direto em tempo real. Isso é o que quero dizer com testes avançados artificiais. Alguns podem não gostar dessa forma, mas pensar de outra forma é mentalmente tendencioso. Se você tivesse descoberto essa estratégia 6 meses antes, teria feito o mesmo.

Por outro lado, temos a estabilidade dos parâmetros do sistema ao longo do tempo. Para mim, esta é a métrica mais importante e nos diz se o sistema está superotimizado. Se os parâmetros permanecerem estáveis ​​ao longo do tempo após as otimizações a cada X períodos, isso significa que é menos provável que os parâmetros tenham sido superotimizados do que outros que variam mais. Se a isso acrescentarmos que para cada uma das otimizações realizamos um forward test artificial e os resultados também são estáveis, estamos diante de um sistema com probabilidade de ser realmente lucrativo.

Tudo isso pode ficar muito mais complicado. Embora pareça complexo, não é. É pesado, mas é mais simples do que o mecanismo de uma jarra. Como sempre, cada um tem a sua forma de fazer, não é a única forma, mas o que queria deixar claro é que um backtest sem companheiros de viagem é inútil e inútil. Pelo menos, é claro, no mundo do comércio.