问财量化选股策略逻辑
选股逻辑:振幅大于1,连续5年ROE>15%,20日均线大于120日均线。
选股逻辑分析
该选股策略需要股票满足振幅大于1、连续5年ROE>15%以及20日均线大于120日均线的条件才能进行选股。其中,ROE可以衡量公司的经营能力,均线则反映了股票的趋势。这些指标均是选股的重要因素,但是同时适用于所有行业和市场,并不能完全反映出其特点。
有何风险?
该选股逻辑可能存在以下风险:
- 均线指标可能不能够完全反映出股票的趋势,因为不同的股票和行业的均线具有不同的特点;
- 选股逻辑过于简单,忽略了其他重要指标和因素,可能会影响选股效果。
如何优化?
为了减小风险,可以尝试以下优化:
- 在均线指标基础上,加入其他反映趋势的技术指标,如MACD、KDJ等,进行综合考虑;
- 根据不同行业和市场的特点,灵活调整ROE和均线指标的阈值;
- 加入其他关键指标,如市值、财务数据、资金流向等,进行综合评估。
最终的选股逻辑
基于以上分析和优化,我们可以得到以下完善的选股逻辑:
- 振幅大于1,波动率较低;
- 连续ROE指标良好,标志着公司经营能力稳定;
- 具备较好的趋势,市值适中,市场表现良好;
- 根据各行业特点和市场情况灵活调整各指标的阈值。
同花顺指标公式代码参考
C1: IF((HIGH - LOW >= 1) AND ('其他波动性指标'), 1, 0);
C2: IF(ROE(CLOSE, 5) > 15, 1, 0);
C3: IF(ROE(CLOSE, 4) > 15, 1, 0);
C4: IF(ROE(CLOSE, 3) > 15, 1, 0);
C5: IF(ROE(CLOSE, 2) > 15, 1, 0);
C6: IF(ROE(CLOSE, 1) > 15, 1, 0);
C7: IF(MA(CLOSE, 20) > MA(CLOSE, 120), 1, 0);
SELECTOR: C1 * (C2 + C3 + C4 + C5 + C6) * C7;
RESULT: SELECTOR;
python代码参考
import pandas as pd
import numpy as np
df = pd.read_csv('your_data.csv', index_col='date')
C1 = np.where((df['high'] - df['low'] >= 1) & ('其他波动性指标'), 1, 0)
def check_roe(x):
return (x > 0.15).all()
C2 = np.where(df.groupby('code')['roe'].apply(check_roe), 1, 0)
C3 = np.where(df.groupby('code')['roe'].apply(check_roe, n=4), 1, 0)
C4 = np.where(df.groupby('code')['roe'].apply(check_roe, n=3), 1, 0)
C5 = np.where(df.groupby('code')['roe'].apply(check_roe, n=2), 1, 0)
C6 = np.where(df.groupby('code')['roe'].apply(check_roe, n=1), 1, 0)
C7 = np.where(df['close'].rolling(20).mean() > df['close'].rolling(120).mean(), 1, 0)
selector = C1 * (C2 + C3 + C4 + C5 + C6) * C7
result = df[selector == 1].sort_values('mc', ascending=False).index.tolist()
## 如何进行量化策略实盘?
请把您优化好的选股语句放入文章最下面模板的选股语句中即可。
select_sentence = '市值小于100亿' #选股语句。
模板如何使用?
点击图标右上方的复制按钮,复制到自己的账户即可使用模板进行回测。
## 如果有任何问题请添加 下方的二维码进群提问。
