问财量化选股策略逻辑
本选股策略选择振幅大于1、昨日成交额大于6千万、剔除昨日涨停的股票为选股对象。
选股逻辑分析
选取振幅大于1和昨日成交额大于6千万可以筛选出交易活跃和波动较大的股票。剔除昨日涨停的条件可以防止选出昨日已经到达价格顶部的股票。此外,该策略选股条件简单易懂,容易实施。
有何风险?
该选股策略依然忽略了股票的基本面数据,而剔除昨日涨停的操作也会忽略股票的短期走势,同时可能会错过一些具有强劲上涨趋势的股票。
如何优化?
可以考虑加入基于股票基本面的指标,如市盈率、市净率等,以辅助技术面选股策略。同时在剔除昨日涨停的选股条件中,可以适当调整为剔除近几天涨停的股票,避免因为短期涨停而错过真正的上涨股票。
最终的选股逻辑
最终选股策略的逻辑为振幅大于1、昨日成交额大于6千万、剔除近3天内有过涨停的股票为选股对象,并加入基本面数据分析。
同花顺指标公式代码参考
// 筛选振幅大于1的股票
amplitude = (HIGH - LOW) / OPEN
amplitude_bool = amplitude > 0.01
// 筛选昨日成交额大于6千万的股票
last_day_vol_bool = VOLUME > 60000000
// 剔除近三天内有过涨停的股票
high_limit_bool = REF(HIGH>REF(HIGH,1),1) & REF(HIGH<= REF(HIGH, -2), -2) & REF(HIGH<= REF(HIGH, -3), -3)
// 合并筛选条件
result = amplitude_bool & last_day_vol_bool & ~(high_limit_bool)
// 输出结果
result
python代码参考
import tushare as ts
# 筛选条件1:振幅大于1
now_data = ts.get_today_all()
amplitude = (now_data['high'] - now_data['low']) / now_data['open']
amplitude_bool = amplitude > 0.01
# 筛选条件2:昨日成交额大于6千万
last_day_vol_bool = now_data['volume'] > 60000000
# 筛选条件3:剔除近3天内有过涨停的股票
hist_data = ts.get_today_all()
hist_data = hist_data[hist_data['high'] == hist_data['low']]
hist_data['date'] = pd.to_datetime(hist_data['date'])
hist_data = hist_data.set_index('date')
hist_data = hist_data['close'].resample('D').mean().dropna()
lastest_high_limit = hist_data.index[-1]
drop_list = hist_data[hist_data.index > lastest_high_limit - pd.Timedelta(days=3)].index
drop_bool = now_data.index.isin(drop_list)
# 合并筛选条件
result = amplitude_bool & last_day_vol_bool & ~(drop_bool)
# 筛选结果
final_result = now_data.loc[result]
# 输出结果
print(final_result)
## 如何进行量化策略实盘?
请把您优化好的选股语句放入文章最下面模板的选股语句中即可。
select_sentence = '市值小于100亿' #选股语句。
模板如何使用?
点击图标右上方的复制按钮,复制到自己的账户即可使用模板进行回测。
## 如果有任何问题请添加 下方的二维码进群提问。
