Tuesday 18 July 2017

Trading Estratégia Em Python


Saiba habilidades Quant Se você é um comerciante ou um investidor e gostaria de adquirir um conjunto de habilidades de negociação quantitativa, você está no lugar certo. O curso de negociação com Python irá fornecer-lhe as melhores ferramentas e práticas para a investigação de negociação quantitativa, incluindo funções e scripts escritos por comerciantes qualificados quantitativa. O curso dá-lhe o máximo de impacto para o seu tempo investido e dinheiro. Concentra-se na aplicação prática da programação ao comércio, em vez da ciência da computação teórica. O curso irá pagar por si rapidamente, poupando tempo no processamento manual de dados. Você passará mais tempo pesquisando sua estratégia e implementando negócios lucrativos. Visão Geral do Curso Parte 1: Noções Básicas Você vai aprender por que o Python é uma ferramenta ideal para o comércio quantitativo. Vamos começar por criar um ambiente de desenvolvimento e, em seguida, irá apresentá-lo às bibliotecas científicas. Parte 2: Manuseando os dados Saiba como obter dados de várias fontes gratuitas, como Yahoo Finance, CBOE e outros sites. Leia e escreva vários formatos de dados, incluindo arquivos CSV e Excel. Parte 3: Pesquisando estratégias Aprenda a calcular PL e métricas de desempenho como Sharpe e Drawdown. Construir uma estratégia de negociação e otimizar seu desempenho. Múltiplos exemplos de estratégias são discutidos nesta parte. Parte 4: Going live Esta parte está centrada em torno Interactive Brokers API. Você vai aprender como obter dados de estoque em tempo real e colocar ordens ao vivo. Lotes do código do exemplo O material do curso consiste nos cadernos que contêm o texto junto com o código interativo como este. Você será capaz de aprender por interagir com o código e modificá-lo para o seu próprio gosto. Será um ótimo ponto de partida para escrever suas próprias estratégias Embora alguns tópicos sejam explicados em grande detalhe para ajudá-lo a entender os conceitos subjacentes, na maioria dos casos você nem precisará escrever seu próprio código de baixo nível, por causa do suporte existente Bibliotecas de fontes. TradingWithPython biblioteca combina grande parte da funcionalidade discutida neste curso como um ready-to-use funções e será usado durante todo o curso. Pandas irá fornecer-lhe todo o poder de levantamento pesado necessário em dados crunching. Todo o código é fornecido sob a licença BSD, permitindo o seu uso em aplicações comerciais Avaliação do curso Um piloto do curso foi realizado na primavera de 2013, isso é o que os alunos têm a dizer: Matej curso bem projetado e bom treinador. Definitivamente vale seu preço e meu tempo Lave Jev obviamente conhecia suas coisas. Profundidade de cobertura foi perfeito. Se Jev executar algo assim novamente, eu serei o primeiro a se inscrever. John Phillips Seu curso realmente me pôs em marcha considerando python para análise de sistema de estoque. Python Algorithmic Trading Library PyAlgoTrade é uma biblioteca de negociação algorítmica Python com foco em backtesting e suporte para paper-trading e live-trading. Vamos dizer que você tem uma idéia para uma estratégia de negociação e você gostaria de avaliá-lo com dados históricos e ver como ele se comporta. PyAlgoTrade permite que você faça assim com esforço mínimo. Principais características Totalmente documentado. Evento dirigido. Suporta ordens Market, Limit, Stop e StopLimit. Suporta Yahoo Finance, Google Finance e NinjaTrader arquivos CSV. Suporta qualquer tipo de dados de séries temporais em formato CSV, por exemplo, Quandl. Suporte comercial Bitcoin através Bitstamp. Indicadores técnicos e filtros como SMA, WMA, EMA, RSI, Bandas de Bollinger, expoente de Hurst e outros. Métricas de desempenho como Sharpe ratio e análise de drawdown. Gerenciando eventos do Twitter em tempo real. Perfurador de eventos. Integração TA-Lib. Muito fácil de escalar horizontalmente, ou seja, usando um ou mais computadores para backtest uma estratégia. PyAlgoTrade é livre, de código aberto, e é licenciado sob a Licença Apache, Versão 2.0.Backtesting um Moving Average Crossover em Python com pandas No artigo anterior sobre Pesquisa Backtesting Ambientes Em Python Com Pandas criamos um objeto orientado baseado em pesquisa backtesting Ambiente e testá-lo 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. Apenas começando com Quantitative TradingTrading com Python Ive recentemente ler um grande post pelo blog turinginance sobre como ser um quant. Em suma, descreve uma abordagem científica para desenvolver estratégias de negociação. Para mim, pessoalmente, observar dados, pensar com modelos e formar hipóteses é uma segunda natureza, como deveria ser para qualquer bom engenheiro. Neste post estou indo para ilustrar esta abordagem explicitamente passando por um número de etapas (apenas um casal, nem todos eles) envolvidos no desenvolvimento de uma estratégia de negociação. Vamos dar uma olhada no instrumento mais comum de negociação, o SampP 500 ETF SPY. Vou começar com as observações. Observações Ocorreu-me que a maior parte do tempo que há muita conversa na mídia sobre o mercado quebrando (após grandes perdas ao longo de vários dias timespan), bastante repercussão, por vezes, segue. No passado Ive cometeu alguns erros fechando minhas posições para cortar perdas curtas, apenas para perder uma recuperação nos dias seguintes. Teoria geral Após um período de perdas consecutivas, muitos comerciantes vão liquidar suas posições por medo de perda ainda maior. Grande parte desse comportamento é governado pelo medo, e não pelo risco calculado. Os comerciantes mais inteligentes vêm então para as pechinchas. Hipótese: Os retornos do próximo dia de SPY mostrarão um viés ascendente após um número de perdas consecutivas. Para testar a hipótese, Ive calculou o número de dias consecutivos para baixo. Tudo sob -0,1 retorno diário qualifica-se como um dia para baixo. As séries de retorno são quase aleatórias, por isso, como seria de esperar, as chances de 5 ou mais dias consecutivos de baixa são baixas, resultando em um número muito limitado de ocorrências. O baixo número de ocorrências resultará em estimativas estatísticas não confiáveis, portanto, parar em 5. Abaixo está uma visualização de retornos nex-tday como uma função do número de dias de baixo. Ive também traçado intervalo de confiança de 90 dos retornos entre as linhas. Acontece que o retorno médio é positivamente correlacionado com o número de dias de queda. Hipótese confirmada. No entanto, você pode ver claramente que este alfa extra é muito pequeno em comparação com a faixa dos resultados de retorno provável. Mas mesmo uma borda minúscula pode ser explorada (encontrar uma vantagem estatística e repetir tantas vezes quanto possível). O próximo passo é investigar se essa borda pode ser transformada em uma estratégia de negociação. Dados os dados acima, uma estratégia de negociação pode ser forumlated: Após consectutive 3 ou mais perdas, vá por muito tempo. Sair no próximo fechar. Abaixo está um resultado desta estratégia em comparação com puro buy-and-hold. Isso não parece ruim em tudo Olhando para os índices de sharpe a estratégia marca uma descida de 2,2 versus 0,44 para a BampH. Isso é realmente muito bom (não fique muito animado embora, como eu não conta para custos de comissão, derrapagem etc). Enquanto a estratégia acima não é algo que eu gostaria de comércio simplesmente por causa do longo período de tempo, a própria teoria provoca pensamentos futuros que poderiam produzir algo útil. Se o mesmo princípio se aplica aos dados intradiários, uma forma de estratégia scalping poderia ser construído. No exemplo acima Ive oversimplified o mundo um pouco, contando apenas o número de dias de inatividade, sem prestar atenção à profundidade do abaixamento. Além disso, a saída de posição é apenas um próximo próximo dia próximo. Há muito a ser melhorado, mas a essência em minha opinião é esta: os retornos futuros de SPY são ifluenced pelo drawdown e pela duração do drawdown sobre os 3 a 5 dias precedentes. Um trader experiente sabe que comportamento esperar do mercado baseado em um conjunto de indicadores e sua interpretação. O último é muitas vezes feito com base em sua memória ou algum tipo de modelo. Encontrar um bom conjunto de indicadores e processar suas informações representa um grande desafio. Primeiro, é preciso entender quais fatores estão correlacionados aos preços futuros. Os dados que não têm qualquer qualidade preditiva apenas produzem ruído e complexidade, diminuindo o desempenho da estratégia. Encontrar bons indicadores é uma ciência por conta própria, muitas vezes exigindo profunda compreensão da dinâmica do mercado. Esta parte do design da estratégia não pode ser facilmente automatizada. Felizmente, uma vez que um bom conjunto de indicadores foi encontrado, a memória dos comerciantes e intuição pode ser facilmente substituído por um modelo estatístico, que provavelmente irá executar muito melhor como computadores têm memória impecável e pode fazer estimativas estatísticas perfeitas. Com relação à negociação de volatilidade, levei bastante tempo para entender o que influencia seus movimentos. Em particular, estou interessado em variáveis ​​que predizem retornos futuros de VXX e XIV. Eu não vou entrar em explicação completa aqui, mas apenas apresentar uma conclusão. Meus dois indicadores mais valiosos para a volatilidade são a inclinação da estrutura do termo eo prêmio atual da volatilidade. A minha definição destes dois é: volatilidade VIX-realizadoVol delta (inclinação de estrutura de prazo) VIX-VXV VIX amp VXV são as volatilidades implícitas 1 e 3 meses implícitas do SampP 500. realizadoVol aqui é uma volatilidade de 10 dias percebida de SPY, Calculado com a fórmula de Yang-Zhang. Delta tem sido freqüentemente discutido em VixAndMore blog, enquanto premium é bem conhecida da negociação de opções. Faz sentido ir à volatilidade curta quando o prêmio é alto e os futuros estão em contango (delta lt 0). Isto fará com que um tailwind do rolo superior e diário ao longo da estrutura do termo em VXX. Mas isso é apenas uma estimativa grosseira. Uma boa estratégia de negociação iria combinar informações de ambos premium e delta para vir com uma previsão sobre a direção de negociação em VXX. Eu estive lutando por um tempo muito longo para chegar a uma boa maneira de combinar os dados ruidosos de ambos os indicadores. Eu tentei a maioria das abordagens padrão, como regressão linear, escrevendo um monte de if-thens. Mas todos com uma melhoria muito menor em comparação com o uso de apenas um indicador. Um bom exemplo de tal estratégia de indicador único com regras simples pode ser encontrado no blog TradingTheOdds. Não parece ruim, mas o que pode ser feito com vários indicadores Ill começar com alguns dados VXX fora da amostra que eu tenho de MarketSci. Observe que este é dados simulados, antes de VXX foi criado. Os indicadores para o mesmo período são traçados abaixo: Se tomarmos um dos indicadores (premium neste caso) e plotá-lo contra futuros retornos de VXX, pode-se observar alguma correlação, mas os dados são extremamente ruidosos: Ainda assim, é claro Que o prémio negativo é susceptível de ter VXX positivo retorna no dia seguinte. Combinar prémio e delta em um modelo tem sido um desafio para mim, mas eu sempre quis fazer uma aproximação estatística. Em essência, para uma combinação de (delta, premium), eu gostaria de encontrar todos os valores históricos que estão mais próximos dos valores atuais e fazer uma estimativa dos retornos futuros com base neles. Algumas vezes eu comecei a escrever meus próprios algoritmos de interpolação de vizinhos mais próximos, mas toda vez que eu tinha que desistir. Até que me deparei com a regressão de vizinhos mais próximos do scikit. Ele me permitiu construir rapidamente um preditor com base em duas entradas e os resultados são tão bons, que Im um pouco preocupado que Ive cometeu um erro em algum lugar. Aqui está o que eu fiz: criar um conjunto de dados de delta, premium - gt VXX retorno no dia seguinte (in-of-sample) criar um predictor próximo-vizinho baseado no conjunto de dados acima da estratégia comercial (fora da amostra) com as regras: Ir longo se o retorno previsto gt 0 ir curto se previsto retorno lt0 A estratégia não poderia ser mais simples. Os resultados parecem extremamente bons e melhoram quando mais neigbors são usados ​​para a estimativa. Em primeiro lugar, com 10 pontos, a estratégia é excelente na amostra, mas é plana fora da amostra (linha vermelha na figura abaixo é o último ponto na amostra) Então, o desempenho fica melhor com 40 e 80 pontos: No último Duas parcelas, a estratégia parece executar o mesmo dentro e fora da amostra. Sharpe é de cerca de 2,3. Estou muito satisfeito com os resultados e tenho a sensação de que Ive só foi arranhar a superfície do que é possível com esta técnica. Minha busca de uma ferramenta de backtesting ideal (minha definição de ideal é descrita nos posts anteriores dilemas de Backtesting) não resultou em algo que eu poderia usar imediatamente. No entanto, revisar as opções disponíveis me ajudou a entender melhor o que eu realmente quero. Das opções que eu olhei, pybacktest foi o que eu mais gostei por causa de sua simplicidade e velocidade. Depois de passar pelo código-fonte, eu tenho algumas idéias para torná-lo mais simples e um pouco mais elegante. A partir daí, foi apenas um pequeno passo para escrever meu próprio backtester, que agora está disponível na biblioteca TradingWithPython. Eu escolhi uma abordagem onde o backtester contém funcionalidade que todas as estratégias de negociação compartilham e que muitas vezes é copiado-colado. Coisas como calcular posições e pnl, métricas de desempenho e fazer parcelas. A funcionalidade específica da estratégia, como a determinação de pontos de entrada e saída, deve ser feita fora do backtestter. Um fluxo de trabalho típico seria: find entry and exits - gt calcula pnl e faz gráficos com backtester - gt dados de estratégia pós-processo Neste momento o módulo é muito mínimo (veja a fonte aqui), mas no futuro eu planejo Na adição de saldos de lucro e stop-loss e carteiras multi-ativos. Uso do módulo backtesting é mostrado neste notebook exemplo eu organizar meus notebooks IPython, salvando-os em diretórios diferentes. Isso traz, no entanto, uma inconveniência, porque para acessar os notebooks preciso abrir um terminal e digitar ipython notebook --pylabinline cada vez. Tenho certeza que a equipe ipython vai resolver isso no longo prazo, mas, entretanto, há uma forma bonita de descida para acessar rapidamente os notebooks do explorador de arquivos. Tudo que você precisa fazer é adicionar um menu de contexto que inicia o servidor ipython no diretório desejado: Uma maneira rápida de adicionar o item de contexto é executando este patch do registro. (Observe que o patch pressupõe que você tenha sua instalação do python localizada em C: Anaconda. Se não, você precisa abrir o arquivo. reg em um editor de texto e definir o caminho certo na última linha). Instruções sobre como adicionar as chaves de registro manualmente podem ser encontradas no blog Frolians. Muitas pessoas pensam que o etfs alavancado no longo prazo underperform seus benchmarks. Isto é verdadeiro para mercados agitados, mas não no caso de condições de tendência, para cima ou para baixo. Alavancagem só tem efeito sobre o resultado mais provável, e não sobre o resultado esperado. Para mais fundo por favor leia este post. 2013 foi um ano muito bom para as ações, que tendeu para a maior parte do ano. Vamos ver o que aconteceria se nós shorted alguns dos etfs alavancado exatamente um ano atrás e hedged-los com seu benchmark. Conhecendo o comportamento alavancado de etf eu esperaria que o etfs alavancado outperformed seu ponto de referência, assim que a estratégia que tentaria lucrar com a deterioração perderia o dinheiro. Eu considerarei estes pares: SPY 2 SSO -1 SPY -2 SDS -1 QQQ 2 QLD -1 QQQ -2 QID -1 IYF -2 SKF -1 Cada etf alavancado é mantido curto (-1) e coberto com um 1x Etf. Observe que para proteger um inverso etf uma posição negativa é mantida no 1x etf. Aqui está um exemplo: SPY vs SSO. Uma vez que normalizamos os preços para 100 no início do período de backtest (250 dias) é evidente que o 2x etf supera 1x etf. Agora, os resultados do backtest nos pares acima: Todos os 2x etfs (incluindo inverso) têm superado o seu benchmark ao longo de 2013. De acordo com as expectativas, a estratégia de exploração beta decadência não seria rentável. Eu acho que jogar alavancado etfs contra sua contraparte desalavancada não fornece qualquer vantagem, a menos que você conhece as condições de mercado de antemão (tendência ou intervalo-limite). Mas se você conhece o próximo regime de mercado, há maneiras muito mais fáceis de lucrar com isso. Infelizmente, ninguém tem sido realmente bem sucedido na previsão do regime de mercado, mesmo a muito curto prazo. O código-fonte completo dos cálculos está disponível para os assinantes do curso Trading With Python. Notebook 307 Aqui está o meu tiro na avaliação do Twitter. Gostaria de começar com um disclaimer: neste momento uma grande parte do meu portrolio consiste em curta posição TWTR, então minha opinião é bastante distorcida. A razão pela qual eu fiz a minha própria análise é que a minha aposta não funcionou bem e o Twitter fez um movimento parabólico em dezembro de 2013. Então a questão que estou tentando responder aqui é se eu pegar minha perda ou segurar meus shorts. No momento da escrita, TWTR comércios cerca de 64 marca, com uma capitalização de mercado de 34,7 B. Até agora, a empresa não fez qualquer lucro, perdendo 142M em 3013 depois de fazer 534M em receitas. Os últimos dois números nos dão gastos anuais com a empresa de 676M. Preço derivado do valor do usuário Twitter pode ser comparado com o Facebook, Google e LinkedIn para ter uma idéia de números de usuários e seus valores. A tabela abaixo resume os números de usuários por empresa e um valor por usuário derivado do limite de mercado. (Fonte para o número de usuários: Wikipedia, número para o Google é baseado no número de pesquisas exclusivas) torna-se aparente que a avaliação de mercado por usuário é muito semelhante para todas as empresas, no entanto a minha opinião pessoal é que: TWTR é atualmente mais valioso Por usuário thatn FB ou LNKD. Isso não é lógico, pois ambos os concorrentes têm mais dados pessoais valiosos do usuário à sua disposição. GOOG tem sido excelente em extrair receitas de publicidade de seus usuários. Para fazer isso, ele tem um conjunto de ofertas altamente diversificadas, do motor de busca para o Google. Documentos e Gmail. TWTR não tem nada que se assemelhe a isso, enquanto seu valor por usuário é apenas 35 inferior thatn que do Google. A TWTR tem um espaço limitado para crescer sua base de usuários, pois não oferece produtos comparáveis ​​às ofertas do FB ou do GOOG. TWTR tem sido em torno de sete anos e agora a maioria das pessoas que querem um accout tem a sua chance. O resto simplesmente não se importa. A base de usuários de TWTR é volátil e é provável mover-se para a coisa quente seguinte quando estará disponível. Acho que a melhor referência aqui seria LNKD, que tem um nicho estável no mercado profissional. Por esta métrica TWTR seria sobrevalorizado. A definição do valor do usuário em 100 para TWTR produziria um preço TWTR justo de 46. Preço derivado de ganhos futuros Há dados suficientes disponíveis sobre as estimativas de lucros futuros. Um dos mais úteis Ive encontrado está aqui. Usando esses números, subtraindo gastos da empresa, que eu assumo para permanecer constante. Produz esses números: Conclusão Com base nas informações disponíveis, a avaliação otimista da TWTR deve estar na faixa de 46-48. Não existem razões claras para que ele deve negociar mais alto e muitos riscos operacionais para o comércio menor. Meu palpite é que durante a IPO profissionais suficientes revisaram o preço, definindo-o a um nível de preço justo. O que aconteceu depois foi um movimento irracional do mercado não justificado por novas informações. Basta dar uma olhada no frenesi bullish em stocktwits. Com pessoas afirmando coisas como este pássaro voará para 100. Pura emoção, que nunca funciona bem. A única coisa que me apóia agora é colocar meu dinheiro onde minha boca está e ficar com meus shorts. O tempo vai dizer. Curto prazo a volatilidade de curto prazo etn VXX pode parecer uma ótima idéia quando você olha para o gráfico de uma certa distância. Devido ao contango nos futuros da volatilidade, o etn experimenta bastante algum headwind a maioria do tempo e perde um pouco seu valor diário. Isso acontece devido ao reequilíbrio diário, para obter mais informações por favor olhe para a perspectiva. Em um mundo ideal, se você segurá-lo por tempo suficiente, um lucro gerado pelo tempo decadência no futuro e etn reequilíbrio é garantido, mas no curto prazo, você tem que passar por algumas retiradas bastante pesado. Basta olhar para trás no verão de 2011. Tenho sido infeliz (ou tolo) o suficiente para manter uma posição curta VXX pouco antes do VIX subiu. Eu quase explodi minha conta até lá: 80 levantamento em apenas alguns dias, resultando em uma ameaça de chamada de margem por meu corretor. Chamada de margem significaria descontar a perda. Esta não é uma situação Id gostaria de ser novamente. Eu sabia que não seria fácil manter a cabeça fria em todos os momentos, mas experimentar o estresse ea pressão da situação era algo diferente. Felizmente eu sabia como VXX tende a se comportar, então eu não pânico, mas mudou de lado para XIV para evitar uma chamada de margem. A história termina bem, 8 meses depois meu portfólio estava de volta à força e eu aprendi uma lição muito valiosa. Para começar com uma palavra de advertência aqui: não comércio volatilidade a menos que você saiba exatamente quanto risco você está tomando. Dito isto, vamos dar uma olhada em uma estratégia que minimiza alguns dos riscos por curto-circuito VXX apenas quando é apropriado. Estratégia tese: VXX experimenta mais arrasto quando a curva de futuros está em um contango íngreme. A curva de futuros é aproximada pela relação VIX-VXV. Vamos curto VXX quando VXV tem um prémio excepcionalmente elevado sobre VIX. Primeiro, vamos dar uma olhada na relação VIX-VXV: O gráfico acima mostra dados VIX-VXV desde janeiro de 2010. Os pontos de dados do ano passado são mostrados em vermelho. Eu escolhi usar um ajuste quadrático entre os dois, aproximando VXV f (VIX). O f (VIX) é traçado como uma linha azul. Os valores acima da linha representam situação quando os futuros estão em contango mais forte do que o normal. Agora eu defino um indicador delta, que é o desvio do ajuste: delta VXV-f (VIX). Agora vamos dar uma olhada no preço de VXX juntamente com delta: Acima: preço de VXX na escala de log. Abaixo: delta. Marcadores verdes indicat delta gt 0. marcadores vermelhos deltalt0. É evidente que as áreas verdes correspondem a retornos negativos no VXX. Vamos simular uma estratégia com estas suposições: VXX curto quando delta gt 0 Capital constante (aposta em cada dia é 100) Sem derrapagem ou custos de transação Esta estratégia é comparada com a que negocia curto todos os dias, mas não leva delta em conta . A linha verde representa a nossa estratégia VXX curto, linha azul é o mudo. Sharpe de 1,9 para uma estratégia de fim-de-dia simples não é ruim em tudo na minha opinião. Mas ainda mais importante é que as retiradas de gut-wrenching são em grande parte evitadas, prestando atenção à curva futuros de futuros. Construir esta estratégia passo a passo será discutido durante o próximo curso Trading With Python. Preço de um ativo ou um ETF é, naturalmente, o melhor indicador existe, mas infelizmente há apenas tanta informação nele contida. Algumas pessoas parecem pensar que os indicadores mais (rsi, macd, crossover média móvel etc). O melhor, mas se todos eles são baseados na mesma série de preços subjacente, todos eles contêm um subconjunto da mesma informação limitada contida no preço. Precisamos de mais informações adicionais ao que está contido o preço para fazer uma suposição mais informada sobre o que vai acontecer no futuro próximo. Um excelente exemplo de combinar todos os tipos de informações para uma análise inteligente pode ser encontrado no The Short Side of Long blog. Produzir esse tipo de análise requer uma grande quantidade de trabalho, para o qual eu simplesmente não tenho o tempo como eu só o comércio a tempo parcial. Então eu construí meu próprio painel do mercado que automaticamente coleta informações para mim e apresenta-lo em uma forma facilmente digerível. Neste post eu vou mostrar como construir um indicador baseado em dados de volume curto. Este post irá ilustrar o processo de coleta e processamento de dados. Etapa 1: Localizar fonte de dados. A troca de BATS fornece dados de volume diários gratuitamente em seu site. Passo 2: Obter dados manualmente amp inspect Os dados de volume curtos da troca BATS estão contidos num ficheiro de texto que é comprimido. Cada dia tem seu próprio arquivo zip. Depois de baixar e descompactar o arquivo txt, isso é o que está dentro (primeiras linhas): No total, um arquivo contém cerca de 6000 símbolos. Esses dados precisam de bastante trabalho antes de poderem ser apresentados de maneira significativa. Passo 3: Automaticamente obter dados O que eu realmente quero não é apenas os dados de um dia, mas uma relação de volume curto para o volume total nos últimos anos, e eu realmente não sinto como baixar 500 arquivos zip e copiar-colá-los em Excel manualmente. Felizmente, a automação completa é apenas um par de linhas de código de distância: Primeiro, precisamos criar dinamicamente um url a partir do qual um arquivo será baixado: Agora podemos baixar vários arquivos de uma vez: Passo 4. Parse arquivos baixados Podemos usar zip e pandas As bibliotecas para analisar um único arquivo: Ele retorna uma proporção de volume VolumeTotal curto para todos os símbolos no arquivo zip: Etapa 5: Criar um gráfico: Agora a única coisa que resta é analisar todos os arquivos baixados e combiná-los a uma única tabela e trama O resultado: Na figura acima, eu tracei a relação de volume médio curto nos últimos dois anos. Eu também poderia ter usado um subconjunto de símbolos se eu quisesse dar uma olhada em um setor específico ou estoque. Olhar rápido para os dados me dá uma impressão de que altas proporções de volume curto normalmente correspondem com fundos de mercado e baixos rácios parecem ser bons pontos de entrada para uma posição longa. A partir daqui, essa pequena razão de volume pode ser usada como base para o desenvolvimento da estratégia. Negociação com curso de Python Se você é um comerciante ou um investidor e gostaria de adquirir um conjunto de habilidades de negociação quantitativa que você pode considerar tendo a negociação com Python couse. O curso on-line irá fornecer-lhe as melhores ferramentas e práticas para a investigação de negociação quantitativa, incluindo funções e scripts escritos por comerciantes qualificados quantitativa. Você aprenderá como obter e processar quantidades incríveis de dados, projetar e testar estratégias e analisar o desempenho comercial. Isso irá ajudá-lo a tomar decisões informadas que são cruciais para um sucesso comerciantes. Clique aqui para continuar a negociação com o site do curso Python Meu nome é Jev Kuznetsov, durante o dia Eu sou um pesquisadorengineer em uma empresa que está envolvida na impressão de negócios. O resto do tempo eu sou um comerciante. Estudei física aplicada com especialização em reconhecimento de padrões e inteligência artificial. Meu trabalho diário envolve qualquer coisa, desde a rápida prototipagem de algoritmos no Matlab e outras linguagens até a programação de amplificação de projeto de hardware. Desde 2009, tenho vindo a utilizar as minhas competências técnicas nos mercados financeiros. Antes de chegar à conclusão de que Python é a melhor ferramenta disponível, eu estava trabalhando extensivamente em Matlab, que é coberto no meu outro blog.

No comments:

Post a Comment