Wednesday 14 March 2018

Opções de negociação python


Python Algorithmic Trading Library.
PyAlgoTrade é uma Biblioteca de Negociação Algorítmica Python com foco em backtesting e suporte para negociação de papel e negociação ao vivo. Digamos que você tenha uma idéia de uma estratégia de negociação e que você gostaria de avaliá-la com dados históricos e ver como ela se comporta. PyAlgoTrade permite que você faça isso com um esforço mínimo.
Principais características.
Totalmente documentado. Evento conduzido. Suporta pedidos Market, Limit, Stop e StopLimit. Suporta Yahoo! Finanças, Google Finance e NinjaTrader CSV. Suporta qualquer tipo de dados da série temporal no formato CSV, por exemplo, Quandl. Suporte comercial Bitcoin através do Bitstamp. Indicadores técnicos e filtros como SMA, WMA, EMA, RSI, Bandas Bollinger, Expositores Hurst e outros. Métricas de desempenho como a taxa de Sharpe e análise de redução. Manipulação de eventos do Twitter em tempo real. Perfil de eventos. Integração TA-Lib.
Muito fácil de dimensionar horizontalmente, ou seja, usando um ou mais computadores para testar uma estratégia.
PyAlgoTrade é gratuito, de código aberto e está licenciado sob a Licença Apache, Versão 2.0.

