Python API文档

来自www.baostock.com
Baostock讨论 | 贡献2018年3月30日 (五) 11:37的版本
跳转至: 导航搜索

入门示例

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 本次复权因子


查询季频财务数据信息

季频盈利能力:query_profit_data()

方法说明:查询季频盈利能力信息,可以通过参数设置获取对应年份、季度数据,提供2007年至今数据。

返回类型:pandas的DataFrame类型。

使用示例

profit_list = []
rs_profit = bs.query_profit_data(code="sh.600000", year=2017, quarter=2)
while (rs_profit.error_code == '0') & rs_profit.next():
    profit_list.append(rs_profit.get_row_data())
result_profit = pd.DataFrame(profit_list, columns=rs_profit.fields)
# 打印输出
print(result_profit)
# 结果集输出到csv文件
result_profit.to_csv("D:\\profit_data.csv", encoding="gbk", index=False)

参数含义:

  • code:股票代码,sh或sz.+6位数字代码,或者指数代码,如:sh.601398。sh:上海;sz:深圳。此参数不可为空;
  • year:统计年份,为空时默认当前年;
  • quarter:统计季度,可为空,默认当前季度。不为空时只有4个取值:1,2,3,4。
返回数据说明
参数名称 参数描述
code 证券代码
pubDate 公司发布财报的日期
statDate 财报统计的季度的最后一天, 比如2017-03-31, 2017-06-30
roeAvg 净资产收益率(%)
npMargin 销售净利率(%)
gpMargin 销售毛利率(%)
netProfit 净利润(万元)
epsTTM 每股收益
MBRevenue 主营营业收入(百万元)


季频营运能力:query_operation_data()

方法说明:查询季频营运能力信息,可以通过参数设置获取对应年份、季度数据,提供2007年至今数据。

返回类型:pandas的DataFrame类型。

使用示例

operation_list = []
rs_operation = bs.query_operation_data(code="sh.600000", year=2017, quarter=2)
while (rs_operation.error_code == '0') & rs_operation.next():
    operation_list.append(rs_operation.get_row_data())
result_operation = pd.DataFrame(operation_list, columns=rs_operation.fields)
# 打印输出
print(result_operation)
# 结果集输出到csv文件
result_operation.to_csv("D:\\operation_data.csv", encoding="gbk", index=False)

参数含义:

  • code:股票代码,sh或sz.+6位数字代码,或者指数代码,如:sh.601398。sh:上海;sz:深圳。此参数不可为空;
  • year:统计年份,为空时默认当前年;
  • quarter:统计季度,为空时默认当前季度。不为空时只有4个取值:1,2,3,4。
返回数据说明
参数名称 参数描述
code 证券代码
pubDate 公司发布财报的日期
statDate 财报统计的季度的最后一天, 比如2017-03-31, 2017-06-30
NRTurnRatio 应收账款周转率(次)
NRTurnDays 应收账款周转天数(天)
INVTurnRatio 存货周转率(次)
INVTurnDays 存货周转天数(天)
CATurnRatio 流动资产周转率(次)
AssetTurnRatio 总资产周转率


季频成长能力:query_growth_data()

方法说明:查询季频成长能力信息,可以通过参数设置获取对应年份、季度数据,提供2007年至今数据。 返回类型:pandas的DataFrame类型。 使用示例

growth_list = []
rs_growth = bs.query_growth_data(code="sh.600000", year=2017, quarter=2)
while (rs_growth.error_code == '0') & rs_growth.next():
    growth_list.append(rs_growth.get_row_data())
result_growth = pd.DataFrame(growth_list, columns=rs_growth.fields)
# 打印输出
print(result_growth)
# 结果集输出到csv文件
result_growth.to_csv("D:\\growth_data.csv", encoding="gbk", index=False)

参数含义:

  • code:股票代码,sh或sz.+6位数字代码,或者指数代码,如:sh.601398。sh:上海;sz:深圳。此参数不可为空;
  • year:统计年份,为空时默认当前年;
  • quarter:统计季度,为空时默认当前季度。不为空时只有4个取值:1,2,3,4。
返回数据说明
参数名称 参数描述
code 证券代码
pubDate 公司发布财报的日期
statDate 财报统计的季度的最后一天, 比如2017-03-31, 2017-06-30
YOYEquity 净资产同比增长率
YOYAsset 总资产同比增长率
YOYNI 净利润同比增长率
YOYEPSBasic 基本每股收益同比增长率
YOYPNI 归属母公司股东净利润同比增长率


季频偿债能力:query_balance_data()

方法说明:查询季频偿债能力信息,可以通过参数设置获取对应年份、季度数据,提供2007年至今数据。 返回类型:pandas的DataFrame类型。 使用示例

balance_list = []
rs_balance = bs.query_balance_data(code="sh.600000", year=2017, quarter=2)
while (rs_balance.error_code == '0') & rs_balance.next():
    balance_list.append(rs_balance.get_row_data())
result_balance = pd.DataFrame(balance_list, columns=rs_balance.fields)
# 打印输出
print(result_balance)
# 结果集输出到csv文件
result_balance.to_csv("D:\\balance_data.csv", encoding="gbk", index=False)

参数含义:

  • code:股票代码,sh或sz.+6位数字代码,或者指数代码,如:sh.601398。sh:上海;sz:深圳。此参数不可为空;
  • year:统计年份,为空时默认当前年;
  • quarter:统计季度,为空时默认当前季度。不为空时只有4个取值:1,2,3,4。
返回数据说明
参数名称 参数描述
code 证券代码
pubDate 公司发布财报的日期
statDate 财报统计的季度的最后一天, 比如2017-03-31, 2017-06-30
currentRatio 流动比率
quickRatio 速动比率
cashRatio 现金比率
YOYLiability 总负债同比增长率
liabilityToAsset 资产负债率
assetToEquity 权益乘数