问财量化选股策略逻辑
选股逻辑:振幅大于1%,北京A股除外,归属母公司股东的净利润(同比增长率)大于20%小于等于100%。
选股逻辑分析
该选股策略在保证振幅足够大和排除区域限制的基础上,重点筛选归属母公司股东净利润(同比增长率)在一定范围内的股票,以此筛选出优秀的业绩和潜力良好的股票。
有何风险?
该选股逻辑可能存在以下风险:
- 只考虑了归属母公司股东净利润(同比增长率)这一因素,忽略了市场环境、政策等因素对公司发展的影响;
- 在选取归属母公司股东净利润(同比增长率)时,未考虑净利润的规模,导致求同存异的公司也会被选中。
如何优化?
为了改进该选股策略,可以考虑以下方面:
- 在归属母公司股东净利润(同比增长率)的基础上,加入其他财务指标,综合考虑公司的财务状况;
- 增加市场环境、政策等因素的考虑,以更全面的视角判断公司的发展前景;
- 考虑净利润规模等因素,以更精确地筛选出具备实力的公司;
最终的选股逻辑
经过改进后的选股逻辑如下:
- 排除北京A股,非中国大陆等区域的股票;
- 振幅大于1%;
- 归属母公司股东的净利润(同比增长率)大于20%小于等于100%;
- 净利润和净利润增长率均>0。
同花顺指标公式代码参考
选股逻辑的同花顺指标公式如下:
振幅:ABS((HIGH-LOW)/REF(CLOSE,1))>0.01;
非北京A股和非中国大陆:BOARD_MAIN!='中国大陆' AND AREA!='北京';
净利润增长率:(Q(YOY_NET_PROFIT)>=20 and Q(YOY_NET_PROFIT)<=100);
净利润和净利润增长率均>0:Q(NET_PROFIT)>0 AND Q(YOY_NET_PROFIT)>0;
选股公式:振幅 AND 非北京A股和非中国大陆 AND 净利润增长率 AND 净利润和净利润增长率均>0;
python代码参考
选股逻辑的python代码如下:
def tech_picker(context):
# 非北京A股和非中国大陆
exc_stocks = context.exc_stocks[(context.exc_stocks.board_main != '中国大陆') & (context.exc_stocks.area != '北京')]
# 振幅大于1%
narrow_stocks = exc_stocks[((exc_stocks.high / exc_stocks.low) - 1) > 0.01]
# 归属母公司股东净利润(同比增长率)大于20%小于等于100%
revenue_growth = get_fundamentals(query(indicator.inc_net_profit_year_on_year).filter(indicator.inc_net_profit_year_on_year > 20, indicator.inc_net_profit_year_on_year <= 100),
date=context.current_dt.strftime('%Y-%m-%d'))
selected = pd.merge(exc_stocks, revenue_growth, on=['code', 'name'], how='inner')
selected = selected[selected.inc_net_profit_year_on_year > 0]
selected = selected[selected.net_profit > 0]
# 加入技术指标
selected = ts.pro_bar(selected.code.tolist(), adj='hfq')['data']
selected['ma5'] = ta.SMA(selected.close.values, timeperiod=5)
selected['ma10'] = ta.SMA(selected.close.values, timeperiod=10)
selected['macd'], selected['macdsignal'], selected['macdhist'] = ta.MACD(selected.close.values)
selected = selected.dropna()
# 选出满足条件的股票代码
return selected[selected.close == ts.HHV(selected.high, 2)].index.tolist()
## 如何进行量化策略实盘?
请把您优化好的选股语句放入文章最下面模板的选股语句中即可。
select_sentence = '市值小于100亿' #选股语句。
模板如何使用?
点击图标右上方的复制按钮,复制到自己的账户即可使用模板进行回测。
## 如果有任何问题请添加 下方的二维码进群提问。
