精华帖子

优秀策略分享——高股息多因子策略

由bqy53ve0创建,最终由bqy53ve0 被浏览 37 用户

1.市场观察和机会发现

优质高股息策略以稳定收益和抗风险能力为核心,在量化交易中具备独特价值。其逻辑层面,在经济下行或波动时,高股息企业商业模式成熟、现金流稳定,能提供防御性;股息再投资可实现复利增长,放大收益;被低估的高股息股存在估值修复机会;同时满足养老金等长期资金的配置需求。市场观察显示,牛市中该策略表现滞后但后期抗跌,熊市和震荡市成资金避风港。不同行业的高股息策略表现各异,金融、能源、公用事业、消费行业受各自行业特性及宏观因素影响,股息稳定性与收益存在差异。此外,市场风格轮动显著影响高股息策略,风格偏向价值股时表现优异,转向成长股时则较弱,投资者需关注风格变化,优化投资组合 。

有哪些指标可以体现高股息呢?换言之,如何才能筛选出高股息股票呢?

最重要的指标是股息率,这是衡量股息收益的关键指标,股息率越高,说明公司分红慷慨,给股东的回报相对较高,但不同行业的股息率水平差异较大,需结合行业特点进行判断。

其次是每股股息,即公司向股东每股分配的股息金额。每股股息的增长趋势可以反映公司的盈利能力和分红政策的稳定性。如果一家公司的每股股息持续增长,说明公司经营状况良好,有能力持续为股东提供丰厚的回报。

当然还有一些其他指标,例如每股息税前利润,每股收益,扣非净利润,这些都是直接体现股权和股息的指标。

一般来讲,股息并不会在一个较短的周期内改变,故我们将持仓周期设置为10,持仓4只,再进行一些非常基础的基本面过滤,看看效果如何?

在上述投资策略中,我们设定了严格的基本面筛选标准:要求企业每股息税前利润在最新报告期内,连续三个季度的最小值需超过 0.1 元;基本每股收益在最新报告期内,其环比增长数据在连续三个季度中的最小值同样要大于 0.1;扣非净利润则以滚动十二个月为周期,确保其环比增长在连续三个季度内的最小值不低于 0.1。基于上述筛选条件,进一步按照股息率由高到低的顺序,选取排名前三的股票构建投资组合。

实践结果显示,这种直观筛选高股息股票的策略虽能获取一定收益,但面临着较高的回撤风险。这表明,仅仅依靠当前的筛选条件还不足以有效控制风险,还需引入更多维度的筛选标准,结合技术分析指标对股票的综合表现进行更全面的评估。

在基本面分析层面,可通过深入考察企业的净利润增长率、营业收入增长率等关键指标,对公司的经营质量与发展潜力进行综合评估。稳定且良好的盈利表现,是企业持续进行高比例分红的重要前提,只有那些经营稳健、盈利可持续的企业,才更有能力长期维持高股息政策。通常情况下,连续多年保持稳定净利润增长率,同时营业收入实现稳步增长的企业,更有可能成为高股息投资的优质标的。

        float_market_cap < 5e9 
        AND ebit_ps_lf_consec_min_3q > 0.1
        AND basic_eps_latest_capital_lf_qoq_consec_min_3q > 0.1
        AND net_profit_deducted_ttm_qoq_consec_min_3q > 0.1

上面的回测结果说明这样的选股条件对应的结果还算差强人意,可以基于此继续优化。

2.策略想法

本投资策略旨在从基本面、技术面、资金面三大维度出发,构建一套系统化的优化框架,打造具备卓越竞争力的高股息投资策略体系。在策略构建过程中,所有选股标准与逻辑推演均严格遵循高股息股票的价值内核,深度契合其稳定收益、抗周期波动的核心投资理论,确保策略在逻辑层面的严密性与实践应用中的有效性,从而实现对高股息资产的精准筛选与科学配置。

2.1 基本面想法

基本面分析:具有优良的资本运转,市值在一定范围内,表现较好,有较好的未来成长价值,除此之外,净利润增长、收入增长可以保证公司的成长价值。

公司盈利稳定、现金流充沛、财务状况良好,且有较强意愿和能力为股东持续分红,体现在每股收益、股息率、股息增长率以及扣非净利润。

