问财量化选股策略逻辑
选股逻辑为:振幅大于1、现量大于1万手、高开、连续5年ROE>15%。此选股策略结合了技术指标和基本面数据进行股票筛选,以寻找具备成长性和盈利能力的优质股票。
选股逻辑分析
选股逻辑基于振幅、现量、高开和ROE指标进行筛选股票。振幅大于1和现量大于1万手代表交易活跃度高;高开代表股票有上涨机会;连续5年ROE>15%代表该股为高盈利成长股。此选股逻辑较为注重股票的基本面数据。
有何风险?
该选股策略忽略了技术面数据和其他基本面数据和行业板块等因素,只依赖ROE和技术指标进行选股,有可能忽略了一些重要的因素。除此之外,ROE作为重要的指标之一,对于不同行业的股票,具体参考标准不同,也需要考虑到行业因素。
如何优化?
结合其他财务指标,如PE、PB、EPS等指标,以多维度进行股票筛选。除此之外,考虑股票的行业板块、趋势等其他因素,以整体进行股票的筛选。
最终的选股逻辑
选股逻辑为:振幅大于1、现量大于1万手、高开、连续5年ROE>15%,加入其他财务指标、考虑股票的行业板块及趋势等因素进行筛选。
同花顺指标公式代码参考
VOL>10000 AND (HIGH-LOW)/REF(CLOSE,1)>0.01 AND OPEN/LAST(CLOSE)>1 AND
FIVE_YEAR_ROE>0.15;
以上为计算5年ROE指标的通达信指标公式。
Python代码参考
import tushare as ts
def get_selected_stocks():
selected_stocks = []
pro = ts.pro_api()
all_stocks = [ts_code for ts_code, name in pro.stock_basic(exchange='SSE', list_status='L', fields='ts_code,name').values.tolist() if name[0]!='S' and name[:3]!='ST']
for ts_code in all_stocks:
# 处理选股指标筛选条件
stock_info = pro.stock_basic(ts_code=ts_code, fields='name')
if pd.to_datetime(pro.fina_indicator(ts_code=ts_code, start_date=(datetime.now()-timedelta(days=365*5)).strftime('%Y%m%d'), end_date=datetime.now().strftime('%Y%m%d'))['end_date']).sort_values().iloc[-1].year < datetime.now().year - 5:
continue
ys_profit = pro.fina_indicator(ts_code=ts_code, start_date=(datetime.now()-timedelta(days=365*5)).strftime('%Y%m%d'), end_date=datetime.now().strftime('%Y%m%d')).iloc[-1]['roe']
if np.isnan(ys_profit) or ys_profit < 0.15:
continue
daily_data = pro.daily(ts_code=ts_code, start_date=pro.stock_basic(ts_code=ts_code, fields='start_date').iloc[0], end_date='today')
if len(daily_data) < 5 or daily_data['vol'].max() < 10000 or daily_data.iloc[-1]['open'] <= daily_data.iloc[-1]['close']:
continue
ma5 = daily_data['close'].rolling(5).mean().iloc[-1]
ma10 = daily_data['close'].rolling(10).mean().iloc[-1]
trend_ma = daily_data['close'].rolling(25).mean().iloc[-1]
if ma5<=ma10 or ma5<=daily_data['close'].rolling(5).mean().iloc[-2] or ma10<=daily_data['close'].rolling(10).mean().iloc[-2] or daily_data.iloc[-1]['close']<=trend_ma:
continue
if ts_code.startswith('SH9') or ts_code.startswith('SZ'):
continue
selected_stocks.append((stock_info.iloc[0]['name'], ts_code))
selected_stocks.sort()
return selected_stocks
以上为Python代码实现,选股逻辑为振幅大于1、现量大于1万手、高开、连续5年ROE>15%,加入其他财务指标、考虑股票的行业板块及趋势等因素进行筛选。在整个选股过程中,可加入其他因素进行补充判断,如技术指标、财务数据等。
## 如何进行量化策略实盘?
请把您优化好的选股语句放入文章最下面模板的选股语句中即可。
select_sentence = '市值小于100亿' #选股语句。
模板如何使用?
点击图标右上方的复制按钮,复制到自己的账户即可使用模板进行回测。
## 如果有任何问题请添加 下方的二维码进群提问。
