Faça Backtest Antes de Operar no Real

·

Faça Backtest Antes de Operar no Real

Por que fazer backtest

O exercício justifica o seu lugar por três razões, nenhuma das quais é provar que um método dá lucro.

Ser claro sobre o que está a tentar aprender mantém o teste honesto, porque a maioria das formas em que um backtest corre mal vem de lhe pedir um veredicto que ele não consegue dar.

Testar a viabilidade das regras

A primeira coisa que um teste revela é se as suas regras estão completas. Aplicá-las candle a candle a um trecho de gráfico expõe rapidamente os momentos em que a página não diz o que fazer, e essas lacunas são o verdadeiro resultado. Um conjunto de regras que não pode ser aplicado sem julgamento ao vivo não está terminado, e não há forma mais barata de descobrir isso.

Ganhar confiança

Ver o seu setup aparecer repetidamente ao longo de um período dá-lhe um sentido realista de com que frequência dispara, como é uma sequência de perdas normal, e quanto tempo vai esperar entre oportunidades. Essa familiaridade ajuda quando a mesma sequência acontece ao vivo, porque chega como algo reconhecido em vez de prova de que o método quebrou.

Há mais um benefício que só aparece depois. Um teste cria um registo escrito daquilo que as suas regras produziram ao longo de um trecho definido, o que lhe dá algo contra o qual comparar os seus resultados ao vivo. Sem ele, um mês desiludido ao vivo não tem nada contra o qual ser medido e tende a ser interpretado como fracasso. Com ele, pode pelo menos perguntar se a sequência ao vivo se parece com as que o teste continha, o que é uma pergunta muito mais respondível.

Tirar o achismo

Um conjunto de regras testado substitui a pergunta "isto funciona" pela pergunta mais estreita "isto disparou, e o que aconteceu". A segunda é respondível. A primeira não é, e traders que insistem nela acabam por ajustar as regras até a resposta parecer que sim, que é o fracasso descrito mais adiante nesta página.

  • Completude primeiro. Lacunas nas regras são a principal descoberta.
  • Frequência em segundo. Com que frequência dispara molda tudo o resto.
  • Um veredicto não está disponível. Nenhum teste produz um honestamente.

Faça backtest para encontrar lacunas nas suas regras e aprender com que frequência disparam, não para obter um veredicto.

Testar com honestidade

A desonestidade no backtesting é estrutural e não deliberada: sabe o que aconteceu a seguir, e esse conhecimento infiltra-se a menos que o processo o impeça.

Três práticas removem a maior parte dessa infiltração, e nenhuma delas exige software.

Amostra adequada

Ocorrências suficientes para que uma sequência em qualquer direção não consiga explicar o resultado. Quantas isso são depende da frequência com que as suas regras disparam; um setup que aparece duas vezes por semana precisa de um período longo para produzir uma contagem utilizável. Se reunir a amostra demora meses, isso é informação sobre o conjunto de regras e não um problema a resolver encurtando o teste.

Dados fora da amostra

Desenvolva as regras num período, congele-as, e aplique-as sem alterações a um período que não observou enquanto desenvolvia. Este é o passo que separa uma descoberta de uma descrição, e é o passo quase sempre saltado porque o resultado é frequentemente desiludido. Um conjunto de regras que tem bom desempenho no período de desenvolvimento e não no período intocado foi moldado para se ajustar à história.

Premissas realistas

  1. Avance candle a candle, da esquerda para a direita. Cubra o gráfico à direita da sua posição atual.
  2. Registe os casos ambíguos como executados. Em tempo real tê-los-ia executado.
  3. Conte os setups que teria perdido. A dormir, no trabalho, longe do ecrã.
  4. Aplique a aritmética do payout. Uma contagem de acertos não significa nada sem ela.
  5. Registe cada ocorrência, não apenas as interessantes.

O segundo item é o que custa mais desempenho aparente, e é o mais valioso de manter. O teste histórico resolve por defeito cada caso limítrofe a favor do método, porque o resultado é visível. Decidir antecipadamente que a ambiguidade conta como uma operação remove esse viés e geralmente remove com ele uma boa parte do resultado lisonjeiro.