2.2 技术面想法

为捕捉轮动策略中可能的成长,避免遭遇较大的波动回撤,使用三条均线作为技术面支撑,用10日均线、20日均线、40日均线限制技术面形态。

2.3 资金面想法

除了基本面,技术面,本策略还聚焦于资金面,观察主动交易流入占比,以及选择最近资金周转活跃的股票,寻求更可能的交易契机。

3.策略逻辑编写

3.1策略思想与指标介绍

3.1.1成长性指标

计算过去三年的平均毛利率增长率,要求其大于一定水平。

m_avg(gross_profit_yoy_ttm, 756) AS avg_gross_profit_margin_growth_3y

计算过去三年的平均营业总收入增长率,也要求其大于一定水平。

m_avg(total_operating_revenue_yoy_ttm, 756) AS avg_operating_revenue_growth_3y

3.1.2技术面指标

使用10日、20日、40日均线,限制波动性和多空头排列。

        m_avg(close,10) as ma_10,
        m_avg(close,20) as ma_20,
        m_avg(close,40) as ma_40,

3.1.3基本面指标

对股票的市值进行一定限制

float_market_cap

其他基本面过滤:非st,非停牌,非科创板

        st_status = 0
        AND suspended = 0
        AND list_sector NOT IN (3)

3.1.4资金面指标

计算五日的主动买入成交额占比平均值。主动买入成交额占比(全单) = 主动买入成交额(全单) / 当日流通市值,要求其大于一定范围,保证活跃

m_avg(active_buy_amount_proportion_all,5) as avg_5day_buy_amout

除此之外,还要限制五天内交易足够活跃,避免出现偶然活跃的情况。要求五日的平均换手量大于流通股本的一定倍数,保证活跃

m_avg(volume,5)/free_float_shares 

3.1.5高股息指标

每股息税前利润(最新一期, 连续3个季度的最小值)大于一定水平

ebit_ps_lf_consec_min_3q

基本每股收益(最新股本摊薄)(最新一期, 环比增长连续3个季度的最小值)大于一定水平

basic_eps_latest_capital_lf_qoq_consec_min_3q

扣非净利润(滚动十二期, 环比增长连续3个季度的最小值)大于一定水平

net_profit_deducted_ttm_qoq_consec_min_3q

在满足上述所有条件的股票中,按照股息率从高到低买入

dividend_yield_ratio

3.2回测配置

股票策略统一设置回测配置,本策略使用的策略参数。

  • 回测时间:从 2021 年 1 月 1 日至 2025 年 4 月 27 日。
  • 初始资金:1,000,000 元
  • 交易频率:10天换仓

10天换仓会遗漏交易契机么?并不会,所有指标包括技术面和资金面,都使用几日的平均值,筛选出的股票满足长期条件。

4.数据回测与回测分析

初步筛选,对上面的指标设置一些下限,暂时不限制k线形态,直接带入回测中,结果如下图所示,回测结果并不佳。

由于策略的参数如持股数量、交易频率、上市时间等参数的设置的科学性有待确认,回测周期中有1/3低于基准收益,且年化收益不高,最大回测达到21.14%,策略表现略差。

可能原因是参数的设置是基于理论,与实际的数据会产生偏差,下面进行参数优化,探寻最适合该策略思想的参数设置方案。

5.参数优化

5.1 遗传算法

5.1.1 简介

遗传算法通过选择、交叉和变异等操作,在搜索空间中逐步搜索最优解。模式定理指出,具有低阶、短定义距以及平均适应度高于群体平均适应度的模式,在遗传算法的迭代过程中,其样本数将按指数级增长。这为遗传算法能够快速找到全局最优解提供了理论依据。该假设认为,遗传算法通过将低阶、高适应度的模式(积木块)逐步组合成高阶、高适应度的模式,最终构建出全局最优解。

