问财量化选股策略逻辑
选股逻辑:振幅大于1,反包出现,三个技术指标同时金叉。
选股逻辑分析
该选股策略综合了振幅指标和反包指标,同时考虑了三个技术指标的金叉情况,以找出一些有潜质的股票。
有何风险?
该选股策略可能会选出价值偏低的股票,无法解决基本面的问题。
如何优化?
可以通过加入其他指标来提高选股的准确性,例如计算滚动的相对强弱指数和股利收益率等。
最终的选股逻辑
基于以上分析,我们提出下面完善后的选择逻辑:
- 振幅大于1;
- 反包出现;
- 技术指标A、B、C同时金叉。
同花顺指标公式代码参考
以下是该选股策略的指标公式代码:
F01:HIGH / LOW -1 > 0.01; // 振幅大于1
F02:NOT(SIGN(CLOSE-REF(CLOSE, 1)) == SIGN(REF(CLOSE, 1) - REF(CLOSE, 2))); // 反包
F03:CROSS(DMA(CLOSE, 10), DMA(CLOSE, 50)); // 技术指标A金叉
F04:CROSS(MA(CLOSE, 20), MA(CLOSE, 50)); // 技术指标B金叉
F05:CROSS(MA(CLOSE, 5), MA(CLOSE, 20)); // 技术指标C金叉
FILTER:F01 AND F02 AND F03 AND F04 AND F05 > 0;
SYMBOL_SORT("热点板块", SORT_DESCEND);
SELECT(IF(F03 AND F04 AND F05, 1, 0),"诊股"); // 输出文本信息:选股
python代码参考
以下是 Python 实现该策略的选股逻辑:
def stock_filter(dv, symbol):
# 获取数据,计算指标
high = dv.get_ts("high", symbol=symbol)
low = dv.get_ts("low", symbol=symbol)
close = dv.get_ts("close", symbol=symbol)
dma_10 = dv.get_ts("dma", symbol=symbol, n=10)
dma_50 = dv.get_ts("dma", symbol=symbol, n=50)
ma_20 = dv.get_ts("ma", symbol=symbol, n=20)
ma_50 = dv.get_ts("ma", symbol=symbol, n=50)
ma_5 = dv.get_ts("ma", symbol=symbol, n=5)
amplitude = high / low - 1
reverse_pattern = (Ta('CDL2CROWS', 0, open, high, low, close) == 100)
technical_indicator_a = (dma_10 > dma_50)
technical_indicator_b = (ma_20 > ma_50)
technical_indicator_c = (ma_5 > ma_20)
selected_stocks = (amplitude > 0.01) & reverse_pattern & technical_indicator_a & technical_indicator_b & technical_indicator_c
# 筛选符合条件的股票并按照热度排序
selected_stocks = selected_stocks[selected_stocks].sort_values(by="heat_rank", ascending=False)
return selected_stocks.index.tolist()
选股逻辑中,我们用 Python 的 pandas 库和 TA-Lib 库计算振幅和反包指标,并计算三个技术指标的金叉情况,从而筛选出符合条件的股票,得到我们需要选择的股票列表。
## 如何进行量化策略实盘?
请把您优化好的选股语句放入文章最下面模板的选股语句中即可。
select_sentence = '市值小于100亿' #选股语句。
模板如何使用?
点击图标右上方的复制按钮,复制到自己的账户即可使用模板进行回测。
## 如果有任何问题请添加 下方的二维码进群提问。