Candle a candle com o futuro coberto, ambiguidade contada como executada, e uma sequência congelada em dados em que não desenvolveu.

Evitar o sobreajuste

O sobreajuste é o que acontece quando um conjunto de regras é melhorado contra a história até descrever essa história e não algo duradouro.

Raramente parece batota. Parece refinamento, e cada ajuste individual tem uma justificação plausível na altura.

Regras demais

Cada condição acrescentada reduz a frequência com que o conjunto completo se alinha, o que reduz a sua amostra e aumenta a hipótese de o que resta ser uma descrição de um trecho particular. Um conjunto de regras que cresce depois de cada teste desiludido está a ser ajustado, e o crescimento é o sintoma e não a solução.

Resultados superotimizados

Valores de parâmetros estranhamente específicos são o sinal visível: um período de retrospetiva de exatamente dezanove, um limiar numa fração precisa. Valores alcançados por afinação são valores escolhidos porque funcionaram na amostra, e não há razão para o mercado os respeitar depois. Números redondos e sem complicações são um padrão razoável e degradam-se com mais elegância.

A mesma verificação aplica-se ao período e não apenas aos parâmetros. Divida o seu trecho de teste ao meio e observe cada metade separadamente. Se o resultado vem quase inteiramente de uma metade, encontrou um conjunto de regras que se ajustava a um mercado particular e não um que descreve um comportamento. Isso não é necessariamente fatal, e diz-lhe que condições vigiar antes de confiar nele ao vivo.

Sistemas frágeis

Uma verificação de robustez útil não custa nada: ajuste ligeiramente cada parâmetro e execute de novo. Se uma pequena mudança colapsa o resultado, o conjunto de regras estava equilibrado sobre um arranjo particular da história e não a descrever um comportamento real. Um conjunto de regras que vale a pena manter produz resultados amplamente semelhantes ao longo de uma faixa de valores próximos.

SinalO que geralmente significa
Condições acrescentadas depois de cada teste fracoAjuste à amostra
Valores de parâmetros precisos e invulgaresAfinado e não raciocinado
Resultado colapsa com uma pequena mudança de parâmetroFrágil; não descreve um comportamento real
Regras não podem ser justificadas sem os resultadosMemorização, não método

Ajuste cada parâmetro e execute de novo. Um resultado que colapsa foi ajustado à história e não encontrado nela.

Conhecer os limites

Um teste descreve o que já aconteceu sob condições que podem já não se aplicar, e nenhum rigor muda isso.

Os limites abaixo não são defeitos no seu método. São propriedades de testar qualquer coisa contra o passado.

O passado não é o futuro

A forma mais clara de reter isto: o seu resultado diz-lhe que as regras corresponderam a um trecho de história. Se o comportamento por trás dessa correspondência persiste é uma pergunta separada, sem resposta de antemão, e é por isso que existem calendários de revisão e condições de paragem. Nada num bom teste remove a necessidade de nenhum dos dois.

Mudanças de regime

Os mercados alternam entre condições de tendência e de lateralização, a participação muda, e regimes de volatilidade vêm e vão. Um conjunto de regras testado ao longo de um período que contém apenas uma condição foi testado contra uma condição, por mais longo que esse período tenha sido. Testar ao longo de um trecho que visivelmente contém mais do que uma vale o esforço extra e muitas vezes muda consideravelmente o quadro.

A qualidade dos dados merece também uma breve menção. Gráficos de fontes diferentes nem sempre concordam exatamente, especialmente em horizontes curtos, e instrumentos cujo preço é cotado e não negociado em bolsa carregam uma incógnita adicional porque não é publicada nenhuma metodologia para eles. Nada disto torna o teste inútil; significa que um resultado que depende de níveis precisos ou formas exatas de candle assenta em algo menos sólido do que parece.

Lacunas de execução no real

