2012-11-19 149 views
45

我正在为自己构建一个REST风格的Web应用程序,我有兴趣获得免费的JSON格式的股票数据。我打算为客户端使用JavaScript。是否有免费的股票API,我可以利用,那返回XML和确实不是使用C#。JSON格式的股票报价API(现场或历史)

编辑:我发现这个JSON查询...它会做这项工作吗?

http://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20yahoo.finance.quotes%20where%20symbol%20in%20(%22YHOO%22%2C%22AAPL%22%2C%22GOOG%22%2C%22MSFT%22)%0A%09%09&env=http%3A%2F%2Fdatatables.org%2Falltables.env&format=json 

回答

50

当然,如果带回来,并解析为JSON使用JavaScript,你就可以做到以下几点,拔出你都想得到一切恢复股票:

var callback = function(_return /* The json returned for yahooapis */) { 
    var totalReturned = _return.query.count; 
    //OR: var totalReturned = _return.query.results.quote.length; 
    for (var i = 0; i < totalReturned; ++i) { 
     var stock = _return.query.results.quote[i]; 
     var symbol = stock.symbol; 
     var percent_change = stock.Change_PercentChange; 
     var changeRealTime = stock.ChangeRealtime; 
     ... 
    } 
} 

-

var url = 'http://query.yahooapis.com/v1/public/yql'; 
var startDate = '2012-01-01'; 
var endDate = '2012-01-08'; 
var data = encodeURIComponent('select * from yahoo.finance.historicaldata where symbol in ("YHOO","AAPL","GOOG","MSFT") and startDate = "' + startDate + '" and endDate = "' + endDate + '"'); 
$.getJSON(url, 'q=' + data + "&env=http%3A%2F%2Fdatatables.org%2Falltables.env&format=json", callback); 

-

YQL Demo

(添加和startDate = "" and endDate = ""与格式YYYY-MM-DD的日期查询到你想要的东西,也一定要选择JSON作为输出格式)

-

一些附加从注释信息:

  • 在查询上面的例子是从yahoo.finance.historicaldata历史数据,你也可以查询实时yahoo.finance.quotes - 滞后约15分钟)
  • 如果你想真正的真实时间信息查询web服务:例如finance.yahoo.com/webservice/v1/symbols/YHOO/quote?format=json(添加&view=detail到查询,如果你想要更详细的输出)
+0

0123,也是,我在我的问题中的查询...有没有办法修改它以编程方式查找历史数据? – bouncingHippo

+0

当然,但它看起来像你可能不得不改变你的查询只是一点点。我将编辑我的答案以显示更多内容,以jQuery getJSON函数为例。 – crowebird

+0

就像后续一样,其中一些变化是您从(yahoo.finance.historicaldata)获取数据并添加startDate和endDate – crowebird

16

作为软件开发人员,我会建议Alpha Vantage。他们提供实时和历史股票报价(每日,每周,每月等)RESTful JSON API

这是完全免费的无限API调用。只要股票在主要证券交易所上市,它就是实时的。

Here是MSFT每日价格和交易量的API调用示例,丰富了分拆/股息调整。最新的数据点是当前交易日的实时信息。

他们还根据他们的文档提供市场数据之上的技术分析API。

+6

这似乎太好了,以至于不真实......他们如何赚钱? –

+4

我其实在想着同样的事情......这似乎太好了,以至于不真实。我已经使用了API几天了,并且已经开始怀疑这个服务是否会在一夜之间消失,让我的应用程序在水中死去。你甚至没有注册一个帐户......你只是收到一个4字符的'钥匙',你负责持有。诚然,他们确实要求你限制电话低于100分钟,以帮助他们为每个人提供最优质的服务,但仍然如此。所有人都说,这是一个非常棒的API,特别是考虑到它是免费的。 – purdoo

+1

@ steve-carino很好找!我有我的授权码。 Alpha Vantage看起来像赢家。奖金积分为他们很好的文档 – Theo