回测时,如果股票变成ST,不会执行操作
由howie1013创建,最终由howie1013 被浏览 19 用户
问题
2022年的回测002316.SZA,000732.SZA变成了ST,用回测模块回测时,发现买入后不会进行任何操作。
需要加入特定代码去处理
hold_instruments = list(positions.keys())
stock_status = context.stock_status[context.stock_status['date'] == today]
if len(hold_instruments) > 0:
st_status = stock_status[(stock_status['st_status'] != 0) & (stock_status['instrument'].isin(hold_instruments))]
st_instruments = st_status['instrument'].tolist()
for instrument in st_instruments:
context.order_target(context.symbol(instrument), 0)
print('%s: 卖出ST %s' % (today, instrument))
解答
是不是 你的测试集有ST股票过滤,所以预测集中就没有这几个票的排序,就忽略了持仓了这几个ST票。能分享下代码吗 我们把这个情况做出样例,也再分析下问题