问财量化选股策略逻辑
选股逻辑:振幅大于1,底部抬高,2021年营收/2018年营收大于1.1。
选股逻辑分析
该选股策略结合了技术指标和基本面数据,根据振幅大于1和底部抬高等技术指标筛选出市场中走势比较稳定、有上涨潜力的个股,并需2021年营收/2018年营收大于1.1,强制增长的企业具有未来的潜力与吸引力,更符合长线投资的需求。
有何风险?
该选股策略可能存在遗漏一些潜在优质股票的风险,因为其筛选条件较为严格,可能会忽略掉一些市场上具有较高潜力的个股。同时,该策略也可能受到市场整体行情的影响,在市场出现较大的波动或调整时,该策略选出的个股表现可能不如其他策略。
如何优化?
在该选股策略的基础上,可以加入其他的技术指标和基本面数据,如股息率、市值等,以进一步提升选股策略的准确性和稳定性。可以通过深度学习等方法优化选股策略,同时结合投资者的风险偏好和投资目标进行选股。
最终的选股逻辑
在分析和优化该选股策略后,我们可以得出最终的选股逻辑:
- 振幅大于1;
- 底部抬高;
- 2021年营收/2018年营收大于1.1;
- 止损条件:布林带中轨线上穿后,最高价触及布林带上轨卖出。
同花顺指标公式代码参考
以下是在同花顺上实现该选股策略的指标公式代码:
C1:AMP()>1;
C2:BOTTOM(HIGH,C1)>BOTTOM(HIGH,C1+1);
C3:SALES_2021/SALES_2018>1.1;
C4:HIGH>=BOLLUPR(CLOSE,20,2);
C5:REF(HIGH,1)<=REF(BOLLUPR(CLOSE,20,2),1);
C6:CROSS(BOLLUPR(CLOSE,20,2),CLOSE) OR (C4 AND C5);
SELECTOR:=C1 AND C2 AND C3 AND C6;
RESULT:=SELECTOR;
Python代码参考
以下是Python实现该选股策略的选股逻辑的代码:
from stockstats import StockDataFrame
# 将数据转换为 StockDataFrame
sdf = StockDataFrame.retype(df)
# 选取振幅大于1,底部抬高,2021年营收/2018年营收大于1.1的股票
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['sales_2021'] / sdf['sales_2018'] > 1.1)
# 加入止损策略:当最高价触及布林带上轨时,卖出
sdf['upper'] = sdf['close'].rolling(window=20).mean() + 2 * sdf['close'].rolling(window=20).std()
sdf['high-shift'] = sdf['high'].shift(1)
sdf['upper-shift'] = sdf['upper'].shift(1)
sdf['sell_signal'] = (sdf['high'] >= sdf['upper']) & (sdf['high-shift'] <= sdf['upper-shift'])
selected_stocks = selected_stocks & (~sdf['sell_signal'])
# 返回选中个股的代码
return selected_stocks['code'].tolist()
通过在Python中实现该选股逻辑,可以更加灵活地结合各种技术指标和基本面数据进行调整和智能化筛选,同时也可以利用机器学习等技术进一步优化算法,以获得更好的选股效果。
## 如何进行量化策略实盘?
请把您优化好的选股语句放入文章最下面模板的选股语句中即可。
select_sentence = '市值小于100亿' #选股语句。
模板如何使用?
点击图标右上方的复制按钮,复制到自己的账户即可使用模板进行回测。
## 如果有任何问题请添加 下方的二维码进群提问。
