2012-11-19 150 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