Yahoo Finance Api Stock Options
API de Finanças Artigo por Joseph Purcell em 28 de abril de 2012. Última modificação em 26 de agosto de 2013 Existem duas principais APIs de finanças gratuitas que eu conheço: Yahoo e Google. Eu prefiro o Yahoos Finance API sobre Googles simplesmente porque oferece mais dados. Provavelmente, também pode ser dito que é mais fácil de usar. No entanto, não sei quais são os termos de uso das APIs. Existem duas opções que eu conheço para as APIs Yahoos Finance: CSV e YQL. A API CSV é excelente para obter dados históricos e o YQL é excelente para obter os dados mais recentes em massa. Como mencionarei mais adiante, existem algumas outras supostas APIs do Yahoo que não tenho testado. Yahoo CSV Finance API Como Vitalyson explicou em um comentário StackOverflow. Você pode enviar um pedido para a API Yahoos CSV e obter dados históricos. Por exemplo, no entanto, existem muitos outros parâmetros, como o intervalo de datas, que você pode passar como explica gummy-stuff. org. Yahoo YQL Finance API Você pode enviar uma consulta YQL para a API Yahoos que retorna um documento XML. Uma consulta de consulta de exemplo parece: eles também mostram como fazer isso em uma publicação no blog do YQL. Outras APIs do Yahoo Finance Como mencionado, existem várias outras APIs de finanças alegadas que o Yahoo tem, mas não as testei: bibliotecas de API do Yahoo Finance Exemplo de AC para YQL Um exemplo de PHP para YQL Se você está escrevendo PHP, aqui está um exemplo de trecho: E Em seguida, faça uma solicitação HTTP para esse URL em seu código. YahooFinanceAPI (para PHP) Eu escrevi um simples script do YahooFinanceAPI no GitHub que suporta o YQL. Eu não contribuí com isso em muito tempo, mas agradeço a todos os colaboradores. Aqui está um exemplo de como usá-lo: Yahoo Managed (para. NET). Existe um programa aparentemente bom para o Yahoos webservice em geral, que inclui as APIs de finanças no Google Code, chamado Yahoo Managed. Também pode ser usado para exemplos de código. Google Finance API Oficialmente, parece que o Google interrompeu sua API Financeira. No entanto, eles têm suporte para dados do Google Finance em seus Google Docs usando a função GoogleFinance () (exemplo). Além disso, o Digitalpbk descreve uma API que parece funcionar ainda (exemplo). Além disso, parece que a API do iGoogle ainda funciona também (exemplo). Outras APIs de Finanças Eu não tentei nada disso: Artigos mais antigos Copyright copy 2016 Joseph D. PurcellHá uma maneira pouco conhecida de obter informações da cadeia de opções do Google, isso mostrará como it8217s foi feito, além de demonstrar como usá-lo usando C. (Fácil em qualquer idioma, desde que tenha sido baseado em RESTO, por isso, se o seu desenvolvedor não possuir um don8217t deixe isso para você.) ISTO NÃO É UMA API OFICIAL. A GOOGLE NÃO SUPORTE ESTE PARA QUALQUER COISA, MAS SEUS PRÓPRIOS USOS INTERNOS E PODEM MUDAR EM QUALQUER MOMENTO. USE ISSO A SEU PRÓPRIO RISCO. Acessando a API de opções de estoque do Google baseada em REST, o Google lista opções de ações no site de finanças. Um exemplo disso é esse para a cadeia de opções AAPL8217s. Com uma modificação muito pequena, você pode obter os dados em formato JSON. (Não é exatamente JSON, abordarei isso abaixo) A diferença entre o site e a API é a adição de uma seqüência de consulta simples 8220outputjson8221. Assim, o URL se torna: 8220google / finance / optionchainqAAPLampoutputjson8221 Compreendendo a API do Google Chamando 8220google / finanças / optionchainqAAPLampoutputjson8221 irá devolver vários dados: O próximo prazo de validade Uma lista de todas as datas de validade disponíveis para o símbolo Uma lista de todos os Coloca uma lista de todas as chamadas O preço do estoque subjacente (não o preço da opção.) Aqui está um trecho dos dados de retorno: obviamente, há mais datas de caducidade nas opções AAPL e mais chamadas mais eu didn8217t mostro as chamadas, mas Eu acho que isso deve dar uma idéia da estrutura geral. Isso funciona apenas para o último prazo de validade. Todas as opções retornadas serão somente para esse período de validade. Você pode selecionar uma expiração diferente com bastante facilidade: você notará a adição de três novas cadeias de consulta, isto indica o ano, mês e dia da expiração. Eu acho melhor chamar o URL anterior para obter a lista de datas de validade válidas, então use essa para obter todas as greves por um prazo de validade específico. Mas os resultados não são válidos JSON Infelizmente eles não são. Se você olhar para a amostra colada acima, você notará que tanto o nome como o valor devem ser entre citações, mas não são. Na verdade, nenhum dos nomes está entre aspas e apenas alguns dos valores são. Para corrigir isso, executo-o através de uma expressão regular para cercar os nomes e valores entre aspas antes de tentar fazer um objeto fora do JSON. É aí que isso difere de um idioma para o próximo, mas para C eu faço o seguinte: Usando esta opção chain API em seus programas Isso pressupõe que você esteja usando o. NET 4.5 ou superior. Ele funcionará com outras versões, mas talvez seja necessário remover a lógica 8220async / await8221, talvez o Thread. Run também. Em C it8217s simples de consumir esta API e obter objetos funcionais a partir dele. Primeiro, comecemos com os arquivos de definição necessários para transformar esse quase-JSON em objetos. NET. Dica Pro: Se você quer saber se eu digitei tudo na resposta, não é. O Visual Studio possui uma ótima função pouco conhecida. Copie o JSON da chamada google api e, em Visual Studio, goto Edit-gtPaste Special-gtPaste JSON como Classes. E faz o trabalho para você (eu fiz um ajuste tajá-lo um pouco, mas deixe VS fazer mapeamento aborrecido para você.) Então, uma vez que temos a estrutura básica de como armazenar essas chamadas conforme descrito acima, precisamos obter os dados e corrigi-los. Problemas da JSON. Nisto criamos um WebClient para buscar os dados. Eu faço isso em um segmento separado, não é necessário em todos os casos, mas se você quiser conectar isso a uma UI, isso impedirá que sua UI seja bloqueada enquanto isso está recebendo os dados. Em seguida, ele chama um dos dois URL8217s mostrados anteriormente, tudo dependendo se o dia de expiração, mês e ano tiverem sido passado. O JSON é limpo, então ele o converte em um objeto. Essa chamada para. FromJsonlt8230gt () é uma função de extensão que eu escrevi que I8217m usando. It8217s usando a análise JSON da montagem System. Runtime. Serialization. Eu uso isso em todo o lugar na maioria dos meus projetos, e também depois usarei uma função de extensão. Toltgt (), então eu também listarei aqui. Tenha em mente que você pode usar qualquer analisador JSON, como JSON. NET, esta é apenas minha preferência. Adicionando uma UI nos Dados da Cadeia de Opções, de modo a abranger a obtenção dos dados. Se você quiser fazer uma tabela de cadeias de opções com chamadas de um lado, ataca no meio e put8217s, por outro lado, é fácil de usar usando WPF e o Google Option API Code que postei no GitHub inclui apenas um exemplo. Sim, eu sei que isso é digno, mas queria exibir o conceito sem tornar o código mais difícil, adicionando mais funcionalidade ou estilo, então, necessário. Para obter este layout, criei uma nova classe chamada OptionPair. It8217s utilizado apenas pela UI para exibir essas linhas. Cada linha é um objeto OptionPair, que é uma colocação, chamada e greve. Eu não usei o MVVM para isso, novamente eu queria manter isso simples, então é uma única janela do WPF com algum código para trás. Aqui está a listagem de código completo para a janela: a maioria deve ser bastante fácil de entender. Quando um usuário insere um ticker de ações e clica em um botão, ele obtém os dados iniciais que são para a expiração mais recente para essa opção. As datas de validade que são retornadas são então colocadas em uma coleção a ser exibida em uma caixa suspensa para que o usuário escolha uma diferente. Os objetos OptionPair são criados e exibidos na grade. Se o usuário selecionar uma nova data de validade, então o método FetchData () é chamado que recebe novos dados e preenche a grade. Aqui está o XAML Nenhuma surpresa aqui apenas vincula os objetos. A única coisa a observar é o ExpirationConverter que leva o ano, o mês, o formato do dia, o Google retorna e o muda para algo melhor para exibição: espero que você tenha gostado deste olhar sobre esta API de cadeia de opções útil e interessante do Google. Tenha em mente que isso não é suportado pelo Google, então eu não poderia sugerir usá-lo em um aplicativo de nível de produção, mas é interessante jogar. Se você quiser expandir isso para adicionar gregos como delta, gamma, vega etc. Eu tenho outro artigo que você pode querer dar uma olhada em: Vanilla Option Math Compartilhe isto: Postado: 10 de dezembro de 2015 12:02 Randy Guidry Oi. Estou tendo problemas para usar a chamada google / finance / optionchainqAAPLampoutputjson com javascript. Você pode me enviar um pequeno fragmento de código javascript para fazer a chamada e exibir parte do resultado, diga apenas o primeiro item, expira? Agradeço antecipadamente, Randy Postado: 16 de dezembro de 2015 21:09 Kelly Elias Desculpe, eu não tenho nenhum Javascript para Dê-lhe, principalmente, C. C. O meu Javascript é fraco, pois tem sido um longo período de tempo desde que eu realmente fiz muito com isso. Postado: 26 de agosto de 2016 23:40 Randy. Ainda preciso de ajuda sobre isso, posso dar-lhe algumas dicas. Postado: 28 de março de 2016 10:51 O que é sobre obter dados para várias empresas de uma vez. Isso parece ter um utilitário muito limitado se você deve enviar spam seu servidor com 1 pedido por empresa. Não acabou obtendo o seu IP bloqueado. Publicado: 15 de julho de 2016 10:37 Oi: Estou usando seu programa Opções de dados da cadeia com GUI, compila bem, mas quando vejo os valores estão completos errado No site da Cadeia de opções do Google, por exemplo, hoje, 15 a 20 de julho, consulta a cadeia de opções para a AAPL E eu selecionei a data de validade de 26 a 20 de agosto e eu vejo o preço de exercício 100 para um PUT no último preço 3.70, e no seu programa eu recebo Last Price 1.20. Por que os valores de PUTs estão errados. Obrigado Tony.
Comments
Post a Comment