Por que Python?
Antes de começar, gostaria de falar sobre o porquê eu uso o Python para a computação financeira. Levei vários anos para entender todas as opções lá fora e vou tentar convencê-lo de que o Python é realmente a melhor ferramenta para a maioria das tarefas envolvidas na negociação.
Quando eu comecei a programar como uma criança em algum lugar no início dos anos noventa, escolher uma linguagem de programação era fácil, pois simplesmente não havia muitos para escolher. Comecei pela primeira vez no Pascal e desde então programado em Delphi, C, C ++, C #, Java, VB, PHP, Matlab, Python, SPIN e até mesmo o ASM. Eu não aprendi todas essas línguas por diversão, como eu tenho coisas melhores para fazer (como o trabalho real), mas eu precisava, pois não tinha nenhuma linguagem de "faca do exército suíço" para todas as minhas necessidades. Eu precisava de C e Delphi para fazer aplicativos autônomos, PHP para construir um site e Matlab para cálculos científicos. Como diz o ditado, "jack of all trades é mestre de nenhum", então, mudando de um idioma para outro, nunca adquiri conhecimento especializado em nenhum deles.
Idealmente, eu gostaria de aprender apenas um idioma que seja adequado para todos os tipos de trabalho: crunching de números, criação de aplicativos, desenvolvimento web, interface com API etc. Este idioma seria fácil de aprender, o código seria compacto e claro. correr em qualquer plataforma. Isso me permitiria trabalhar de forma interativa, permitindo que o código evoluísse ao escrevê-lo e ser pelo menos livre, como na fala. E o mais importante, eu me importo muito com o meu próprio tempo do que com o tempo de CPU do meu pc, então o desempenho do número de bits é menos importante para mim do que a minha própria produtividade.
Atualmente, as duas línguas mais populares para computação técnica e científica são Matlab e Python. Ambos cumprem muitos dos desejos descritos acima, mas eles têm algumas diferenças importantes. Matlab é mais popular quando se trata de computação técnica. Isto é o que costumava usar o dia-a-dia para resolver problemas de engenharia. Para simulações numéricas e trabalhar com dados "limpos", é provavelmente a melhor ferramenta que existe. Bom IDE, fantásticas funções de traçabilidade, excelente documentação. É menos adequado para o desenvolvimento de aplicativos ou como linguagem de uso geral. Espere pagar \
2k \ $ para uma licença comercial básica mais extra para caixas de ferramentas específicas.
Fazer pesquisas financeiras em Matlab provou ser um grande desafio para mim, principalmente porque não existe uma maneira fácil de lidar com dados "sujos" (dados que não estão bem alinhados em uma tabela, mas tem múltiplas fontes com datas diferentes e entradas faltantes) . Outro desafio que enfrentei foi impedir que meu código se tornasse uma bagunça. É possível escrever bibliotecas seguras com o Matlab, mas está longe de ser trivial e o design do idioma realmente incentiva a codificação desordenada. Ao usar o Matlab para o desenvolvimento da estratégia de negociação, consegui lidar com as deficiências desta plataforma. No entanto, quando eu decidi construir um sistema de troca automática, eu tinha atingido um beco sem saída. Enquanto consegui me conectar à Interacive Brokers API, descobriu-se que não havia como criar uma aplicação confiável. Embora seja bom para pesquisa, a Matlab é uma merda para implantação. Foi quando eu decidi olhar para outras opções. Python é muito semelhante ao Matlab e resolve a maioria de suas falhas. E é grátis! Com o trabalho interativo do notebook Ipython no Python, é fácil, como no Matlab, mas o que você obtém é uma linguagem de programação que pode completar quase todas as tarefas, desde a mineração de dados até aplicativos de desenvolvimento web e qualidade de produção com grandes GUIs. Se eu tivesse que começar tudo de novo, eu escolheria Python, pois isso me salvaria o problema de aprender outro idioma para Gui e desenvolvimento web. Depois de usar Python por três anos, ainda estou entusiasmado com o momento em que caí apaixonado por isso. Sinto que muitos outros comerciantes podem se beneficiar grandemente aprendendo o Python desde o início e por isso criei um curso de troca com Python.
Instalação.
O Python, como a maioria dos softwares de código aberto, possui uma característica específica: pode ser um desafio para um iniciante encontrar seu caminho em torno de milhares de bibliotecas e ferramentas. Este guia irá ajudá-lo a obter tudo o que precisa em sua caixa de ferramentas quant, espero que sem problemas.
Felizmente, há várias distribuições, contendo a maioria dos pacotes necessários, tornando a instalação brisa.
A melhor distribuição na minha opinião é a Anaconda do Continuum Analytics.
A distribuição da Anaconda inclui:
Python 3 Python interprete em cima do qual tudo o resto é executado Ipython: Interactive shell & amp; notebook Spyder IDE numpy & amp; scipy: ferramentas de computação científica, semelhantes a Matlab pandas2: biblioteca de estruturas de dados. muitos mais pacotes científicos e de utilidade, veja lista de pacotes.
Então, por favor, vá em frente e instale a Anaconda.
Ferramentas e bibliotecas extras.
Ao lado dos brindes incluídos no instalador da Anaconda, você precisará pelo menos de um editor de texto de descida e de um navegador.
notepad ++ é um editor de texto versátil e leve O Google Chrome ou o navegador Firefox são necessários para o notebook Jupyter (o Internet Explorer não funcionará)
Outras bibliotecas úteis incluem ferramentas para leitura xml, documentação, etc., serão abordadas mais tarde.
Código de execução.
A maior parte do código deste curso é executado em um documento interativo chamado "caderno".
Nota: O ambiente de programação interativo que usamos é chamado de notebook Jupyter. Anteriormente, foi chamado de "notebook IPython", mas foi renomeado para "Jupyter". Isso foi feito para mostrar que vários idiomas são suportados (JUlia, PYThon, R e mais). Este curso foi escrito antes dessa transição de nomeação, por isso ocasionalmente, você encontrará referências ao notebook Ipython, que é o mesmo que o notebook Jypyter.
Lançamento do notebook Jupyter.
Neste momento (maio de 2018), não é possível alterar o diretório de trabalho depois de iniciar o notebook. Você precisa iniciá-lo no diretório que contém seus cadernos para acessar seus cadernos.
No entanto, existem várias opções para abrir rapidamente seus cadernos:
Iniciando o notebook Jupyter com um atalho.
Se você estiver usando um diretório estático para armazenar os cadernos, a maneira mais fácil de abri-los seria em um diretório personalizado usando um atalho modificado: 1. Encontre o atalho no caderno no menu Iniciar clicando em 'Iniciar' e digitando 'Jupiter 'na janela de pesquisa.
Uma vez que o atalho é encontrado, copie-o para a área de transferência pressionando o botão direito do mouse e selecionando 'copiar'. Em seguida, cole-o em sua área de trabalho. Agora você pode editar o diretório de trabalho clicando no botão direito no atalho da área de trabalho e escolhendo 'propriedades'. Mude o campo 'Iniciar em' para o diretório onde seus notebooks estão localizados.
Você pode criar vários atalhos um para cada diretório separado de notebooks. & lt;! - Um curto screencast irá mostrar-lhe como fazer isso.
Um tutorial mais extenso sobre o uso do notebook pode ser encontrado aqui.
Bibliotecas científicas.
NumPy é um pacote fundamental projetado para cálculos científicos. Em sua funcionalidade, é muito semelhante ao Matlab, fornecendo métodos de trabalho com matrizes multidimensionais e arrays. O site Numpy fornece toda a documentação que você precisa junto com um tutorial, mas ler o Capítulo 4 do livro Python for Data Analysis é ainda melhor para obter uma visão geral sobre o que essa ferramenta pode fazer. Você não deve se preocupar muito com a compreensão de todos os sinos e assobios do NumPy, por enquanto é suficiente entender os conceitos gerais de trabalhar com ndarray e indexação.
Matplotlib.
Para ter uma idéia das quase infinitas capacidades desta biblioteca, basta dar uma olhada na galeria matplotlib! Nós normalmente só precisaremos das funções plot () e hist (). Outro ótimo tutorial de funções de traçado é dado neste caderno.
Código de escrita, execução e depuração.
Até agora, nos concentramos em escrever código dentro do notebook IPython. Esta é uma boa maneira para a prototipagem rápida, mas quando você precisa reutilizar a mesma funcionalidade em diferentes cadernos, o código de cópia é um hábito muito ruim. Um bom hábito seria usar módulos para reutilizar a funcionalidade. Um módulo é essencialmente um arquivo. py ou um diretório com arquivos. py contendo funções e classes. Essas funções / classes podem ser acessadas pela diretiva de importação. Uma boa explicação dos módulos pode ser encontrada nos documentos do Python. Nós estaremos olhando para escrever nossos próprios módulos na Parte 2, por enquanto é suficiente saber como reutilizar a funcionalidade dos módulos existentes. Um fluxo típico de desenvolvimento de código consiste em duas etapas:
Etapa de prototipagem: é aqui que você toma a abordagem rápida e não suja. Desenvolva de forma interativa usando IPython, IPython ou Spyder. Aqui você pode reutilizar funções de bibliotecas existentes e criar novas funcionalidades. O notebook é ideal para trabalho interativo, mas menos adequado para depuração avançada, o Spyder é excelente para depuração e o Ipython está em algum lugar intermediário. Minha própria experiência é que um depurador avançado raramente é necessário, normalmente eu posso resolver 70% dos erros, apenas olhando a mensagem de erro, outros 25% adicionando uma declaração de impressão. Há também uma maneira de iniciar um depurador do notebook. Basta digitar% qtconsole no notebook e um novo console será aberto conectado ao mesmo ipython nos bastidores. O console tem acesso a todas as variáveis ​​e também pode executar% debug, que iniciará uma sessão de depuração.
Etapa Módulo: uma vez que você esteja feliz com a funcionalidade desenvolvida em uma fase de prototipagem, você pode integrá-la em um módulo. Nesta fase, é uma boa prática adicionar alguma documentação ao código que você escreveu. A documentação do código em Python é muito fácil com docstrings. Docstrings são cadeias de texto incluídas no código que são usadas para documentar a funcionalidade. Para alguns exemplos, dê uma olhada aqui. Para uma produtividade ideal na fase do módulo, você precisa de um bom editor de código fonte. Há muitas opções lá fora. Meus favoritos (gratuitos) são (em ordem crescente de complexidade e recursos):
Notepad ++ notepad, mas muito melhor (destaque de sintaxe etc). Ideal para mudanças rápidas de código, quando você não deseja ativar um editor mais extenso. Spyder: editor leve que fecha a lacuna entre o IPython e um IDE completo (Integrated Development Environment). Especificamente visado no trabalho científico interativo. Pyscripter - IDE fácil de usar com um depurador bem integrado. Somente Windows. Pydev - IDE de qualidade profissional.
Pode demorar algum tempo para encontrar uma maneira de desenvolver um código que melhor lhe convier. Para mim, o fluxo de trabalho ideal é: Protótipo com notebook - & gt; adicionar a um módulo com PyDev ou PyScripter - & gt; use um módulo em um novo notebook. \ Mais material de leitura: capítulo 3 do livro PDA. Ok, teoria suficiente, vamos trabalhar com os módulos. Se você ainda não baixou as pastas de trabalho para esta parte, pegue-as da seção de cadernos de exemplo e veja o caderno twp_03_Working_with_modules.
Exemplo de cadernos.
Agora é a hora de usar os conceitos que você aprendeu nesta parte. Vamos pular diretamente em trabalhar com matrizes numpy e planear funções. No que diz respeito ao planejamento de você, agora só precisa de duas funções plot () e * hist () * juntamente com alguns comandos para definir os títulos e eixos de etiquetas. Existem três exemplos de cadernos para esta parte do curso:
twp_01_IPython_Notebook - mostra o caminho ao redor do notebook IPython (view online) twp_02_Leveraged_etfs - simule alavancados etfs para provar que não existe tal como aproveitamento etf decaimento (visualização online) twp_03_Working_with_modules. ipynb aprenda a trabalhar com módulos (veja online)
Obter os notebooks Apenas pegue o arquivo zip e extraie-o para sua pasta de cadernos e, em seguida, comece o notebook Jupyter para vê-los aparecer no painel de bordo.

