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

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

0 People liked this article · 2863 views

#自定义函数,剔除满足指定属性的股票列表
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

Published on 2024-05-06 10:17

Disclaimers:

This document is written by 量化交流搬运工 Original published on 百果量化交流平台 ,The copyright belongs to the author。

Log in,More exciting content waiting for you to find,Contribute wonderful answers,Participate in comment interaction

go Sign in! No accountgoregister