问财量化选股策略逻辑
选股逻辑:振幅大于1,北京A股除外,周线MACD在零轴之上。
选股逻辑分析
该选股逻辑侧重于技术指标,主要考虑了股票波动性和趋势因素。具体逻辑如下:
- 排除北京A股,缩小股票范围;
- 挑选振幅大于1的股票,波动性因素;
- 筛选周线MACD在零轴之上的股票,较好的股价趋势;
- 结合符合以上条件的股票进行选股。
有何风险?
该选股逻辑可能存在以下风险:
- 视野狭窄,可能会忽略更多重要因素;
- MACD在零轴之上不一定意味着趋势会有长期的上涨,可能存在错误误导。
如何优化?
为了改善上述可能存在的风险,可以从以下几点对选股逻辑进行改进:
- 深入分析自身条件下的股票市场,寻找更加有效的指标;
- 应用多种技术指标,避免对单一指标过于依赖;
- 综合考虑公司基本面因素,例如公司财务数据和行业性质。
最终的选股逻辑
经改进后的选股逻辑如下:
- 排除北京A股等;
- 振幅大于3%;
- 周线MACD死叉之后持续上涨,卖方动能弱化;
- 每股收益排名为前50%;
- 筛选的指标不得少于3项;
- 所选股票总数不超过10只。
同花顺指标公式代码参考
考虑到此选股逻辑选股的繁多限制,同花顺指标公式代码可以参考以下:
//振幅大于3%
IF((HIGH-LOW)/LOW>0.03 AND NOT(ISBJA),1,0)
//周线macd
IF(MACD(12, 26, 9) > REF(MACD(12, 26, 9), 1) AND MACD(12, 26, 9) < 0 AND
MACD(12, 26, 9) > MACD(12, 26, 9)[1] AND NOT(ISBJA),1,0)
//每股收益排名前50%
IF(THS_GDFY_MR_RANK(_GDFY_) < 50, 1, 0)
python代码参考
选股逻辑的python代码可以参考以下:
def multi_factor_picker(context):
# 非北京A股,振幅大于3%,MACD死叉之后持续上涨,每股收益排名前50%
exc_stocks = context.exc_stocks[
(context.exc_stocks.board_main != '中国大陆') &
((context.stocks.high - context.stocks.low) / context.stocks.low > 0.03) &
((talib.MACD(context.stocks.close, 12, 26, 9)[0][-1] > talib.MACD(context.stocks.close, 12, 26, 9)[0][-2]) &
(talib.MACD(context.stocks.close, 12, 26, 9)[0][-1] < 0) &
(talib.MACD(context.stocks.close, 12, 26, 9)[0][-1] > talib.MACD(context.stocks.close, 12, 26, 9)[0][-3]) &
~(context.stocks.tob > context.stocks.tob.quantile(0.2))) &
(context.stocks.gd_yysr_rank < 50) &
(len(context.stocks) <= 10)
]
# 返回选中的股票代码
# ...
## 如何进行量化策略实盘?
请把您优化好的选股语句放入文章最下面模板的选股语句中即可。
select_sentence = '市值小于100亿' #选股语句。
模板如何使用?
点击图标右上方的复制按钮,复制到自己的账户即可使用模板进行回测。
## 如果有任何问题请添加 下方的二维码进群提问。
