BaoStock:一個免費、開源的python證券資料介面包
阿新 • • 發佈:2019-01-10
如果需要獲取歷史行情資料、實時行情資料,www.baostock.com是個很好的免費、開源的Python證券資料介面包。
特點:使用方便、免費免費免費,返回的絕大部分的資料格式都是pandas DataFrame型別。
入門程式碼如下:
import baostock as bs import pandas as pd #### 登陸系統 #### lg = bs.login(user_id="anonymous", password="123456") # 顯示登陸返回資訊 print('login respond error_code:'+lg.error_code) print('login respond error_msg:'+lg.error_msg) #### 獲取歷史K線資料 #### # 詳細指標引數,參見“歷史行情指標引數”章節 rs = bs.query_history_k_data("sh.600000", "date,code,open,high,low,close,preclose,volume,amount,adjustflag,turn,tradestatus,pctChg,peTTM,pbMRQ,psTTM,pcfNcfTTM,isST", start_date='2017-06-01', end_date='2017-12-31', frequency="d", adjustflag="3") #frequency="d"取日k線,adjustflag="3"預設不復權 print('query_history_k_data respond error_code:'+rs.error_code) print('query_history_k_data respond error_msg:'+rs.error_msg) #### 列印結果集 #### data_list = [] while (rs.error_code == '0') & rs.next(): # 獲取一條記錄,將記錄合併在一起 data_list.append(rs.get_row_data()) result = pd.DataFrame(data_list, columns=rs.fields) #### 結果集輸出到csv檔案 #### result.to_csv("D:/history_k_data.csv", encoding="gbk", index=False) print(result) #### 登出系統 #### bs.logout()
各方法及含義如下:
登入
login()
方法說明:登入系統。
使用示例:lg = login(user_id="anonymous", password="123456")
引數含義:
- user_id:使用者id,預設為"anonymous";
- password:密碼,預設為"123456"。
返回資訊:
- lg.error_code:錯誤程式碼,當為“0”時表示成功,當為非0時表示失敗;
- lg.error_msg:錯誤資訊,對錯誤的詳細解釋。
登出
logout()
方法說明:登出系統
使用示例:lg = logout(user_id="anonymous")
引數含義:
- user_id:使用者id,預設為"anonymous"。
返回資訊:
- lg.error_code:錯誤程式碼,當為“0”時表示成功,當為非0時表示失敗;
- lg.error_msg:錯誤資訊,對錯誤的詳細解釋。
獲取歷史A股K線資料
獲取歷史A股K線資料:query_history_k_data()
方法說明:獲取A股歷史交易資料(包括均線資料),可以通過引數設定獲取日k線、周k線、月k線,以及5分鐘、15分鐘、30分鐘和60分鐘k線資料,適合搭配均線資料進行選股和分析。
返回型別:pandas的DataFrame型別。
V0.5版本只能獲取近3年的資料(2015-01-01至當前時間);
可查詢不復權、前復權、後復權資料。
引數含義:
- code:股票程式碼,sh或sz.+6位數字程式碼,或者指數程式碼,如:sh.601398。sh:上海;sz:深圳。此引數不可為空;
- fields:指示簡稱,支援多指標輸入,以半形逗號分隔,填寫內容作為返回型別的列。詳細指標列表見歷史行情指標引數章節。此引數不可為空;
- start:開始日期(包含),格式“YYYY-MM-DD”,為空時取2015-01-01;
- end:結束日期(不包含),格式“YYYY-MM-DD”,為空時取最近一個交易日;
- frequency:資料型別,預設為d,日k線;d=日k線、w=周、m=月、5=5分鐘、15=15分鐘、30=30分鐘、60=60分鐘k線資料,不區分大小寫;周線每週最後一個交易日才可以獲取,月線第月最後一個交易日才可以獲取。
- adjustflag:復權型別,預設不復權:3;1:後復權;2:前復權。已支援日k線、分鐘線前後復權;暫不支援周k線、月k線前後復權。
引數名稱 | 引數描述 |
date | 交易所行情日期 |
code | 證券程式碼 |
open | 開盤價 |
high | 最高價 |
low | 最低價 |
close | 收盤價 |
preclose | 昨日收盤價 |
volume | 成交量(累計 單位:股) |
amount | 成交額(單位:人民幣元) |
adjustflag | 復權狀態(1:後復權, 2:前復權,3:不復權) |
turn | 換手率 |
tradestatus | 交易狀態(1:正常交易 0:停牌) |
pctChg | 漲跌幅 |
peTTM | 動態市盈率 |
pbMRQ | 市淨率 |
psTTM | 市銷率 |
pcfNcfTTM | 市現率 |
isST | 是否ST股,1是,0否 |