5.1.2 遗传算法的流程

  1. 编码:将优化问题的参数表示为染色体的基因编码。常见的编码方式有二进制编码、实数编码等。
  2. 初始化种群:随机生成一组初始染色体作为种群。种群规模通常根据问题的复杂程度和计算资源来确定。例如,设定种群规模为 100,即随机生成 100 个染色体,每个染色体代表一个可能解。
  3. 适应度评估:根据优化问题的目标函数,计算每个染色体的适应度值。适应度函数用于衡量染色体所代表的解的优劣程度。
  4. 选择操作:根据染色体的适应度值,按照一定的选择策略从当前种群中选择出一些染色体,作为下一代种群的父代。常用的选择策略有轮盘赌选择、锦标赛选择等。
  5. 交叉操作:对选择出的父代染色体,按照一定的交叉概率进行交叉操作,生成新的子代染色体。交叉操作模拟了生物遗传中的基因交换过程。例如,采用单点交叉方式,随机选择一个交叉点,将两个父代染色体在交叉点后的基因片段进行交换。
  6. 变异操作:对生成的子代染色体,按照一定的变异概率进行变异操作。变异操作模拟了生物遗传中的基因突变过程,以一定的概率随机改变染色体上的基因值。
  7. 种群更新:用经过选择、交叉和变异操作后生成的新子代染色体替换当前种群中的染色体,形成新的种群。
  8. 终止条件判断:判断是否满足终止条件。常见的终止条件有达到预定的迭代次数、适应度值收敛到一定精度等。如果满足终止条件,则输出当前种群中适应度值最优的染色体作为最优解;否则,返回步骤 3,继续迭代优化。

5.1.3 遗传算法的优点

优点

  1. 全局搜索能力:遗传算法从多个初始点开始并行搜索,而不是局限于一个点,能够在整个搜索空间中进行广泛探索。通过选择、交叉和变异等操作,它可以跳出局部最优解,有较大概率找到全局最优解,尤其适用于复杂的非线性、多峰优化问题。
  2. 通用性强:遗传算法不依赖于问题的具体领域和数学模型的性质,只需要定义适应度函数来评估解的优劣。因此,它可以应用于各种不同类型的优化问题,如函数优化、组合优化、机器学习参数调优等。
  3. 鲁棒性好:该算法对问题的初始条件不敏感,即使初始解的质量较差,也能通过迭代逐渐找到较好的解。而且,它在存在噪声和干扰的环境中也能保持较好的性能。
  4. 并行性:遗传算法的搜索过程本质上是并行的,种群中的每个个体都可以独立进行评估和进化操作。这使得它很容易在并行计算环境中实现,从而显著提高算法的运行效率,缩短求解时间。
  5. 可扩展性:遗传算法可以很方便地与其他优化算法或技术相结合,形成混合算法,以提高搜索效率和求解质量。例如,与局部搜索算法结合,在遗传算法的基础上进行局部精细搜索,进一步优化解的质量。

缺点

  1. 计算量大:由于遗传算法需要对种群中的每个个体进行适应度评估,并且在每一代都要进行选择、交叉和变异等操作,随着种群规模和迭代次数的增加,计算量会显著增大,导致算法的运行时间较长,尤其是对于大规模问题,计算成本可能会变得难以承受。
  2. 参数选择困难:遗传算法中有多个参数需要设置,如种群规模、交叉概率、变异概率、迭代次数等。这些参数的选择对算法的性能影响很大,但目前没有通用的方法来确定最优的参数组合,通常需要通过大量的实验和经验来进行调整,增加了算法的使用难度。
  3. 容易早熟收敛:在算法运行过程中,可能会出现种群中个体的多样性过早丧失的情况,导致算法过早收敛到局部最优解,而无法继续探索其他可能的更优解。这种早熟收敛现象在处理复杂问题时尤为明显。
  4. 局部搜索能力较弱:遗传算法主要侧重于全局搜索,对于局部区域的精细搜索能力相对较弱。当接近最优解时,它可能需要较多的迭代次数才能进一步提高解的质量,不如一些局部搜索算法在局部优化方面高效。
  5. 解的精度难以保证:遗传算法得到的解通常是近似最优解,很难保证得到的解具有很高的精度。在一些对解的精度要求极高的应用场景中,可能需要进一步的处理或结合其他算法来提高解的精度。

5.2 遗传算法与策略优化

5.2.1 优化思路

由于策略回测周期为4年时,设置较大的种群数目和迭代次数算力不足,需要手动依照经济学理论和满足的数目对参数设置较为精确的参数范围,再进行具体的参数优化。

