前言
今天要讲的主要是获取股票信息的函数主要有股票基础信息获取,etf成分的获取,指数的成分获取等等!还是老规矩,分为几个部分来讲讲!
一、get_stock_name ——获取股票名称
这个函数是比较鸡肋的!主要是用来获取股票、可转债、ETF等名称。
示例
def initialize(context):
g.security = ['600570.SS', '600571.SS']
set_universe(g.security)
def handle_data(context, data):
#获取600570.SS股票名称
stock_name = get_stock_name(g.security[0])
log.info(stock_name)
#获取股票池所有的股票名称
stock_names = get_stock_name(g.security)
log.info(stock_names)
二、get_stock_info ——获取股票基础信息
并不是大家所想的财务信息之类的,只是上一个函数的加强版
返回主要是返回股票代码对应的公司名,上市日期、退市日期三个信息,退市日期如果没有退市的话返回的是2900-01-01(str:str)
示例
def initialize(context):
g.security = ['600570.SS', '600571.SS']
set_universe(g.security)
def handle_data(context, data):
#获取单支股票的基础信息
stock_info = get_stock_info(g.security[0])
log.info(stock_info)
#获取多支股票的基础信息
stock_infos = get_stock_info(g.security, ['stock_name','listed_date','de_listed_date'])
log.info(stock_infos)
三、get_stock_status —— 获取股票状态信息
get_stock_status(stocks, query_type='ST', query_date=None)
主要用于获取指定日期股票的ST、停牌、退市属性。
stocks: 例如 ['000001.SZ','000003.SZ']。该字段必须输入,否则返回None(list[str]/str);
query_type: 支持以下三种类型属性的查询,默认为'ST'(str);
具体支持输入的字段包括 :
1、'ST' – 查询是否属于ST股票
2、'HALT' – 查询是否停牌
3、'DELISTING' – 查询是否退市
query_date: 格式为YYYYmmdd,默认为None,表示当前日期(回测为回测当前周期,研究与交易则取系统当前时间)(str);
示例
def initialize(context):
g.security = ['600397.SS', '600701.SS', '000001.SZ']
set_universe(g.security)
def handle_data(context, data):
stocks_list = g.security
filter_stocks = []
# 判断股票是否为ST、停牌或者退市的股票
st_status = get_stock_status(stocks_list, 'ST')
# 将不是ST的股票筛选出来
for i in stocks_list:
if st_status[i] is not True:
filter_stocks.append(i)
# 获取股票停牌信息
# halt_status = get_stock_status(stocks_list, 'HALT')
# 获取指定日期的对应属性
# halt_status = get_stock_status(stocks_list, 'HALT', '20180312')
# 获取股票退市信息
# delist_status = get_stock_status(stocks_list, 'DELISTING')
log.info('筛选不是ST的股票列表: %s' % filter_stocks)
四、get_stock_exrights —— 获取股票除权除息信息
get_stock_exrights(stock_code, date=None)
返回字段介绍
1、date -- 日期(索引列,类型为int64);
2、allotted_ps -- 每股送股(str:numpy.float64);
3、rationed_ps -- 每股配股(str:numpy.float64);
4、rationed_px -- 配股价(str:numpy.float64);
5、bonus_ps -- 每股分红(str:numpy.float64);
6、exer_forward_a -- 前复权除权因子A;用于计算前复权价格(前复权价格=A*价格+B)(str:numpy.float64)
7、exer_forward_b -- 前复权除权因子B;用于计算前复权价格(前复权价格=A*价格+B)(str:numpy.float64)
8、exer_backward_a -- 后复权除权因子A;用于计算后复权价格(后复权价格=A*价格+B)(str:numpy.float64)
9、exer_backward_b -- 后复权除权因子B;用于计算后复权价格(后复权价格=A*价格+B)(str:numpy.float64)
示例
def initialize(context):
g.security = '600570.SS'
set_universe(g.security)
def handle_data(context, data):
stock_exrights = get_stock_exrights(g.security)
log.info('the stock exrights info of security %s:\n%s' % (g.security, stock_exrights))