以下为常用过滤条目:科创、创业、ST、退市、1元、一字、新股
如有新过滤思路欢迎在评论区补充!
def filter_all_specials(context,stock_list):
import datetime
time = get_datetime().strftime('%Y-%m-%d')
# 自定义日期(通常为今日)
target_date = datetime.datetime(2023, 12, 19, 12, 0)
# 过滤科创板'688'
stock_list=[stock for stock in stock_list if stock[0:3] != '688']
# 过滤创业板'300'
stock_list=[stock for stock in stock_list if stock[0:3] != '300']
# 过滤st股
stock_list=[stock for stock in stock_list if get_security_info(stock).is_t_0 != 1]
# 过滤已经退市的股票
stock_list=[stock for stock in stock_list if get_security_info(stock).end_date.year>=2023]
# 过滤1元股
stock_list=[stock for stock in stock_list if get_price('300033.SZ',end_date='20230808', fre_step='1d', fields=['open'], skip_paused = True, fq = 'pre', bar_count = 1000, is_panel = 0)['open'][time]>1]
# 过滤99元以上的股
stock_list=[stock for stock in stock_list if get_price('300033.SZ',end_date='20230808', fre_step='1d', fields=['high'], skip_paused = True, fq = 'pre', bar_count = 1000, is_panel = 0)['high'][time]<99]
# 过滤1字板
stock_list=[stock for stock in stock_list if get_price('300033.SZ',end_date='20230808', fre_step='1d', fields=['open'], skip_paused = True, fq = 'pre', bar_count = 1000, is_panel = 0)['open'][time] != get_price('300033.SZ',end_date='20230808', fre_step='1d', fields=['high'], skip_paused = True, fq = 'pre', bar_count = 1000, is_panel = 0)['high'][time]<99]
# 过滤新股(150天为界限)
stock_list = [stock for stock in stock_list if (target_date-get_security_info(stock).start_date).days>150]
return stock_list