Monday 18 September 2017

Movendo média trading sistema backtesting


Estratégia de Crossover Média em Movimento Nesta página eu gostaria de levá-lo através de uma comparação de um par de sistemas de crossover em média móvel. Um usa duas médias móveis simples (smas) eo outro usa três smas. Já pensou em usar um sistema de média móvel dupla para o comércio Se você está considerando o uso de cruzamentos de média móvel dupla para entrar e sair comércios, você pode considerar testar um sistema de MA triplo também. Compare-os lado a lado em ações diferentes ou outros instrumentos de negociação, bem como períodos de tempo diferentes ou prazos. Teste diferentes períodos de média móvel, mas tenha cuidado para não confiar em resultados otimizados ou de ajuste de curva. Mas desde que alguns de meus visitantes não sabem o que este é, deixa para ir sobre alguns princípios primeiramente. O QUE É UM CRESCENTE MÉDIO MOVENTE A imagem à direita é um exemplo de um crossover de média móvel dupla. Que iria iniciar um sinal de compra (crossover de alta). Uma média móvel mais rápida (8 sma - azul) cruza acima de uma média mais lenta (13 sma - amarelo). Observe que o sinal não é confirmado até o fechamento da barra. Isso significa que a entrada real (na negociação ao vivo) estaria em algum lugar dentro da próxima barra. Provavelmente perto do aberto daquele bar. Se você não fez qualquer backtesting ainda, este tipo de sistema simples será provavelmente um dos primeiros que youll teste, uma vez que requer muito poucas habilidades de programação. De qualquer forma, se você seguir este caminho, você encontrará que o preço de abertura da próxima barra após a cruz, é onde o software de backtesting (dependendo da configuração) colocará os comércios simulados. O que é razoável, porque se você estivesse realmente negociando usando software de negociação automatizado. Esta é uma aproximação aproximada de onde seu comércio ocorreria. Com um sistema de inversão de batente típico, esta entrada longa não seria retirada até que a MA azul, mais rápida cruzasse abaixo da MA amarela, mais lenta. Este crossover MA bearish não só sai do comércio, mas inicia um curto comércio na direção oposta também. Assim, com dual cruzamento de sistemas de média móvel, o comerciante está sempre em um comércio, longo ou curto. Vamos dar uma olhada em um exemplo intraday ao longo de um dia. CROSSOVER MÉDIO DE MOVIMENTO DUAL Use um gráfico de 5 minutos do SPY com duas médias móveis simples para o primeiro exemplo: Rápido (8 sma - verde) e Lento (13 sma - amarelo). Eu escolhi este dia específico, porque eu queria ilustrar o que é muito típico para praticamente qualquer estratégia de passagem média móvel. O primeiro comércio longo após 11:00 vai muito bem e realmente pega uma boa entrada de pullback. A saída em torno de 12:45 pm é rentável. Mas, quero Id como você para observar é a ação preço agitado entre 12:00 - 3:00. Isto é onde os sistemas dobro do MA podem realmente moer seus lucros para baixo. O MAs whipsaw apenas frente e para trás causando três perdas em uma linha, provavelmente evaporando os lucros do primeiro comércio. Se uma pessoa estava negociando este método neste dia, felizmente eles wouldve visto mais um comércio vencedor decente às 2:30. A boa parte deste sistema é exibido no primeiro comércio e no último comércio. Enquanto os crossovers médios móveis falham miseravelmente durante a ação do preço choppy, trabalham muito bem durante a ação do preço de tendência. Se você backtest esses sistemas simples parar e inverter, e inspecionar um que sai com um lucro, youll mais provável encontrar que a vitória é inferior a 50, mas o vencedor médio será maior do que o perdedor médio. Isso é porque os sistemas de cruzamento de média móvel são essencialmente sistemas de negociação de tendência. E, os sistemas negociando da tendência quase sempre têm esta característica de uma porcentagem pequena dos vencedores e de uma boa ave. win à relação do ave. loss. Nas tabelas abaixo L Long, S Short e Ex Exit. TRIPLE MOVING CROSSOVER MÉDIO Até agora, a discussão centrou-se em torno de um sistema de tipo stop-reverse, em que um sinal para uma saída, também produz um comércio na direção oposta. Mas se introduzimos uma terceira média móvel para o sistema, pode haver um período de neutralidade. Em outras palavras, nenhum comércio ocorre - você está em dinheiro. Para este exemplo, vamos usar um gráfico de 3 minutos e três médias móveis simples: 4 sma, 10 sma e 50 sma. As regras são muito simples. Se a linha lenta (50 sma) está subindo ea linha rápida (4 sma) cruza acima da linha média (10 sma), há um sinal de compra. O sinal de saída surge quando a linha rápida passa por baixo da linha média. As regras são o oposto para entradas curtas. É fácil ver, que este sistema é semelhante a tomar comércios fora da tendência de um período de tempo mais elevado. Uma alternativa a este sistema seria apenas levar entradas longas, quando ambas as médias móveis rápidas e médias estiverem acima da sma lenta. Esteja ciente de que quando você lida com três graus de liberdade (3 variáveis), ao invés de dois como no exemplo acima, você está tornando o sistema mais complexo e, portanto, criando muitas combinações possíveis para testar. Claro, backtesting software torna isso um snap, mas lembre-se que a adição de filtros e complexidade doesnt sempre fazer um melhor sistema. Frequentemente, um sistema mais simples pode ser mais robusto sob testes. Um exemplo está abaixo. Se você está interessado em médias móveis, você pode também querer verificar para fora minha página em como usar médias moventes como um batente de arrasto. Testamento de um Crossover médio movente em Python com pandas No artigo precedente em pesquisa Backtesting ambientes em Python com pandas nós criamos Um ambiente de backtesting baseado em pesquisa orientada a objetos e testado em uma estratégia de previsão aleatória. Neste artigo, faremos uso da maquinaria que introduzimos para realizar pesquisas sobre uma estratégia real, a saber, o Crossover Médio Móvel na AAPL. Estratégia de Crossover Médio em Movimento A técnica de Crossover de Moving Average é uma estratégia de momentum simplista extremamente bem conhecida. É freqüentemente considerado o exemplo Hello World para negociação quantitativa. A estratégia aqui descrita é longa. São criados dois filtros separados de média móvel simples, com períodos de retrocesso variáveis, de uma série temporal específica. Os sinais para comprar o ativo ocorrem quando a média móvel de retrocesso mais curta excede a média móvel de retrocesso mais longa. Se a média mais longa subseqüentemente exceder a média mais curta, o ativo é vendido de volta. A estratégia funciona bem quando uma série de tempo entra em um período de forte tendência e, em seguida, lentamente inverte a tendência. Para este exemplo, eu escolhi a Apple, Inc. (AAPL) como a série de tempo, com um lookback curto de 100 dias e um lookback longo de 400 dias. Este é o exemplo fornecido pela biblioteca de negociação algorítmica do zipline. Assim, se queremos implementar nosso próprio backtester, precisamos garantir que ele corresponda aos resultados em tirolesa, como um meio básico de validação. Implementação Certifique-se de seguir o tutorial anterior aqui. Que descreve como a hierarquia de objeto inicial para o backtester é construída, caso contrário, o código abaixo não funcionará. Para esta implementação em particular, usei as seguintes bibliotecas: A implementação do macross. py requer backtest. py do tutorial anterior. O primeiro passo é importar os módulos e objetos necessários: Como no tutorial anterior, vamos subclassificar a classe base Abstract de Estratégia para produzir MovingAverageCrossStrategy. Que contém todos os detalhes sobre como gerar os sinais quando as médias móveis de AAPL cruzam-se uns aos outros. O objeto requer uma janela curta e uma janela longa sobre a qual operar. Os valores foram ajustados para padrões de 100 dias e 400 dias respectivamente, que são os mesmos parâmetros usados ​​no exemplo principal de tirolesa. As médias móveis são criadas usando a função rollingmean pandas sobre as barrasFechar fechar preço do estoque AAPL. Uma vez construídas as médias móveis individuais, a Série de sinais é gerada ajustando a coluna igual a 1,0 quando a média móvel curta é maior que a média móvel longa, ou 0,0 caso contrário. A partir daí, as ordens de posição podem ser geradas para representar sinais de negociação. O MarketOnClosePortfolio é subclassificado do Portfolio. Que é encontrado em backtest. py. É quase idêntico à implementação descrita no tutorial anterior, com a exceção de que as negociações são agora realizadas em uma base Close-to-Close, ao invés de uma base Open-to-Open. Para obter detalhes sobre como o objeto Portfolio está definido, consulte o tutorial anterior. Ive deixou o código em para a integridade e para manter este tutorial auto-contido: Agora que as classes MovingAverageCrossStrategy e MarketOnClosePortfolio foram definidas, uma função principal será chamado para amarrar toda a funcionalidade em conjunto. Além disso, o desempenho da estratégia será analisado através de um gráfico da curva de equivalência patrimonial. O objeto DataReader do pandas faz o download dos preços OHLCV das ações da AAPL para o período de 1º de janeiro de 1990 a 1º de janeiro de 2002, momento em que os sinais DataFrame são criados para gerar os sinais long-only. Posteriormente, a carteira é gerada com uma base de capital inicial de 100.000 USD e os retornos são calculados na curva de equivalência patrimonial. O passo final é usar matplotlib para traçar um gráfico de dois dígitos de ambos os preços AAPL, sobreposta com as médias móveis e os sinais de buysell, bem como a curva de equidade com os mesmos sinais de buysell. O código de plotagem é obtido (e modificado) a partir do exemplo de implementação da tirolesa. A saída gráfica do código é a seguinte. Eu fiz uso do comando IPython colar para colocar isso diretamente no console IPython enquanto no Ubuntu, de modo que a saída gráfica permaneceu na vista. Os upticks cor-de-rosa representam a compra do estoque, enquanto os downticks negros representam vendê-lo de volta: Como pode ser visto a estratégia perde dinheiro durante o período, com cinco comércios de ida e volta. Isto não é surpreendente dado o comportamento da AAPL ao longo do período, que estava em uma ligeira tendência descendente, seguido por um aumento significativo começando em 1998. O período de lookback dos sinais de média móvel é bastante grande e isso afetou o lucro do comércio final , O que de outra forma pode ter feito a estratégia rentável. Em artigos subseqüentes, criaremos um meio mais sofisticado de analisar o desempenho, bem como descrevendo como otimizar os períodos de retorno dos sinais individuais de média móvel. Começando com Quantitative TradingBackTesting Movendo Médias Por que Mover Médias Como um comerciante ou investidor, a única razão para investigar médias móveis é ganhar conhecimento para aumentar os lucros. Como muitos outros indicadores técnicos, as médias móveis são destinadas a nos ajudar a dizer objetivamente o status do mercado a qualquer momento. Isso nos ajuda a ver através das emoções do dia e tomar decisões racionais, o que será dito vai levar a maiores lucros e ou menos perdas a longo prazo. Médias móveis (MAs) suavizar a série de preços de uma ação. MAs são mais frequentemente utilizados para identificar a tendência de direção do mercado, e são classificados como um indicador de tendência seguinte. Isto doesn8217t significa que MAs são apenas para investidores de longo prazo 8211 curto prazo comerciantes usá-los também. As médias móveis podem ser usadas para selecionar ações para bons candidatos, assinalar oportunidades de compra e oferecer sinais de venda. Por que Backtest 8211 uma história O objetivo de backtesting é descobrir se as médias móveis realmente levar a melhores resultados e quais são as maneiras mais promissoras para aplicar MAs. Deixe-me contar uma história curta. Enquanto eu estava montando os resultados para uma das questões de média móvel BackTesting relatório, eu aconteceu a visitar um amigo. Em sua casa, deparei com algum material de leitura de um corretor de ações de desconto bem anunciado. Nele era um artigo que aconselhar seus clientes a usar um determinado comprimento médio móvel aplicada de uma certa maneira para obter os melhores resultados. Eu tive meus testes completos bem na minha frente e posso dizer-lhe que o método broker8217s não obter os melhores resultados, embora eles fizeram mencionar um comprimento MA que é útil de outras maneiras. Eu tinha em meus resultados de teste de mão que mostrou que a maneira que o corretor aplicou a média móvel tinha uma taxa de vitória pior do que a linha de base quando testado em 7147 ações mais de 14 anos de dados do mercado de ações. Claramente o corretor não estava executando esse tipo de teste. It8217s até os clientes 8211 nós 8211 para nos defender e descobrir o que funciona contra o que doesn8217t. Como calcular MAs Quando backtesting médias móveis, a primeira decisão é como calcular a média móvel. Você quer uma média móvel simples (SMA) Ou algo projetado para controlar o preço melhor, como uma média móvel exponencial (EMA) Você pode considerar uma experiência para comparar as taxas de vitórias das duas médias diferentes. Eu fiz apenas isso há alguns anos, e enquanto eu não tenho os resultados para publicar, eu saí com a noção de que não fazia uma grande diferença se eu escolhi a SMA ou a EMA 8212 apenas pegar uma e usá-la consistentemente. Então, para este projeto, eu escolho usar médias móveis simples, porque eu os vejo mencionados no comentário com mais freqüência. Para realmente fazer o cálculo, confiei na função incorporada que veio com TradeStation. (A escolha do motor de backtesting é outra decisão que é geral o suficiente para escrever sobre em outro post.) Como usar MAs Em seguida, você precisa definir como exatamente você deseja aplicar médias móveis. Como você vai interpretar a relação entre preço e média móvel Quais regras você vai usar para decidir quando comprar e vender Você don8217t tem que ler muito sobre ações antes de vir através de uma referência de alta para uma negociação de ações acima de sua média móvel de 200 dias ou sua Média móvel de 50 dias, ou mesmo a MA de 10 ou 20 dias. Ou conselhos sobre a compra de ações como eles cruzam a sua média móvel de 50 dias ou 200 dias. Estas são regras importantes para testar no motor de backtesting. E, em seguida, o crossover médio móvel 8211 um método clássico de análise técnica. Isso faz três maneiras distintas de usar médias móveis para testar. Indo mais em profundidade, alguns textos comerciais falam sobre a inclinação de uma média móvel. Se você voltar para a álgebra e considerar a MA como uma linha, para encontrar sua inclinação, você escolheria dois pontos na linha e aplicaria a fórmula usual ((x2-x1) (y2-y1)). Isso traz a questão de quão distantes para escolher os dois pontos que podem fazer a diferença para os resultados. Realmente, uma vez que o MA está sendo usado para identificar a tendência, só queremos saber se ele está inclinado para cima ou para baixo. Então nós podemos simplificar o cálculo inteiro observando que se o preço for acima da média movente, deve puxar a média acima, e um preço abaixo do MA puxa para baixo. Assim, outra razão para testar a eficácia do preço acima da média móvel. Configurações de parâmetros Depois de decidir como usar as MAs, você precisa escolher uma seleção de vários comprimentos para testar. Cuidado com o excesso de otimização. Em algum lugar para fora há um indivíduo com resultados do backtesting que mostram o ganho 3895 ou o que quer que usando apenas a média movente direita. Muito ruim ele não sabe o que MA vai produzir esses resultados no futuro. Dito isto, você precisa tentar mais de um comprimento para se certificar de que seus resultados são um acaso. Stick com configurações padrão ou aquelas que você ouve sobre a maioria na mídia. Encontrar a definição de um parâmetro perfeito não vai torná-lo rico. Encontrar um conjunto de configurações boas e robustas só pode fazer você um monte de bom embora. Como uma questão prática quando backtesting permitir suficiente data lag antes da medição. Todos os testes devem começar a medir no mesmo local para comparação de maçãs a maçãs entre diferentes comprimentos de MA. Por exemplo, se você estiver testando uma média móvel de 200 dias, levará os primeiros 200 dias de dados para calcular o primeiro ponto dessa média móvel. Isso significa que o primeiro dia em que você poderia ter um sinal é de 200 dias no conjunto de dados. Para fazer uma comparação justa com, digamos, a média móvel de 10 dias, você precisa ter certeza de não contar quaisquer sinais da média móvel de 10 dias antes dos 200 dias estar pronto. Felizmente TradeStation tem uma maneira de definir o número 8220Maximum de estudo de barras será reference8221 em 8220Properties para All8221 estratégias que força o motor backtesting para esperar tanto tempo antes de tabular dados. Mais lucro com compra ou venda As regras de média móvel e, em particular, as regras de crossover médio móvel, são frequentemente discutidas como um sistema de reversão. Isso significa que um sinal, digamos que o MAs cruzamento para cima é um sinal de compra e, em seguida, o seu oposto, por exemplo linhas MA cruzamento para baixo, não é apenas um sinal de venda, mas também o gatilho para ir curto. Teoricamente, that8217s muito bem, mas muitas pessoas não estão interessadas em curto-circuito no mercado. Eles estão procurando técnicas para ajudá-los a comprar e talvez vender. Mesmo uma pessoa que regularmente vende e vende curto pode usar diferentes técnicas para compra e venda. Por estas razões, é aconselhável testar os sinais de compra separadamente dos sinais de venda. Isto coloca um dilema porque é difícil avaliar um sinal de compra isoladamente. Uma maneira de fazer isso é usar as saídas programadas 8211, ou seja, sair do comércio ou vender o estoque após um certo período de tempo decorrido. Eu escolhi funcionar cada backtest três vezes com três saídas diferentes dos tempos porque os povos diferentes têm estilos diferentes e necessidades diferentes. Para produzir backtesting resultados úteis para swing comerciantes, eu sair após 2 dias. Para modelar os comerciantes de posição, 20 dias. Para atender às necessidades dos investidores ativos, backtesting detém cada posição por 200 dias. Isso dá uma maneira de isolar os sinais de compra e descobrir o quão útil a média móvel é comprar compradores de vários temperamentos. Necessidade de definir Bondade Mais uma coisa muito importante a considerar se você está backtesting médias móveis para descobrir o quão bem eles fazem no mercado de ações: Como você vai saber o que é bom Você precisa de critérios objetivos para o sucesso. Isso significa identificar as estatísticas-chave, como taxa de vitória, expectativa, ganhos de capital hipotético, etc. Também significa estabelecer padrões para um desempenho aceitável em cada uma dessas áreas. Um exemplo ilustra por que isso é importante e por que ele não é tão fácil quanto aparece pela primeira vez. Digamos que seus testes mostram uma taxa de vitórias de 55 para um determinado indicador. Isso pode não ser tão bom se, digamos, 62 de todas as ações subiu durante o mesmo período de tempo. Ou se apenas 25 das ações subiu durante esse período de tempo, sua taxa de 55 vitórias seria espetacular. O que é bom depende de como ele se compara ao desempenho do mercado de base nas mesmas condições. Você pode fazer o download de uma cópia gratuita do relatório BackTesting Report Baseline clicando aqui. Para um backtest significativo, você precisa ter dados suficientes para fazer uma comparação estatisticamente válida. No mínimo, isso significa 30 comércios. Mesmo se você está negociando apenas um instrumento 8211 apenas um estoque ou apenas um par de moedas 8211 Eu acho que it8217s importante para testar sua estratégia de negociação em muitos instrumentos diferentes para provar a sua robustez. Eu fui sobre o topo com um conjunto de teste extremamente grande 8212 7147 ações ao longo de 14 anos 8212 para se certificar de que meus resultados seriam aplicáveis ​​em uma ampla variedade de condições de mercado. Você pode obter sua cópia dos meus relatórios de backtesting sobre sinais de compra de média móvel clicando aqui.

No comments:

Post a Comment