Opções de ações python


python4econ.
Python for Economists.
5 de fevereiro de 2018.
Criando um banco de dados histórico de opções de estoque.
Descubra como obter dados de opções dentro do python Escolha um formato de armazenamento de dados Automatize a coleta de dados diários.
Obtendo dados de opções em python.
Durante o verão, tive tempo livre e juntei-me ao meu pai para criar um modelo de investimento. Embora seja um modelo muito simples, este post é sobre a construção de um banco de dados, então não vou entrar em detalhes aqui. Basta dizer que eu precisava encontrar uma maneira de obter dados de opções do yahoo! Finança. Este foi um desafio único porque, ao contrário dos dados de capital ou dados de outras fontes como o FRED, as opções de dados não possuem um botão conveniente "download para csv" em qualquer lugar do site.
Escolhendo o formato do arquivo.
Ao escolher um formato de arquivo, eu tinha duas considerações principais: tamanho do arquivo e velocidade na qual ele pode ser escrito / lido. Para testar isso, escrevi um script simples que gerou uma matriz aleatória 4000 por 4000 numpy e funções definidas para escrever e ler esses dados em diferentes formatos de arquivo. Os formatos com os quais escolhi trabalhar foram csv, hdf5 (.h5) e MatLab (.mat). Abaixo está o script que eu usei para executar o teste:
Automatizando a recuperação de dados.
O próximo passo foi escrever o script que eu teria chamada cron. Isso aparece abaixo.
25 comentários:
Impressionante! Gostaria de fazer algo assim, já que eu também quero fazer algumas das minhas estratégias.
Estou no processo de criação de um banco de dados de derivados grande. A análise de weblinks está tudo pronto. Onde eu estou um pouco perdido é como criar o banco de dados de todas as opções individuais de tal forma que permite cálculos como SKEW, etc, sem escolher manualmente as opções individuais de cada vez para fazer o cálculo. Como fazer essas referências genéricas. Estou um pouco perdido aqui e quer resolver isso primeiro antes de avançar com a criação de dados.
Eu acredito que a ordem correta na tupla de retorno é puts, calls = aapl. get_options_data ().
Ei Martin, você está certo. Quando eu inicialmente adicionei o código de coleta de opções para pandas, eu tinha chamadas de retorno `get_options_data` primeiro. Não tenho certeza quando / por que alguém mudou.
Eu atualizei o código na postagem para usar as colocações corretas, as chamadas solicitadas agora.
Apesar disso, seria muito útil poder baixar preços de opções. Para começar, eu estava usando o script que você forneceu acima (praticamente). Eu tenho pandas 0.13.1, mas parece completamente quebrado. Os erros ocorrem com a seguinte linha:
Hey Anonymous (desculpe, não conheça seu nome, ou se é Anonymous - isso é incrível!)
Eu consegui fazer algumas mudanças e parece que as coisas estão funcionando para mim. Não tenho certeza de como obter o código atualizado para você.
Spencer Eu sou anônimo, bem, não mais. Basicamente eu acho que o problema era apenas com o get_forward_data, então talvez o seu racional fosse que ele fosse marcado como obsoleto e não foi mantido. No entanto, acho que a função é útil e deve ser mantida.
Ei Greg, isso é ótimo. Estou feliz por ter obtido o código para trabalhar novamente e obrigado por me informar.
& lt; msg = "símbolo deve ser uma string válida"
& lt; para eu, m em enumerar (em_months):
& lt; mon = m - anos * 12.
& gt; in_years = [CUR_YEAR] * (meses + 1)
& gt; # Descobre quantos itens de in_months passam 12.
& gt; para eu no intervalo (meses):
& gt; # Altere os itens correspondentes na lista in_years.
& gt; para i no alcance (1, to_change + 1):
& lt; para eu no intervalo (meses):
& lt; se DEBUG: print & quot; Getting% s:% s /% s & quot; % (self. symbol, m2, y2)
& gt; por intervalo de meses (meses):
& lt; se frame for None:
Obrigado pelo seu excelente trabalho. Parece que está atualmente quebrado - talvez uma mudança de layout / esquema no yahoo (isto é, table_loc = 13 na chamada para _get_option_data ())?
Traceback (última chamada última):
Arquivo "/usr/share/pycharm/helpers/pydev/pydevd. py" ;, linha 1733, em.
debugger. run (setup [& # 39; file & # 39;], None, None)
Arquivo "/usr/share/pycharm/helpers/pydev/pydevd. py" ;, linha 1226, em execução.
pydev_imports. execfile (arquivo, globais, locais) # execute o script.
File & quot; /home/chris/develop/src/trading/options. py" ;, linha 5, em.
puts, calls = aapl. get_options_data (expiry = date (2018, 1, 16))
Arquivo & quot; /usr/lib/python2.7/dist-packages/pandas/io/data. py" ;, linha 630, em get_options_data.
Arquivo "/usr/lib/python2.7/dist-packages/pandas/io/data. py" ;, linha 748, em get_put_data.
retornar self._get_option_data (mês, ano, expiração, 13, & # 39; puts & # 39;)
Arquivo & quot; /usr/lib/python2.7/dist-packages/pandas/io/data. py" ;, linha 673, em _get_option_data.
IndexError: localização da tabela 13 inválida, 3 tabelas encontradas.
de pandas. io. data importar opções.
a partir da data de importação de data e hora.
puts, calls = aapl. get_options_data (expiry = date (2018, 1, 16))
Em [3]: importam pandas.
Oi, obrigado pelo comentário. Este código agora está quebrado devido a mudanças na API do Yahoo Finance. Eu acho que os desenvolvedores de pandas têm o código original que eu dei. Veja a discussão relevante aqui: github / pydata / pandas / pull / 8631.
Oi Spencer se desculpa pela questão anônima, mas,
Quando você executou este programa para cada ticker em sua lista de símbolos NASDAQ e NYSE, por quanto tempo durou o tempo de execução de uma iteração inteira?
Anônimo - não há problema.
Spencer - Eu sou muito novo para python e programação em geral, mas acho poderoso e fascinante com a pequena pesquisa / trabalho que fiz. Até agora eu coloquei um programa muito simples para fazer algo semelhante. Isto é o que eu tenho até agora:
Importar data e hora como dt.
importam pandas como pd.
importa numpy como np.
de pandas. io. data importar opções.
de pandas importam DataFrame.
importe h5py como h5.
enquanto num & lt; tickers. size:
Ainda está em estágios muito básicos, mas funciona e reúne os dados para os tickers que o contêm. Se você tiver alguma sugestão ou sugestão para melhorar o desempenho, eu sou todo ouvido. Eu sei que uma estrutura de loop pode não ser a mais eficiente, mas tudo para mim é tentativa e erro.
Eu imagino que o gargalo (parte mais lenta) deste programa está recuperando os dados da web. Usar as ferramentas de Fila e Threading na biblioteca padrão, como fiz no exemplo em que postei um link, provavelmente é a melhor maneira de acelerar essa parte.
Embora eu deva alertar que não testei esse código específico por um tempo, então pode ou não funcionar com pandas atuais.
Tenho coletado dados de opções desde janeiro. Não tenho certeza de quão confiável é o dado do Yahoo, mas não encontrei outra fonte gratuita para compará-lo.
@AnonymousMarch 18, 2018 às 5:00 da manhã.
Você pode compartilhar seus scripts de análise? Estou puxando dados de opções de barcharts, mas só oferece cerca de 1000 contratos da maioria dos líquidos. Eu preferiria coletar mais detalhes em tickers selecionados.

Wallstreet 0.1.5.
Ferramentas de estoque e opção em tempo real.
Wallstreet: ferramentas de estoque e opção em tempo real.
Wallstreet é uma biblioteca Python para monitorar e analisar dados em estoque e opções em tempo real. As cotações são fornecidas a partir da API do Google Finance. Wallstreet exige uma entrada mínima do usuário, ele usa dados disponíveis online para calcular os gregos da opção e até mesmo arranca o site do Tesouro dos EUA para obter a taxa de risco livre atual.
Dependências.
Wallstreet exige que Scipy, requests e bs4 (BeautifulSoup4) estejam instalados.

Opções de estoque python
Obter através da App Store Leia esta publicação em nosso aplicativo!
Tirando dados da opção de estoque com pandas de python - quebrou durante a noite.
Ontem à noite escrevi o seguinte.
Funcionou bem. Eu só obtive dados de 200 algo dos 400 símbolos de algo que eu tenho no arquivo, mas ele puxou os dados de opções para esses 200 algo bem.
Esta manhã, eu vou executar o código novamente (os mercados estão abertos há quase uma hora) e não recebo nada:
Então eu executo um pouco de teste:
Recebo este erro:
E este conteúdo do arquivo decapado:
Nada mudou durante a noite no meu final. A última coisa que fiz foi salvar e desligar. A primeira coisa que fiz depois de acordar foi executado novamente.

QuantStart.
Junte-se ao portal de membros privados da Quantcademy que atende à comunidade de comerciantes de varejo de varejo em rápido crescimento. Você encontrará um grupo bem informado de mentalistas quant pronto para responder suas perguntas comerciais mais importantes.
Confira meu ebook sobre o comércio de quant, onde eu ensino você como criar estratégias de negociação sistemáticas lucrativas com ferramentas Python, desde o início.
Dê uma olhada no meu novo ebook sobre estratégias de negociação avançadas usando análise de séries temporais, aprendizado de máquina e estatísticas bayesianas, com Python e R.
Por Michael Halls-Moore em 7 de setembro de 2018.
Desculpas por essa falta de atualizações, tenho ocupado trabalho em uma biblioteca de preços de opções em Python. Até agora, consegui criar o meu primeiro preço da opção Dependent Asian do caminho e, finalmente, me forneceu os resultados corretos. Não está bastante pronto para a implementação, pois precisa de otimização para executar a uma velocidade aceitável no meu servidor.
Embora o C ++ seja a linguagem predominante para preços de opções, eu decidi ver como eu poderia produzir uma biblioteca baseada em Python. Não só isso melhoraria minhas habilidades em Python, mas permitiria uma integração direta da biblioteca no site.
A biblioteca, que sou tentativamente nomeando PyQuant, é muito simples no momento. Consiste em dois componentes principais, um conjunto de soluções fechadas para chamadas / colocações de baunilha e os Digitals e um preço básico de Monte Carlo, que classifica os Double-Digitals e Power Options. Com o tempo eu vou caçar ou derivar soluções fechadas para todas as opções que eu sou capaz, mas agora estou aproveitando o desenvolvimento do solucionador de Monte Carlo.
As soluções de forma fechada dependem de duas funções estatísticas - a função de densidade de probabilidade normal e a função de distribuição normal cumulativa. Uma aproximação numérica do CNDF pode ser encontrada em [1]. Na verdade, muitas das soluções de forma fechada são dadas nesse texto, de onde eu obtive. Com o NPDF, um CNDF consegui calcular as soluções para os Chamadas e Pólos de Baunilha, bem como os gregos comuns: Delta, Gamma, Rho, Vega e Theta. Ainda estou trabalhando em soluções fechadas para as opções digitais.
As soluções baseadas em Monte Carlo funcionam de forma diferente. Existe um módulo que contém todos os objetos de pagamento para cada tipo de opção - Ligar, colocar, Encaminhar, Ligar digital etc. Outro módulo armazena objetos de opção. No caso da opção Vanilla, é necessário um prazo de validade e uma compensação. A greve é ​​encapsulada no objeto de pagamento, o que garante a rentabilidade do código para ambos os pagamentos e opções. O módulo final inclui motores de Monte Carlo que calculam uma grande variedade de evoluções do caminho de estoque (com base em Geometric Brownian Motion) e usam estes para calcular uma compensação esperada da opção. O pagamento é descontado com a taxa livre de risco e isso fornece o preço.
Nesta fase, é computacionalmente caro re-executar o premiado Monte Carlo ao mudar uma entrada. Existem algumas maneiras de otimizar isso. O primeiro é usar SciPy, uma biblioteca científica Python. Ele inclui muitas estratégias de otimização - veja este artigo no Performance Python, seu desempenho comparado ao C ++ pode apenas surpreendê-lo. O segundo é realmente escrever uma biblioteca C ++ dedicada que pode ser chamada a partir do Python. No entanto, isso é contrário à idéia de uma biblioteca de preços de derivados Python.
[1] - Joshi, M., The Concepts and Practice of Mathematical Finance, Cambridge University Press.
Apenas iniciando o comércio quantitativo?
3 razões para se inscrever para a lista de e-mails QuantStart:
1. Quant Trading Lessons.
Você terá acesso instantâneo a um curso de e-mail gratuito de 10 partes, repleto de sugestões e dicas para ajudá-lo a começar a negociação quantitativa!
2. Todo o conteúdo mais recente.
Todas as semanas, vou enviar-lhe um envoltório de todas as atividades no QuantStart para que você nunca mais perca uma postagem novamente.
Real, dicas de negociação viáveis, sem tonturas.

investindo.
831 & # 32; пользователь находится здесь.
МОДЕРАТОРЫ.
StockJock-e arichi hedgefundaspirations investingmoderator CrasyMike jperras Fletch71011 Opções Expert MasterCookSwag nows о команде модераторов & raquo;
Bem-vindo ao Reddit,
a primeira página da internet.
e inscreva-se em uma das milhares de comunidades.
Это архивированный пост. Você está interessado em иолосовать или комментировать.
Quer adicionar à discussão?
помощь правила сайта центр поддержки вики реддикет mod guidelines связаться с нами.
приложенияи инструменты Reddit para iPhone Reddit para o site móvel Android кнопки.
Использование данного сайта означает, что вы принимаете & # 32; пользовательского соглашения & # 32; и & # 32; Политика конфиденциальности. &cópia de; 2017 reddit инкорпорейтед. Все права защищены.
REDDIT e o logotipo ALIEN são marcas registradas da reddit inc.
& pi; Renderizado pelo PID 86562 em & # 32; app-295 & # 32; em 2017-12-25 15: 33: 11.643336 + 00: 00 executando o código de país a84abeb: UA.

Comments

Popular posts from this blog

Pamm forex nós

Migliore piattaforma di trading sul forex