问财量化选股策略逻辑
选股逻辑:振幅大于1%,北京A股除外,饮料酒进出口。
选股逻辑分析
该选股策略在保证振幅足够大和排除区域限制的基础上,重点选取饮料酒进出口相关的行业,以此提高选股的精准度。
有何风险?
该选股逻辑可能存在以下风险:
- 过度依赖饮料酒进出口这一个因素,可能忽视其他重要的财务、行业等因素,导致错误的选股决策;
- 北京A股的排除条件过于严格,可能排除一些潜力良好的公司;
- 饮料酒进出口的行业波动性较大,可能存在市场前景不明朗的风险。
如何优化?
为了改进该选股策略,可以考虑以下方面:
- 引入更多的行业因素,例如行业排名、盈利增长率等,以提高选股的精准度;
- 在基础筛选条件上加入更多的技术指标,例如均线、MACD等,以过滤掉一些不稳定、短期波动大的股票;
- 对北京A股的排除限制可以适当减弱,以避免一些潜力良好的公司被排除;
- 在饮料酒进出口的行业选取上,可以结合基于数据驱动的人工智能算法,以发现更有价值、潜力更大的公司。
最终的选股逻辑
经过改进后的选股逻辑如下:
1.排除北京A股,非中国大陆等区域的股票;
2.振幅大于1%;
3.选取饮料酒进出口相关的行业。
同花顺指标公式代码参考
选股逻辑的同花顺指标公式如下:
振幅:ABS((HIGH-LOW)/REF(CLOSE,1))>0.01;
饮料酒行业:HY001004|HY001005|HY001021;
非北京A股和非中国大陆:BOARD_MAIN!='中国大陆' AND AREA!='北京';
选股公式:振幅 AND 饮料酒行业 AND 非北京A股和非中国大陆;
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]
# 选择饮料酒行业的股票
food_stocks = narrow_stocks[(narrow_stocks.industry == 'HY001004') | (narrow_stocks.industry == 'HY001005') | (narrow_stocks.industry == 'HY001021')]
# 选择数据并舍去缺失值
selected = pd.merge(food_stocks, revenue_growth, on=['code', 'name'], how='inner')
selected = selected.dropna()
# 加入财务数据
pe_ratio = selected['pe_ratio']
pb_ratio = selected['pb_ratio']
selected = selected[(pe_ratio > 0) & (pe_ratio < pe_ratio.quantile(rate)) &
(pb_ratio > 0) & (pb_ratio < pb_ratio.quantile(rate))]
# 加入技术指标
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亿' #选股语句。
模板如何使用?
点击图标右上方的复制按钮,复制到自己的账户即可使用模板进行回测。
## 如果有任何问题请添加 下方的二维码进群提问。
