(supermind量化投资)task13/a/元宇宙、机构动向大于0、连续5年ROE>1

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

问财量化选股策略逻辑

选股逻辑包括三个条件:选择元宇宙行业的股票、机构动向大于0、连续5年ROE>15%。根据这些条件进行选股,进行投资。

选股逻辑分析

该选股策略主要围绕以下三个条件进行选股:

  1. 选取元宇宙行业中的股票,因为元宇宙领域具有较高的成长性和隐含收益;
  2. 机构动向具有预测性和引导作用,选择机构买入股票可以获得较好的资本回报;
  3. 连续5年ROE>15%的企业具有较好的盈利能力,选择这样的企业有望获得良好的股价表现。

综合以上条件,选择符合条件的个股进行投资。

有何风险?

  1. 对企业的判断可能有误,会导致选股错误;
  2. 单一的财务指标可能无法全面评估企业的盈利能力;
  3. 如果市场整体行情低迷,该策略可能难以保持良好的投资效果。

如何优化?

  1. 加入其他财务指标进行筛选,例如净利润增长率、总资产收益率等;
  2. 按照行业特点设置选股条件,例如按照行业的PE水平进行筛选;
  3. 合理设置选股条件,例如可以将ROE条件放宽到连续3年ROE>15%。

最终的选股逻辑

该选股策略选择元宇宙行业中,机构动向大于0,连续5年ROE>15%的企业进行投资。

同花顺指标公式代码参考

元宇宙行情:GNBK("gnxq");

机构动向:DRS_M("zlltgtzb");

ROE:ROE("roe_yearly",5);

选股公式:GNBK("gnxq") AND DRS_M("zlltgtzb") AND ROE("roe_yearly",5)>0.15

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='', list_status='L', fields='ts_code,name,industry')
    data1 = data1[data1['name'].str.contains('元宇宙')]
    data2 = pro.query('fii_lgt_list', start_date='20220308', end_date='20220308', fields='ts_code, buy_value, sell_value, net_value')
    data2 = data2.groupby(by='ts_code').sum()
    data2['net'] = data2['net_value'] / 1e8
    data2 = data2.sort_values(by='net', ascending=False)
    data2 = data2.iloc[0:100, :]
    data2['rank'] = range(1, 101)
    data2 = data2.loc[:, ['rank']]
    data3 = pd.concat([data1, data2], axis=1)
    data3 = data3.dropna()
    data3.reset_index(drop=True, inplace=True)
    data4 = pro.query('fina_indicator', ts_code=data3['ts_code'].tolist(), start_date='20170001', end_date='20211231', fields='ts_code,roe')
    data4 = data4.groupby('ts_code').apply(lambda x: sum(x['roe'] > 0.15*5) == 5).reset_index()
    data4.columns = ['ts_code', 'flag']
    data5 = pd.concat([data3, data4], axis=1)
    data5 = data5[data5['flag']]
    data5.reset_index(drop=True, inplace=True)
    data6 = pro.query('investor', trade_date='20220308', fields='ts_code, trade_type, buy_value, sale_value, net_value')
    data7 = pd.pivot_table(data6, values='net_value', index='ts_code', columns='trade_type')
    data7['DRS_M'] = (data7.iloc[:, 0] - data7.iloc[:, 1]) / 1e8
    data7 = data7.loc[:, ['DRS_M']]
    data8 = pd.concat([data5, data7], axis=1)
    data8.dropna(inplace=True)
    return data8
    ## 如何进行量化策略实盘?
    请把您优化好的选股语句放入文章最下面模板的选股语句中即可。

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

    模板如何使用?

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


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

评论