问财量化选股策略逻辑
选股逻辑为:振幅大于1、流通市值大于100亿元、连续5年ROE>15%。该选股策略主要考虑了股票波动性、市值和企业盈利能力等因素,是一种基本面较好的选股策略。
选股逻辑分析
该选股逻辑主要考虑了股票的波动性、市值和企业盈利能力等因素。振幅大于1可以反映个股的波动性,市值大于100亿元可以反应个股的规模,连续5年ROE>15%则可以反映企业的盈利能力。通过综合考虑这几个因素,筛选出符合条件的标的。
有何风险?
该选股策略虽然考虑了企业盈利能力等基本面因素,但仍有可能由于其他因素的影响而造成选股的失误。例如,个股的ROE可能会受到多个因素(如财务政策、行业变化等)的影响,因此需要仔细考虑ROE的选择,同时需要结合其他指标进行综合评估。此外,该选股逻辑很可能会忽略掉未来行业变革等因素对标的股票的影响。
如何优化?
在该选股逻辑的基础上,可以引入多因子模型综合考虑股票价值、成长及质量三方面的因素,提升选股的精确度和有效度。另外,通过增加监管、行业专业、创新能力等方面的指标来筛选企业盈利能力较强的标的股票,可以更准确地反映标的股的企业盈利能力情况。
最终的选股逻辑
选股逻辑为:振幅大于1、流通市值大于100亿元、连续5年ROE>15%。该选股策略综合考虑了股票波动性、市值和企业盈利能力等因素,主要定位于寻找优质股票。
同花顺指标公式代码参考
CIRC_MARKET_CAP >= 100 AND REF(HIGH/LOW, 1) > 1 AND PARSE_DATE(SUBSTR(ANN_DATE, 1, 8), 'YYYYMMDD') - PARSE_DATE(SUBSTR(ANN_DATE, 1, 8), 'YYYY') * INTERVAL '1' YEAR <= INTERVAL '5' YEAR AND ROE >= 15
其中,CIRC_MARKET_CAP表示流通市值大小,REF(HIGH/LOW, 1) > 1 表示昨日的振幅大于1,PARSE_DATE(SUBSTR(ANN_DATE, 1, 8), 'YYYYMMDD') - PARSE_DATE(SUBSTR(ANN_DATE, 1, 8), 'YYYY') * INTERVAL '1' YEAR <= INTERVAL '5' YEAR 表示年报发布时间在近5年之内,ROE >= 15 表示ROE大于等于15%,通过以上指标筛选出符合条件的股票。
Python代码参考
import tushare as ts
def get_selected_stocks():
pro = ts.pro_api()
selected_stocks = []
for ts_code in pro.stock_basic(exchange='', list_status='L', fields='ts_code,circ_mv').ts_code:
stock_data = pro.query('stock_basic', ts_code=ts_code)
if stock_data.iloc[0]['circulating_market_cap'] < 100 or stock_data.iloc[0]['area'] == '北京':
continue
# 判断是否满足ROE条件
finance_data = pro.query('fina_indicator', ts_code=ts_code, fields='end_date,roe')
if len(finance_data[finance_data['roe'] >= 15]) < 5:
continue
# 判断振幅是否满足条件
daily_data = pro.daily(ts_code=ts_code, start_date='20210201', end_date='', fields='open, high, low, close')
if max(daily_data['high'] / daily_data['low']) <= 1:
continue
selected_stocks.append(ts_code)
return selected_stocks
其中,在Python代码中,通过使用tushare库获取股票数据,进而筛选符合条件的股票。通过获取的个股财务数据判断其ROE情况,通过振幅指标判断个股波动性情况,筛选出满足条件的标的股票。
## 如何进行量化策略实盘?
请把您优化好的选股语句放入文章最下面模板的选股语句中即可。
select_sentence = '市值小于100亿' #选股语句。
模板如何使用?
点击图标右上方的复制按钮,复制到自己的账户即可使用模板进行回测。
## 如果有任何问题请添加 下方的二维码进群提问。