经过多次匹配尝试,本策略使用“类多头均线排列”作为k线限制。均线关系反映短期趋势向上,中期趋势得到确认,并且趋势协同增强可靠性,避免出现严重下跌的情况。股息可持续性依赖于估值提升潜力和抵御风险能力,设置最低增长率要求为0.1

设置后具体参数范围和k线限制后,先对三个基本面参数进行遗传算法参数优化,再对剩余三个资金面参数进行优化。

遗传算法理论上可以找到全局最优解,但在实际应用中往往受到多种因素影响,可能只能找到局部最优解。交叉和变异操作则不断产生新的个体,增加种群的多样性,有助于算法在整个搜索空间中进行广泛探索,从而有机会找到全局最优解。但在算法运行后期,由于选择操作的作用,种群中适应度较高的个体逐渐占据主导地位,可能导致种群多样性降低,使算法过早收敛到局部最优解,而无法继续探索其他更优的区域。

    drawdown = performance.raw_perf['max_drawdown'].tail(1).values[0]
    totalreturn = performance.raw_perf['algorithm_period_return'].tail(1).values[0]
    annual_return = (1 + totalreturn) ** (1 / 4) - 1
    pnl_ratio = performance.raw_perf['pnl_ratio'].tail(1).values[0]
    score = annual_return - 1.1 * drawdown + 0.3 * pnl_ratio

简而言之,目标函数是策略评分score = 年化收益率 - 1.1 倍最大回撤 +0.3倍胜率

5.2.2 参数优化

经过尝试,(alpha,beta,theta) = (0,1,0,1,0.005)是一组很好的参数,设置合理的参数范围后,进行参数优化。以下是第一组参数遗传算法下的结果,很显然,算法找到了两组参数局部最优,然而,这两组参数最优值所对应的score并不比原始参数更高,反而低了不少,这说明种群数目太少,导致迭代结果陷入了很差的参数组合中。在下面的表中,alpha、beta、theta是三个参数,分别表示三年的平均毛利率增长率下界、三年的平均营业总收入增长率下界、五日主动买入成交额占比率均值的下界,score表示参数组合对应的策略评分。

 score = annual_return - 1.1 * drawdown + 0.3 * pnl_ratio

为什么呢?不难看出,参数alpha,beta的范围太广,这导致选出的策略彼此差异很大,第一次迭代的score差异非常大。第二次迭代很快陷入了第一次迭代的局部最优参数组合中。为解决这个问题,我们让第二组参数优化的迭代次数减少为2,种群数目增加为12。这就是过拟合,过拟合是机器学习和统计学中的一个重要概念。它是指模型在训练数据上表现得非常好,能够准确地拟合训练数据中的各种细节和噪声,但在新的、未见过的数据(测试数据)上表现却很差,泛化能力不足。

第二组参数优化中,alpha表示每股息税前利润(最新一期, 连续3个季度的最小值)的下界、beta表示基本每股收益(最新股本摊薄)(最新一期, 环比增长连续3个季度的最小值)的下界,theta表示扣非净利润(滚动十二期, 环比增长连续3个季度的最小值)的下界。与上一组参数优化的过程类似,score仍然表示参数组合对应的策略评分,定义为

score = annual_return - 1.1 * drawdown + 0.3 * pnl_ratio

5.2.3 过拟合

过拟合通常发生在模型过于复杂,例如参数过多、模型结构过于精细时。此时模型会记住训练数据中的所有细节,包括一些偶然的特征或噪声,而这些在实际应用中可能并不具有代表性。为避免过拟合,可采用正则化、增加数据量、提前停止训练等方法,以提高模型的泛化能力,使其在未知数据上也能有良好的表现。在本策略中,我们确定了研究思路后,希望调整参数搭配提高收益率,降低回撤,并提高胜率。两次大范围的参数优化无法提高score,而小范围的参数优化可以在一定程度继续优化模型,但小范围的参数优化会导致严重的过拟合,即参数过于依赖历史数据,对未来的预测不足,导致模型在历史期间回测效果很好,而在未来效果可能无法保证,甚至出现很大的反向回撤。策略指定一定要避免过拟合的发生。

5.3 最优参数下的回测结果

