问财量化选股策略逻辑
选股逻辑:振幅大于1,底部抬高,DEA上涨。
选股逻辑分析
该选股策略同样结合了技术指标,振幅大于1和底部抬高等筛选出市场中股票走势稳健的个股,同时结合MACD指标,确保股票价格处于较强上涨趋势中。利用DEA指标判断股票当前处于上涨或下跌趋势,选择指标上涨的股票。
有何风险?
该选股策略同样可能存在遗漏一些潜在优质股票的风险,因为其筛选条件较为严格,可能会忽略掉一些市场上具有较高潜力的个股。同时,该策略也可能受到市场整体行情的影响,在市场出现较大的波动或调整时,该策略选出的个股表现可能不如其他策略。
如何优化?
在该选股策略的基础上,可以加入其他指标,如RSI等,以进一步提升选股策略的准确性和稳定性。可以针对个股的股价波动性质进行优化,考虑加入基本面和财务数据的分析等,以更准确地识别真正的潜力股票。
最终的选股逻辑
在分析和优化该选股策略后,我们可以得出最终的选股逻辑:
- 振幅大于1;
- 底部抬高;
- DEA上涨;
- 止损条件:收盘价跌破布林带中轨在K线上方的第二个交易日卖出。
同花顺指标公式代码参考
以下是在同花顺上实现该选股策略的指标公式代码:
C1:AMP()>1;
C2:BOTTOM(HIGH,C1)>BOTTOM(HIGH,C1+1);
C3:EMA(CLOSE,12)>EMA(CLOSE,26);
C4:DEA()>DEA(1) AND DEA()>0;
C5:CLOSE>BOLLMA(CLOSE,20);
C6:CLOSE>REF(BOLLMA(CLOSE,20),1);
C7:(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;
RESULT:=SELECTOR;
Python代码参考
以下是Python实现该选股策略的选股逻辑的代码:
from stockstats import StockDataFrame
# 将数据转换为 StockDataFrame
sdf = StockDataFrame.retype(df)
# 选取振幅大于1,底部抬高,DEA上涨的股票
selected_stocks = (sdf['amp'] > 1) & \
(sdf['high'].rolling(window=C1).apply(lambda x: (np.argmin(x[-C1:]) == C1 - 1) and (np.argmin(x[:-C1]) > np.argmin(x[-C1:])), raw=False)) & \
(sdf['close_12_ema'] > sdf['close_26_ema']) & \
(sdf['macd'] > sdf['macdsignal']) & (sdf['macd'] > 0)
# 加入止损策略:当收盘价跌破布林带中轨在K线上方的第二个交易日,卖出
sdf['mean'] = sdf['close'].rolling(window=20).mean()
sdf['std'] = sdf['close'].rolling(window=20).std()
sdf['upper'] = sdf['mean'] + 2 * sdf['std']
sdf['lower'] = sdf['mean'] - 2 * sdf['std']
sdf['close_1'] = sdf['close'].shift(1)
sdf['lower_1'] = sdf['lower'].shift(1)
sdf['sell_signal'] = (sdf['close'] < sdf['mean']) & (sdf['close_1'] > sdf['upper']) & (sdf['close'] < sdf['lower_1'])
selected_stocks = selected_stocks & (~sdf['sell_signal'])
# 返回选中个股的代码
return selected_stocks['code'].tolist()
通过在Python中实现该选股逻辑,可以更加灵活地结合各种技术指标和基本面数据进行调整和智能化筛选,同时也可以利用机器学习等技术进一步优化算法,以获得更好的选股效果。
## 如何进行量化策略实盘?
请把您优化好的选股语句放入文章最下面模板的选股语句中即可。
select_sentence = '市值小于100亿' #选股语句。
模板如何使用?
点击图标右上方的复制按钮,复制到自己的账户即可使用模板进行回测。
## 如果有任何问题请添加 下方的二维码进群提问。