Opções de negociação python
Se você é um comerciante ou um investidor e gostaria de adquirir um conjunto de habilidades de negociação quantitativas, você está no lugar certo.
O curso Trading With Python irá fornecer-lhe as melhores ferramentas e práticas para pesquisa de negociação quantitativa, incluindo funções e scripts escritos por comerciantes quantitativos especializados. O curso dá o máximo impacto para o seu tempo investido e dinheiro. Ele se concentra na aplicação prática da programação ao comércio e não à informática teórica. O curso irá pagar por si mesmo rapidamente, economizando 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: princípios Você vai aprender por que a Python é uma ferramenta ideal para negociação quantitativa. Começaremos pela criação de um ambiente de desenvolvimento e, em seguida, apresentaremos as bibliotecas científicas.
Parte 2: Manipulação dos 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: estratégias de pesquisa Aprenda a calcular o P & L e as métricas de desempenho acompanhantes, como Sharpe e Drawdown. Desenvolva uma estratégia de negociação e otimize seu desempenho. Múltiplos exemplos de estratégias são discutidos nesta parte.
Parte 4: Indo ao vivo! Esta parte é centrada em torno da Interactive Brokers API. Você aprenderá como obter dados em estoque em tempo real e colocar ordens ao vivo.
Muitos códigos de exemplo.
O material do curso consiste em "cadernos" que contêm texto junto com um código interativo como este. Você poderá aprender interagindo com o código e modificando-o para seu próprio gosto. Será um excelente 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 precisa escrever seu próprio código de baixo nível, devido ao suporte de bibliotecas de código aberto existentes:
A biblioteca TradingWithPython combina uma grande parte da funcionalidade discutida neste curso como uma função pronta para usar e será usada ao longo do curso. Pandas irá fornecer-lhe todo o poder de levantamento pesado necessário no trituração de dados.
Todo o código é fornecido sob a licença BSD, permitindo seu uso em aplicações comerciais.
Classificação do curso.
Um piloto do curso foi realizado na primavera de 2018, é o que os alunos conseguiram dizer:
Matej curso bem projetado e bom treinador. Definitivamente valeu o preço e meu tempo, Lave Jev, obviamente, conhecia suas coisas. A profundidade de cobertura foi perfeita. Se Jev executar algo assim novamente, serei o primeiro a se inscrever. John Phillips Seu curso realmente me fez começar a pensar em python para a análise do sistema de estoque.

