Python API文档

来自www.baostock.com
Baostock讨论 | 贡献2018年3月26日 (一) 06:00的版本 获取历史K线数据
跳转至: 导航搜索

入门示例

HelloWorld

此篇为平台入门示例,安装baostock后,可导入包运行此示例。

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")
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线数据

query_history_k_data()

方法说明:获取A股历史交易数据(包括均线数据),可以通过参数设置获取日k线、周k线、月k线,以及5分钟、15分钟、30分钟和60分钟k线数据,适合搭配均线数据进行选股和分析。

返回类型:pandas的DataFrame类型。

V0.5版本只能获取近3年的数据(2015-01-01至当前时间);

V0.5版本数据不复权,ktype参数暂不可用;


使用示例:

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")
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)


参数含义:

  • 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:后复权。
返回数据说明
参数名称 参数描述
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否

历史行情指标参数

日线指标参数(包含停牌证券)
参数名称 参数描述 说明
date 交易所行情日期 格式:YYYY-MM-DD
code 证券代码 格式:sh.600000。sh:上海,sz:深圳
open 今开盘价格 精度:小数点后4位;单位:人民币元
high 最高价 精度:小数点后4位;单位:人民币元
low 最低价 精度:小数点后4位;单位:人民币元
close 今收盘价 精度:小数点后4位;单位:人民币元
preclose 昨日收盘价 精度:小数点后4位;单位:人民币元
volume 成交数量 单位:股
amount 成交金额 精度:小数点后4位;单位:人民币元
adjustflag 复权状态 不复权、前复权、后复权
turn 换手率 精度:小数点后6位;单位:%
tradestatus 交易状态 1:正常交易 0:停牌
pctChg 涨跌幅 精度:小数点后6位
peTTM 动态市盈率 精度:小数点后4位
psTTM 市销率 精度:小数点后4位
pcfNcfTTM 市现率 精度:小数点后4位
pbMRQ 市净率 精度:小数点后4位
isST 是否ST 1是,0否


周、月线指标参数
参数名称 参数描述 说明
date 交易所行情日期 格式:YYYY-MM-DD
code 证券代码 格式:sh.600000。sh:上海,sz:深圳
open 今开盘价格 精度:小数点后4位;单位:人民币元
high 最高价 精度:小数点后4位;单位:人民币元
low 最低价 精度:小数点后4位;单位:人民币元
close 今收盘价 精度:小数点后4位;单位:人民币元
volume 成交数量 单位:股
amount 成交金额 精度:小数点后4位;单位:人民币元
adjustflag 复权状态 不复权、前复权、后复权
turn 换手率 精度:小数点后6位;单位:%
pctChg 涨跌幅 精度:小数点后6位


5、15、30、60分钟线指标参数
参数名称 参数描述 说明
date 交易所行情日期 格式:YYYY-MM-DD
time 交易所行情时间 格式:YYYYMMDDHHMM
code 证券代码 格式:sh.600000。sh:上海,sz:深圳
open 今开盘价格 精度:小数点后4位;单位:人民币元
high 最高价 精度:小数点后4位;单位:人民币元
low 最低价 精度:小数点后4位;单位:人民币元
close 今收盘价 精度:小数点后4位;单位:人民币元
volume 成交数量 单位:股
amount 成交金额 精度:小数点后4位;单位:人民币元
adjustflag 复权状态 不复权、前复权、后复权

查询除权除息信息

股息分红:query_dividend_data()

方法说明:查询除权除息信息,可以通过参数设置获取对应年份、股票数据,提供1990年至2017年数据。

返回类型:pandas的DataFrame类型。


使用示例:

rs_dividend = bs.query_dividend_data(code="sh.600000", year="2017", yearType="report")
data_list = []
while (rs_dividend.error_code == '0') & rs_dividend.next():
    data_list.append(rs_dividend.get_row_data())
result_dividend = pd.DataFrame(data_list, columns=rs_dividend.fields)
print(result_dividend)


参数含义:

  • code:股票代码,sh或sz.+6位数字代码,或者指数代码,如:sh.601398。sh:上海;sz:深圳。此参数不可为空;
  • year:年份,如:2017。此参数不可为空;
  • yearType:年份类别,默认为"report":预案公告年份,可选项"operate":除权除息年份。此参数不可为空。
返回数据说明
参数名称 参数描述
code 证券代码
dividPreNoticeDate 预批露公告日
dividAgmPumDate 股东大会公告日期
dividPlanAnnounceDate 预案公告日
dividPlanDate 分红实施公告日
dividRegistDate 股权登记告日
dividOperateDate 除权除息日期
dividPayDate 派息日
dividStockMarketDate 红股上市交易日
dividCashPsBeforeTax 每股股利税前
dividCashPsAfterTax 每股股利税后
dividStocksPs 每股红股
dividCashStock 分红送转
dividReserveToStockPs 每股转增资本

复权因子:query_adjust_factor()

方法说明:查询复权因子信息,可以通过参数设置获取对应年份、股票数据,提供1990年至2017年数据。

返回类型:pandas的DataFrame类型。


使用示例:

# 查询2015至2017年复权因子
rs_list = []
rs_factor = bs.query_adjust_factor(code="sh.600000", start_date="2015-01-01", end_date="2017-12-31")
while (rs_factor.error_code == '0') & rs_factor.next():
    rs_list.append(rs_factor.get_row_data())
result_factor = pd.DataFrame(rs_list, columns=rs_factor.fields)
# 打印输出
print(result_factor)

参数含义:

  • code:股票代码,sh或sz.+6位数字代码,或者指数代码,如:sh.601398。sh:上海;sz:深圳。此参数不可为空;
  • start_date:开始日期,为空时默认为2015-01-01,包含此日期;
  • end_date:结束日期,为空时默认当前日期,包含此日期。
返回数据说明
参数名称 参数描述
code 证券代码
dividOperateDate 除权除息日期
foreAdjustFactor 向前复权因子
backAdjustFactor 向后复权因子
adjustFactor 本次复权因子