问财量化选股策略逻辑
选股逻辑:振幅大于1, 机器人概念且流通市值小于100亿,PE>0。
选股逻辑分析
该选股策略在基础选股条件基础上,加入了财务面指标--PE>0的条件,旨在挑选出财务和基本面较强,且可能迎来上涨趋势的标的股票。
有何风险?
该选股策略可能存在以下风险:
- 过于关注财务数据而忽视公司和行业基本面的变化,导致股价长期偏高;
- PE作为估值指标,存在不同行业或标的间数据不可比性的问题;
- PE值可能对股票价格的未来走势预测不准确,仅作为参考指标存在一定的风险。
如何优化?
为减少风险,可以从以下几个方面进行改进:
- 提高选股条件和筛选的稳定性,避免受到干扰因素的影响,如提高选股基础筛选条件、减少筛选结果数量等;
- 加入其他多个财务和基本面因素,如EPS,市净率等,提高选股的全面性和准确性;
- 采用缺省值填充、标准化等方法解决PE在不同行业或标的间不可比性的问题;
- 周期性地进行超买超卖等策略判断,降低PE数据预测的不准确性。
最终的选股逻辑
综上,最终的选股逻辑如下:
- 振幅大于1、机器人概念、流通市值小于100亿;
- PE>0,符合合理估值的股票;
- 具有优秀财务和基本面,符合投资策略要求的个股。
同花顺指标公式代码参考
为了实现选股逻辑,可以结合同花顺提供的指标公式,如下:
// 振幅
A1 = ((H - L) / L) > 0.01;
// 机器人概念
B1 = CONCEPT IN ("智能机器人");
// 流通市值小于100亿
C1 = CAPITALIZATION < 100000000;
// PE>0
D1 = PE_TTM > 0;
// 合并条件
IF(A1 AND B1 AND C1 AND D1, 1, 0)
Python代码参考
为了实现选股逻辑,可以结合Python的pandas等模块和优矿的数据API,如下:
# 获取股票数据和财务数据
stock_data = get_stock_data()
fin_data = get_fin_data()
# 判断振幅是否符合条件
stock_data['amplitude'] = (stock_data['high'] - stock_data['low']) / stock_data['low']
stock_data['amplitude_condition'] = stock_data['amplitude'] > 0.01
# 判断是否为机器人概念股票
concept_stocks = get_concept_stocks(['智能机器人'])
stock_data['concept_condition'] = stock_data['code'].isin(concept_stocks)
# 判断流通市值是否符合条件
stock_data['capitalization_condition'] = stock_data['market_cap'] < 100000000
# 判断PE是否符合条件
fin_data['pe_condition'] = fin_data['pe_ratio'] > 0
# 合并条件
df = pd.concat([stock_data['amplitude_condition'], stock_data['concept_condition'], stock_data['capitalization_condition'], fin_data['pe_condition']], axis=1)
exc_stocks = df[df.all(axis=1)]
# 进一步筛选出具有优秀财务和基本面,符合策略要求的个股
selected_stocks = filter_finance_and_fundamental(exc_stocks)
注意事项:本回答中的选股逻辑、指标公式和Python代码仅供参考,实现过程中需要根据具体投资策略进行作出一定的调整和优化。
## 如何进行量化策略实盘?
请把您优化好的选股语句放入文章最下面模板的选股语句中即可。
select_sentence = '市值小于100亿' #选股语句。
模板如何使用?
点击图标右上方的复制按钮,复制到自己的账户即可使用模板进行回测。
## 如果有任何问题请添加 下方的二维码进群提问。
