问财量化选股策略逻辑
选股逻辑:振幅大于1,底部抬高,七连阴。
选股逻辑分析
该选股策略主要结合了技术指标和市场数据,通过振幅、底部抬高等技术指标判断市场走势,同时筛选出连续七天下跌的个股,认为这些股票已经超卖,可能存在反弹机会。
有何风险?
该选股策略存在漏选优质个股的风险,因为连续七天下跌的个股并不一定都是低估值的优质个股,同时在市场快速变化的情况下,连续七天下跌的个股也可能会出现问题。
如何优化?
该选股策略可以进一步结合其他技术指标如MACD、KDJ等进一步选取个股,并结合股票市值、成交量等因素,进行深度筛选。
最终的选股逻辑
在分析和优化该选股策略后,我们可以得到最终的选股逻辑:
- 振幅大于1;
- 底部抬高;
- 连续七天下跌;
- 剔除ST和*ST股票;
- 止损条件:当K线或收盘价跌破布林带中轨时,卖出。
同花顺指标公式代码参考
以下是在同花顺上实现该选股策略的指标公式代码:
C1:AMP() > 1;
C2:BOTTOM(HIGH,C1)>BOTTOM(HIGH,C1+1);
C3:LASTPRICE() < REF(HHV(HIGH,C4),C4);
C4:COUNT( CLOSE<REF(CLOSE,1), 7) == 7;
C5:NOT(INSTR('ST',SINFO) OR INSTR('*ST',SINFO));
C6:DEA()>DEA(1) AND DEA()>0;
C7:CLOSE>BOLLMA(CLOSE,20);
C8:CLOSE>REF(BOLLMA(CLOSE,20),1);
C9:(CLOSE<BOLLUPR(CLOSE,20,2)) OR ((CLOSE>=BOLLUPR(CLOSE,20,2)) AND (CLOSE>REF(CLOSE,1)));
SELECTOR:=C1 AND C2 AND C3 AND C4 AND C5 AND C6 AND C7 AND C8 AND C9;
RESULT:=SELECTOR;
Python代码参考
以下是Python实现该选股策略的选股逻辑的代码:
from stockstats import StockDataFrame
# 转换为 StockDataFrame
sdf = StockDataFrame.retype(df)
# 筛选振幅大于1,底部抬高,连续七天下跌
selected_stocks = (sdf['amp'] > 1) & \
(sdf['low'].rolling(window=C1).apply(lambda x: (np.argmax(x[-C1:]) == C1 - 1) and (np.argmax(x[:-C1]) < np.argmax(x[-C1:])), raw=False)) & \
(sdf['pct_chg'].rolling(window=C3).apply(lambda x: (x < 0).all(), raw=False)) & \
(~sdf['scode'].str.contains('ST')) & \
(~sdf['scode'].str.contains('*ST'))
# 加入止损策略:当K线或收盘价跌破布林带中轨时,卖出
sdf['mean'] = sdf['close'].rolling(window=20).mean()
sdf['std'] = sdf['close'].rolling(window=20).std()
sdf['lower'] = sdf['mean'] - 2 * sdf['std']
sdf['close_1'] = sdf['close'].shift(1)
sdf['sell_signal'] = (sdf['kdjk'] < sdf['kdjd']) & (sdf['kdjk'] < sdf['kdjj']) & \
((sdf['close'] < sdf['mean']) | (sdf['close_1'] < sdf['mean']))
selected_stocks = selected_stocks & (~sdf['sell_signal'])
# 返回选中个股的代码
return selected_stocks['scode'].tolist()
通过在Python中实现该选股逻辑,可以更加灵活地结合多种技术指标和市场数据进行深度筛选和智能选股,同时也可以利用机器学习和其他算法不断完善略策略,以达到更优秀的选股表现。
## 如何进行量化策略实盘?
请把您优化好的选股语句放入文章最下面模板的选股语句中即可。
select_sentence = '市值小于100亿' #选股语句。
模板如何使用?
点击图标右上方的复制按钮,复制到自己的账户即可使用模板进行回测。
## 如果有任何问题请添加 下方的二维码进群提问。
