问财量化选股策略逻辑
选股逻辑:振幅大于1,反包,流通盘小于等于55亿股。
选股逻辑分析
该选股逻辑主要从振幅和形态两个角度出发进行筛选,并增加了流通盘的限制条件。形态因素的筛选增加了一些主观性,但相对于单纯的技术指标更具有选股价值。流通盘限制则可以筛选出少量但较优质的股票。
有何风险?
流通盘小于等于55亿股的公司并不一定就是估值优势股,也可能是“僵尸股”;反之,估值优势股未必满足流通盘条件,选股集中度可能较高。此外,形态因素的识别存在主观性,需要注意判断误差。
如何优化?
可以结合更多量化的指标,如市盈率、市净率等基本面因素,对股票进行筛选,并避免单纯依赖形态指标的筛选。另外,可以结合流通市值等指标作为流通盘的辅助筛选条件。
最终的选股逻辑
基于以上分析,提出完善后的选股逻辑:
- 振幅大于1;
- 近3天内出现反包形态;
- 流通盘小于等于55亿股;
- 当前股票收益率大于0;
- 综合分析其他因素,如市盈率、市净率等基本面指标;
- 筛选出优质股票。
同花顺指标公式代码参考
使用通达信指标计算,以下是该选股策略的通达信指标公式代码:
F01: HIGH/LOW - 1 > 0.01; // 振幅大于1
F02: NOT(SIGN(CLOSE - REF(CLOSE, 1)) == SIGN(REF(CLOSE, 1) - REF(CLOSE, 2))); // 反包
F03: MARKETVALUE <= 55000000000; // 流通盘小于等于55亿股
F04: CLOSE / REF(CLOSE, 1) > 1; // 当前收益率大于0
FILTER: F01 AND F02 AND F03 AND F04;
SELECT(IF(1, 1, 0), "选股"); // 输出文本信息:选股
python代码参考
以下是 Python 实现该策略的选股逻辑:
def stock_filter(dv, symbols):
# 获取数据,计算指标
market_value = dv.get_ts('circulating_market_cap', symbol=symbols)
close = dv.get_ts('close', symbol=symbols)
price_filter = (close.iloc[:, -1] > close.iloc[:, -2]) # 当前收益率大于0
amp = (close / close.shift(1) - 1).abs() > 0.01
ta_func_renko = Ta('CDLTRISTAR', 0, dv.get_ts('open'), dv.get_ts('high'), dv.get_ts('low'), close)
market_value_filter = (market_value.iloc[-1] <= 55000000000)
reverse_pattern = ((ta_func_renko == 100).sum(axis=0) >= 1) & price_filter & amp
selected_stocks = (reverse_pattern & market_value_filter)
selected_stocks = selected_stocks.sort_values(by='pct_chg', ascending=False)
return selected_stocks.index.tolist()
在结合形态因素和振幅因素的基础上,添加了市值作为辅助因素,相对更具有选股价值。同时,注意到市值并不一定等于流通市值,可以按需调整筛选条件。
## 如何进行量化策略实盘?
请把您优化好的选股语句放入文章最下面模板的选股语句中即可。
select_sentence = '市值小于100亿' #选股语句。
模板如何使用?
点击图标右上方的复制按钮,复制到自己的账户即可使用模板进行回测。
## 如果有任何问题请添加 下方的二维码进群提问。
