(supermind策略)换手率3%-12%、k小于20、归属母公司股东的净利润(同比增长

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

问财量化选股策略逻辑

选股逻辑为:在换手率3%-12%,K小于20,归属母公司股东的净利润(同比增长率)大于20%小于等于100%的前提下,选股买入。

选股逻辑分析

该选股策略主要从公司的基本面入手,挑选出具备较好财务状况和潜力的股票。其中,K值小于20是为了筛选出低风险股票,而换手率3%-12%的区间控制则是为了保证股票的流动性。归属母公司股东的净利润(同比增长率)大于20%小于等于100%选股逻辑则可以帮助判断公司的盈利能力。综合而言,该选股策略具备基本面和技术面的结合,可以将风险降至较低的水平。

有何风险?

该选股策略可能存在某些公司经营情况不稳定但利润增速较快的情况,这将会增加该策略的风险。此外,净利润增速高的企业不一定代表其成长性良好,因此需要综合考虑其他因素进行判断。

如何优化?

可以在筛选净利润增速较快的股票时,增加其他基本面指标的考察,比如负债率、毛利率等等,避免过分依赖单一指标并降低策略的风险。针对公司历史数据和行业整体状况,还可以考虑加入预估未来的盈利情况进行判断。

最终的选股逻辑

在换手率3%-12%,K小于20,归属母公司股东的净利润(同比增长率)大于20%小于等于100%的前提下,结合其他基本面指标(如负债率、毛利率等),选择流动性较好、成长性较高的股票。

同花顺指标公式代码参考

选股条件:(K < 20) AND (VOLUME >= 0.03 * CAPITALA) AND (SWS1 >= '801020' AND SWS1 <= '801030') AND (NETPROFIT_YOY_TR < 100 AND NETPROFIT_YOY_TR > 20)
选股结果:fml('(K < 20) AND (VOLUME >= 0.03 * CAPITALA) AND (SWS1 >= \'801020\' AND SWS1 <= \'801030\') AND (NETPROFIT_YOY_TR < 100 AND NETPROFIT_YOY_TR > 20)', TC)

Python代码参考

import tushare as ts
import pandas as pd

# 筛选好股票函数
def select_good_stocks():
    # 换手率3%-12%
    basic_info = ts.get_stock_basics()
    good_stocks = basic_info[(basic_info['turnoverratio'] >= 3) & (basic_info['turnoverratio'] <= 12)]
    
    # K值小于20
    for stock in good_stocks.index.tolist():
        df1 = ts.get_k_data(stock, ktype='D')
        if df1.iloc[-1]['K'] >= 20:
            good_stocks.drop([stock], inplace=True)
            continue
    
    # 行业情况
    sw_industry = ts.get_industry_classified()
    sw_industry.set_index('code', inplace=True)
    good_stocks = pd.merge(good_stocks, sw_industry, on='code')
    good_stocks = good_stocks[good_stocks['c_name'].str.contains('医药')]
    
    # 投资价值
    good_stocks['pb'] = basic_info.loc[good_stocks.index.tolist(), 'pb']
    good_stocks = good_stocks[good_stocks['pb'] > 0]
    good_stocks = good_stocks[good_stocks['pe'] > 0]
    
    # 净利润同比增长率
    profit_df = ts.get_profit_data(2018, 2)
    profit_df.set_index('code', inplace=True)
    good_stocks = pd.merge(good_stocks, profit_df['net_profit_ratio'], on='code')
    good_stocks = good_stocks[(good_stocks['net_profit_ratio'] > 0.2) & (good_stocks['net_profit_ratio'] <= 1)]
    
    return good_stocks

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

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

    模板如何使用?

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


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

评论