(supermind量化投资)task13/a/元宇宙、前日实际换手率>3~28、连续5年

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

问财量化选股策略逻辑

该选股策略选择元宇宙行业中,符合以下条件的股票进行投资:前日实际换手率在3%~28%之间,连续5年ROE大于15%。

选股逻辑分析

该选股策略的选股条件主要包括:

  1. 选择元宇宙行业中的股票,因为这些企业可能受到元宇宙行业内用户需求的影响,具有潜在的成长性;
  2. 前日实际换手率在3%~28%之间,反映市场对其价值的认可度高且有成交热度,具有投资价值;
  3. 连续5年ROE大于15%,反映公司盈利能力较强,具有健康的财务状况。

有何风险?

  1. 连续5年ROE作为选股条件可能会忽略其他重要的财务指标和技术指标,不能充分反映企业的基本面和未来发展趋势;
  2. 行业可能存在快速发展、尚未盈利等情况,ROE高的企业可能存在一定的风险;
  3. 当前市场走势不稳定时,该选股策略可能存在较高的风险。

如何优化?

  1. 可以增加其他选股条件,如PE、PB等财务指标、技术指标等,综合考虑来筛选具备投资价值的股票;
  2. 对ROE条件做一定的灵活性设计,例如优先选择ROE排名前N的股票;
  3. 针对不同市场走势设定不同的选股条件,避免投资风险。

最终的选股逻辑

该选股策略选择元宇宙行业中,在前日实际换手率在3%~28%之间,并且连续5年ROE大于15%的股票进行投资。

具体选股条件为:元宇宙行情为GNXQ,前日实际换手率为 TURNOVER(2),连续5年ROE大于15%可通过股票的财务报表来判断,例如:

INDUSTRYIDB(2859,GNXQ) AND TURNOVER(2) > 3 AND TURNOVER(2) < 28 AND LASTFRP(ROE) > 15 FOR 5

同花顺指标公式代码参考

  • 元宇宙行情:GNBK('gnxq')
  • 前日实际换手率:TURNOVER(2)
  • 连续5年ROE: LASTFRP(ROE) > 15 FOR 5

在通达信中,可以使用如下指标代码:

LASTFRP(ROE) > 15 FOR 5

Python代码参考

import pandas as pd
import tushare as ts

def stock_selector():
    ts.set_token('your_token')
    pro = ts.pro_api()
    data1 = pro.query('stock_basic', exchange='SZSE', list_status='L', fields='ts_code, name, industry, list_date, total_share, float_share, market_cap, pe, pb, area')
    data1['ipo_date'] = pd.to_datetime(data1['list_date'])
    data1 = data1[data1['industry'].str.contains('元宇宙') & (data1['list_status'].isin(['L', 'N']))]
    data2 = pro.daily_basic(ts_code='', trade_date='20220101', fields='ts_code, turnover_rate_f')
    data2['actual_turnover'] = data2['turnover_rate_f'] * 100
    data2.index = pd.to_datetime(data2['trade_date'], format='%Y%m%d')
    data3 = data2[(data2['actual_turnover'] > 3) & (data2['actual_turnover'] < 28)]
    data4 = pro.fina_indicator(ts_code='', start_date='20160101', fields='ts_code, end_date, roe')
    data4 = data4.groupby('ts_code').apply(lambda x: x.set_index('end_date').resample('A').last())
    data4 = data4.reset_index().dropna()
    data4['year'] = pd.to_datetime(data4['end_date']).dt.year
    data5 = data4.groupby('ts_code').apply(lambda x: all(x[x['year'] >= 2016]['roe'] > 15))
    data6 = data3[data3.index.isin(data5.index[data5 == True])]
    data7 = data1.merge(data6[['ts_code']], on='ts_code', how='inner')
    return data7[['ts_code', 'name']]
    ## 如何进行量化策略实盘?
    请把您优化好的选股语句放入文章最下面模板的选股语句中即可。

    select_sentence = '市值小于100亿' #选股语句。

    模板如何使用?

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


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

评论