Sunday 22 October 2017

Mudança média de quantopian


Programação para Finanças Parte 2 - Criando uma estratégia de negociação automatizada Negociação algorítmica com Python Tutorial Criaremos uma estratégia de cruzamento de Moving Average simples neste financiamento com o tutorial do Python, o que nos permitirá ficar confortáveis ​​com a criação de nosso próprio algoritmo e utilizando os recursos de Quantopians. Para começar, dirija-se à sua guia de Algoritmos e, em seguida, escolha o botão Novo Algoritmo. Aqui, você pode nomear seu algoritmo o que quiser, e então você deve ter algum código inicial como: como você pode ver, alguns códigos iniciais foram preparados para nós. Se você não está familiarizado com as médias móveis, o que faz é ter um certo número de janelas de dados. No caso de correr contra preços diários, uma janela seria um dia. Se você tivesse uma média móvel de 20, isso significaria uma média móvel de 20 dias. A partir daqui, a idéia é dizer que você tem uma média móvel de 20 e uma média móvel de 50. Traçar isso em um gráfico pode parecer algo como: Aqui, a linha azul é o preço da ação, a linha vermelha é a média móvel de 20 e a linha amarela é a média móvel de 50. A idéia é que quando a média móvel 20, que reage mais rápido, se move acima da média móvel de 50, isso significa que o preço pode estar tendendo, e podemos querer investir. Por outro lado, se a média móvel de 20 cai abaixo da média móvel de 50, isso talvez signifique que o preço está a diminuir e que queremos vender ou investir ou até vender a empresa. Venda a descoberto A venda a descoberto é o ato de vender uma segurança que não possui. Normalmente, isso é feito emprestando alguém compartilhando para vender, com a promessa de comprá-lo de volta. O objetivo aqui é vender ações de alguém para, digamos, 100, porque você acha que vai cair. Então, então, ele cai para 90, você compra de volta e depois responde ao proprietário original. A 10 lacunas é sua para manter. A venda a descoberto é arriscada por dois motivos principais. O primeiro é que, na maioria das vezes, é que a outra pessoa está emprestando as ações da empresa, então este é um empréstimo, e você pode acabar perdendo dinheiro que você nunca teve. A próxima razão pela qual isso é arriscado é porque um curto pode ir infinitamente ruim. Por exemplo, se você comprar uma empresa por 100, o máximo que você pode perder é 100 por ação, pois a participação pode ser igual a zero. Se você abre uma empresa que é 100, você pode perder uma quantidade infinita de dinheiro, porque essa empresa deve pagar 200 por ação, 2.000 por ação. Ou 200 mil por ação. É claro que é improvável que isso seja ruim, mas o ponto é: você pode perder muito mais do que seu investimento original, e isso geralmente é acompanhado pelo fato de que o investimento original não era mesmo com o dinheiro, era um empréstimo. Normalmente, você será emprestado a parte pelo seu corretor ou banco, que também tem o direito de reclamar as ações sempre que quiserem. Isso significa que as 100 ações podem subir para 110 antes de diminuir para 90, mas o banco pode reclamar as ações na marca 110 e você está pagando essa conta. Olhando para o gráfico acima, parece-nos como casar muito bem. Perdemos os picos absolutos e os preços do preço, mas, em geral, pensamos que seja bem com essa estratégia. Toda vez que você cria um algoritmo com Zipline ou Quantopian, você precisará ter os métodos initialize e handledata. Eles devem ser incluídos em todos os algoritmos que você inicia de novo. O método de inicialização é executado uma vez no início do algoritmo (ou uma vez por dia, se você estiver executando o algoritmo ao vivo em tempo real). Handledata é executado uma vez por período. No nosso caso, estavam funcionando com dados diários, então isso significa que ele será executado uma vez por dia. Dentro do nosso método de inicialização, geralmente passamos esse parâmetro de contexto. Contexto é um dicionário de Python. O que é bom usar para rastrear o que de outra forma poderemos usar variáveis ​​globais. O contexto acompanhará vários aspectos do nosso algoritmo de negociação à medida que o tempo passa, para que possamos fazer referência a essas coisas dentro do nosso script. Dentro do nosso método de inicialização: o que isso faz, é que define nossa segurança para negociação para o SPY. Este é o Spyder SP 500 ETF (Exchange Traded Fund), que é um método que podemos usar para trocar o índice SP 500. Tudo bem, por agora, no nosso método de inicialização, a seguir iniciaremos nosso método handledata: Observe aqui que passamos o contexto e um novo parâmetro chamado dados. Dados rastreiam os dados atuais das empresas do nosso universo comercial. O universo é a coleção de empresas que foram potencialmente interessadas em talvez investir. No nosso caso, definimos este universo no início no método de inicialização, definindo todo o nosso universo no SPY. Simplificando, o contexto var é usado para rastrear nossa atual situação de investimento, com coisas como nosso portfólio e dinheiro. A variável de dados é usada para rastrear nosso universo de empresas e suas informações. Mavg () é um método incorporado em Quantopian, e datacontext. security é nós referenciando a chave por este nome em nosso dicionário de contexto. Poderíamos chamar esses context. MA1 e context. MA2 se quisermos armazená-los no nosso dicionário de contexto e usá-lo fora do nosso método handledata, mas não precisamos acessar esses dados fora daqui, então, apenas crie-os como variáveis ​​locais . Agora que temos as médias móveis calculadas, estávamos prontos para obter mais lógica. Para negociar, precisamos ter lógica, como se os MAs se cruzassem, mas também, antes que possamos fazer um comércio, precisamos ver se temos dinheiro suficiente para fazer uma compra, precisamos saber o preço do Segurança, e devemos verificar se já temos essa posição. Para fazer isso, adicionamos o seguinte ao nosso método handledata: Nós agarramos o preço atual referenciando dados, que é nossa maneira de rastrear nosso universo de empresas (atualmente apenas o SP 500 ETF SPY). Em seguida, verificamos para ver as posições atuais que temos ao fazer referência ao nosso contexto. Portfólio. Aqui, podemos fazer referência a todos os tipos de coisas em relação ao nosso portfólio, mas, agora mesmo, queremos verificar nossas posições. Isso retorna um dicionário de todas as suas posições, o valor, quanto foi preenchido e assim por diante. Então, estavam interessados ​​em uma posição específica em uma empresa, então fazemos context. portfolio. positionssymbol (SPY). A partir daqui, nossa única preocupação agora é apenas ver se temos algum investimento, então o atributo que mais nos interessa é a quantidade de posições que temos, então usamos. amount no final. Até agora, criamos as informações necessárias para que possamos saber antes de usar alguma lógica para executar trades, mas nós não escrevemos nada para realmente fazer a negociação. Isso é o que vai cobrir no próximo tutorial. Existem 2 quizquestion (s) para este tutorial. Inscreva-se para 1 para acesso a estes, downloads de vídeo e sem anúncios. Backtesting de um Crossover Médio Mínimo em Python com pandas No artigo anterior sobre Ambientes de Backtesting de Pesquisa Em Python Com Pandas criamos um ambiente de backtesting baseado em pesquisa orientado 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 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. Explosões médias móveis Como resultado, a volatilidade e as flutuações do mercado acompanham a colocação de médias móveis na Mercado de câmbio muito na mesma capacidade que o retracement de Fibonacci. Essas situações oferecem muitas oportunidades de lucro e negociação para o comerciante FX, mas escolher essas situações leva paciência. Neste artigo, mostre bem como aproveitar essas oportunidades na sua negociação. Configurando o palco Com uma noção mais ampla do mercado, a média móvel simples pode ser comparada ao aplicativo de sentimento do mercado original primeiro destinado ao indicador. À primeira vista, os comerciantes usam o indicador para comparar o preço de fechamento atual com os preços de fechamento históricos ou anteriores ao longo de um determinado número de períodos. Em teoria, a comparação deve mostrar o viés direcional que acompanharia outras análises, fundamentais ou técnicas, ao trabalhar para fazer um comércio. Na Figura 1, vemos a aplicação da média móvel simples de 50 dias (SMA) (ou a linha amarela) aplicada à euroU. S. Par de dólares em moeda. Após uma consolidação suave no início de 2006, as compras em alta obtiveram o mercado e elevaram os preços. Aqui, os cartistas podem confirmar o viés direcional, já que a medida de longo prazo é indicativa do grande avanço maior. A sugestão é ainda mais forte ao mostrar o SMA adicionado de 100 dias (linha verde). Não só as médias móveis em linha com a ação do preço subjacente mais alto, os preços atuais (SMA de 50 dias) estão se movendo acima de preços de longo prazo (SMA de 100 dias), que são indicativos de impulso de compra. O inverso seria indicativo do impulso da venda. Fonte: FX Trek Intellicharts Figura 1: Médias móveis mostram a direção inerente Suporte e resistência Não são apenas as médias móveis utilizadas na referência ao viés direcional, elas também são usadas como suporte e resistência. A média móvel atua como uma barreira onde os preços já foram testados. Quanto mais testes existem, mais fortificada a figura de suporte, aumentando a probabilidade de um salto maior. Uma ruptura abaixo do suporte indicaria força suficiente para um movimento menor. Como resultado, uma média móvel mais plana mostrará os preços que se estabilizaram e criaram um nível de suporte subjacente (Figura 2) para o preço subjacente. As empresas maiores e os sistemas de comércio institucional também colocam muita ênfase nesses níveis como pontos desencadeantes onde o mercado provavelmente tomará conhecimento. Tornando os níveis alvos principais para a volatilidade e uma súbita mudança na demanda. Sabendo disso, dê uma olhada em como um especulador pode aproveitar essa vantagem. Fonte: FX Trek Intellicharts Figura 2: médias móveis mais lisas são formações de suporte perfeito. Aproveitando a Explosão Com instituições maiores, tendo em conta a média móvel como suporte e nível de resistência, esses bolsos mais profundos, juntamente com sistemas de negociação algorítmicos, irão comprar ou comprar ordens a este nível. A profundidade dessas ordens tende a forçar a sessão mais alta através da barreira de suporte ou resistência porque todas as ordens exacerbam o movimento direcional. Na Figura 3, vemos esse fenômeno em ambas as direções, mais notavelmente para a desvantagem na perspectiva diária da poundU. S britânica. Par de dólares em moeda. Tanto no ponto A como no ponto B, o chartist pode ver que, uma vez que a sessão quebra a figura, o preço continua a diminuir durante toda a sessão até o fechamento, com o impulso subsequente levando o preço mais baixo no prazo intermediário. Aqui, uma vez pela linha de suporte (SMA de 25 dias), os vendedores do par de moedas entram e se combinam com pedidos maiores que são colocados abaixo do nível. Isso impulsiona o preço mais abaixo da barreira média móvel. Fonte: FX Trek Intellicharts Figura 3: Breaks através de suporte ou resistência são exacerbados. Negociar esta ocorrência pode ser complicado, mas é simples o bastante para implementar. Vamos dar uma olhada em como abordar isso usando nossa britânica poundU. S. Exemplo de dólar: identifique uma oportunidade de curto prazo na perspectiva de longo prazo Como as médias móveis mais longas geralmente são as que recebem muita atenção, o comércio deve ser colocado no prazo de longo prazo. Neste caso, a perspectiva diária é usada para identificar a oportunidade em 5 de outubro (ponto B). Acrescente o curto prazo para o ponto de entrada Agora que a decisão foi tomada para uma venda curta na interrupção do SAM de 25 dias no Ponto B no exemplo acima, a charística deve olhar no curto prazo para encontrar um ponto de entrada. Como resultado, damos uma olhada no cronograma horário para uma entrada adequada na Figura 4. De acordo com o gráfico, o suporte definitivo está chegando na figura de 1.8850. Um fim abaixo do suporte confirmaria o impulso de venda e coincidirá com a quebra abaixo da média móvel, o que representa uma breve sugestão perfeita. Coloque a Entrada Como resultado da análise anterior, a ordem de entrada é colocada 1 pip abaixo da baixa da sessão horária, uma espécie de confirmação do movimento menor. Posteriormente, a ordem de parada é colocada ligeiramente acima da linha de tendência quebrada. Com a figura de suporte anterior em pé em 1.8850, o batente deve ser configurado como uma parada de fuga no máximo de 10 pips acima da figura de resistência atual. Portanto, a parada é colocada em 1.8860, um pip acima da sessão alta com uma entrada em 1.8812, dando-nos 48 pips em risco. De acordo com o gráfico, o comércio dura quase dois dias antes de a ação do preço aumentar fortemente e acabar com a parada final. Antes disso, no entanto, a ação de preços diminui em 1.8734, proporcionando um lucro potencial de 78 pontos, quase uma relação de risco de 1,5: 1. Fonte: FX Trek Intellicharts Figura 4: A quebra abaixo do SMA coincide com a ruptura da chave abaixo do suporte. Uma boa estratégia por conta própria, a explosão da média móvel é freqüentemente associada ao infame e curto aperto no mercado. Aqui, a volatilidade e a rapidez nas reações dos participantes do mercado irão exacerbar a ação de preços direcionais e às vezes exagerarão o movimento dos mercados. Embora às vezes seja percebido como arriscado, a situação também pode levar a alguns negócios muito lucrativos. Definir um aperto curto Um aperto curto é quando os participantes no mercado que estão vendendo um recurso precisam reverter suas posições rapidamente à medida que a demanda de compra os supera. A situação geralmente causa muita volatilidade, já que os compradores recuperam o ativo rapidamente enquanto os vendedores estão em pânico e tentam sair de suas posições o mais rápido possível. A reação explosiva é muito mais exagerada nos mercados FX. Os avanços tecnológicos que aceleram as transações no mercado, bem como interrompem as encomendas que os comerciantes maiores usam para proteger e iniciar posições, faz com que apertos curtos sejam maiores e exacerbados em pares de moedas. Combinando essa teoria, juntamente com os nossos exemplos anteriores de médias móveis, as oportunidades abundam, pois os sistemas de negociação e os fundos costumam colocar tais ordens em torno dos principais níveis de movimentação média. Exemplo de livro de texto: Squeezeum Para dar um exemplo mais visual, dê uma olhada neste instantâneo no mercado de câmbio na Figura 5. Aqui, no par de moedas sintéticas do franco britânico, o preço forma um formidável nível de resistência. Com essa barreira, a maior parte do mercado provavelmente verá uma pequena oportunidade, tornando a área de preços ligeiramente acima da chave de resistência para paradas que correspondem às posições de venda curta. Com vendas de festas suficientes, o número de vendedores curtos atinge uma baixa. Com o primeiro sinal de compra, impulso começa a se construir à medida que o preço começa a subir e prova o nível de resistência. Em última análise, depois de superar esse nível, os vendedores que ainda são curtos começam a considerar esquadrinhando suas posições à medida que começam a sofrer perdas. Isso, juntamente com o crescente interesse na compra, provoca um aumento na ação do preço e cria o salto acima do puxador central 2.3800, continuando 50 pontos mais alto. Fonte: FX Trek Intellicharts Figura 5: o aperto de livro de texto tira lados curtos. Combinando os Dois Agora que passamos a idéia de mover as explosões médias e a mecânica por trás do aperto curto, vamos dar uma olhada em um exemplo que isola com sucesso uma oportunidade lucrativa. Na Figura 6, lidaremos com um excelente exemplo no euroU. S europeu. Dólar maioritário. Voltando ao início de 2006, o dólar aumentou fortemente em três sessões. Retratando de volta a um antigo nível de suporte, os compradores e os vendedores disputavam o impulso de venda anterior, formando uma figura de suporte estabilizado. Isto é, quando o preço tende a permanecer vinculado ao alcance, proporcionando alguns cenários interessantes. Uma maneira de identificar um viés nessa instância é o fato de que as sessões se tornam mais estreitas até a fuga porque os vendedores são notavelmente mais fracos. No início do intervalo, o corpo da vela é tão grande quanto 50 a 60 pontos no entanto, com menos impulso e a luta entre compradores e vendedores continuando, a faixa de sessão diminui para 15 a 20 pontos. No final, os compradores ganham, empurrando o par de moedas através da SMA e provocando o impulso de compra para fechar quase 200 pontos acima do preço aberto. Ao mesmo tempo, posições que anteriormente eram curtas para minimizar as perdas, apoiando totalmente o movimento aumentado. Fonte: FX Trek Intellicharts Figura 6: um exemplo de livro de texto ganha vida. Identificar o Potencial Na Figura 6, os intervalos estreitos e a consolidação na ação de preços representam um abrandamento do impulso da venda. Com a média móvel atuando como uma resistência ao final do intervalo, uma oportunidade se apresenta. Zoom para uma entrada detalhada Com a oportunidade identificada, o comerciante analisa o prazo mais curto para fazer uma avaliação abrangente. Na Figura 7, a resistência em 1.1900 é formidável, atuando como uma barreira superior com a figura de suporte inferior em torno das figuras 1.18001.1750. Sabendo que um aperto curto é uma probabilidade crescente, o especulador terá o lado comprido no comércio. Coloque a entrada agora que a análise foi concluída, iniciar o comércio é simples. Tendo em conta a resistência, o comerciante colocará uma entrada acima da figura de resistência 1.1900 ou superior. Às vezes, uma entrada mais alta acima do alcance alto adicionará uma confirmação adicional, indicativa do impulso. Como resultado, a entrada será colocada dois pontos acima da alta em 1.1913 (ponto C). A parada correspondente será colocada logo abaixo do próximo nível de suporte, neste caso em 1.1849, um ponto abaixo da figura 1.1850. Se a ação de preço derrubar, isso confirmará uma reviravolta e tirará a posição do mercado. Qual é o pagamento A recompensa vale bem os 64 pontos de risco neste exemplo, já que o movimento iminente leva a posição acima da alça 1.2100, dando ao comerciante um lucro de 187 pontos antes de fazer o movimento mais alto para 1.2150. O resultado é uma relação risco-recompensa que é quase 3: 1, melhor que a proporção mínima recomendada de 2: 1. Fonte: FX Trek Intellicharts Figura 7: O objetivo dos comerciantes é capturar a explosão. A linha inferior As médias móveis podem oferecer uma visão mais detalhada do mercado do que muitas pessoas acreditam. Combinado com o fluxo de capital e um senso de mercado chave, o comerciante da moeda pode maximizar os lucros, mantendo indicadores ao mínimo, mantendo uma vantagem muito procurada. Em última análise, o sucesso da explosão da média móvel é saber como os participantes estão reagindo no mercado e combinando isso com indicadores que podem manter os comerciantes de curto prazo conhecedores oportunistas e lucrativos a longo prazo. Para ler mais sobre o comportamento do mercado, consulte o nosso Passo a passo em Mudança.

No comments:

Post a Comment