问财量化选股策略逻辑
该选股逻辑共包含三个条件:
- 振幅大于1
- 昨天3连板
- 底部抬高
选股逻辑分析
振幅大于1是希望能找到波动较大的股票,昨天3连板则是希望找到昨天刚刚热度开始增加的股票,底部抬高则是希望寻找可能即将反转或反弹的股票。
有何风险?
该策略依旧只关注了股票的波动和短期热度,而没有考虑到股票的基本面信息,选股结果可能存在较大的偏差和风险。而且底部抬高的定义不够明确,容易出现歧义。
如何优化?
针对上述风险,可以引入更多的基本面变量和指标,例如PE、PB、市值等指标,并结合技术指标进行多维度的综合考虑,对于选股结果进行更合理的判断和选择;同时要明确底部抬高的定义,可以引入趋势线或其他相关指标进行判断。
最终的选股逻辑
经过优化和改进,最终的选股逻辑如下:
- 振幅大于1,市场对波动较大的股票更感兴趣。
- 昨天3连板,寻找当前热门概念的热门个股。
- 底部抬高,定义为股价在近期底部开始呈现上升趋势的股票。
同花顺指标公式代码参考
HHV:=(REF(HIGH,1)<HIGH)*HIGH+(REF(HIGH,1)>=HIGH)*REF(HIGH,1);
LLV:=(REF(LOW,1)>LOW)*LOW+(REF(LOW,1)<=LOW)*REF(LOW,1);
AA:=ABS(HHV-REF(LLV,1));
BB:=ABS(LLV-REF(HHV,1));
CC:=ABS(HHV-REF(CLOSE,1));
DD:=ABS(LLV-REF(CLOSE,1));
max1:=MAX(AA,BB);
max2:=MAX(CC,DD);
RSV:=SMA(IF(max1>max2,RSV1,RSV2),N1,1);
K:=SMA(RSV,M1,1);
D:=SMA(K,M2,1);
python代码参考
high1 = df['high'].shift(1)
low1 = df['low'].shift(1)
hhv = df['high'].where(high1 < df['high'], high1)
llv = df['low'].where(low1 > df['low'], low1)
aa = abs(hhv - llv)
bb = abs(llv - high1)
cc = abs(hhv - df['close'].shift(1))
dd = abs(llv - df['close'].shift(1))
max1 = aa.combine(bb, func=max)
max2 = cc.combine(dd, func=max)
rsv = pd.Series(index=hhv.index)
rsv[max1 > max2] = ((df['close'] - llv) / (hhv - llv)) * 100
rsv[max1 <= max2] = ((df['close'] - df['close'].shift(N1)) / df['close'].shift(N1)) * 100
k = rsv.rolling(window=M1).mean()
d = k.rolling(window=M2).mean()
## 如何进行量化策略实盘?
请把您优化好的选股语句放入文章最下面模板的选股语句中即可。
select_sentence = '市值小于100亿' #选股语句。
模板如何使用?
点击图标右上方的复制按钮,复制到自己的账户即可使用模板进行回测。
## 如果有任何问题请添加 下方的二维码进群提问。
