Saturday, 28 October 2017

Testing trading systems on historical data


Como testar os sistemas de negociação e evitar o encaixe das curvas Para avaliar o quão bem um determinado sistema de negociação deve funcionar no futuro, o devolvemos nos dados do mercado passado. Backtesting aplica um conjunto de regras de negociação a dados históricos para estimar como essas regras teriam funcionado se tivéssemos negociado. Os bons resultados históricos hipotéticos não garantem que um conjunto de regras funcione bem no futuro. No entanto, os baixos resultados históricos hipotéticos quase certamente significam que um sistema não deve ser negociado em tempo real. O valor percebido do backtesting está enraizado na crença de que as tendências históricas se repetem. Os comerciantes têm testado estratégias em dados históricos por gerações. No entanto, a prática tornou-se popular com o advento de computadores pessoais e software de teste de sistema criado especificamente. Como System Writer, que evoluiu para a TradeStation. Este software e um banco de dados de dados históricos permitiram que aqueles sem um fundo de escrita de código para testar idéias do sistema comercial. A compreensão e a aceitação mais amplas dos sistemas de negociação, bem como a frustração que muitos encontraram ao tentar construir sistemas de comércio por conta própria, ajudaram o mercado de sistemas de terceiros a prosperar ao longo da década de 1990. Futures Truth é uma empresa independente que rastreou os sistemas comerciais comercialmente disponíveis desde a década de 1980. Atualmente, ele rastreia mais de 500 sistemas. Futuros Verdade testa sistemas comerciais em tempo real, e não em dados históricos. Isso evita a modificação das regras ao longo do tempo e simula melhor a execução das regras nas condições reais do mercado, como períodos de alta volatilidade. De acordo com a Futures Truth, apenas cerca de 45 dos sistemas rastreados são rentáveis ​​a longo prazo, enquanto apenas 20 exibiram uma boa razão de risco. No entanto, esses números provavelmente são melhores do que o populationrsquos em larga escala, porque apenas esses vendedores realmente confiantes em sua lógica passam a Futures Truth para análise em tempo real e crítica pública. Muitos sistemas falham porque não possuem uma premissa válida. Em vez disso, os parâmetros de entrada e saída são derivados da mineração de dados. A mineração de dados simplesmente verifica dados históricos para regras que teriam funcionado no passado. Muitas vezes, tais regras são adequadas precisamente ao passado e não têm esperança de trabalhar melhor do que aleatório em dados não vistos. Em vez disso, o desenvolvimento do sistema deve começar com uma teoria que pode ser testada, analisada e ajustada para aplicação. Este conceito também implica uma perspectiva diferente sobre o próprio teste do sistema: o objetivo do backtesting não é produzir uma coleção de estatísticas hipotéticas de lucros e perdas. É testar a validade da teoria e a precisão das regras na captura da premissa. O teste do sistema é um processo multifacetado dos dados, à escala de tempo, aos pressupostos de entrada de pedidos, ao contrato específico e ao controle de riscos. Falhar em qualquer um desses pode arruinar um teste de teste de outra forma ou, manipulá-los pode gerar resultados que são muito superiores aos que conseguiríamos em tempo real. Você precisa fazê-lo direito se você quiser validar o mdash ou, quando apropriado, invalidar o seu sistema. Ferramentas do comércio Existem dois elementos para testar: o software apropriado mdash software e mdash de dados e um método científico para desenvolver sistemas usando essas ferramentas. Letrsquos começa por olhar as ferramentas do comércio. Muitas opções estão disponíveis para testar suas idéias. Eles diferem na facilidade de transformar idéias em código e em como eles lidam com os detalhes, o que pode ter um grande impacto nos resultados. Por exemplo, se um sistema entrar em uma ordem limite, algum software registra um preenchimento se esse preço for tocado. No entanto, dificilmente há uma garantia de que tal pedido teria sido preenchido na negociação real, nem há garantia de que não seja. Entrar em paradas garante uma entrada, mas não um preço. Outra questão é registrar os preços reais. Embora a maioria dos softwares desenvolvidos profissionalmente já não tenha esse problema, ainda é uma preocupação para aqueles que testam manualmente sistemas em planilhas, como o Microsoft Excel. Por exemplo, se um sistema comprar em uma parada igual ao fechar mais um terço do alcance médio nos últimos três períodos, e se o alcance médio for 10, então estamos comprando no final mais 3.333. Se estamos negociando o E-mini SampP 500, ele opera com 0,25. Isso significa que o diferencial de entrada deve arredondar até 3,50. Um comerciante de início pode não perceber isso se mantiver manualmente números, e não foi há muito tempo que muitos programas profissionais cometiam o mesmo erro. Ao longo do tempo, esse erro poderia se somar a uma discrepância considerável. Em grande escala, no entanto, tais detalhes processuais são menores. O grande problema é o dado. Artigos relacionados Informações legais importantes sobre o e-mail que você enviará. Ao usar este serviço, você concorda em inserir seu endereço de e-mail real e apenas enviá-lo para pessoas que você conhece. É uma violação da lei em algumas jurisdições se identificar falsamente em um e-mail. Todas as informações fornecidas serão utilizadas pela Fidelity exclusivamente para enviar o e-mail em seu nome. A linha de assunto do e-mail que você enviará será Fidelity: seu e-mail foi enviado. Fundos mútuos e investimentos em fundos mútuos - Fidelity Investments Ao clicar em um link, será aberta uma nova janela. O que oferecemos Investimentos e serviços Comércio Avançado Saiba mais Ferramentas de teste de estratégia Use dados de mercado históricos para ajudá-lo a testar as estratégias de negociação antes de investir. Acesse esta ferramenta diretamente no seu navegador ou baixe o Wealth-Lab Pro para recursos mais robustos. Testes de estratégia baseados na Web Disponíveis para todos os clientes da Fidelity Salve as estratégias e monitore-as. Obtenha alertas de compra e venda, faça trocas e revise ordens. Teste de estratégia de desktop Disponível para clientes que negociam mais de 36 vezes em um período contínuo de 12 meses, com um mínimo de 25 mil recursos. O Wealth-Lab Pro permite que você personalize com ou sem código, teste múltiplas estratégias ao mesmo tempo e coloque trocas manualmente ou Automaticamente. Baixe Wealth-Lab Pro Wealth-Lab Pro. Sob o teste HoodBacktesting e Forward: A importância dos comerciantes de correlações que estão ansiosos para tentar uma idéia comercial em um mercado ao vivo muitas vezes cometem o erro de confiar inteiramente em resultados de backtest para determinar se o sistema será lucrativo. Embora o backtesting possa fornecer aos comerciantes informações valiosas, muitas vezes é enganador e é apenas uma parte do processo de avaliação. Testes fora da amostra e testes de desempenho avançado fornecem uma confirmação adicional quanto à eficácia de um sistema, e podem mostrar cores verdadeiras dos sistemas, antes que o dinheiro real esteja na linha. Uma boa correlação entre resultados de teste de backtesting, out-of-sample e forward é vital para determinar a viabilidade de um sistema de comércio. (Oferecemos algumas dicas sobre este processo que podem ajudar a refinar suas estratégias comerciais atuais. Para saber mais, leia Backtesting: Interpreting the Past.) Backtesting Basics Backtesting refere-se à aplicação de um sistema de negociação a dados históricos para verificar como um sistema teria realizado durante O período de tempo especificado. Muitas das plataformas de negociação de hoje suportam backtesting. Os comerciantes podem testar idéias com algumas batidas de teclas e obter informações sobre a eficácia de uma idéia sem arriscar fundos em uma conta comercial. Backtesting pode avaliar idéias simples, como a forma como um crossover médio móvel seria executado em dados históricos, ou sistemas mais complexos com uma variedade de insumos e disparadores. Enquanto uma idéia pode ser quantificada, ela pode ser testada novamente. Alguns comerciantes e investidores podem procurar a experiência de um programador qualificado para desenvolver a idéia em uma forma testável. Normalmente, isso envolve um programador que codifica a idéia na linguagem proprietária hospedada pela plataforma de negociação. O programador pode incorporar variáveis ​​de entrada definidas pelo usuário que permitem ao comerciante ajustar o sistema. Um exemplo disso seria no sistema de cruzamento de média móvel simples observado acima: o comerciante seria capaz de inserir (ou alterar) os comprimentos das duas médias móveis usadas no sistema. O comerciante poderia voltar a testar para determinar quais comprimentos de médias móveis teriam realizado o melhor nos dados históricos. (Obtenha mais informações no Tutorial de Negociação Eletrônica.) Estudos de Otimização Muitas plataformas de negociação também permitem estudos de otimização. Isso implica entrar em um intervalo para a entrada especificada e deixar o computador fazer a matemática para descobrir qual a entrada que teria realizado o melhor. Uma otimização multi-variável pode fazer a matemática para duas ou mais variáveis ​​combinadas para determinar quais níveis juntos teriam alcançado o melhor resultado. Por exemplo, os comerciantes podem dizer ao programa quais os insumos que eles gostariam de adicionar à sua estratégia, então eles seriam otimizados para seus pesos ideais, dado os dados históricos testados. Backtesting pode ser emocionante na medida em que um sistema não lucrativo muitas vezes pode ser magicamente transformado em uma máquina de fazer dinheiro com algumas otimizações. Infelizmente, ajustar um sistema para alcançar o maior nível de rentabilidade passada muitas vezes leva a um sistema que funcionará mal na negociação real. Esta sobre-otimização cria sistemas que parecem bons apenas em papel. Curve fitting é o uso de análises de otimização para criar o maior número de negócios vencedores com o maior lucro nos dados históricos usados ​​no período de teste. Embora pareça impressionante em resultados de backtesting, o ajuste de curva leva a sistemas não confiáveis, uma vez que os resultados são essencialmente personalizados para apenas esse dado e período de tempo específicos. Backtesting e otimização fornecem muitos benefícios para um comerciante, mas isso é apenas parte do processo ao avaliar um sistema comercial potencial. Um próximo passo dos comerciantes é aplicar o sistema a dados históricos que não foram utilizados na fase inicial de teste posterior. (A média móvel é fácil de calcular e, uma vez traçada em um gráfico, é uma poderosa ferramenta de manchas visuais. Para obter mais informações, leia as Médias móveis simples, faça com que as tendências se destatem.) Dados em amostra versus dados fora da amostra Ao testar uma ideia sobre dados históricos, é benéfico reservar um período de tempo de dados históricos para fins de teste. Os dados históricos iniciais em que a ideia é testada e otimizada são referidos como dados na amostra. O conjunto de dados que foi reservado é conhecido como dados fora da amostra. Esta configuração é uma parte importante do processo de avaliação porque fornece uma maneira de testar a idéia em dados que não foram um componente no modelo de otimização. Como resultado, a idéia não será influenciada de forma alguma pelos dados fora da amostra e os comerciantes serão capazes de determinar o quão bem o sistema pode executar em novos dados, ou seja, na negociação da vida real. Antes de iniciar qualquer backtesting ou otimização, os comerciantes podem reservar uma porcentagem dos dados históricos a serem reservados para testes fora da amostra. Um método é dividir os dados históricos em terços e segregar um terço para uso nos testes fora da amostra. Apenas os dados na amostra devem ser usados ​​para o teste inicial e qualquer otimização. A Figura 1 mostra uma linha de tempo onde um terço dos dados históricos é reservado para testes fora da amostra e dois terços são usados ​​para o teste na amostra. Embora a Figura 1 represente os dados fora da amostra no início do teste, procedimentos típicos teriam a porção fora da amostra imediatamente anterior ao desempenho para a frente. Figura 1: uma linha de tempo que representa o comprimento relativo de dados na amostra e fora da amostra usados ​​no processo de teste posterior. Uma vez que um sistema comercial foi desenvolvido usando dados na amostra, está pronto para ser aplicado aos dados fora da amostra. Os comerciantes podem avaliar e comparar os resultados de desempenho entre dados in-sample e out-of-sample. A correlação refere-se a semelhanças entre os desempenhos e as tendências gerais dos dois conjuntos de dados. As métricas de correlação podem ser usadas na avaliação dos relatórios de desempenho da estratégia criados durante o período de teste (um recurso que a maioria das plataformas de negociação fornece). Quanto mais forte for a correlação entre os dois, melhor será a probabilidade de um sistema funcionar bem no teste de desempenho direto e na negociação ao vivo. A Figura 2 ilustra dois sistemas diferentes que foram testados e otimizados em dados na amostra, depois aplicados a dados fora da amostra. O gráfico à esquerda mostra um sistema claramente ajustável para funcionar bem nos dados na amostra e falhou completamente nos dados fora da amostra. O gráfico à direita mostra um sistema que funcionou bem em dados internos e fora da amostra. Figura 2: duas curvas de equidade. Os dados comerciais antes de cada seta amarela representam testes na amostra. Os negócios gerados entre as setas amarelas e vermelhas indicam testes fora da amostra. Os negócios após as setas vermelhas são das fases de teste de desempenho para frente. Se houver pouca correlação entre o teste na amostra e fora da amostra, como o gráfico esquerdo na Figura 2, é provável que o sistema tenha sido superestimado e não funcionará bem na negociação ao vivo. Se houver uma forte correlação no desempenho, como visto no gráfico certo na Figura 2, a próxima fase da avaliação envolve um tipo adicional de testes fora da amostra, conhecidos como testes de desempenho para a frente. (Para obter mais informações sobre a previsão, consulte Previsão Financeira: O Método Bayesiano.) Princípios básicos do teste de desempenho avançado Teste de desempenho para o futuro, também conhecido como comércio de papel. Fornece aos comerciantes outro conjunto de dados fora da amostra sobre os quais avaliar um sistema. O teste de desempenho avançado é uma simulação de negociação real e envolve seguir a lógica dos sistemas em um mercado ao vivo. Também é chamado de papel comercial, uma vez que todas as negociações são executadas apenas em papel, as entradas de comércio e as saídas são documentadas juntamente com qualquer lucro ou perda do sistema, mas nenhuma transação real é executada. Um aspecto importante do teste de desempenho para frente é seguir a lógica dos sistemas exatamente o contrário, torna-se difícil, se não impossível, avaliar com precisão esta etapa do processo. Os comerciantes devem ser honestos sobre quaisquer entradas e saídas de comércio e evitar comportamentos como cereais, ou não incluir um comércio de papel racionalizando que eu nunca teria negociado. Se o comércio tivesse ocorrido na sequência da lógica dos sistemas, ele deveria ser documentado e avaliado. Muitos corretores oferecem uma conta de negociação simulada onde os negócios podem ser colocados e o lucro e perda correspondente calculados. O uso de uma conta de negociação simulada pode criar uma atmosfera semi-realista para praticar o comércio e avaliar ainda mais o sistema. A Figura 2 também mostra os resultados para o teste de desempenho para frente em dois sistemas. Novamente, o sistema representado no gráfico à esquerda não consegue ir muito além do teste inicial em dados na amostra. O sistema mostrado no gráfico certo, no entanto, continua a funcionar bem em todas as fases, incluindo o teste de desempenho para frente. Um sistema que mostra resultados positivos com boa correlação entre os testes de desempenho na amostra, fora da amostra e para a frente está pronto para ser implementado em um mercado ao vivo. The Bottom Line Backtesting é uma valiosa ferramenta disponível na maioria das plataformas de negociação. A divisão de dados históricos em conjuntos múltiplos para fornecer testes em amostra e fora da amostra pode fornecer aos comerciantes um meio prático e eficiente para avaliar uma idéia e sistema de negociação. Como a maioria dos comerciantes emprega técnicas de otimização no backtesting, é importante então avaliar o sistema em dados limpos para determinar sua viabilidade. A continuação dos testes fora da amostra com testes de desempenho para frente fornece outra camada de segurança antes de colocar um sistema no mercado arriscando dinheiro real. Os resultados positivos e a boa correlação entre os testes de backtesting e teste de desempenho avançado na amostra e fora da amostra aumentam a probabilidade de um sistema funcionar bem na negociação real. (Para obter uma visão abrangente sobre análise técnica, consulte Análise Técnica: Introdução.)

No comments:

Post a Comment