基于起始参数设置,结合参数优化后的结果,最终本策略选择如下参数设置。在这样的参数设置下,进行2021-01-01年至今的回测,结果如下图所示。

    sql = """
    SELECT
        date,
        instrument,
        -- 计算过去三年的平均毛利率增长率
        m_avg(gross_profit_yoy_ttm, 756) AS avg_gross_profit_margin_growth_3y,
        -- 计算过去三年的平均营业总收入增长率
        m_avg(total_operating_revenue_yoy_ttm, 756) AS avg_operating_revenue_growth_3y,
        1.0/$stock_num AS weight,
        m_avg(close,10) as ma_10,
        m_avg(close,20) as ma_20,
        m_avg(close,40) as ma_40,
        m_avg(active_buy_amount_proportion_all,5) as avg_5day_buy_amout
    FROM cn_stock_prefactors
    WHERE
        st_status = 0
        AND suspended = 0
        AND list_sector NOT IN (3)
    QUALIFY
        avg_gross_profit_margin_growth_3y > 0.1
        AND avg_operating_revenue_growth_3y > 0.1
        AND float_market_cap < 8e9 AND float_market_cap > 5e8
        AND avg_5day_buy_amout > 0.005
        AND m_avg(volume,5)/free_float_shares > 0.005
        AND ebit_ps_lf_consec_min_3q > 0.033
        AND basic_eps_latest_capital_lf_qoq_consec_min_3q > 0.03
        AND net_profit_deducted_ttm_qoq_consec_min_3q > 0
        AND ma_10 > 0.90 * ma_20 
        AND ma_20 > 0.90 * ma_40 
    ORDER BY date,dividend_yield_ratio DESC
    """

6.参数敏感性分析

6.1 参数敏感性分析的意义

6.1.1 参数敏感性分析的意义

参数敏感性分析是一种用于研究模型中参数变化对模型输出结果影响程度的方法。局部敏感性分析每次只改变一个参数的值,保持其他参数不变,来研究该参数对输出的影响。这种方法简单直观,能清晰地展示单个参数的作用,但无法考虑参数之间的相互作用。全局敏感性分析:同时考虑所有参数的变化及其相互作用对模型输出的影响。它能更全面地反映模型的不确定性,但计算成本较高,分析过程相对复杂。

6.1.2 局部敏感性分析

从两组参数优化的结果可以看出,在一定参数范围内时,score都保持在0.3以上,这说明年化收益率几乎都大于最大回撤,参数不是很敏感。在第二组参数中,每个参数组合对应的策略都跑出来极高的score,这更加说明局部参数不敏感。k线限制条件中,参数改变意味着形态要求不同,如果设置为1,这就是严格的多头排列,而设置为>1的值代表强多头排列,设置为<1代表弱多头排列。可以从选股的行数看出,弱多头条件并不是决定性的,仅仅排除了极少部分的异常股票。

6.1.3 全参数敏感性分析

全参数敏感性分析是一种系统分析方法,用于研究模型中所有参数对模型输出结果的影响程度。它通过改变参数值,观察输出变化,能全面评估参数的重要性,识别关键参数,为模型优化、决策制定及不确定性分析提供重要依据。

6.2 参数敏感性分析的过程

由于本策略固定了某些参数,对局部的参数进行了参数最优化。从回测效果看,策略表现过于良好,故需要进行参数敏感性分析,以确定策略的确有效。为方便衡量策略效果随变量变化的趋势,用最大回撤、累计收益率、年化收益率、盈亏比以及胜率来衡量策略的效果。

max_drawdown列表示最大回撤,toal_return列表示总收益,annual return列表示年化收益率,win percent表示胜率,pnl_ratio表示盈亏比,score表示策略评分,计算公式如上。

注意,由于performance对象中,如果要根据每年利率复利计算年化收益率,较为复杂,此处的年化收益率直接使用累计收益率按照连续复利计算,即年化收益率为(1+总收益率)的1/4.25次方。这样的计算结果可能与平台BigTrader回测结果显示的年化收益率有细微差距,但排序上不会改变。为了方便读者直观观察参数的重要性以及策略效果的变化,我们不仅提供了表格数据记录每组参数下策略收益概况,还绘制了各项数据关于自变量的变化趋势。

