问财量化选股策略逻辑
选股逻辑:振幅大于1,机器人概念且流通市值小于100亿,日线MACD>0。
选股逻辑分析
该选股逻辑仅考虑了股票的基本面指标和技术指标,其中振幅、机器人概念和流通市值反映了公司的基本面特征,而日线MACD则是一项技术性指标,它能较好的反映出股票的趋势和动量。
有何风险?
该选股逻辑忽略了很多重要的技术和基本面指标,容易受到市场短期波动影响而出现错误选股结果。同时,日线MACD指标对于较长的股票趋势可能不太准确,也容易出现超买超卖的情况。
如何优化?
为了减少股票选取过程中的误判,可以加入更多技术指标进行筛选和优化,如KDJ指标、RSI等。
同时,也可以加入一些基本面指标如股息率、市盈率、净资产收益率等,以增加选股策略的准确性和鲁棒性。
最终的选股逻辑
基于以上分析,我们提出改进后的股票筛选逻辑:
- 振幅大于1;
- 机器人概念且流通市值小于100亿;
- 日线MACD指标大于0;
- KDJ指标在20以下且K线向上交叉D线;
- 排除股票股息率低于2%的。
同花顺指标公式代码参考
以下是通达信指标的公式代码示例:
F01:HIGH / LOW - 1 > 0.01; // 振幅大于 1
F02:CONCEPT("机器人概念"); // 机器人概念
F03:CAPITALIZATION < 10000000000; // 流通市值小于 100 亿
F04:MACD(DIF, DEA, 12, 26, 9) > 0; // MACD指标向上
F05:KDJ(9, 3, 3).K < 20 AND KDJ(9, 3, 3).K >= KDJ(9, 3, 3).D; // KDJ
F06:DYR > 2 OR DYR IS NULL; // 股息率
FILTER:F01 AND F02 AND F03 AND F04 AND F05 AND F06;
SYMBOL_SORT("热度", SORT_DESCEND);
SELECT IF(F07, 1, 0) AS GOTO;
python代码参考
以下是用 Python 实现该策略的选股逻辑:
def stock_filter(dv, symbol):
high = dv.get_ts("high", symbol=symbol)
low = dv.get_ts("low", symbol=symbol)
concept_robot = dv.get_ts("concept", symbol=symbol).apply(lambda x: "机器人" in x)
circulation_market_cap = dv.get_ts("circulation_market_cap", symbol=symbol)
# 振幅大于1,机器人概念且流通市值小于100亿,日线MACD指标大于0
selected_stocks = (
(high / low - 1 > 0.01).any(axis=0) &
concept_robot &
(circulation_market_cap < 10000000000) &
(dv.add_formula('macd_dif', 'MACD.DIF').shift(1) > 0) & # MACD
(dv.add_formula('kdj_k', 'KDJ.KDJ').shift(1) < 20) & # KDJ
(dv.add_formula('kdj_k', 'KDJ.KDJ') > dv.add_formula('kdj_d', 'KDJ.KDJ').shift(1)) &
(dv.add_formula('dyr', '(TTM_DIVIDENDS_PS / CLOSE)').fillna(method='ffill') > 0.02) # 股息率
)
# 按照热度排名进行排序
selected_stocks = selected_stocks[selected_stocks].sort_values(by="heat_rank", ascending=False)
return selected_stocks.index.tolist()
该示例代码使用了 Python 实现了该选股逻辑,将选股逻辑中的几个指标在 Pandas DataFrame 中计算并筛选,同时加入了MACD、KDJ以及股息率等控制信号因子,结合基本面以及技术面来进行选股,以期获得更好的选股表现。
## 如何进行量化策略实盘?
请把您优化好的选股语句放入文章最下面模板的选股语句中即可。
select_sentence = '市值小于100亿' #选股语句。
模板如何使用?
点击图标右上方的复制按钮,复制到自己的账户即可使用模板进行回测。
## 如果有任何问题请添加 下方的二维码进群提问。
