问财量化选股策略逻辑
选股逻辑为MACD零轴以上、PE大于0、连续5年ROE大于15%的股票。选股时间为每年年末。
选股逻辑分析
MACD是一种趋势追踪指标,红柱代表上涨趋势,当MACD在零轴以上时,说明当前股票处于强势状态,有较大的上涨空间。同时,通过PE大于0可以筛选出当前股票的估值较合理。连续5年ROE大于15%,说明该股票有较高的盈利能力和估值优势,有较大的上涨潜力。综合三个指标可以筛选出潜在上涨股票。
有何风险?
- 筛选条件可能忽略当前市场投资特点,可能带来选股风险;
- 当前市场变动较为迅猛,在选取5年ROE指标时可能无法充分反应当前市场状态;
- 选股筛选依赖于财务数据,数据的准确性可能存在偏差,带来选股风险。
如何优化?
- 引入其他趋势追踪指标,如KDJ等,提高选股策略的成功率;
- 考虑加入资金流入情况等基本面因素,避免忽略市场基本面数据带来的投资风险;
- 对衡量股票盈利能力的指标进行深入研究,而不仅仅局限于ROE,以减少对股价上涨空间的过度依赖。
最终的选股逻辑
选股逻辑为MACD零轴以上、PE大于0、连续5年ROE大于15%的股票。选股时间为每年年末。
同花顺指标公式代码参考
MACD指标:
DIF: EMA(CLOSE, 12) - EMA(CLOSE, 26);
DEA: EMA(DIF, 9);
MACD: (DIF - DEA) * 2;
PE指标:
PE: FIELD('pe_ttm', 0);
连续5年ROE大于15%:
ROE_AVG_Y1: (FIELD('roe_q', 3) + FIELD('roe_q', 2) + FIELD('roe_q', 1) + FIELD('roe_q', 0)) / 4;
ROE_AVG_Y2: (FIELD('roe_q', 7) + FIELD('roe_q', 6) + FIELD('roe_q', 5) + FIELD('roe_q', 4)) / 4;
ROE_AVG_Y3: (FIELD('roe_q', 11) + FIELD('roe_q', 10) + FIELD('roe_q', 9) + FIELD('roe_q', 8)) / 4;
ROE_AVG_Y4: (FIELD('roe_q', 15) + FIELD('roe_q', 14) + FIELD('roe_q', 13) + FIELD('roe_q', 12)) / 4;
ROE_AVG_Y5: (FIELD('roe_q', 19) + FIELD('roe_q', 18) + FIELD('roe_q', 17) + FIELD('roe_q', 16)) / 4;
CONDITION: ROE_AVG_Y1 > 15 AND ROE_AVG_Y2 > 15 AND ROE_AVG_Y3 > 15 AND ROE_AVG_Y4 > 15 AND ROE_AVG_Y5 > 15;
选股筛选公式:
MACD > 0 AND PE > 0 AND CONDITION;
排序公式:
默认按照个股市值排序,这里不做展示。
Python代码参考
以下为python的选股筛选代码、排序代码,仅供参考:
import akshare as ak
# 获取股票列表并计算选股筛选条件
data = ak.stock_zh_a_daily(symbol="", adjust="qfq").reset_index()
roe_avgs = data.groupby('ts_code')['roe'].rolling(4).mean()
condition = (roe_avgs.groupby('ts_code').tail(5) > 0.15).all()
condition &= data['macd'] > 0
condition &= data['pe_ttm'] > 0
result = data[condition]
# 按照市值排序
result_sorted = result.sort_values(by=['circ_mv'], ascending=False).head(5)
## 如何进行量化策略实盘?
请把您优化好的选股语句放入文章最下面模板的选股语句中即可。
select_sentence = '市值小于100亿' #选股语句。
模板如何使用?
点击图标右上方的复制按钮,复制到自己的账户即可使用模板进行回测。
## 如果有任何问题请添加 下方的二维码进群提问。