本节的参数敏感性分析的回测周期为2021-01-01到2025-04-15

6.2.1 换仓周期和持仓天数

第一列表示持有股票数目,第二列表示平仓周期,其他策略参数保持不变,进行回测,观察策略收益概况关于该变量的变化趋势,如下表所示。

总体来说,每组参数下策略胜率都在60%坐于哦,最大回撤都在0.3左右,当收益增加时,最大回撤也会相应增大,在持股数目更小时策略表现更好。

从上面两图可以看出,持仓周期和持股数量对效果的影响较大,有下面几个因素:

1.策略并没有将这两个参数作为轮动参数,而是直接固定,在固定买卖只数和换仓频率的前提下进行了因子选择和调参,最终的优化策略当然为10日轮动、4只股票条件下的局部最优策略,更换参数很可能表现相对较差。

2.诸如10日均线、5日大单净量占比此类的因子,可能都与10日存在某种关系。持股数目太多时,购买股票较为分散,风险降低。而收益也随之降低。

3.由于持股数目和换仓周期参数变化范围太大,差异最大的两组在整个交易周期的交易次数差距高达六倍,这会导致各项指标出现显著差异。

\

6.2.2 过去三年的平均毛利率增长率下界

第一列min_gross_growth 为过去三年的平均毛利率增长率的下限,其他策略参数保持不变,进行回测,观察策略收益概况关于该变量的变化趋势,并使用平台的Bigcharts绘制图标,如下表所示。

下图展示了策略绩效对平均毛利率增长率的变化折线图。在各组参数下,年化收益都能维持在35%以上,最大回撤几乎不变。在不同参数下,策略的盈亏比变化相对较明显,但年化收益差距不大,总体来说,策略对参数并不敏感。

\

6.2.3 过去三年的平均营业总收入增长率下界

第一列min_revenue_growth 为过去三年的平均毛利率增长率的下限,其他策略参数保持不变,进行回测,观察策略收益概况关于该变量的变化趋势,并使用平台的Bigcharts绘制图标,如下表所示。

下图展示了策略绩效对平均营业总收入增长率的变化折线图。在各组参数下,年化收益都能维持在35%以上,最大回撤几乎不变,但参数变化太大时策略收益效果会降低。

6.2.4 基本面筛选:市值范围

原策略对市值采取了较大程度的过滤,要求市值在5亿到80亿之间,对最小市值要求和最大市值要求进行很大范围的改变,观察其绩效改变。

6.2.5 过去五天平均主动买入成交额占比下界

第一列min_avg_active 为过去五天平均主动买入成交额占比的下限,其他策略参数保持不变,进行回测,观察策略收益概况关于该变量的变化趋势,并使用平台的Bigcharts绘制图标,如下表所示。

下图展示了策略绩效在该参数的变化折线图。在各组参数下,除了胜率稳在60%左右,各组参数随自变量变化的范围相对较高,这说明策略绩效对该参数比较敏感。总体来说,参数取值0.05时策略胜率高,盈亏比大,收益率高,最大回撤低。参数局部降低或者增大都会导致绩效降低,这说明参数为0.05附近是一个局部最优。换言之,这是一个较为重要的参数。

\

6.2.6 过去五天平均成交额与流通股本的比例下界

第一列min_avg_volume 为过去五天平均成交额与流通股本的比例下界,其他策略参数保持不变,进行回测,观察策略收益概况关于该变量的变化趋势,并使用平台的Bigcharts绘制图标,如下表所示。

从下图不难看出,所有指标都表现的非常稳定(累计收益的范围在620%到636%之间),这说明对该参数在局部非常不敏感。

6.2.7 连续三个季度每股息税前利润的最小值下界

第一列min_ebit_ps 连续三个季度每股息税前利润的最小值下界,其他策略参数保持不变,进行回测,观察策略收益概况关于该变量的变化趋势,并使用平台的Bigcharts绘制图标,如下表所示。

从下图不难看出,当参数较小时,策略绩效影响不大。但当参数较大时,策略最大回撤增加,年收益率降低,胜率和盈亏比都降低。从图中看,参数继续增加时,策略筛选连续三个季度每股息税前利润的最小值较高的股票,筛选条件过于严格,导致绩效不增反降。

\

