Trading strategy 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 de especialistas. O curso dá-lhe o máximo de impacto para o seu tempo investido e dinheiro. Ele se concentra na aplicação prática da programação para a negociação, em vez de teoria da ciência da computação. O curso irá pagar por si rapidamente, poupando-lhe 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 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 P L 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 Enquanto alguns tópicos são explicados em grande detalhe para ajudá-lo a entender os conceitos subjacentes, na maioria dos casos você não vai mesmo precisar escrever seu próprio código de baixo nível, por causa do suporte existente Bibliotecas de código aberto. 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 2017, isso é o que os alunos têm a dizer: Matej curso bem desenhado 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. Opções Binárias Negociação: Opções de Forex, Opções de ações, Opções de índice Opções de commodities - opçõesClique em OpçõesClique. Para manter a negociação com o OptionsClick Concordo Por favor, aceito todas as políticas e termos e condições de LTL s (Leadtrade) Backtesting uma estratégia de previsão para o S P500 em Python com pandas Recentemente, em QuantStart nós discutimos a aprendizagem de máquina . Previsão. Backtesting design e backtesting implementação. Agora vamos combinar todas essas ferramentas anteriores para backtest um algoritmo de previsão financeira para o S P500 US mercado de ações, negociando no SPY ETF. Este artigo irá construir fortemente o software que já desenvolvemos nos artigos mencionados acima, incluindo o motor de backtesting orientado a objetos eo gerador de sinal de previsão. A natureza da programação orientada a objetos significa que o código que nós escrevemos subseqüentemente pode ser mantido curto como o levantamento pesado é realizado em classes que nós desenvolvemos já. Bibliotecas de Python maduras, como matplotlib. Pandas e scikit-learn também reduzir a necessidade de escrever código boilerplate ou vir acima com nossas próprias implementações de algoritmos bem conhecidos. A Estratégia de Previsão A estratégia de previsão em si é baseada em uma técnica de aprendizagem de máquina conhecida como analisador discriminante quadrático. Que está intimamente relacionado com um analisador discriminante linear. Ambos os modelos são descritos em pormenor no artigo sobre a previsão de séries financeiras. O forecaster usa os dois retornos diários anteriores como um conjunto de fatores para prever a direção de hoje do mercado de ações. Se a probabilidade de o dia ficar acima de 50, a estratégia compra 500 ações do SPY ETF e vende-lo no final do dia. Se a probabilidade de um dia para baixo exceder 50, a estratégia vende 500 ações do SPY ETF e, em seguida, compra volta ao fechamento. Assim, é o nosso primeiro exemplo de uma estratégia de negociação intraday. Note-se que esta não é uma estratégia de negociação particularmente realista É improvável que alguma vez alcançar um preço de abertura ou fechamento devido a muitos fatores, tais como volatilidade de abertura excessiva, roteamento de ordens pela corretora e potenciais problemas de liquidez em torno do abrir / fechar. Além disso, não incluímos os custos de transação. Estes provavelmente seria uma porcentagem substancial dos retornos, pois há um comércio de ida e volta realizado todos os dias. Assim, o nosso antecessor precisa ser relativamente preciso na previsão de retornos diários, caso contrário os custos de transação vai comer todos os nossos retornos de negociação. Implementação Como com os outros tutoriais relacionados ao Python / pandas, usei as seguintes bibliotecas: A implementação do snp forecast. py abaixo requer backtest. py deste tutorial anterior. Além disso, o forecast. py (que contém principalmente a função create lagged series) é criado a partir deste tutorial anterior. A primeira etapa é importar os módulos e objetos necessários: Uma vez incluídas todas as bibliotecas e módulos relevantes, é hora de subclassificar a classe base Abstract de Estratégia, como fizemos em tutoriais anteriores. SNPForecastingStrategy é projetado para caber um Analisador Quadratic Discriminant para o índice de ações S P500 como um meio de prever o seu valor futuro. A montagem do modelo é realizada no método do modelo de ajuste abaixo, enquanto os sinais reais são gerados a partir do método de geração de sinais. Isso corresponde à interface de uma classe Estratégia. Os detalhes de como funciona um analisador discriminante quadrático, bem como a implementação de Python abaixo, são descritos em detalhes no artigo anterior sobre a previsão de séries temporais financeiras. Os comentários no código fonte abaixo discutem extensivamente o que o programa está fazendo: Agora que o mecanismo de previsão produziu os sinais, podemos criar um MarketIntradayPortfolio. Este objeto de carteira difere do exemplo dado no artigo de backtest de Crossover Médio Móvel, uma vez que realiza negociação em uma base intraday. A carteira é projetada para ir comprando (comprar) 500 partes de SPY ao preço de abertura se o sinal indicar que um up-dia ocorrerá e venderá então no fim. Inversamente, a carteira é projetada ir curto (vender) 500 partes de SPY se o sinal indicar que um dia de baixo ocorrerá e subseqüentemente fechar para fora no preço de fechamento. Para conseguir isso, a diferença de preço entre o mercado aberto e preços de fechamento do mercado são determinados diariamente, levando a um cálculo do lucro diário sobre as 500 ações compradas ou vendidas. Isso, naturalmente, leva naturalmente a uma curva de patrimônio acumulando cumulativamente o lucro / perda para cada dia. Ele também tem o benefício de nos permitir calcular estatísticas de lucro / perda para cada dia. Aqui está a listagem para o MarketIntradayPortfolio: O passo final é amarrar os objetos Estratégia e Portfólio junto com uma função principal. A função obtém os dados para o instrumento SPY e então cria a estratégia de geração de sinal no próprio índice S P500. Isso é fornecido pelo ticker GSPC. Em seguida, um MarketIntradayPortfolio é gerado com um capital inicial de 100.000 USD (como nos tutoriais anteriores). Finalmente, os retornos são calculados ea curva de equidade é plotada. Observe como pouco código é necessário nesta etapa porque todo o cálculo pesado é realizado nas subclasses Estratégia e Carteira. Isso torna extremamente simples criar novas estratégias de negociação e testá-las rapidamente para uso no pipeline de estratégia. A saída do programa é dada abaixo. Neste período, o mercado de ações retornou 4 (assumindo uma estratégia de compra e retenção totalmente investida), enquanto o próprio algoritmo também retornou 4. Observe que os custos de transação (como taxas de comissão) não foram adicionados a este sistema de backtesting. Uma vez que a estratégia realiza uma viagem de ida e volta uma vez por dia, estas taxas são susceptíveis de reduzir significativamente os retornos. Em artigos subseqüentes, adicionaremos custos de transação realistas, utilizaremos mecanismos de previsão adicionais, determinaremos métricas de desempenho e forneceremos ferramentas de otimização de portfólio. Michael Halls-Moore Mike é o fundador da QuantStart e tem estado envolvido na indústria de finanças quantitativas nos últimos cinco anos, principalmente como desenvolvedor quantitativo e, mais tarde, como consultor de comerciante de quant para hedge funds.

Comments