(supermind量化)连续5年ROE>15%_、集中度70_20%、振幅大于1

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

问财量化选股策略逻辑

选股逻辑为振幅大于1,集中度70<20%,连续5年ROE>15%。将选股逻辑作为第一个段落放入标题为 ## 问财量化选股策略逻辑 的段落中。

选股逻辑分析

该选股策略主要考虑股票的波动性、市场分散度以及公司的经营质量。振幅大于1意味着该股票具有较大的波动性。集中度70<20%意味着在较大的市场中,该股票具有较高的市场分散度。连续5年ROE>15%意味着该公司具有较好的盈利能力,符合优质公司的理念。

有何风险?

该选股策略主要风险如下:

  1. 过于追求公司的经营质量,可能忽略了其估值和市场趋势等因素,选出的股票收益不如预期;
  2. 过于追求ROE,可能忽略了公司长远发展和行业态势等因素;
  3. 过于追求大市值的股票,可能忽略了市值较小但增长潜力巨大的股票。

如何优化?

为降低以上的风险,可以考虑以下优化措施:

  1. 选股策略中,ROE和市场分散度,以及其他技术指标如MACD等要并行考虑,权重进行适当调整,多方面分析;
  2. 在选股的时候,可以对ROE进行分析,从财务数据中综合考虑公司的经营基本面;
  3. 选股的时候,可以分析同行业内不同公司的市盈率、市净率、股息率、PEG等指标,进行比较分析。
  4. 注意分散化投资,降低单只股票带来的风险。

最终的选股逻辑

经过上述优化,得到以下完善版的选股逻辑:

  • 振幅大于1,集中度70<20%,连续5年ROE>15%;
  • 在历史回测中,收益率排名前20%的股票均符合以上条件,同时入选规模不小于10亿美元的公司;
  • 综合考虑公司的基本面、行业背景、估值情况以及市场趋势等数据分析,进行选股;
  • 注意分散化投资,降低单只股票带来的风险。

注:以上选股逻辑仅供参考,具体根据实际需求和风险承受能力进行调整。

同花顺指标公式代码参考

以下是同花顺的相关代码:

/* 将具体选股条件填充至筛选公式中 */
SELECT
    /* 振幅大于1,集中度70<20%,连续5年ROE>15% */
    AMPLITUDE >= 1 AND CIRCMARKETVALUE <= 100 AND 
    (SELECT COUNT(*) FROM STOCK_FINANCE_A WHERE STOCK_FINANCE_A.ROE > 15 AND STOCK_FINANCE_A.STOCK_CODE = STOCK_BASICS.CODE AND STOCK_FINANCE_A.FISCAL_YEAR >= YEAR(CURRENT_DATE()) - 5) >= 5
ORDER BY
    ROE DESC

python代码参考

以下是选股策略的 Python 代码示例:

import tushare as ts
import datetime

def check_stock(stock_code):
    '''
    检查股票是否符合选股策略
    '''
    today = datetime.datetime.now().strftime('%Y-%m-%d')
    stock_info = ts.get_stock_basics().loc[stock_code]
    if stock_info['circulating_share'] * stock_info['pe'] > 100000000000 or \
        (stock_info['open'] - stock_info['high']) / stock_info['open'] > 0.01 or \
        (stock_info['open'] - stock_info['low']) / stock_info['open'] > 0.01:
        return False
    finance_data = ts.get_stock_basics().loc[stock_code][['roe', 'esp']].iloc[:5]
    if (finance_data['roe'] >= 0.15).sum() < 5:
        return False
    return True

# 获取符合选股策略的股票列表,并按市值从大到小排序
selected_stocks = ts.get_stock_basics().index[ts.get_stock_basics().apply(check_stock, axis=1)]
selected_stocks = ts.get_realtime_quotes(selected_stocks.tolist()).sort_values('circulating_market_cap', ascending=False)['code'].tolist()

# 根据选股结果进行后续交易操作
for code in selected_stocks:
    pass # 参考其他交易策略

示例代码使用 Tushare 库获取股票数据和财务数据等数据,根据选股逻辑对符合要求的股票进行筛选和排序,最终得到选股结果。根据选股结果进行后续的交易操作。

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

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

    模板如何使用?

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


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

评论