Monday 5 February 2018

Mover média backtesting


Visão geral: Este site educacional gratuito destina-se a permitir que você compare as estratégias de negociação técnicas populares tão cientificamente quanto possível através do teste de backtesting. Em geral, é bastante difícil vencer constantemente o mercado e você deve estar cético em relação a qualquer coisa que lhe diga o contrário. Este site permite que você tente testar algumas estratégias técnicas comuns para ver como eles teriam realizado contra o mercado e permitir que você examine os estoques que atendem aos seus critérios de negociação. Estratégias que acompanham bem, é claro, não garantem o sucesso no futuro, mas podem ter uma maior probabilidade de desempenho positivo. Backtesting também permite que você veja as condições do mercado em que uma determinada estratégia irá funcionar bem. Por exemplo, se você tiver certeza de que o mercado estará ajustado para o futuro, você pode descobrir quais estratégias funcionam melhor neste tipo de mercado. Isso é feito por backtesting em períodos históricos que foram vinculados e vendo quais estratégias são melhores. Backtesting também ajuda você a ver quais parâmetros de estratégia são mais robustos em diferentes períodos de tempo. Por exemplo, uma perda de 10 paradas supera os 5 períodos de perdas de 9 períodos de tempo históricos de 10. Assim, o backtesting pode fornecer informações comerciais valiosas, embora não possa garantir o futuro. Algumas coisas interessantes que você pode descobrir: a combinação de negociações e comissões ativas pode limpá-lo, mesmo que você tenha uma boa porcentagem de negociações vencedoras. Paradas de arranque realmente apertadas podem prejudicar seriamente a sua rentabilidade a longo prazo e não reduzem a redução de custos tanto quanto você poderia esperar Estratégias que você pensou que seriam boas que consistentemente dão um desempenho inferior às orientações do mercado (Single Stock Backtesting): Selecione o estoque no qual você deseja testar sua estratégia técnica. Capital inicial: quantidade de dinheiro que você começa com Stoploss: ponto no qual deseja sair de uma posição em frente a você. Uma parada regular significa que você vai sair da sua posição se o estoque cair uma porcentagem definida abaixo, onde você comprou. Parada final: Digamos que você compre um estoque às 10 e coloque uma parada de 10 trilhas. Se o estoque caindo 10 sem ir mais alto, você venderá em 9. Mas se o estoque subiu para 15, em seguida, 10 a 13,5, você vai vender às 13,5 e bloquear algum ganho. Objetivo: Vender quando seu estoque atingir um determinado ganho de porcentagem (pode desativar selecionando Não Usar Alvo) Data de Início Data: Selecione as datas históricas entre as quais deseja testar a estratégia. Sinais: os sinais envolvem cruzamentos ou relações entre preços e indicadores técnicos. Por exemplo, a cruz dourada, compre quando a média móvel simples de 50 dias (sma) cruza acima da sma de 200 dias e vende quando os 50 dias se cruzam abaixo dos 200 dias (cruz de morte). Os links a seguir explicam alguns indicadores técnicos populares: Get TradesGraph: Obter trades, literalmente, mostrará os negócios que você teria feito se você voltasse no tempo com um resumo do desempenho incluído. Os testes estatísticos: teste para ver se o retorno diário médio da estratégia é o mesmo que o retorno diário médio do SampP 500 ou o mesmo que o retorno diário médio de compra e retenção durante o período de tempo. Queremos saber o quão confiável podemos ser para rejeitar que os dois retornos são os mesmos. Quanto maior a confiança, mais certeza de que sua estratégia é realmente melhor que o SampP 500 ou compre e segure. O gráfico traça o valor do portfólio ao longo do tempo com um resumo incluído do desempenho. Diretrizes (PortTester Beta): Isso é para testar uma estratégia que você aplicaria ao seu portfólio à medida que as ações atingissem seus sinais técnicos de compra e venda. Na primeira caixa de texto, insira os tickers para a cesta de ações em que deseja testar sua estratégia técnica. Insira cada ticker separado por um espaço. Os estoques atualmente disponíveis incluem os 30 estoques de dow, AA AXP BA BAC CAT CSCO CVX DD DIS GE HD HPQ IBM INTC JNJ JPM KFT KO MCD MMM MRK MSFT PFE PG T TRV UTX VZ WMT XOM. Para incluir todos os 30 no backtest, basta digitar DJIA o padrão. Número de Posições Abertas: Este é o número de ações que deseja ter e não mais. Por exemplo, dizemos que deseja segmentar 2 posições abertas. Quando o backtester encontrar um sinal de compra em uma das ações que você colocou na cesta, digamos GE, assumirá que a GE foi comprada. Agora procurará mais 1 estoque para comprar quando houver um sinal de compra, diga BAC. Você agora possui um portfólio de 2 posições abertas (GE e BAC) e o backtester não comprará mais até que um sinal de venda venda uma das ações. Um portfólio diversificado provavelmente deve ter 10 ou mais ações, mas isso requer muito poder de computação para backtest. Assim, um pequeno portfólio como o padrão de 5 posições abertas será suficiente para ter uma idéia de um desempenho de estratégias. De notar, para os investidores com uma pequena quantidade de capital, digamos 10.000, é caro negociar um grande número de posições com 20 comissões para trocas de ida e volta. Os ETFs são uma maneira barata de se diversificar. Capital de início: quantidade de dinheiro que você começa com a Comissão de Negociação: montante que você paga TDAmeritrade, SOGO, ScottTrade, etc. para negociar um dimensionamento de posição de ações: é assim que você decide comprometer uma certa quantia de dinheiro para cada ação em sua carteira. Atualmente, apenas uma opção (Equal Cash Allocation) está disponível. Isso significa que se eu tiver 10.000 e eu quero entrar em 2 posições, eu colocarei 5000 em cada menos comissões. Em outras palavras, o dinheiro disponível será igualmente dividido em novas posições até chegar ao meu alvo n número de posições abertas. Outras opções para vir serão igual número de ações e regras de dimensionamento de posição baseadas em volatilidade. Stoploss: ponto em que você quer sair de uma posição em movimento contra você. Digamos que você compre um estoque às 10 e coloque uma parada de 10 paradas. Se o estoque caindo 10 sem ir mais alto, você venderá em 9. Mas se o estoque subiu para 15, em seguida, 10 a 13,5, você vai vender às 13,5 e bloquear algum ganho. Start DateEnd Date: Selecione as datas históricas entre as quais deseja testar a estratégia. O backtester começará na data de início em dados históricos e procurará os estoques que você selecionou até multar um sinal de compra. Se nenhum sinal de compra for encontrado no primeiro dia, o backtester se desloca para o dia seguinte e procura através de todos os estoques na cesta até encontrar um sinal de compra no qual o estoque é assumido para ser comprado ao preço fechado ajustado para divisões e Dividendos. Assim que um estoque é comprado, o backtester procurará vender esse estoque quando chegar um sinal de venda. Ele também continua a procurar comprar ações até atingir o número alvo de posições abertas. Ao mesmo tempo, venderá quaisquer posições existentes se ocorrer um sinal de venda. O valor do portfólio é calculado todos os dias até a data de término. Sinais: os sinais envolvem cruzamentos ou relações entre preços e indicadores técnicos. Por exemplo, a cruz dourada, compre quando a média móvel simples de 50 dias (sma) cruza acima da sma de 200 dias e vende quando os 50 dias se cruzam abaixo dos 200 dias (cruz de morte). Obter TradesGraph: Obter negócios, literalmente, mostrar-lhe-á os negócios que você teria feito se você voltasse no tempo com um resumo do desempenho incluído. O gráfico traça o valor do portfólio ao longo do tempo com um resumo incluído do desempenho. Disclaimer: o stockbacktest não endossa nem recomenda nenhuma das estratégias ou títulos neste site. O conteúdo deste site é para fins informativos e não deve ser tomado como conselho de investimento. O stockbacktest não se responsabiliza por quaisquer erros neste site ou ações tomadas com base neste conteúdo de sites. Testando um Crossover Médio Mínimo em Python com pandas No artigo anterior sobre Ambientes de Backtesting de Pesquisa Em Python Com Pandas criamos uma pesquisa orientada a objetos Baseado no ambiente de backtesting e testou-o 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 de média móvel na AAPL. Estratégia de Crossover média móvel A técnica de Crossover de média móvel é uma estratégia de impulso simplista extremamente conhecida. Muitas vezes é considerado o exemplo do Hello World para negociação quantitativa. A estratégia descrita aqui é longa apenas. São criados dois filtros de média móvel simples separados, com diferentes períodos de lookback, de uma série temporal específica. Os sinais para comprar o recurso ocorrem quando a média móvel de lookback mais curta excede a média móvel de lookback mais longa. Se a média mais longa exceder a média mais curta, o ativo é vendido de volta. A estratégia funciona bem quando uma série temporal entra em um período de forte tendência e, em seguida, inverte lentamente a tendência. Para este exemplo, escolhi a Apple, Inc. (AAPL) como a série temporal, com um curto lookback de 100 dias e um longo lookback de 400 dias. Este é o exemplo fornecido pela biblioteca de negociação algorítmica de tirolesa. Assim, se quisermos implementar nosso próprio backtester, precisamos garantir que ele coincida com os resultados na linha aérea, 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 particular eu 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 sub-classificar a classe básica abstrata Estratégia para produzir MovingAverageCrossStrategy. Que contém todos os detalhes sobre como gerar os sinais quando as médias móveis da AAPL se cruzam. O objeto requer uma janela curta e uma longa janela para operar. Os valores foram configurados 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 pandas rollingmean nas barras. O preço de fechamento fechado do estoque AAPL. Uma vez que as médias móveis individuais foram construídas, a série do sinal é gerada definindo a coluna igual a 1,0 quando a média móvel curta é maior do que a média móvel longa, ou 0,0 caso contrário. A partir disso, as ordens de posições podem ser geradas para representar sinais de negociação. O MarketOnClosePortfolio é subclassado do Portfolio. Que é encontrado em backtest. py. É quase idêntico à implementação descrita no tutorial anterior, com a exceção de que os negócios são agora realizados em uma base Close-to-Close, em vez de Open-to-Open. Para obter detalhes sobre como o objeto Portfolio está definido, consulte o tutorial anterior. Eu deixei o código em completo e mantenho esse tutorial autônomo. Agora que as classes MovingAverageCrossStrategy e MarketOnClosePortfolio foram definidas, uma função principal será chamada para amarrar toda a funcionalidade em conjunto. Além disso, o desempenho da estratégia será examinado através de um gráfico da curva de equidade. O objeto DataReader de pandas baixa os preços de ações da AAPL da OHLCV para o período de 1º de janeiro de 1990 a 1º de janeiro de 2002, em que ponto os sinais DataFrame são criados para gerar os sinais de longo tempo. Posteriormente, o portfólio é gerado com uma base de capital inicial de 100.000 USD e os retornos são calculados na curva de patrimônio. O passo final é usar matplotlib para plotar um gráfico de dois dígitos de ambos os preços AAPL, superado com as médias móveis e os sinais de buysell, bem como a curva de equidade com os mesmos sinais de compra. O código de plotagem é tomado (e modificado) do exemplo de implementação de tirolesa. A saída gráfica do código é a seguinte. Eu usei o comando de pasta IPython para colocar isso diretamente no console do IPython, enquanto no Ubuntu, de modo que a saída gráfica permaneceu em exibição. As barras-de-rosa cor-de-rosa representam a compra do estoque, enquanto os bastões 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. Isso não é surpreendente, dado o comportamento da AAPL durante o período, que estava em uma ligeira tendência descendente, seguido de um aumento significativo em 1998. O período de lookback dos sinais da média móvel é bastante grande e isso impactou o lucro do comércio final , O que de outra forma pode ter tornado a estratégia rentável. Em artigos subsequentes, criaremos um meio mais sofisticado de análise de desempenho, bem como descrevendo como otimizar os períodos de lookback dos sinais médios móveis individuais. Estágio 500 Estratégias médias móveis desde 1951: Evidência de teste posterior 7 de novembro de 2017 9:04 AM spy A estratégia de média móvel de 200 dias aumentou os retornos ajustados pelo risco desde 1951, mas apresenta um desempenho inferior ao SampP 500 com base no retorno dos preços. Neste artigo, mostro que a estratégia de média móvel de 225 dias tem várias vantagens e supera o SampP 500. As estratégias de média móvel de curto prazo renderam retornos espetaculares de 1951 a 2000, mas mostraram fraquezas tremendas desde 2001. 18 estratégias diferentes são Destacado, ambos desde 1951 e 2001. Neste artigo, vou analisar como as estratégias de investimento realizadas historicamente são baseadas em médias móveis simples. A idéia é entender quais médias móveis realizaram durante um longo período de tempo - neste caso mais de 65 anos com base no SampP 500 Index (NYSEARCA: SPY). Os dados começam em 16 de março de 1951 e contém os preços de fechamento do índice SampP 500. A partir disso, eu calculei os desempenhos de estratégias de média móvel com base nas seguintes regras simples: Se o SampP 500 fecha acima de uma média móvel respectiva, vá 100 longos. Se o SampP 500 se fechar abaixo de uma média móvel respectiva, vá 100 em dinheiro. Os desempenhos das estratégias são baseados em várias médias móveis, ou seja, 5, 10, 15, 20, 25, 30, 40, 50, 75, 100, 125, 150, 175, 200, 225, 250, 275 e 300 dias em movimento Médias. Visão geral geral desde 1951 e Pitfalls A estratégia de média móvel mais conhecida é a média móvel de 200 dias. Dizem que é usado por investidores institucionais para entrar e sair de posições estratégicas de capital no SampP 500 (ou qualquer outro benchmark para esse assunto). Dê uma olhada em quão bem ele realizou nos últimos 65 anos: desde 1951, a estratégia de média móvel de 200 dias retornou 7,11 com um desvio padrão de 10,1, resultando em uma relação Sharpe de 0,704. Isso se compara com o SampP 500 como tal que o SampP 500 registrou um retorno anualizado de 7,24, um desvio padrão de 15,37 e, portanto, uma razão de Sharpe de 0,471. O SampP 500 obteve ganhos ligeiramente superiores, mesmo com base no retorno do preço. No entanto, a estratégia de média móvel de 200 dias alcançou essencialmente o que foi projetado para: Reduzir a volatilidade, evitar grandes levantamentos e aumentar os retornos ajustados ao risco em detrimento do retorno anualizado. No entanto, desde 1951, todas as estratégias de média móvel apresentaram um retorno anualizado positivo com um desvio padrão inferior ao SampP 500, com o segundo maior retorno encontrado na média móvel de 225 dias: a estratégia baseada nos 225 dias A média móvel registrou um retorno anualizado de 7,47 em um desvio padrão de 10,19, resultando em um índice de Sharpe de 0,73: para o período analisado, esta estratégia parece ter tudo o que procuramos: reduções tremendas, menor volatilidade e maiores retornos. Vamos dar uma olhada na melhor estratégia, o que é interessante a estratégia da média móvel de 5 dias desde 1951. Aqui, veremos imediatamente as possíveis falhas de um período tão longo de testes de back-back: é aqui que fica interessante. Apesar de ser a melhor estratégia desde 1951, vimos um tremendo baixo desempenho a partir do ano de 2001. Em geral, as estratégias de médias móveis de curto prazo apresentaram desempenho particularmente bom no século 20, com retornos espetaculares realizados até e inclusive nos anos 90. No entanto, desde então, eles fizeram dinheiro pouco dinheiro, mas custaram dinheiro. Isso é atribuível ao advento de estratégias comerciais negociadas e pode ser visto em quase todas as estratégias de média móvel de curto prazo. Essencialmente, muitas pessoas embarcaram no trem, os mercados se tornaram muito mais voláteis e as direções de curto prazo do mercado tornaram-se mais imprevisíveis. Antes de analisar o desempenho das estratégias desde 2001, encontre abaixo o desempenho de outras estratégias selecionadas desde 1951: Estratégias médias móveis desde 2001 Como já vimos que grande parte dos retornos de algumas estratégias de média móvel foram coletados quando apenas alguns poucos selecionados Teve acesso a sinais e estratégias de negociação informatizados, acredito que é interessante ver se essas estratégias, ou não, nos últimos 16 anos, conseguiram manter suas promessas. Os resultados de desempenho desde 2001 são os seguintes: Essencialmente, vemos aqui que as estratégias de curto prazo que variam de 5 dias a 50 dias apresentaram desempenho inferior, enquanto as estratégias a mais longo prazo variam de medíocres a bastante boas. Algumas das estratégias de curto prazo (estratégias de médias móveis de 25 dias, 15 dias, 10 dias e 5 dias) renderam rendimentos negativos. A estratégia anterior de alto desempenho com base na média móvel de 5 dias perdeu 4,9 por ano desde 2001 e ocupa o último lugar. Mais uma vez, todas as estratégias apresentaram desvios padrão anualizados, mais baixos do que o SampP 500. Novamente, a média móvel de 225 dias superou o SampP 500 e novamente também é a estratégia de melhor desempenho com um retorno anualizado de 4.27, um desvio padrão de 10.19 e um Rácio Sharpe de 0,42: A estratégia clássica de média móvel de 200 dias é a seguinte: a estratégia de média móvel de 200 dias é ligeiramente pior do que a SampP 500, com desempenho inferior a 0,3 pa O que é evidente a partir de cima é que a força resulta da evitação de colapsos financeiros importantes. Assim, mesmo a simples estratégia de média móvel de 200 dias atendeu às necessidades dos investidores institucionais, aumentando a proporção Sharpe, como se vê na tabela acima. Como um exemplo de quão ruim as estratégias de curto prazo funcionaram, encontre abaixo a estratégia de média móvel de 5 dias: as estratégias médias em mudança apelam para investidores de longo prazo que buscam minimizar riscos e riscos. Eles não são adequados para o comércio de curto prazo, pois eles têm armadilhas significativas e recentemente apresentaram um desempenho inferior, o que eu acredito que vai piorar. Eu mostrei neste artigo que a estratégia de média móvel de 225 dias é a mais atraente de uma perspectiva histórica, pois não só minimiza as reduções e aumenta o índice de Sharpe, mas também supera o SampP 500 com base no retorno de preços. As estratégias acima são todas estratégias de longo tempo e, dependendo do feedback, posso escrever uma segunda peça que consiste em estratégias de média móvel longa e curta. As estratégias analisadas são baseadas no índice de retorno de preço SampP 500. Como tal, os dividendos não são contabilizados e o desempenho total do retorno total será mais favorável ao Índice SampP 500, pois, mantendo-se à margem por longos períodos de tempo, não cobramos os dividendos que o índice nos pagaria. Da mesma forma, os custos de negociação, o deslizamento e os spreads irão piorar o desempenho da estratégia. Divulgação: Iwe não tem posições em nenhum estoque mencionado, mas pode iniciar uma posição longa em SPY nas próximas 72 horas. Eu escrevi este artigo, e ele expressa minhas próprias opiniões. Não estou recebendo compensação por isso (além da Seeking Alpha). Eu não tenho nenhum relacionamento comercial com nenhuma empresa cujo estoque é mencionado neste artigo. Leia o artigo completo

No comments:

Post a Comment