问财量化选股策略逻辑
选股逻辑:振幅大于1,机器人概念且流通市值小于100亿,今日最低价小于昨日最低价。
选股逻辑分析
该选股逻辑主要包括了技术面的数据(振幅、今日最低价、昨日最低价)和基本面数据(机器人概念、流通市值),其中振幅和最低价是考虑股票波动性和趋势的技术指标,机器人概念和流通市值是反映公司发展前景和市场活力的基本面指标。今日最低价小于昨日最低价可以反映股票的抄底趋势。
有何风险?
该选股逻辑虽然考虑了技术面和基本面的数据,但并没有考虑到股票的长期业绩和财务状况,容易受到股票市场短期波动的影响,投资风险较大。同时,仅考虑了股票的最低价指标,未涵盖其他技术指标,容易忽略股票的趋势和波动情况,存在选股失误的可能性。
如何优化?
为了提高选股的准确性和稳健性,可以加入一些长期指标和其他技术指标,如ROE、EPS增长率、MACD、KDJ等,更全面地考虑股票的业绩和发展趋势和市场状态,从而减少风险和提高选股准确性。
最终的选股逻辑
基于以上分析,我们提出改进后的选股逻辑:
- 振幅大于1;
- 机器人概念且流通市值小于100亿;
- 今日最低价小于昨日最低价;
- ROE大于10%;
- EPS增长率大于0;
- MACD指标向上穿越;
- KDJ指标在20以下,并且K线向上交叉D线。
我们可以使用以下的方法进行判断:
- 将各个指标的值按照一定比例进行加权,得到一个“综合评分”,以该评分对股票进行排序,选取排名靠前的股票进行跟踪和购买。
同花顺指标公式代码参考
以下是通达信指标的代码示例:
F01:HIGH / LOW - 1 > 0.01; // 振幅大于 1
F02:CONCEPT("机器人概念"); // 机器人概念
F03:CAPITALIZATION < 10000000000; // 流通市值小于 100 亿
F04:LOW < LOW[1]; // 今日最低价小于昨日最低价
F05:FIELD(ROEAVG) > 0.1; //ROE大于10%
F06:FIELD(EPSYOYGROWTH) > 0; // EPS增长率大于0
F07:MACD(DIF, DEA, 12, 26, 9) > MACD(DIF, DEA, 12, 26, 9).shift(1); // MACD指标向上穿越
F08:KDJ(9, 3, 3).K < 20 AND KDJ(9, 3, 3).K > KDJ(9, 3, 3).D AND KDJ(9, 3, 3).K >= KDJ(9, 3, 3).J; // KDJ指标
FILTER:F01 AND F02 AND F03 AND F04 AND F05 AND F06 AND F07 AND F08;
SYMBOL_SORT("热度", SORT_DESCEND);
SELECT IF(F09, 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亿,今日最低价小于昨日最低价
selected_stocks = (
(high / low - 1 > 0.01).any(axis=0) &
concept_robot &
(circulation_market_cap < 10000000000) &
(low < low.shift(1)) &
(dv.get_ts("roeavg", symbol=symbol) > 0.1).all(axis=0) &
(dv.get_ts("epsyoygrowth", symbol=symbol) > 0).all(axis=0) &
(dv.add_formula('macd_dif', 'MACD.DIF').shift(1) < dv.add_formula('macd_dea', 'MACD.DEA').shift(1)) & # 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('kdj_k', 'KDJ.KDJ') >= dv.add_formula('kdj_j', 'KDJ.KJ').shift(1))
)
# 按照热度排名进行排序
selected_stocks = selected_stocks[selected_stocks].sort_values(by="heat_rank", ascending=False)
return selected_stocks.index.tolist()
该代码示例使用了 Python 实现了该选股逻辑,将选股逻辑中的几个指标在 Pandas DataFrame 中计算并筛选,同时加入了ROE、EPS增长率、MACD、KDJ等基本面和技术指标,选股中综合运用了技术和基本面两种分析方法,以期实现更好的选股结果。
## 如何进行量化策略实盘?
请把您优化好的选股语句放入文章最下面模板的选股语句中即可。
select_sentence = '市值小于100亿' #选股语句。
模板如何使用?
点击图标右上方的复制按钮,复制到自己的账户即可使用模板进行回测。
## 如果有任何问题请添加 下方的二维码进群提问。