QUANTLABS.
Quant Resources for Traders.
Introdução ao meu futuro e fórmulas de troca de opções do script Python.
Apresentando o meu futuro e as fórmulas de troca de opções do script Python.
Eu fiz um script de negociação Python completo que se concentrará em dezenas de fórmulas para negociação fundamental com opções e futuros. Como eu já insinuava no passado, isso agora está se tornando a crosta da minha Fase 2 para o meu negócio comercial Independente Algo no Python & # 8221; série de cursos que acabamos de começar na semana passada.
Este script Python será disponibilizado para todos os meus membros Quant Elite imediatamente.
Use a CFTC para obter dados históricos futuros e comprometer a negociação aberta.
Por último, você sabia sobre algo chamado de Relatórios de Compromisso de Negociação? Estes podem ser disponibilizados de forma gratuita para medir o interesse aberto em todas as principais commodities comercializadas em todo os EUA. Muitos comerciantes profissionais usam isso como um meio para medir a direção do mercado todas as terças-feiras, quando esses relatórios são divulgados. Além disso, espero ver isso na minha Fase 3 no uso do Forex para medir as condições macroeconômicas do governo.
Lá você vai, outro tidbit de troca de bens onde eu tento ajudá-lo a ser bem sucedido em sua negociação. Quero dizer, sério, eu faço isso agora quase duas vezes por semana VIVO agora para os meus membros Quant Elite e outros membros do grupo Meetup.
Ouça todas as suas opções de preços para meus cursos que recentemente acessaram todos os itens acima.
Obrigatório para ser um & # 8216; Quant Elite Member & # 8217; para acesso a todos os itens acima.
OBSERVAÇÃO Eu agora posto minhas ALERTAS DE NEGOCIAÇÃO na minha conta pessoal de FACEBOOK e TWITTER. Não se preocupe porque não publico vídeos de gato estúpidos ou o que eu como!

