最近在做股票分析系統(tǒng),數(shù)據(jù)獲取源頭成了一大問(wèn)題,經(jīng)過(guò)仔細(xì)的研究發(fā)現(xiàn)了很多獲取辦法,這里整理一下,方便后來(lái)者使用。 獲取股票數(shù)據(jù)的源頭主要有:數(shù)據(jù)超市、雅虎、新浪、Google、和訊、搜狐、ChinaStockWebService、東方財(cái)富客戶端、證券之星、網(wǎng)易財(cái)經(jīng)。 數(shù)據(jù)超市2016年5月6日更新。根據(jù)最近頻繁出現(xiàn)的數(shù)據(jù)超市,可以無(wú)限制獲取相關(guān)數(shù)據(jù),而不再需要使用爬蟲等方式獲取,這樣不僅節(jié)省了極大資源,也有利于遍歷數(shù)據(jù)。 具體的方法不再贅述,列出來(lái)相關(guān)網(wǎng)站清單,開發(fā)者可自行到這些網(wǎng)站查詢調(diào)用方法。 聚合數(shù)據(jù) https://www./ 百度API數(shù)據(jù) http://apistore.baidu.com/ 發(fā)源地 http://www./ 筆者這里推薦使用聚合數(shù)據(jù),其次配合百度API使用即可。 雅虎缺點(diǎn):某些美國(guó)節(jié)假日數(shù)據(jù)會(huì)短缺;調(diào)用次數(shù)不能超過(guò)每分鐘200次,否則會(huì)被警告并封鎖IP地址;自定義列獲取方法只能獲取美股數(shù)據(jù)。 優(yōu)點(diǎn):數(shù)據(jù)最標(biāo)準(zhǔn)化,可以獲取其他國(guó)家市場(chǎng)數(shù)據(jù);返回?cái)?shù)據(jù)類型可自定義組合。 方法1:http://table.finance.yahoo.com/table.csv?s=股票代碼返回結(jié)果:CSV格式的文件,返回列依次是“日期、開盤價(jià)、最高價(jià)、最低價(jià)、收盤價(jià)、成交量、復(fù)權(quán)價(jià)”。 其股票代碼需要在末尾標(biāo)記所屬市場(chǎng),如上證指數(shù)股票代碼為600000.ss、深圳成指為399001.sz。 方法2:http://finance.yahoo.com/d/quotes.csv?s=股票代碼&f=[自定義列]返回結(jié)果:CSV格式的文件,最后一個(gè)交易日的數(shù)據(jù),列根據(jù)設(shè)定的自定義列返回。 例如:http://finance.yahoo.com/d/quotes.csv?s=TWTR&f=nt1,返回TWTR股票的名稱和最后交易時(shí)間。 方法3:http://quote.yahoo.com/d/quotes.csv?s=股票代碼&f=[自定義列]和方法2類似。 自定義列
市場(chǎng)代碼及說(shuō)明 ChinaStockWebService缺點(diǎn):不穩(wěn)定,經(jīng)常出現(xiàn)維護(hù)停止服務(wù);只能獲取當(dāng)前行情和歷史走勢(shì)圖。 優(yōu)點(diǎn):國(guó)內(nèi)數(shù)據(jù)提供商,以XML響應(yīng),速度較快。 方法參考:http://www./WebServices/ChinaStockWebService.asmx
東方財(cái)富客戶端缺點(diǎn):手動(dòng)操作導(dǎo)出;沒(méi)有歷史數(shù)據(jù)。 優(yōu)點(diǎn):數(shù)據(jù)全面,速度較快。 方法:通過(guò)東方財(cái)富網(wǎng)客戶端自帶的功能,導(dǎo)出數(shù)據(jù)。 相對(duì)于其他獲取方式,這種獲取速度非??欤鲥e(cuò)率非常低,而且數(shù)據(jù)非常全面,如果定期整理可以作為非常有效的數(shù)據(jù)使用。
新浪缺點(diǎn):歷史股價(jià)數(shù)據(jù)不夠完整,只能獲取最近1023個(gè)數(shù)據(jù)節(jié)點(diǎn)。 優(yōu)點(diǎn):速度非???;可以獲取行情圖片;返回JSON,容易處理;可以獲取歷史的分價(jià)圖數(shù)據(jù)和分時(shí)買賣交易列。 方法1:HTTP://HQ.SINAJS.CN/LIST=[股票代碼]返回結(jié)果:JSON實(shí)時(shí)數(shù)據(jù),以逗號(hào)隔開相關(guān)數(shù)據(jù),數(shù)據(jù)依次是“股票名稱、今日開盤價(jià)、昨日收盤價(jià)、當(dāng)前價(jià)格、今日最高價(jià)、今日最低價(jià)、競(jìng)買價(jià)、競(jìng)賣價(jià)、成交股數(shù)、成交金額、買1手、買1報(bào)價(jià)、買2手、買2報(bào)價(jià)、…、買5報(bào)價(jià)、…、賣5報(bào)價(jià)、日期、時(shí)間”。 獲取當(dāng)前的股票行情,如http://hq./list=sh601006,注意新浪區(qū)分滬深是以sh和sz區(qū)分。 方法2:獲取各個(gè)時(shí)間段行情圖。查看日K線圖:http://image./newchart/daily/n/sh601006.gif分時(shí)線的查詢:http://image./newchart/min/n/sh000001.gif日K線查詢:http://image./newchart/daily/n/sh000001.gif周K線查詢:http://image./newchart/weekly/n/sh000001.gif月K線查詢:http://image./newchart/monthly/n/sh000001.gif 方法3:http://money.finance.sina.com.cn/quotes_service/api/json_v2.PHP/CN_MarketData.getKLineData?symbol=[市場(chǎng)][股票代碼]&scale=[周期]&ma=no&datalen=[長(zhǎng)度] 返回結(jié)果:獲取5、10、30、60分鐘JSON數(shù)據(jù);day日期、open開盤價(jià)、high最高價(jià)、low最低價(jià)、close收盤價(jià)、volume成交量;向前復(fù)權(quán)的數(shù)據(jù)。 注意,最多只能獲取最近的1023個(gè)數(shù)據(jù)節(jié)點(diǎn)。 例如,http://money.finance.sina.com.cn/quotes_service/api/json_v2.php/CN_MarketData.getKLineData?symbol=sz002095&scale=60&ma=no&datalen=1023,獲取深圳市場(chǎng)002095股票的60分鐘數(shù)據(jù),獲取最近的1023個(gè)節(jié)點(diǎn)。 方法4:http://finance.sina.com.cn/realstock/company/[市場(chǎng)][股票代碼]/[復(fù)權(quán)].js?d=[日期] [復(fù)權(quán)]:qianfuquan-前復(fù)權(quán);houfuquan-后復(fù)權(quán)。 返回結(jié)果:股票日期的股價(jià)JSON數(shù)據(jù)。 例如,http://finance.sina.com.cn/realstock/company/sz002095/qianfuquan.js?d=2015-06-16,獲取深圳市場(chǎng)002095股票的前復(fù)權(quán)2015-06-16的數(shù)據(jù)。 注意,無(wú)法獲取未復(fù)權(quán)的數(shù)據(jù)。 注意,需要對(duì)返回?cái)?shù)據(jù)進(jìn)行處理才能使用,新浪會(huì)在末尾加入注釋語(yǔ)句,打亂日期數(shù)據(jù),key值需要自行加入雙引號(hào),否則無(wú)法解析JSON。 注意,由于新浪的周線和月線數(shù)據(jù),是以股票日線所有數(shù)據(jù)直接計(jì)算得到的,所以無(wú)法直接通過(guò)API獲取周線和月線數(shù)據(jù),需要自行處理。 方法5:http://market.finance.sina.com.cn/downxls.php?date=[日期]&symbol=[市場(chǎng)][股票代碼] 返回?cái)?shù)據(jù):XLS文件;股票歷史成交明細(xì)。 例如,http://market.finance.sina.com.cn/downxls.php?date=2015-06-15&symbol=sz002095,獲取2015-06-15日期的深圳市長(zhǎng)002095數(shù)據(jù)。 方法6:http://market.finance.sina.com.cn/pricehis.php?symbol=[市場(chǎng)][股票代碼]&startdate=[開始日期]&enddate=[結(jié)束日期] 返回?cái)?shù)據(jù):HTML文本;指定日期范圍內(nèi)的股票分價(jià)表。 例如,http://market.finance.sina.com.cn/pricehis.php?symbol=sh600900&startdate=2011-08-17&enddate=2011-08-19,獲取上證600900股票2011-08-17到2011-08-19日期的分價(jià)數(shù)據(jù)。
和訊(待續(xù))
Google數(shù)據(jù)其實(shí)是從新浪獲取的,所以可以優(yōu)先考慮從新浪獲取,如果喜歡google的API,再考慮。 優(yōu)點(diǎn):數(shù)據(jù)可靠。 缺點(diǎn):歷史數(shù)據(jù)只能通過(guò)分解HTML頁(yè)面獲??;國(guó)外數(shù)據(jù)源速度慢。 方法1:從股票歷史數(shù)據(jù)中獲取相關(guān)數(shù)據(jù)。 方法2:https://www./finance/getprices?q=[股票代碼]&x=[市場(chǎng)]&i=[間隔]&p=[周期] 例如,https://www./finance/getprices?q=002673&x=SHE&i=1800&p=30d,意思就是獲取上證002673的股票,周期為30天,間隔1800。
搜狐優(yōu)點(diǎn):JSON數(shù)據(jù)結(jié)果容易處理;獲取速度快。 缺點(diǎn):每次只能獲取100個(gè)節(jié)點(diǎn)的數(shù)據(jù);API經(jīng)常變動(dòng)。 方法1:http://q.stock.sohu.com/hisHq?code=[股票市場(chǎng)和代碼]8&start=[開始日期]&end=[結(jié)束日期]&stat=1&order=D&period=d&callback=historySearchHandler&rt=jsonp 返回結(jié)果:JSON;時(shí)間段內(nèi)的100個(gè)數(shù)據(jù)節(jié)點(diǎn)。 例如,http://q.stock.sohu.com/hisHq?code=cn_300228&start=20130930&end=20131231&stat=1&order=D&period=d&callback=historySearchHandler&rt=jsonp,返回30022股票20130930到20131231時(shí)間段內(nèi)的日線數(shù)據(jù)。
證券之星缺點(diǎn):只能獲取80條數(shù)據(jù)。 優(yōu)點(diǎn):國(guó)內(nèi)速度快;JSON返回容易解析。 方法1:HTTP://CQ.SSAJAX.CN/INTERACT/GETTRADEDATA.ASHX?PIC=QLPIC_[股票代碼]_[市場(chǎng)]_[周期]其中股票代碼如000001;市場(chǎng)1表示滬,2表示深;周期6表示日,7表示周,8表示月。如:http://cq./interact/getTradedata.ashx?pic=qlpic_000001_1_6,獲取上證指數(shù)的日線行情數(shù)據(jù)。 返回結(jié)果:JSON數(shù)據(jù)。 方法2:HTTP://CQ.SSAJAX.CN/INTERACT/GETTRADEDATA.ASHX?PIC=QMPIC_600308_1_6_N80
網(wǎng)易財(cái)經(jīng)優(yōu)點(diǎn):速度快;JSON容易處理。 缺點(diǎn):不能獲取分鐘線數(shù)據(jù)。 方法1:http://ney.126.NET/data/[滬深拼音]/time/today/[股票代碼].json 返回結(jié)果:當(dāng)日分時(shí)圖數(shù)據(jù);JSON數(shù)據(jù);分時(shí)圖獲取數(shù)據(jù)依次是count節(jié)點(diǎn)數(shù)量、symbol股票代碼、name股票名稱、data數(shù)據(jù),其中數(shù)據(jù)依次是小時(shí)分鐘時(shí)間、價(jià)格、均價(jià)、成交量。 注意,滬深拼音為簡(jiǎn)寫hs,以此可以推斷出其他市場(chǎng)也可以獲取,具體請(qǐng)自行判斷研究。 例如,http://ney.126.Net/data/hs/time/today/1399001.json,返回深證成指當(dāng)日分時(shí)圖數(shù)據(jù)。 方法2:http://ney.126.net/data/hs/time/4days/[股票代碼].json 返回結(jié)果:獲取4天分時(shí)數(shù)據(jù);和上述分時(shí)圖相似,但數(shù)據(jù)是連續(xù)4天的數(shù)據(jù),不包括當(dāng)天的數(shù)據(jù)。 方法3:http://ney.126.net/data/[滬深拼音]/[是否復(fù)權(quán)]/day/history/[年份]/[股票代碼].json 返回結(jié)果:獲取日線數(shù)據(jù)。 其中,是否復(fù)權(quán),不復(fù)權(quán)為kline,復(fù)權(quán)為klinederc。 例如,http://ney.126.net/data/hs/kline/day/history/2015/1399001.json,獲取深證成指2015年所有日線數(shù)據(jù)。 方法4:http://ney.126.net/data/[滬深拼音]/[是否復(fù)權(quán)]/[周期]/times/[股票代碼].json 返回結(jié)果:獲取日線所有時(shí)間節(jié)點(diǎn)和收盤價(jià)。 其中,[是否復(fù)權(quán)],不復(fù)權(quán)為kline,復(fù)權(quán)為klinederc。 其中,[周期],day為日數(shù)據(jù),week周數(shù)據(jù),month月數(shù)據(jù)。 例如,http://ney.126.net/data/hs/kline/day/times/1399001.json,獲取深證成指所有時(shí)間節(jié)點(diǎn)數(shù)據(jù)。 方法5:http://quotes.money.163.com/cjmx/[今年年份]/[日期]/[股票代碼].xls 返回結(jié)果:獲取歷史成交明細(xì);XLS文件。 注意,只能獲取5日內(nèi)的數(shù)據(jù),再之前的數(shù)據(jù)不會(huì)存在。 注意,該方法為網(wǎng)易公開獲取數(shù)據(jù)方法,推薦使用。 例如,http://quotes.money.163.com/cjmx/2015/20150611/0601857.xls,獲取0601857股票的2015年6月11日歷史成交明細(xì)XLS文件。 方法6:http://quotes.money.163.com/service/chddata.html?code=[股票代碼]&start=[開始日期]&end=[結(jié)束日期]&fields=[自定義列] 返回結(jié)果:歷史股價(jià)及相關(guān)情況;CSV文件。 注意,該方法為網(wǎng)易公開方法,推薦使用。 其中,自定義列可定義TCLOSE收盤價(jià) ;HIGH最高價(jià);LOW最低價(jià);TOPEN開盤價(jià);LCLOSE前收盤價(jià);CHG漲跌額;PCHG漲跌幅;TURNOVER換手率;VOTURNOVER成交量;VATURNOVER成交金額;TCAP總市值;MCAP流通市值這些值。 例如,http://quotes.money.163.com/service/chddata.html?code=0601857&start=20071105&end=20150618&fields=TCLOSE;HIGH;LOW;TOPEN;LCLOSE;CHG;PCHG;TURNOVER;VOTURNOVER;VATURNOVER;TCAP;MCAP,獲取0601857從2007-11-05到2015-06-18區(qū)間的數(shù)據(jù)。
參考文獻(xiàn)http://www./yahoo_finance/ http://blog.sina.com.cn/s/blog_54fae2350101c7ye.html http://blog.sina.com.cn/s/blog_7ed3ed3d0102v5y7.html http://blog.sina.com.cn/s/articlelist_2127818045_10_1.html http://www./WebServices/ChinaStockWebService.asmx http://blog.sina.com.cn/s/blog_7ed3ed3d010146ti.html http://www.cnblogs.com/me115/archive/2011/05/09/2040826.html |
|