6.2.8 连续三个季度每股息税前利润的最小值下界

第一列min_eps表示连续三个季度每股息税前利润的最小值下界,其他策略参数保持不变,进行回测,观察策略收益概况关于该变量的变化趋势,并使用平台的Bigcharts绘制图标,如下表所示。

从下图中可以看出,年化收益、最大回撤、胜率、盈亏比等都比较稳定,累计收益差异也不足20%,这说明策略在局部对该参数不敏感。

\

6.2.9 连续三个季度扣非净利润的最小值下界

第一列min_profit_ttm表示连续三个季度扣非净利润的最小值下界,其他策略参数保持不变,进行回测,观察策略收益概况关于该变量的变化趋势,并使用平台的Bigcharts绘制图标,如下表所示

从下图中可以看出,年化收益、最大回撤、胜率、盈亏比的变化都较大,这说明该参数对策略影响较大,即策略绩效对参数的敏感性较高。\n

\

6.2.10 因子分析结果总结

在量化选股策略中,剔除单一因子进行效果评估具有重要意义。一方面,可检验因子的不可或缺性,若删除后策略收益、夏普比率等核心指标未出现显著波动,说明该因子对策略贡献度较低,甚至可能存在冗余,占用计算资源且增加策略复杂性;若指标明显恶化,则凸显该因子在选股逻辑中的关键作用。另一方面,有助于优化策略结构,减少因子间的多重共线性干扰,使策略更简洁高效,降低过拟合风险,提升策略在不同市场环境下的稳健性与泛化能力。此外,通过对比剔除前后的表现,能更清晰洞察各因子对策略收益、风险控制的具体影响机制,为后续因子筛选、组合优化及策略迭代升级提供实证依据 ,增强策略的科学性与实用性。事实上,对某个因子(选股条件)去因子分析,就是在参数敏感性检验中设置阈值为充分大或充分小,或者使用双边条件。由于篇幅有限,仅仅展示结果,不绘制图标分析。

删除过去三年的平均毛利率增长率限制:年化53%,最大回撤33%,因子相对不重要

删除过去三年的营业总收入增长率限制:年化55%,最大回撤31%,因子相对不重要

删除市值上下界:年化20%,最大回撤34%,满足的股票数目大大提升,可能选出极端股票,使得效果很差,因子非常重要

删除主力净买入平均值限制:年化40%,最大回撤36%,因子较为重要

删除平均交易量活跃限制:年化62%,最大回撤31%,因子不重要

删除连续三个季度每股息税前利润限制:年化46%,最大回撤26%,因子较为重要

删除每股收益增长率限制:年化41%,最大回撤23%,满足的股票数目显著提升,因子较为重要

删除扣非净利润增长率限制:年化25%,最大回撤50%,满足的股票数目显著提升,且从2024年开始持续下跌,大幅度回撤,说明该因子非常重要

删除均线限制条件:年化61%,最大回撤32%,因子不重要

如果按照收盘价、收益率增长率、市值排序,策略的表现都不如此,这说明我们选取的因子是适合高股息策略的。只管来说,购买高成长高盈利,股息数据较好,且满足较好k线结构的股票进行轮动,是合理的。

7.压力测试

以下是2015年至今的回测结果

7.1 2015年股灾

在2015年股灾期间,严格的筛选条件导致长期空仓,避免了部分不利,但年底遭遇了10年来的最大回撤,不过回撤后用4个月拉起到更高水平。长期来看,本策略比较依赖于长期趋势。

7.2 三年疫情期间

疫情期间,该策略一路高飞,几乎没有回撤,表现非常良好。这说明策略对极端灾难和意外事件有很强的抗干扰能力。

7.3 2025年贸易战

近期,该策略在2025贸易战期间,仍然表现出震荡稳定上涨的趋势。

8.交易成本与滑点

万3 千1 最低五元

9. 设置最优参数后的策略代码

第一个代码是参数优化后的策略代码,第二个代码是参数优化遗传算法的过程以及参数敏感性分析的过程

https://bigquant.com/codesharev3/04cef8eb-f221-4e63-9d94-e95ef84cd563

https://bigquant.com/codesharev3/8afbc774-fbd1-4637-9bde-7e095989f5b6

\

{link}