| O que é um back test? |
|
|
| Artigos - Investimentos | |||
| Escrito por Hindemburg Melão Jr. | |||
| Quarta, 29 Abril 2009 23:35 | |||
|
Em suma, um back test consiste em usar uma série histórica de cotações, que cobre determinado período, para verificar a rentabilidade que seria produzida por determinada estratégia se fosse usada naquele período. Se a base de dados históricos for de boa qualidade e o teste for conduzido com rigor, a realização de back tests representa um poderoso meio de avaliar estratégias e selecionar as melhores. Simplificadamente, um exemplo do que se faz é testar diferentes valores para os parâmetros de uma estratégia entre 1995 e 2000, até encontrar o conjunto de parâmetros que produz resultados atraentes no balanço, no fator de lucro, no número de operações, no drawdown relativo etc. Em seguida, usa-se esta mesma estratégia, com estes mesmos parâmetros, no período de 2001 a 2008. Se os resultados se mantiverem semelhantes aos que haviam sido obtidos entre 1995 e 2000, e se determinadas condições que discutiremos a seguir tiverem sido atendidas, é esperado que de 2009 em diante os resultados continuem a ser semelhantes aos que foram obtidos entre 1995 e 2008. Repetem-se os procedimentos com outras estratégias e outros parâmetros, até encontrar algo que funcione.
Quando uma pessoa decide aplicar no Mercado, ela precisa de critérios para decidir quando comprar e o que comprar, bem como quando vender. As decisões de compra e venda são muito mais difíceis e mais complexas do que muitos imaginam, e a porcentagem de pessoas que realmente consegue ter resultados positivos no Mercado Financeiro é muito pequena. Para se ter idéia, mesmo entre os maiores bancos do mundo, que teoricamente contratam os melhores profissionais para tomar as decisões, vários sofreram grandes perdas com as quedas do final de 2008, e alguns chegaram a falir. Só os traders realmente notáveis, como Jesse Livermore, Georges Soros, Warren Buffett e poucos outros é que conseguem se manter positivos ou até lucrar mais durante os períodos de quedas. Livermore, por exemplo, ganhou 3 milhões de dólares em apenas 2 dias com a queda da Bolsa de Nova Iorque de 1907, e ganhou 100 milhões de dólares em 1 dia com a quebra de 1929. George Soros se tornou famoso entre o público em geral (já era muito famoso entre investidores) em 1992, quando quase levou o Banco da Inglaterra à falência, ao apostar na queda da libra esterlina com uma forte alavancagem, e com isso lucrou 1 bilhão de dólares em 1 dia. Buffett não foi autor de proezas como estas, mas ele se manteve indiferente às grandes quedas de 2008, 1999, 1988 e outras, confirmando a consistência de seu método.
Existem dois perfis principais de investidores (e vários outros perfis): os Objetivos e os Subjetivos. Um subgrupo dos "Objetivos" é chamado "Técnico-esotéricos" e outro subgrupo é chamado "Científicos". Um subgrupo dos "Subjetivos" é chamado "Grafistas" e outro subgrupo é chamado "Fundamentalistas". Esta nomenclatura é de nossa autoria e explicaremos a seguir as diferenças:
Um analista técnico utiliza indicadores quantitativos para tentar prever o comportamento do Mercado, portanto se baseia em critérios objetivos e bem definidos para tomar suas decisões. Porém não elegem suas estratégias com base em estudos sistemáticos e profundos. Apenas repetem procedimentos que aprenderam em livros ou cursos e os utilizam. Não fazem levantamento de quanto suas estratégias ganharam ou perderam nos últimos anos, e freqüentemente mudam de estratégia a cada intervalo de alguns meses, sempre que começam a perder com a estratégia anterior. Não conheço propriamente exemplos de analistas técnicos de sucesso, mas poderia citar analistas científicos que operam manualmente (não usam predominantemente sistemas automáticos): Marty Schwartz e Michael Marcus, mas ressalvo que ambos eu classificaria como analistas científicos, não como técnicos, pois fazem estudos sistemáticos e simulações rigorosas.
Um analista científico também utiliza indicadores quantitativos e se baseia em critérios objetivos, com a diferença que faz estudos sistemáticos sobre cada estratégia, com simulações tão rigorosas quanto possível, antes de usá-las na prática. Dois exemplos de analistas científicos são James Simons e Ed. Seykota.
Um analista grafista usa figuras desenhadas com base em critérios subjetivos, do tamanho e na posição que ele acha que deveria ser, como base em suas preferências pessoais, e com isso acredita ser capaz de montar estratégias vitoriosas. Há muitos exemplos de analistas grafistas, porém não saberia citar nenhum comparável a Buffett ou Simons.
Um analista fundamentalista estuda a história das empresas, as notícias sobre a Economia e Política, e tenta avaliar de que maneira os eventos mais relevantes podem influenciar os preços. Procuram por causas para explicar os movimentos do mercado, tomam suas decisões com base nos efeitos que supõem que decorrerão das causas observadas. Embora seus métodos também sejam subjetivos, assemelham-se mais aos dos analistas científicos do que aos dos grafistas. Dois exemplos de analistas fundamentalistas são Warren Buffett e George Soros.
Destes 4 perfis de analistas, 2 são promissores e 2 não oferecem muitas perspectivas. Na seqüência, ficará fácil entender quais deles são promissores.
Antes de investir no Mercado Financeiro, seja em ações, commodities ou divisas, é imprescindível eleger uma boa estratégia que sinalize os momentos certos para comprar e vender. Algumas pessoas acreditam que o Mercado se move conforme ensinam alguns livros ou cursos, e pensam que se seguirem corretamente as instruções poderão enriquecer facilmente. A prática se encarrega de mostrar a elas que estão equivocadas. Há livros que realmente ajudam, porém são uma minúscula minoria.
A grande maioria dos livros e cursos sobre o Mercado Financeiro não tem qualquer utilidade, a não ser ensinar a fazer alguns desenhos. Quando se tenta aplicar as teorias descritas nestes livros, verifica-se que não resistem a mais do que poucos meses de teste. Isso é muito fácil de verificar, e qualquer pessoa pode fazer o teste, bastando para isso que disponham de uma plataforma de operações e uma série histórica de dados. O Meta Trader 4, por exemplo, é uma plataforma bastante completa para realização de testes de estratégias, é gratuito e inclui séries históricas desde 1999, minuto a minuto, e algumas séries desde 1975 com cotações final de dia (abertura, fechamento, máximo e mínimo de cada dia). Há também empresas especializadas na coleta e comercialização destas séries históricas, como Olsen Data e Disk Trading, que comercializam bases com dados final de dia, dados de hora em hora, 15 em 15 minutos, 1 em 1 minuto ou até tick-by-tick. As bases tick-by-tick são as mais completas e precisas, reunindo informações sobre praticamente todas as compras e todas as vendas realizadas, durante anos ou décadas, com informações do preço, volume, data e horário em que cada operação foi realizada. Munido com uma plataforma como esta e uma série de dados históricos, basta aplicar a estratégia e conferir quanto tempo ela agüenta antes e levar à ruína, isto é, levar a carteira a zero.
Como os cursos e livros não oferecem estratégias objetivas, mas apenas indicações vagas e imprecisas, torna-se um pouco mais trabalhoso demonstrar que uma estratégia não funciona, pois é necessário usar um largo intervalo de valores possíveis em cada indicador, e testar muitos valores intermediários para evidenciar que quaisquer que sejam os valores adotados para os parâmetros da tal estratégia, ela não tem como funcionar.
A título de curiosidade, fizemos 9.801 testes com todos valores para IFR entre 1 e 99 na compra e entre 1 e 99 na venda, em time-frame diário. Nenhum dos valores possíveis consegue ficar positivo mais do que 1 ano de modo a ser mantido positivo nos dois anos seguintes. Fizemos mais testes usando diferentes valores para stop loss, take profit e trailing stop, e variando os pontos de entrada no IFR de 5 a 95, com mudanças de 5 em 5. Não adiantou. Também fizemos testes com Bandas de Bollinger, sem sucesso. Com MACD, se consegue adiar a ruína por mais tempo, mas também não há como ficar positivo a longo prazo. Diversas outras tentativas combinando diferentes indicadores e osciladores, inclusive ADX, Alligator, OBV, Estocástico etc., sendo o OBV comprometido pelo fato de o volume no Forex não ser uma informação que represente seguramente o volume negociado no mercado inteiro.
Um pouco mais grave do que verificar que praticamente todas as estratégias habitualmente divulgadas não funcionam é que se os back tests não forem bem conduzidos, podem levar a resultados inverossímeis. No caso de IFR, por exemplo, para valores perto de 51 e 49, conseguem-se lucros fantásticos se forem usadas bases de 1 minuto. Mas isso é totalmente ilusório e basta usar bases tick-by-tick ou rodar em tempo real para verificar que estes valores para IFR causam prejuízo, em vez de lucro. Um sistema didático que fizemos para exemplificar isso é o "Abominável". http://www.sigmasociety.com/graal.htm .
Há muitas maneiras de se fazer um teste, porém poucas, bem poucas, produzem resultados confiáveis. Não haveria como descrever aqui todas as exigências para que um teste seja rigoroso, porque isso demandaria centenas de páginas com descrições, explicações, tabelas, gráficos, algumas fórmulas e demonstrações. Mas podemos fazer um resumo:
1) Divida a série histórica em 3 partes de tamanhos aproximadamente iguais e características gerais aproximadamente equivalentes.
2) Rode a estratégia numa das partes, e otimize os parâmetros de modo que o balanço final fique positivo.
3) Entre os parâmetros que ficaram positivos na etapa 2, verifique se algum deles fica positivo também em uma das outras 2 partes da série histórica. Se sim, veja se este mesmo conjunto de parâmetros também fica positivo na outra parte. Em caso afirmativo, se algumas outras condições forem atendidas, é provável que a estratégia seja lucrativa.
4) Algumas das outras condições que precisam ser atendidas são que a quantidade de operações realizadas não pode ser muito pequena.
Num contexto um pouco mais técnico, um back test, para ter validade, precisa que a curva de evolução da carteira que se produz no resultado atenda a algumas condições:
1) Estabilidade temporal. 2) Homogeneidade. 3) Homoscedasticidade. 4) Fidedignidade.
1) Estabilidade temporal.
Se a curva de evolução da carteira produz determinada performance em determinado período suficientemente longo, espera-se que num período diferente e igualmente longo seja produzida uma performance semelhante. Verifica-se essa propriedade mediante a otimização dos parâmetros de uma estratégia num determinado período e depois testa-se o resultado num período diferente. Por exemplo: se uma otimização feita entre 1990 e 1999 indica que os melhores valores para IFR são 20 para compra e 80 para venda, é esperado que com estes mesmos valores funcione entre 2000 e 2009, com performances semelhantes nos dois períodos. Isso pode ser feito dividindo a série em 3 ou mais partes, em vez de 2, aumentando o rigor à custa de uma redução na precisão dos valores para os parâmetros. Em alguns casos, pode-se substituir a condição da estabilidade temporal por "adaptabilidade", se o sistema utilizado for baseado em redes neurais (que aprendem ao longo do tempo).
2) Homogeneidade.
A forma e a performance da curva que representa a evolução da carteira deve ser aproximadamente a mesma em qualquer intervalo considerado (os intervalos devem ser suficientemente longos). De certo modo, a homogeneidade pode ser encarada como uma generalização da estabilidade temporal e dispensa a realização do teste em duas etapas, desde que depois seja feita uma análise de todos os períodos em que a série possa ser subdividida. Também a homogeneidade embute em seu resultado algumas propriedades da homoscedasticidade. Isso faz da homogeneidade uma das propriedades mais importantes na avaliação da qualidade de um back test.
O coeficiente alfa de Cronbach não pode ser usado à maneira tradicional para medir a homogeneidade, porque seria excessivamente pequena a quantidade de variáveis sobre cada operação para que pudessem ser convenientemente cruzadas com os momentos em que foram realizadas. Mas há outras maneiras de verificar a homogeneidade, uma das quais seria usar as propriedades de 5 ou 10 operações dentro de cada pequeno intervalo, tratando cada propriedade como uma variável, e cruzá-las com os respectivos intervalos, em vez de com os momentos das operações individuais. Outra maneira consistiria em modelar cada intervalo com uma função suave e com poucos parâmetros (preferencialmente uma reta e usar número fixo de lotes para linearizar o crescimento); depois, verificar se os parâmetros desta função são aproximadamente os mesmos em todos os intervalos. Uma outra maneira é verificar as correlações entre os equities em diferentes intervalos (10 ou 20 pontos escolhidos em cada intervalo). Entre outras.
A medida de homogeneidade é um dos indicativos mais importantes sobre a eficiência de um sistema, por mostrar qual semelhante é seu comportamento em diferentes períodos.
3) Homoscedasticidade.
A variância no comportamento médio da curva de evolução da carteira deve se manter aproximadamente a mesma em qualquer intervalo considerado. A verificação se dá por meio da comparação entre as posições dos pontos relativos ao balanço em cada momento com a reta que representa a regressão linear daqueles pontos dentro de um determinado período. Repete-se o procedimento em diversos períodos e verifica-se a homogeneidade da variância. Lembrando que não estamos nos referindo à variância do Mercado ou de qualquer ativo, mas sim à variância na curva de evolução da carteira, assim como os outros itens também se referem à curva de evolução da carteira. Será realmente importante que a curva de evolução da carteira seja homoscedástica? Sim, mas como a quantidade de operações necessárias para uma medida acurada seria da ordem dos milhares, caso contrário cada 5% do período teria menos de 50 operações e talvez menos de 20 stops, e nos pontos dos stops geralmente haveria surtos na volatilidade que aumentariam artificialmente a volatilidade, esta informação não pode ser obtida de amostras menores de operações, porém ela aparece implicitamente na medida de homogeneidade, de modo que se houver muita heteroscedasticidade, esta deve se manifestar na homogeneidade e sinalizar que algo está errado com o test. Numa situação com 50 operações, sendo 20 stops em cada período (em média), se em determinado período houvesse 40% a mais de stops do que em outro período de mesmo tamanho, isso quase não afetaria a homoscedasticidade. Porém se fossem 5 operações por período, com 4 stops em um dos períodos e 0 no outro, isso causaria um aumento artificial na heteroscedasticidade, portanto amostras pequenas podem estar sujeitas a alarmes falsos de baixa qualidade no teste quanto à homoscedasticidade, sem que a qualidade esteja realmente comprometida. Portanto a medida é muito importante e útil, mas a interpretação do resultado não é fácil nem há uma receita de bolo para isso. Requer a consideração de vários fatores em conjunto para que não se iluda com uma aparente baixa heteroscedasticidade, ou não se descarte injustamente uma alta heteroscedasticidade. Também é importante verificar se a heteroscedasticidade oscila sazonalmente, se ela se concentra em pontos específicos etc. Se houver uma alta heteroscedasticidade que esteja quase inteiramente concentrada num intervalo pequeno, pode não ser um problema importante, sobretudo se nesse intervalo houver fortes crescimentos no balanço.
4) Fidedignidade.
Precisa haver grande similaridade entre os pontos de entrada e saída em cada operação realizada no back test e em tempo real, bem como o número de operações precisa ser semelhante e os momentos de entrada e saída precisam ser semelhantes. Se houver número diferente de operações, só é aceitável se esta diferença tiver sido causada por uma variação de poucos pips, que tenha levado uma posição a ser aberta (ou fechada) no back test, mas não em tempo real. Exemplo: o ponto de compra é em 1,2000, sendo que no back test chega a 1,19998 e depois volta a subir, executando a compra, mas em tempo real chega a 1,20001 e começa a subir, sem executar a compra. A diferença foi de apenas 0,3 pip, indicando altíssima similaridade entre o back test e a conta real, porém num dos casos a operação não chega a ser executada e no outro caso sim, de modo que uma minúscula diferença nos pontos de entrada pode provocar uma considerável diferença no balanço final. Também em caso de atraso no broker para executar a ordem, o problema naturalmente deve ser atribuído ao broker, não ao sistema. Por isso os bons back tests precisam também considerar as operações realizadas intencionalmente com atrasos e com diferenças de alguns pips, para conferir o quanto isso poderia alterar as performances finais.
Há outras providências importantes a serem tomadas para assegurar a qualidade dos resultados, bem como para conferir o nível de confiabilidade atingido nos testes. Os itens 2 e 3 que mencionamos acima são recomendações pessoais de nossa autoria. Nenhuma outra fonte que conhecemos faz estas recomendações, embora nos pareçam de capital importância para avaliar a qualidade do resultado.
Entre nossos artigos temos outras recomendações úteis sobre como realizar back tests de boa qualidade. É recomendável a leitura e compreensão de todos os artigos, para minimizar o risco de incorrer nos erros que são cometidos por praticamente todos que se iludem com resultados excepcionais nos back tests, mas irreprodutíveis em situação real.
Os três artigos anteriores a este versam sobre muitas particularidades relevantes sobre os back tests. No caso da operação que nos causou uma perda de 14,4%, os pontos de entrada e saída foram praticamente iguais no back test e na conta real, com diferença de 2 pips. E os dois relatórios de otimizações, um sem atraso e outro com 6 minutos de atraso, indicam que com cerca de 14 pips de diferença as performances ainda se mantém quase iguais, portanto a diferença observada entre back test e tempo real, de apenas 2 pips, não é significativa para afetar o desempenho dessa estratégia específica. Outras estratégias podem ser muito sensíveis a diferenças menores que 1 pip. Esse tipo de estudo é essencial para que se possa saber se as diferenças observadas são grandes o bastante para interferir nas performances ou se conservam aproximadamente os mesmos resultados. Sem estes estudos, não se pode confiar no resultado de nenhum back test ou mesmo live test.
Uma afirmação bombástica, que talvez quase ninguém concorde (como quase ninguém aceitava o Heliocentrismo durante os primeiros anos que foi proposto por Copérnico), mas me parece correta, é que os resultados de back tests são mais confiáveis do que os resultados de operações em tempo real. Entre um back test realizado com o devido rigor, entre 1999 e 2009, e uma conta real que estivesse sendo administrada entre 1999 e 2009, o resultado do back test seria mais útil e mais confiável para predizer o comportamento futuro do sistema usado na gestão das carteiras. O motivo disso é que no back test se pode ter controle sobre diversas variáveis que são inacessíveis na situação. Pode-se, por exemplo, atrasar todas as operações, ou aumentar todos os spreads, ou colocar obstáculos adicionais para que o sistema funcione, e se mesmo assim ele funcionar, é uma evidência mais forte de eficiência do que se tivesse apenas rodado em condições normais numa conta real no mesmo período. Além disso, as pequeninas diferenças em torno de 2 pips observadas entre back test e conta real seriam igualmente observadas em duas contas reais em brokers diferentes, portanto a conta real não tem maior auto-similaridade do que a similaridade entre ela e um back test de bom nível. Outrossim, pode-se simular em back test uma variedade muito maior de condições para o mesmo período, e comparar como o sistema teria se saído em todas estas condições diferentes, enquanto numa conta real haveria apenas uma entre as muitas condições possíveis para se analisar. Vejamos o gráfico abaixo, que já foi apresentado no artigo anterior:
Temos aí a visão de 65 situações diferentes sobre como teria sido o desempenho de um sistema usando stops entre 30 e 350 pips, variando de 5 em 5 pips. Esta informação é muito mais útil do que saber apenas se ele rodou bem com 74 pips em conta real, sem saber como teria sido se o stop tivesse sido pouco maior, ou pouco menor, ou muito maior, ou muito menor. Os back tests são muito mais ricos em informações e indicam a constância de desempenho para qualquer tamanho de stop entre 50 e 160 pips, bem como sugerem alguns valores especialmente promissores em 105 e 250 pips. Isso não teria como ser deduzido com base apenas nos dados de uma conta real. Portanto me parece que a afirmação que inicia este parágrafo transcende as aparências e apresenta um fato que pode se opor ao senso comum, mas que se aproxima mais da verdade e se fundamenta em argumentos cabais, contra os quais não vejo sérias objeções, exceto se os volumes negociados forem grandes o suficiente para afetar as cotações, o que tornaria estes casos destoantes dos back tests.
Concretamente: se uma pessoa me apresentasse um fundo em atividade desde 2005, e outra pessoa me apresentasse um back test de alta qualidade, com otimização realizada no período de 1999 a 2004 e teste de confirmação entre 2005 e 2009, havendo sobre o back test suficientes evidências de eficiência, eu consideraria mais provável que a estratégia usada no back test continue a manter performances comparáveis às do período testado do que a estratégia usada no fundo que opera em situação real.
|