获取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 dfi
ts.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 ak
stock_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 ak
stock_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 bs
import 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, wb
from datetime import datetime
start1=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/DA/<交易所標記>_<股票代碼>DA.html
全部分時行情:
http://flashquote.stock.hexun.com/Quotejs/MA/<交易所標記><股票代碼>_MA.html
交易所標記中的1表示滬市,2表示深市
接口差別在D和M,注意有兩處
4 騰訊接口
http://data.gtimg.cn/flashdata/hushen/latest/<采樣頻率>/<股票代碼>.js
5 新浪接口
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/<股票代碼.交易所>/history
7.愛搞搞
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股行情数据方法[通俗易懂]的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: LINUX文件系统介绍
- 下一篇: 一加 Ace 2 支持 100W 超级闪