获取A股行情数据方法
做股票量化分析,獲取股票行情數據是第一步,結合網上的信息,和我用過的一些東西,做個總結。以后有新信息,逐步完善。
目錄
一、本地
3.baostock,
4.jqdatasdk、-聚寬的本地版
5.OpenDataTools
6、pandas-datareader庫
二、在線量化平臺
1.優礦
2.聚寬
3.mindgo-同花順量化平臺
4、rqdatac-米筐,
5.其它
三、通達信等行情軟件
?
四、股票網站行情接口
1 雪球接口
2 網易接口
3 和訊接口
4 騰訊接口
5 新浪接口
6.從雅虎財經上爬
7.愛搞搞
五、一些收費的信息
六、其它
?
一、本地
1、tushare庫
網址:https://tushare.pro/
獲取上證指數1:ts-pro
import tushare as ts ts.set_token('********') pro = ts.pro_api() df = pro.index_daily(ts_code='000001.SH',start_date="20190101") df = df.sort_values(by='trade_date',ascending=True) df = df.reset_index(drop=True)?? df.rename(columns={'vol':'volume'},?inplace = True)pro.index_daily返回:ts_code、trade_date、close、open、high、low、pre_close、vol、amount等
獲取上證指數2:ts-ifeng
import tushare as ts dfi=ts.get_hist_data('sh') ? #獲取上證指數k線: dfi.sort_index(inplace=True) ? ? ?? dfi = dfi.reset_index(drop=False)? dfi.rename(columns={'date':'trade_date'}, inplace = True)ts.get_hist_data返回:'date', 'open', 'high', 'close', 'low', 'volume', 等,無amount
獲取上證指數3:ts-騰訊gtimg.cn
import tushare as ts def test_ts2():dfi=ts.get_k_data('sh') ? #獲取上證指數k線數據,其它參數與個股一致,下同print(dfi)return dfits.get_k_data返回:1990年開市以來的所有'date', 'open', 'close', 'high', 'low', 'volume', 'code'等,無amount
獲取上證指數4:ts-vsf-sina
import tushare as ts def test_ts3():dfi=ts.get_h_data('sh') ? #獲取上證指數k線數據,其它參數與個股一致,下同print(dfi)return dfi返回:此法已經失效,原來應該是獲取‘vsf': 'vip.stock.finance.sina.com.cn',不知道為何失效。
?
其它常用api
df1=pro.trade_cal(exchange=‘SSE’, start_date=sdate,end_date=edate,is_open=‘1’)
df = pro.daily(trade_date=‘20180810’) #獲取日線行情,里面有昨收
df = pro.top_inst(trade_date=idate) #獲取龍虎榜機構機構明細
?
2.AkShare-開源本地
https://akshare.readthedocs.io/
有一個dtshare,數據和調用方式都類似。
獲取股票指數歷史
1.股票指數數據是從新浪財經獲取的數據
def test_sina(): ?import akshare as akstock_zh_index_daily_df = ak.stock_zh_index_daily(symbol="sh000001")print(stock_zh_index_daily_df)
返回:date\open\close\high\low\volume
zh_sina_index_stock_hist_url = "https://finance.sina.com.cn/realstock/company/{}/hisdata/klc_kl.js"
1.股票指數數據是從騰訊獲取的數據
def test_tx():import akshare as akstock_zh_index_daily_tx_df = ak.stock_zh_index_daily_tx(symbol="sh000001")print(stock_zh_index_daily_tx_df)返回:date\open\close\high\low\amount
url = "http://web.ifzq.gtimg.cn/appstock/app/fqkline/get"
測試的時候速度比sina慢不少。
3.baostock,
def test_bao():import baostock as bsimport pandas as pd# 登陸系統lg = bs.login()# 顯示登陸返回信息rs = bs.query_history_k_data_plus("sh.000001","date,code,open,high,low,close,preclose,volume,amount,pctChg",start_date='1990-01-01', frequency="d") ? ?# 打印結果集data_list = []while (rs.error_code == '0') & rs.next():# 獲取一條記錄,將記錄合并在一起data_list.append(rs.get_row_data())result = pd.DataFrame(data_list, columns=rs.fields)print(result)# 登出系統bs.logout()return result返回:1990-12-19開始的'date', 'code', 'open', 'high', 'low', 'close', 'preclose', 'volume','amount',等。
數據較快;close比對還行,兩位小數,和三位的略有誤差;交叉調用時注意volume的單位
?
4.jqdatasdk、-聚寬的本地版
?
5.OpenDataTools
開源的數據提取工具,專注在各類網站上爬取數據,并通過簡單易用的API方式使用
- Home
- 01. 股票數據
- 02. 期貨數據
- 03. 匯率數據
| get_daily | 獲取日線數據 | 雪球 |
https://github.com/PKUJohnson/OpenData/wiki
?
6、pandas-datareader庫
用fix_yahoo_finance庫修正雅虎源,用了一下,能用,但是據說在走下坡路,還是別太投入了。
def test_yahoo():#可以通過如下獲取上證指數的數據,缺點:from pandas_datareader import data, wbfrom datetime import datetimestart1=datetime(1990,1,1)end1=datetime(1993,1,1)df = data.DataReader("000001.SS", 'yahoo', start1, end1)print(df)return df速度很慢,上述代碼有一次是11秒運行完,另一次2分鐘都沒返回結果,直接重啟內核了。(20200419)
?
?
二、在線量化平臺
用了優礦和聚寬,主要以優礦為主,特別是里面的漲跌停信息,做漲跌停有關的分析很方便。之前還有米筐等。
1.優礦
DataAPI.MktEqudGet # 取滬深AB股日行情信息,包含昨收價、開盤價、最高價、最低價、收盤價、成交量、成交金額等字段,每日16:00更新 DataAPI.MktLimitGet #獲取股票歷史漲跌停價格?
2.聚寬
?
3.mindgo-同花順量化平臺
http://quant.10jqka.com.cn/
?
4、rqdatac-米筐,
需申請,可使用一個月
https://www.ricequant.com/welcome/
?
5.其它
另有:VNPY-tqsdk -看界面不錯
?
三、通達信等行情軟件
比如通達信的高級導出功能,注意上證指數等指數需要單獨導出。
要注意下載數據可能不完整,逐步檢查,
優缺點:這個數據的好處是速度快。
?
四、股票網站行情接口
1 雪球接口
?
https://xueqiu.com/stock/forchartk/stocklist.json?symbol=<股票代碼>&period=<采樣頻率>&type=<復權類型>&begin=<起始時間戳>&end=<終止時間戳>2 網易接口
http://quotes.money.163.com/service/chddata.html?code=<股票代碼>&start=<起始時間>&end=<終止時間>&fields=<指標用分號分隔>網易財經可以下載股票和指數的歷史數據。通過在chrome的調試工具中觀察請求信息,發現網址為?
http://quotes.money.163.com/service/chddata.html?code=0000001&start=19901219&end=20200101&fields=TCLOSE;HIGH;LOW;TOPEN;LCLOSE;CHG;PCHG;VOTURNOVER;VATURNOVER?
這里0000001指的是上證指數。注意這串數字要分0和000001兩部分看。0代表sh,1代表sz。所以0000001其實是sh000001的意思。同理,0 000300也就是sh000300 滬深300的代碼。后面的start和end沒什么問題。fields選項中,TCLOSE,HIGH,LOW,TOPEN分別表示當日的收盤,最高,最低,開盤價;LCLOSE表示昨日收盤價。CHG,PCHG,VOTURNOVER,VAT分別表示漲跌額,漲跌幅,成交量,成交金額。如果你在瀏覽器中直接輸入網址的話,會下載一個csv文件。如果直接用urllib.request來打開的話,會得到一長串字符串,里面包含了所有的數據,如下所示。
?
以工商銀行為例的URL:
日內實時盤口(JSON):
http://api.money.126.net/data/feed/1000002,1000001,1000881,0601398,money.api
歷史成交數據(CSV):
http://quotes.money.163.com/service/chddata.html?code=0601398&start=20000720&end=20150508
財務指標(CSV):
http://quotes.money.163.com/service/zycwzb_601398.html?type=report
資產負債表(CSV):
http://quotes.money.163.com/service/zcfzb_601398.html
利潤表(CSV):
http://quotes.money.163.com/service/lrb_601398.html
現金流表(CSV):
http://quotes.money.163.com/service/xjllb_601398.html
杜邦分析(HTML):
http://quotes.money.163.com/f10/dbfx_601398.html
?
3 和訊接口
和訊接口的特點是可以控制采樣的數量和方向。
http://webstock.quote.hermes.hexun.com/a/kline?code=<股票代碼>&start=<時間定位點>&number=<采樣數量和方向>&type=<采樣頻率代碼>和訊還提供了更簡單的接口:
全部日線行情:
全部分時行情:
http://flashquote.stock.hexun.com/Quotejs/MA/<交易所標記><股票代碼>_MA.html交易所標記中的1表示滬市,2表示深市
接口差別在D和M,注意有兩處
4 騰訊接口
http://data.gtimg.cn/flashdata/hushen/latest/<采樣頻率>/<股票代碼>.js5 新浪接口
http://hq.sinajs.cn/list=<股票代碼>A股股票&基金
http://hq.sinajs.cn/list=sh601006
http://hq.sinajs.cn/list=sh502007
A股指數
http://hq.sinajs.cn/list=s_sz399001
港股股票
http://hq.sinajs.cn/list=hk02333
http://hq.sinajs.cn/list=rt_hkCSCSHQ?#滬港通資金流量
港股指數
http://hq.sinajs.cn/list=int_hangseng
http://hq.sinajs.cn/list=rt_hkHSI
http://hq.sinajs.cn/list=hkHSI,hkHSCEI,hkHSCCI?#恒生指數,恒生國企指數,恒生紅籌指數
美股股票&基金
http://hq.sinajs.cn/list=gb_amzn
http://hq.sinajs.cn/list=usr_amzn
http://hq.sinajs.cn/list=usr_russ
美股指數
http://hq.sinajs.cn/list=int_nasdaq
http://hq.sinajs.cn/list=gb_ixic?#納斯達克指數
http://hq.sinajs.cn/list=int_dji
http://hq.sinajs.cn/list=int_sp500
http://hq.sinajs.cn/list=int_ftse?#倫敦指數
http://hq.sinajs.cn/list=int_bloombergeuropean500?#彭博歐洲500指數
http://hq.sinajs.cn/list=int_dax30,int_djstoxx50
外匯行情
http://hq.sinajs.cn/list=XAUUSD
http://hq.sinajs.cn/list=DINIW?#美元指數
黃金&白銀
http://hq.sinajs.cn/list=hf_XAU
http://hq.sinajs.cn/list=hf_XAG
http://hq.sinajs.cn/list=hf_GC?#COMEX黃金
http://hq.sinajs.cn/list=hf_SI?#COMEX白銀
http://hq.sinajs.cn/list=hf_AUTD?#黃金TD
http://hq.sinajs.cn/list=hf_AGTD?#白銀TD
http://hq.sinajs.cn/list=AU0?#黃金期貨
http://hq.sinajs.cn/list=AG0?#白銀期貨
http://hq.sinajs.cn/list=hf_CL?#NYMEX原油
期貨
http://hq.sinajs.cn/list=CFF_LIST?#金融期貨合約
http://finance.sina.com.cn/iframe/futures_info_cff.js?#商品與金融期貨合約
http://hq.sinajs.cn/?list=CFF_RE_IF1705?#合約行情
期權合約的月份
http://stock.finance.sina.com.cn/futures/api/openapi.php/StockOptionService.getStockName
期權合約到期日
http://stock.finance.sina.com.cn/futures/api/openapi.php/StockOptionService.getRemainderDay?date=201705
看漲期權合約
http://hq.sinajs.cn/list=OP_UP_5100501705
看跌期權合約
http://hq.sinajs.cn/list=OP_DOWN_5100501705
期權行情
http://hq.sinajs.cn/list=CON_OP_10000869
http://hq.sinajs.cn/list=CON_ZL_10000869
http://hq.sinajs.cn/list=CON_SO_10000869
熱門股票
http://finance.sina.com.cn/realstock/company/hotstock_daily_a.js
新股日歷
http://vip.stock.finance.sina.com.cn/corp/view/iframe/vAK_NewStockIssueFrame_2015.php?num=10
定增列表
http://vip.stock.finance.sina.com.cn/corp/view/vAK_IncreaseStockIssueFrame_2015.php?num=10
基金公司
http://vip.stock.finance.sina.com.cn/fund_center/api/jsonp.php/var%20companyList=/NetValue_Service.getAllCompany
?
停更數據:
http://biz.finance.sina.com.cn/stock/flash_hq/kline_data.php?symbol=sh000001&end_date=20120101
http://market.finance.sina.com.cn/downxls.php?date=2011-07-08&symbol=sh600900
內容:該業務已經下線。給您造成的不便,深表歉意。如果行情頁無法正常訪問,可反饋至:finproduct@staff.sina.com.cn?。如果是抓接口數據,臣妾就木有辦法了。您趕緊找個其他的源抓吧,我們不再恢復這個接口了~
?
6.從雅虎財經上爬
https://finance.yahoo.com/quote/<股票代碼.交易所>/history7.愛搞搞
http://www.aigaogao.com/tools/history.html?s=<股票代碼>五、一些收費的信息
有錢了用收費的吧,還沒用過,也沒體驗過。
比如東財choice(單用戶5800元一年),wind等,有很多,有錢就用收費的。
?
?
?
六、其它
有觀點認為:
獲取股票數據的渠道有很多,而且基本上是免費的。
目前股票端用的比較多的有通達信,tushare, Quantaxis等,
期貨端有CTP,CTPBEE,VNPY,TQSDK等,
?
下面介紹幾個~
- tushare?米哥的數據框架我就不用說了吧,采取積分制,高校學生免費獲得積分。具體請自行百度
- tqsdk?期貨老牌廠商快期的開源計劃的核心, 他們有期貨數據轉發權,所以在他們的tqsdk中可以很輕松的調用到歷史數據。當然他的使用也是無腦的哈哈哈哈, 好像后續計劃對接股票數據
- QUANTAXIS, 作者我就不說了,?
@余天
一己之力可以通天的大佬,同樣使用QA你可以很輕松的使用到歷史數據,注意,他是將數據寫入到本地mongodb數據庫。然后同時提供了取數據的代碼。當然QA也支持股票數據。
https://zhuanlan.zhihu.com/p/100110280
?
其它:
數據接口-免費版(股票數據API):
獲取股票數據的源頭主要有:數據超市、雅虎、新浪、Google、和訊、搜狐、ChinaStockWebService、東方財富客戶端、證券之星、網易財經。
https://blog.csdn.net/Llingmiao/article/details/79941066?utm_medium=distribute.pc_relevant.none-task-blog-baidujs_title-0&spm=1001.2101.3001.4242
?
?
?
End
?
?
總結
以上是生活随笔為你收集整理的获取A股行情数据方法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 网格计算——下一代分布式计算
- 下一篇: ashx需要everyone权限