DataNitro.
Se você acha que o Facebook voltará para US $ 38 no próximo verão, você pode investir US $ 10.000 agora e ganhar US $ 9.000 em 6 meses. Ou você pode colocar os mesmos $ 10.000 em opções do Facebook e fazer US $ 90.000 - um retorno de 900%. [1]
Por outro lado, se o estoque cai para US $ 15, você só perderá algum dinheiro com um estoque. Se você comprar opções, você perderá tudo - na verdade, você pode perder tudo, mesmo que o estoque suba, mas não o suficiente.
Ao colocar algum dinheiro em opções, você pode perceber os ganhos (ou perdas) de investir uma soma muito maior em ações. Você também pode usar opções para negociar a volatilidade: se você acha que um estoque está prestes a ter um grande movimento, mas você não sabe se ele estará para cima ou para baixo, você pode ganhar dinheiro comprando opções . [2]
Como as opções funcionam?
Fundamentos das opções.
Existem dois tipos de opções: chamadas e colocações. Uma chamada permite que você compre uma garantia em ou antes de uma data a um preço fixo (chamado de preço de exercício). É chamado de uma opção porque você não está obrigado a comprar a segurança - você pode usar, ou exercer, a opção a seu critério. [3]
Por exemplo, se você comprar uma opção de chamada com uma greve de 50, não fará nada se o estoque for igual ou inferior a US $ 50 quando o contrato expirar, US $ 5 se ele for $ 55, US $ 10 a US $ 60 e assim em. Essas opções são chamadas de 50 chamadas, e sua recompensa parece assim:
(Você pode acompanhar esta publicação no Excel com o script Options_Intro, disponível aqui ou no Github. Você precisará instalar DataNitro, que permite executar scripts Python no Excel.)
Uma peça permite que você venda alguma garantia em ou antes de uma determinada data a um preço de exercício. Um 50-put permite vender uma segurança em US $ 50, então a recompensa por um 50-put parece assim:
Você não pode perder dinheiro apenas por possuir uma opção. Se você tem uma chamada de 50, mas o estoque subjacente é negociado em US $ 40, você pode comprar o estoque por US $ 40 no mercado (ou não) em vez de exercer o contrato. Isso significa que a pessoa na outra extremidade do contrato não pode ganhar dinheiro. Alguém que vende, ou escreve, um 50-call tem uma recompensa que se parece com isto:
Por este motivo, as opções possuem um preço associado, chamado premium. Quando você compra uma opção, arrisca o valor do prêmio - você não recuperará se a opção acabar sem valor. Nós discutiremos como encontrar preços para uma opção na parte 2 desta postagem.
Estratégias de opção.
Ao combinar diferentes opções, você pode ganhar dinheiro em uma variedade de situações diferentes enquanto gerencia seu risco.
Por exemplo, como você usa opções para negociar com base na volatilidade de um estoque? Deixe-nos dizer que um estoque está sendo comercializado em 50. Aqui está o gráfico de recompensa para um 50-put com 50-call:
Isso ganhará dinheiro se o estoque se mover de 50 - independentemente de ele se mover para cima ou para baixo. Comprar uma ligação e colocar na mesma greve é ​​chamado de estrondo. Como eles garantem lucro, as estradas tendem a ser caras. Se você acha que um movimento vai ser muito grande, em vez de um estrondo, você pode combinar uma chamada e colocar em ataques diferentes para um estrangulamento, o que será mais barato. Por exemplo, aqui é o retorno para um 60-call e 40-put strangle:
Existem muitas maneiras de combinar opções para diferentes perspectivas de estoque. Aqui estão alguns comuns, não contabilizando o custo da opção. Tente descobrir quando eles são usados ​​e como fazê-los:
Você também pode usar opções junto com a segurança subjacente. Por exemplo, você pode escrever chamadas contra um estoque que você possui - isso é chamado de uma chamada coberta. Se o stock não se mover, você o manterá e a opção premium no topo; se ele se mover substancialmente, você manterá o prémio e ganhará dinheiro vendendo o estoque por mais do que você o comprou.
Aqui é a recompensa por um estoque que você compra às 50 e vende 55 chamadas:
Você pode notar que isso parece semelhante ao retorno de um 55-put. Nós usaremos esse fato na próxima vez para opções de preços, e analisaremos o impacto do tempo e da volatilidade das ações no preço da opção.

No comments:

Post a Comment