每日盘前股票池筛选(剔除ST或停牌或退市)

量化交流搬运工
量化交流搬运工 90后,坚持量化学习

0 人点赞了该文章 · 166 浏览

#自定义函数,剔除满足指定属性的股票列表
def filter_stock_type(stock_list,type):
filter_stocks=[]
st_status = get_stock_status(g.security, type)
for i in stock_list:
if st_status[i] is not True:
filter_stocks.append(i)
return filter_stocks
#初始化函数,全局只运行一次
def initialize(context):
g.security=get_Ashares()
set_universe(g.security)
#盘前函数,每日执行一次
def before_trading_start(context, data):
#更新当日A 股股票池
g.security=get_Ashares()
set_universe(g.security)
log.info("今日A 股个数为: %d"%len(g.security))
#例一:筛选非停牌股票列表,'HALT' – 查询是否停牌
st_status = get_stock_status(g.security, 'HALT')
filter_stocks=[]
for i in g.security:
if st_status[i] is not True:
filter_stocks.append(i)
log.info('非停牌股票个数为: %d'%len(filter_stocks))
#同理可筛选非ST 股、非退市股票列表
#'ST' – 查询是否属于ST 股票
#'DELISTING' – 查询是否退市
#若需要同时剔除多个属性,建议构造自定义函数进行调用,简化代码
#例二:筛选非停牌且非ST 股票列表
filter1=filter_stock_type(g.security,'HALT')
filter2=filter_stock_type(g.security,'ST')
#取交集
filter_stocks_2=list(set(filter1) & set(filter2))

log.info("非停牌且非ST 的股票个数为%d"%len(filter_stocks_2))
def handle_data(context, data):
pass

发布于 2024-05-06 10:17

免责声明:

本文由 量化交流搬运工 原创发布于 百果量化交流平台 ,著作权归作者所有。

登录一下,更多精彩内容等你发现,贡献精彩回答,参与评论互动

登录! 还没有账号?去注册

暂无评论