Python API文档

来自www.baostock.com
Baostock讨论 | 贡献2018年2月13日 (二) 11:49的版本 查询除权除息信息
跳转至: 导航搜索

入门示例

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,volume,amount,adjustflag,peTTM,pbMRQ,psTTM,pcfNcfTTM,pctChg,isST",
    start_date='2017-01-01', end_date='2017-06-30', 
    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)

#### 打印结果集 ####
result = pd.DataFrame(columns=["date","code","open","high","low","close","volume","amount","adjustflag","peTTM","pbMRQ","psTTM","pcfNcfTTM","pctChg","isST"])
while (rs.error_code == '0') & rs.next():
    # 分页查询,将每页信息合并在一起
    result = result.append(rs.get_row_data(), ignore_index=True)
    
#### 结果集输出到csv文件 ####   
result.to_csv("D:\\history_k_data.csv", 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 = login(user_id="anonymous")


参数含义:

  • user_id:用户id,默认为"anonymous"。


返回信息:

  • lg.error_code:错误代码,当为“0”时表示成功,当为非0时表示失败;
  • lg.error_msg:错误信息,对错误的详细解释。

获取历史K线数据

query_history_k_data()

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

返回类型:pandas的DataFrame类型。

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

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


使用示例:

query_history_k_data(code="sh.601398", 
    fields="date,code,open,high,low,close,preclose,volume,amount,adjustflag,turn,tradestatus", 
    start_date='2016-01-01', end_date='2016-07-01', frequency="d", adjustflag="3")


参数含义:

  • 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 交易所行情日期 格式: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:停牌


周、月线指标参数
参数名称 参数描述 说明
date 交易所行情日期 格式:YYYY-MM-DD
code 证券代码 格式:sh.600000。sh:上海,sz:深圳
open 今开盘价格 精度:小数点后4位;单位:人民币元
high 最高价 精度:小数点后4位;单位:人民币元
low 最低价 精度:小数点后4位;单位:人民币元
close 今收盘价 精度:小数点后4位;单位:人民币元
volume 成交数量 单位:股
amount 成交金额 精度:小数点后4位;单位:人民币元
adjustflag 复权状态 不复权、前复权、后复权
turn 换手率 精度:小数点后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.601398", year="2017", yearType="operate")
result_dividend = pd.DataFrame(
    columns=["code", "dividPreNoticeDate", "dividAgmPumDate", "dividPlanAnnounceDate", "dividPlanDate",
             "dividRegistDate", "dividOperateDate", "dividPayDate", "dividStockMarketDate",
             "dividCashPsBeforeTax", "dividCashPsAfterTax", "dividStocksPs",
             "dividCashStock", "dividReserveToStockPs"])
while (rs_dividend.error_code == '0') & rs_dividend.next():
    result_dividend = result_dividend.append(rs_dividend.get_row_data(), ignore_index=True)
print(result_dividend)


参数含义:

  • code:股票代码,sh或sz.+6位数字代码,或者指数代码,如:sh.601398。sh:上海;sz:深圳。此参数不可为空;
  • year:年份,如:2017。此参数不可为空;
  • yearType:年份类别,默认为"report":预案公告年份,可选项"operate":除权除息年份。此参数不可为空。