需要帮助?

试试AI小助手吧

(supermind)振幅大于1、现量大于1万手

用户头像神盾局量子研究部
2023-08-21 发布

问财量化选股策略逻辑

选股逻辑为:振幅大于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亿' #选股语句。

    模板如何使用?

    点击图标右上方的复制按钮,复制到自己的账户即可使用模板进行回测。


    ## 如果有任何问题请添加 下方的二维码进群提问。
    ![94c5cde12014f99e262a302741275d05.png](http://u.thsi.cn/imgsrc/pefile/94c5cde12014f99e262a302741275d05.png)
收益&风险
源码

评论