问财量化选股策略逻辑
选股逻辑:振幅大于1, 机器人概念且流通市值小于100亿, 前天MACD<0。
选股逻辑分析
该选股逻辑考虑了技术面和基本面的因素,使用了MACD指标来判断股票的趋势性和价格动向,同时要求流通市值不超过100亿,以及股价振幅大于1且符合机器人概念来筛选符合要求的个股。目的在于找到具备较好的趋势性和潜力性的股票品种。
有何风险?
该选股逻辑中MACD指标仅仅只是用前天的值进行判断来筛选股票,同时缺乏其他技术因素指标和基本面的细节分析,可能会选择到整体股市环境不好,股价波动较大的股票品种。
如何优化?
该选股逻辑可以加入更多的技术面指标来确认股票的趋势性,例如布林带等,可以同时加入一些基本面分析的细节,例如股票业务分析来提高精度和减少误判。
最终的选股逻辑
基于以上分析,我们提出改进后的股票筛选逻辑:
- 振幅大于1;
- 机器人概念且流通市值小于100亿;
- 近期MACD指标表现不错。
同花顺指标公式代码参考
以下是通达信指标的公式代码示例:
F01:HIGH / LOW - 1 > 0.01; // 振幅大于 1
F02:CONCEPT("机器人概念"); // 机器人概念
F03:CAPITALIZATION < 10000000000; // 流通市值小于 100 亿
// MACD指标
F04:DIF = EMA(CLOSE, 12) - EMA(CLOSE, 26);
F05:DEA = EMA(DIF, 9);
F06:MACD = 2 * (DIF - DEA);
F07:N = BARSLAST(MACD < 0, 2); // 判断前天MACD值
F08:SELECT(CLOSE > 0, 0, 1) == 1;
FILTER:F01 AND F02 AND F03 AND F07 == 1 AND NOT 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)
dif = dv.add_formula("dif", "EMA(CLOSE, 12) - EMA(CLOSE, 26)", add_data=True)
dea = dv.add_formula("dea", "EMA(dif, 9)", add_data=True)
macd = dv.add_formula("macd", "2 * (dif - dea)", add_data=True)
yesterday_macd = dv.add_formula("yesterday_macd", "Tsmax(macd, 2) <= 0", add_data=True)
selected_stocks = (high / low - 1 > 0.01).any(axis=0) & \
concept_robot & (circulation_market_cap < 10000000000) & yesterday_macd
selected_stocks = selected_stocks[selected_stocks].sort_values(by="heat_rank", ascending=False)
return selected_stocks.index.tolist()
该示例代码使用了 Python 在Pandas DataFrame 中计算和筛选选股逻辑,并使用技术面和基本面指标,例如MACD指标进行判断,以期获得更好的效果。
## 如何进行量化策略实盘?
请把您优化好的选股语句放入文章最下面模板的选股语句中即可。
select_sentence = '市值小于100亿' #选股语句。
模板如何使用?
点击图标右上方的复制按钮,复制到自己的账户即可使用模板进行回测。
## 如果有任何问题请添加 下方的二维码进群提问。
