问财量化选股策略逻辑
本选股策略选取振幅大于1、500日内至少2次涨停,并且涨跌幅乘以超大单净量大于0的股票。
选股逻辑分析
本选股策略在技术面方面综合考虑了振幅和涨停历史,同时关注涨跌幅与超大单净量的乘积,该指标可以反映出资金的进出情况,并能够反映出市场的热度,而且过去短时间的涨跌幅和超大单净量的反馈对后续价格变动有较大的影响。
有何风险?
在选股过程中,过于注重技术面指标可能会忽略一些基本面信息的影响,可能会导致选错股票。另外,超大单净量的计算方式可能受到时间周期的影响,需要灵活调整策略,对进入选股池的标的进行更为细致的筛选和分析,以减少风险。
如何优化?
可以在涨幅与超大单净量的基础上,再加入一些其他的技术指标进行筛选,例如BOLL、MACD等,以提高选股的准确性。同时,需要调整超大单净量的计算方式,以避免因时间周期的影响而导致失真。
最终的选股逻辑
在振幅大、涨停历史丰富的股票的基础上,条件为涨跌幅与超大单净量的乘积大于0。
同花顺指标公式代码参考:
振幅大于1:
(HIGH - LOW) / PRE_CLOSE > 0.01
500日内至少2次涨停:
SUM(HIGH / REF(LOW,1) > 1.099, 500) >= 2
涨跌幅与超大单净量的乘积:
ABS((CLOSE - REF(CLOSE,1)) / REF(CLOSE,1) * VOLUME) / SUM(VOLUME,50) > 0.1
排序:
SORT('涨跌幅与超大单净量的乘积', False)
python代码参考:
import tushare as ts
selected_stocks = []
for code in ts.get_stock_basics().index:
#获取股票数据
daily_data = ts.get_hist_data(code)
if daily_data is None or daily_data['high'].count() < 20:
continue
#判断涨停次数
if daily_data[(daily_data['high'] / daily_data['low'].shift(1) > 1.099).rolling(500).sum() < 2].empty:
continue
#判断振幅
if (daily_data['high'] - daily_data['low']).mean() / daily_data['close'].mean() < 0.01:
continue
#计算涨跌幅与超大单净量的乘积
volume = ts.get_sina_dd(code, date=datetime.datetime.now().strftime('%Y-%m-%d'))
if volume is None or volume.empty:
continue
volume = volume[volume['type'] == '买盘']['volume'].sum() - volume[volume['type'] == '卖盘']['volume'].sum()
if volume < 0:
continue
rise_fall = (daily_data['close'] / daily_data['close'].shift(1) - 1).abs()
rise_fall_volume = rise_fall * volume
if rise_fall_volume.iloc[-50:].sum() / volume.iloc[-50:].sum() < 0.1:
continue
selected_stocks.append(code)
#输出选中的股票
print(selected_stocks)
本选股策略综合了技术面多个因子,采用复合指标选股,仅供参考。在实际操作中,需要加强对风险敞口的把控,进行风险控制,提高投资稳定性。
## 如何进行量化策略实盘?
请把您优化好的选股语句放入文章最下面模板的选股语句中即可。
select_sentence = '市值小于100亿' #选股语句。
模板如何使用?
点击图标右上方的复制按钮,复制到自己的账户即可使用模板进行回测。
## 如果有任何问题请添加 下方的二维码进群提问。


