(supermind策略)换手率3%-12%、100亿市值以内的无亏损企业、集中度70_2

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

问财量化选股策略逻辑

选股逻辑为:在换手率3%-12%、市值100亿以内、无亏损的A股中选择股票,并且集中度(前五大股东持股比例之和)20%以下而且70%以上。

选股逻辑分析

该选股逻辑在条件筛选的基础上,增加了集中度的限制,即集中度在20%以下而且最高持股比例超过70%。这是为了降低公司的股权集中度,增加公司的稳定性和减少一些公司控制人的过度干预。但是,选股依赖于基础面数据,存在基本面因素对于股票价格波动的滞后性和不确定性带来的风险。而且,集中度过低也可能暗示一些公司没有核心股东的支持和公司治理问题。

有何风险?

该选股逻辑仍然会受到基本面数据和行业、公司不确定性的影响,选股依赖于基础面数据,存在基本面因素对于股票价格波动的滞后性和不确定性带来的风险。而且,集中度过低也可能意味着公司在决策上缺乏足够的掌控权,使得公司发展受到较大的制约。

如何优化?

在考虑市值、换手率、股票亏损的同时,增加对于公司治理的关注,从控制人的角度考虑公司稳定性的问题、股权结构的问题等等,综合考虑多个因素,筛选出符合条件且具有长期投资价值的股票。

最终的选股逻辑

在符合换手率3%-12%、市值100亿以内、无亏损的A股中选择股票,并在此基础上,综合考虑股权结构、公司治理、基本面等因素,筛选出符合条件且具有长期投资价值的股票。

同花顺指标公式代码参考

选股公式:(SHELL = 0 AND TBD = 0 AND YDNZ < 1.0 AND HSL >= 0.03 AND HSL <= 0.12 AND CIRCMV <= 10000000000 AND MARKET in ('深交所主板') AND (CONHOLDER_ZB1 < 20 OR (CONHOLDER_PERCENT_1 >= 70 AND CONHOLDER_PERCENT_5 <= 20))) ORDER BY GPJD DESC

Python代码参考

import pandas as pd
import tushare as ts

def get_good_stocks():
    good_list = []
    
    ts.set_token('your_token')
    pro = ts.pro_api()
    
    # 获取股票列表
    stock_list = pro.stock_basic(exchange='', list_status='L', fields='ts_code, name, industry, market, list_date')
    
    for ts_code in stock_list['ts_code']:
        # 判断该股票是否亏损
        income_data = pro.income(ts_code=ts_code, start_date='20190101', end_date='20211231')
        if income_data[income_data.report_type == '1'].iloc[-1]['n_income'] < 0:
            continue

        # 判断该股票的市值、换手率是否符合条件
        market_data = pro.daily_basic(ts_code=ts_code, start_date='20220215', end_date='20220218', fields='ts_code, circ_mv, total_mv, turnover_rate')
        if market_data[market_data['circ_mv'] > 10000000000].empty:
            continue
        if market_data[market_data['turnover_rate'] < 0.03].empty or market_data[market_data['turnover_rate'] > 0.12].empty:
            continue
            
        # 判断该股票的股权结构是否符合条件
        holder_data = pro.top10_holders(ts_code=ts_code, start_date='20211231', end_date='20211231')
        if holder_data['conholder_zb1'].iloc[0] >= 20:
            if holder_data['conholder_percent_1'].iloc[0] < 70 or holder_data['conholder_percent_5'].iloc[0] > 20:
                good_list.append(ts_code)

    return good_list

good_stocks = get_good_stocks()
print(good_stocks)
    ## 如何进行量化策略实盘?
    请把您优化好的选股语句放入文章最下面模板的选股语句中即可。

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

    模板如何使用?

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


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

评论