A diferença entre o teste e o real vem de coisas que um teste não consegue conter: o momento de hesitação, o setup que perdeu porque estava noutro lugar, a operação que fez que não era bem o setup. Tudo isto é comportamental, nada disto aparece numa sequência histórica, e juntos costumam explicar mais da diferença do que qualquer mudança de mercado. É por isso que o teste em avanço na conta de prática importa pelo menos tanto quanto a sequência histórica: pode testar as regras congeladas em avanço com fundos virtuais e descobrir como as mesmas regras se comportam quando é você quem as aplica.

Um teste diz que as regras corresponderam a alguma história. O teste em avanço diz se as consegue aplicar.

Conclusões do backtest

O exercício vale o tempo quando lhe é feita a pergunta certa e engana quando lhe é feita a errada.

Teste antes de arriscar dinheiro

Correr as suas regras ao longo de dados passados, honestamente, antes de qualquer dinheiro estar envolvido, vai dizer-lhe se as regras estão completas, com que frequência disparam e como é um trecho de perdas normal. As três coisas valem a pena saber de antemão, e as três são mais baratas de aprender num gráfico do que num saldo.

Seja honesto

A honestidade é processual e não moral: cubra o gráfico, conte a ambiguidade como executada, congele as regras antes de correr o período intocado, e registe cada ocorrência. Cada uma destas remove uma forma específica de o resultado o lisonjear, e cada uma delas custa desempenho aparente, o que é exatamente por que funcionam.

  • Regras congeladas em dados intocados. A única parte do teste que carrega informação.
  • Parâmetros redondos, poucas condições. O ajuste é visível na precisão.
  • Verificação de robustez. Ajuste e execute de novo antes de confiar em algo.
  • Teste em avanço depois. A pergunta comportamental precisa de uma resposta em avanço.

Nenhum teste garante lucro

Não aparecem cifras aqui, porque esta redação não fez backtest a nada e não detém nenhuma conta. O que se pode dizer estruturalmente é que um resultado histórico é uma afirmação sobre o passado e uma alegação sobre o futuro apenas por presunção, e que essa presunção é exatamente para o que servem os calendários de revisão e as condições de paragem. Trate um teste como um dado de entrada, teste em avanço o que sobrevive a ele, e deixe o seu próprio registo ao vivo ser aquilo que decide.

Um teste estreita o campo. O seu registo em avanço decide, e mais nada consegue honestamente.

O que os leitores perguntam sobre esta configuração

Como faço backtest sem uma ferramenta especial?

Abra um gráfico, recue até um ponto de partida, cubra tudo à direita dele, e avance um candle de cada vez aplicando as suas regras escritas. Registe cada ocorrência incluindo as ambíguas. É lento e é honesto, e a lentidão é o que o impede de usar inconscientemente informação que o mercado ainda não tinha produzido.

O que é o teste fora da amostra?

Desenvolve as regras num período, depois congela-as e aplica-as sem alterações a um período diferente que nunca examinou enquanto desenvolvia. Importa porque qualquer conjunto de regras pode ser melhorado indefinidamente contra a história em que foi moldado, por isso o período intocado é a única parte do exercício que carrega informação. É também o passo mais frequentemente saltado, porque o resultado é frequentemente desiludido.

Quantos dados preciso para um teste significativo?

Ocorrências suficientes para que uma sequência em qualquer direção não consiga explicar o resultado, o que depende inteiramente da frequência com que as suas regras disparam. Um setup que aparece duas vezes por semana precisa de um período longo para produzir uma contagem utilizável. Se reunir a amostra demora meses, trate isso como informação sobre o conjunto de regras e não como razão para encurtar o teste.

Por que estratégias testadas em backtest falham ao vivo?

Geralmente por razões comportamentais e não de mercado. Uma sequência histórica não contém nenhuma hesitação, nenhum dos setups que perdeu enquanto estava longe do ecrã, e nenhuma das operações que quase eram o seu setup. Também não pode incluir uma mudança de condições depois do período de teste. Testar em avanço as regras congeladas numa conta de prática é o que revela a metade comportamental.