大数跨境
0
0

“趋势”、“震荡”环境的划分与择时策略:以上证指数为例 ——申万金工量化择时策略研究系列之三

“趋势”、“震荡”环境的划分与择时策略:以上证指数为例 ——申万金工量化择时策略研究系列之三 申万宏源金工
2025-10-23
66
导读:明确大盘指数的状态对于交易具有重要的指示作用,本研究使用包含两个阶段的、分层诊断的算法来定义指数的状态;我们从价量的角度出发,构建了6个特征变量,并使用逻辑回归、决策树等机器学习模型进行状态预测。

1. 震荡与趋势的划分  

通过对历史数据的观察,我们可以发现,市场总体上呈现出两种交替的状态:一种是价格沿特定方向持续运行的趋势行情,另一种是价格在一定区间内反复波动的震荡行情。这两种状态分别代表了市场在宏观驱动力、资金共识和投资者情绪上存在较大的差异。 

正确地识别并适应当前市场所处的状态,对我们的择时、选股等策略都能有重要帮助。例如,在趋势行情中,“追涨杀跌”的动量策略能获得更大的收益,而“高抛低吸”的均值回归策略则会因逆势操作而导致亏损。反之,在震荡行情中,动量策略会被市场反复的“假突破”不断消耗,而均值回归策略能有更好的表现。明确指数当前是处于趋势还是震荡,不仅能为大类资产配置提供决策依据,也能在策略、风格选择上提供指导。 

1.1 信号的人工标注  

目前市场对“趋势”与“震荡”这两种状态并没有一个公认的、精确的数学定义,其划分往往带有主观性。因此,为了构建一个可量化、可回测的策略,本研究的首要任务是建立一套客观、严谨的规则,来为上证指数的历史走势标注“趋势”与“震荡”的“正确”信号,并以此作为后续机器学习模型的训练基准。 

我们采用了一套包含两个阶段的、分层诊断的算法来生成信号标签。 

第一阶段:Zig-Zag算法初步划分 

此阶段的目标是识别价格走势中的粗略转折点。通过追踪价格的持续上涨或下跌,一旦价格从上一次的极值点反向波动超过一个设定的转折阈值,就认定为一个转折点。得到的趋势波段还需满足最小年化收益和指定时长的条件,才会被初步认定为“趋势”。这个阶段模拟了交易者对市场趋势的初步感知。一个超过特定幅度的反向波动,被视为趋势方向可能改变的信号,而收益和时长要求则过滤掉了无意义的短期噪音。参数设置:转折阈值=10%,最小年化收益=20%,指定时长=63天(约一季度)。 

第二阶段:断点修正 

考虑到“趋势+震荡”的模式无法被Zig-Zag有效识别,针对第一阶段识别出的所有趋势波段,我们使用二分法(Binseg)算法,在趋势内部寻找一个最显著的统计学断点。当找到这个断点后,程序会计算断点前后的两段斜率。只有当后一段的斜率绝对值显著小于前一段时,才认为这个断点代表“趋势衰竭”,并将后半段重新标记为“震荡”。通过对趋势的二次复查,我们能够有效地将那些“先涨后盘”或“先跌后缓”的波段,从单一的趋势标签中分离出来,使其更准确地被标记为“震荡”,从而提升标签的质量。 

我们将这套定义方法应用于上证指数2015年以来的历史数据,得到的划分如下图所示。我们认为,这套定义方法能够有效地、客观地复现市场参与者对趋势和震荡的普遍认知。例如,在2018年的持续熊市中,市场呈现出长期持续的下跌。我们的方法准确地将这段时期识别为“趋势”,这与市场参与者的普遍感受较为一致。

2. 择时信号的生成与评估 

2.1 回测区间选取  

我们注意到2020年前后市场的行为发生转变。2020年之前的趋势更大,这个时期的市场是由几次持续时间较长、涨跌幅度较大的牛市和熊市主导的,此时的市场结构清晰、周期漫长。2020年之后的市场切换频繁,复杂性增加。其持续的时间和波动的幅度相较于之前都明显减弱。从2022年开始,这种现象尤为突出,趋势和震荡区域变得更窄,并且交替出现的频率显著增加。考虑到市场特性的改变,我们选择将回测时间设置为从2020年开始,回测的截止时间为2025年8月底。我们对数据按照时序划分,前70%为训练集,后30%为测试集。最终的划分如下:

2.2 构建特征变量 

为了识别市场的“趋势”与“震荡”状态,我们没有直接采用传统的、现成的技术指标,而是构建了特征变量体系。该体系的设计遵循“经济学直觉先行,经验数据验证”的原则,旨在创造出能够捕捉特定市场现象的特征变量。 

我们的研究方法遵循一个“自上而下”的逻辑:首先从价格、成交量、波动率等核心市场维度出发,提出我们希望解决的特定问题;然后,为此设计相应的量化指标;最后,通过在训练集上的测试,确定最优参数。 

2.2.1 价格维度:趋势的结构、持续性与转变 

价格是市场状态最直接的反映,我们从三个角度来构建价格相关的特征。 

1) Feature_MA_1030(中长期趋势确认特征): 

当MA10在过去40天连续处于MA30之上或之下时,此特征为1(趋势)。 

我们采用中期均线(MA10)与长期均线(MA30)排列的持续性来判断市场是否处于持续的趋势中。只有当中期均线在一段时间内持续位于长期均线之上或之下时,我们才认为这是一个得到确认的趋势结构。针对回看窗口时长的选择,我们给Feature_MA_1030设定的可供选择参数为[20,30,40]。最终,我们通过对训练集的检测,为Feature_MA_1030选定的参数为40天。

2) Feature_MA_0510(短期趋势确认特征):

当MA5在过去20天连续处于MA10之上或之下时,此特征为1(趋势)。

我们采用短期均线(MA5)与中期均线(MA10)排列的持续性来判断短期趋势的变化。当短期均线在一段时间内持续位于中期均线之上或之下,我们认为这是一个得到确认的趋势结构。对于短期趋势的窗口时长选择,我们给Feature_MA_0510设定的可供选择参数为[5,10,20]。最终,我们为Feature_MA_0510选定的参数为20天。

3) Feature_price_120(长期斜率平缓特征):

当过去120天的价格斜率绝对值大于过去一年中80%的时刻,此特征为0(震荡)。

我们观察到,一个持续了很长时间的剧烈趋势,其末期往往是风险最高的阶段,随后大概率会进入盘整。我们选择价格的斜率作为衡量指标,当此时相对过去半年的斜率(绝对值)较大时,说明我们已经经历了一段明显的趋势,此时我们需要考虑该趋势是否进入尾部。 

120个交易日约等于半年,选择这个周期是为了过滤掉短期噪音。其次,我们旨在捕捉市场的极端状态。一个斜率超过了过去一年中大部分时刻,才被认为是显著的信号。这个参数的可供选择参数为[70%,80%,90%]。在训练集上经过测试后,我们发现80%的分位数在区分趋势末期方面,具有最佳的平衡性和预测能力。 

2.2.2 成交量维度:市场情绪与参与度 

成交量是衡量市场参与度和情绪强弱的关键,我们从成交量的角度来构建特征。 

1) Feature_Volume(成交量异常放大特征) 

当昨天的成交量高于过去一年中70%时,此特征为0(震荡)。 

我们发现无论是上升趋势末期还是下降趋势末期,都伴随着成交量的极端放大。我们直接使用昨日成交量过去一年的成交量分布进行对比。当成交量过高时,市场情绪已经进入了极端状态,此状态通常出现在趋势的末期。与价格斜率类似,这个参数的可供选择参数为[70%,80%,90%],最终70%的胜率更高。 

2.2.3 波动率维度:风险、不确定性与突破 

波动率反映了市场的不确定性程度,我们从两个角度来构建波动率相关的特征。 

5) Feature_Volatility_past(高波动震荡特征):

当过去20天的平均布林带宽度(20天,2倍标准差)均值高于过去一年中80%的时刻,此特征为0(震荡)。

如何识别市场中没有明确方向、但价格波动剧烈的高波动震荡市?我们采用布林带宽度的长期平均值来衡量市场在一段时间内的整体波动状态。布林带宽的计算参数为过去20天,2倍标准差。当布林带宽度持续扩张并处于历史高位时,通常有两种情况:市场正处于一个明显的单边趋势中或市场正处于一个高波动的震荡区间内,该特征希望帮助模型区分这两种状态。当其他特征未能确认一个明确的趋势,但此特征却发出“震荡”的信号时,它暗示我们市场正处于一个高波动震荡阶段。 

20天,2倍标准差的参数设定来自布林带指标发明者约翰·布林格(John Bollinger)设定的默认标准。80%分位数这个参数的可供选择参数为[70%,80%,90%]。经测试,当一个月的平均波动率超过年度80%的水平时,通常对应着这种高波动震荡期。 

6) Feature_Squeeze_Breakout(突破尝试特征):

当市场处于压缩状态,即布林带宽度(20天,2倍标准差)小于过去一年的中位数,在过去30天内发生了超过1次的突破布林带的尝试,此特征为1。

如何识别一个即将从盘整转为趋势的临界点?我们结合了两个概念:布林带压缩和突破尝试次数。当多空双方在低波动的背景下,反复进行试探性的突破,那么当市场形成有效突破时,可能代表着一轮有力的趋势正在诞生。 

同样的,20天,2倍标准差来自布林带指标发明者约翰·布林格(John Bollinger)设定的默认标准。突破次数>1次则是考虑到在技术分析中,单次的突破通常被认为是不可靠的,有可能是“假突破”。而第二次或更多的突破尝试,则暗示了市场中存在一股持续的、坚定的力量(买方或卖方)在试图主导方向。30天回看期这个参数的可供选择参数为[5,10,20,30]。经测试,30天这个窗口,在识别有效的突破尝试序列方面,表现出了最佳的准确度。 

2.3 模型训练 

我们先对每个指标的单独准确度进行查看。在训练集中,全部六个特征指标的准确率都高于50%的随机水平,其中Feature_Volume的准确率最高,达到了63.48%。这证明了我们所构建的单个指标都具备独立判断市场状态的能力。 

我们还注意到,所有特征变量的准确率在测试集上都得到了大幅提升,表明指标近阶段的判断能力较强。 

2.3.1等权模型 

我们首先构建了一个等权重模型,该模型将所有六个特征变量得到的信号进行简单平均,作为预测结果。该模型在训练集上的表现准确率为64.72%,这一结果略微优于之前表现最好的单一指标(63.26%)。然而,在测试集上,模型的准确率达到82.04%。这一结果相比测试集上表现最佳的单一指标(75.24%),实现了约7个百分点的提升。 

就混淆矩阵来看,在训练集中,模型将259个真实为震荡的样本错误地预测成了趋势,高于其他类型错误。这表明在训练期内,模型倾向于将很多震荡误判为趋势,而对趋势的识别能力较好。在测试集中,模型对趋势和震荡的预测都变得更为准确。 

为了去除信号中的短期噪声,提高其稳定性和可靠性,我们对预测得到的结果进行平滑。平滑方式为回看过去20天的信号,取均值。经过平滑后的信号在训练集准确率有所下降,结果为60.67%,在测试集准确率则上升,结果为88.59%。 

2.3.2逻辑回归模型 

接下来我们使用逻辑回归模型来查看信号的预测结果。通过训练集训练得到的逻辑回归模型,给予不同的特征变量的权重差距较大。在所有特征中,Feature_MA_1030的权重最高,这表明在逻辑回归模型看来,中长期趋势确认特征是判断市场处于趋势状态的最重要信号。其次是Feature_price_120和Feature_MA_0510,这两个特征的权重也相对较高。模型给了Feature_Volatility_past负权重但系数较小,说明模型对该特征的依赖程度较低。

就预测能力而言,模型在训练集上的表现良好,准确度达到了70.24%。其主要弱点在于对“趋势”的预测能力不足,其召回率仅为64.9%,这意味着模型在训练阶段倾向于将部分趋势期误判为震荡期。然而,模型在测试集上的表现则有显著提升,准确度达到了83.25%。在测试集上,模型对趋势的预测能力也得到了大幅改善,其召回率提升至80.5%,同时对震荡的识别能力也保持在较高水平。

同样的,我们对信号进行平滑,得到的训练集准确度为70.97%,测试集准确度为83.50%,平滑后的信号的准确度没有较大的改变。 

2.3.3决策树模型 

相较于逻辑回归等线性模型,决策树在本研究中具有其独特的优势,线性模型只能通过对这些特征进行加权求和来做出预测,而决策树能找到变量之间的交互关系。经过训练,我们得到的决策树模型如下所示: 

为了方便理解,我们对决策树模型进行总结: 

决策树模型在训练集上的表现要优于等权模型但略低于逻辑回归模型,准确率达到69.82%。模型将178个真实震荡样本误判为趋势,并将112个真实趋势样本误判为震荡。模型在测试集上的准确率为80.10%,低于等权模型(82.04%)和逻辑回归模型(83.25%)。 

接下来我们同样对预测数据进行平滑,平滑后的数据在训练集和测试集上都有略微的提升,分别达到了70.76%和83.98%。 

下面我们对三个模型的准确率进行总结。对三个模型进行综合评估后,我们可以观察到所有模型的测试集准确度都达到80%以上。在训练集上,逻辑回归模型和决策树模型的拟合能力优于简单的等权模型。在未经平滑处理的测试集上,逻辑回归模型展现了最强的泛化能力,其表现优于等权模型和决策树模型。在此基础上,当我们引入20日信号平滑处理后,模型的最终表现发生了变化,等权模型的测试准确率最高,达到88.59%,决策树模型也有所提升,而逻辑回归模型则因其原始信号具备稳定性而变化不大。 

3. 信号的策略验证  

为了验证模型的预测能力能否转化为实际的交易收益,我们基于之前构建的四组信号,分别是等权模型、逻辑回归模型、决策树模型得到的预测信号以及最初标记的“正确”信号,设计了一个策略,并将其与简单的买入并持有的指数基准进行对比。 

策略逻辑如下: 

●初始状态:策略在回测的第一天以0.5的基础仓位进入市场。 

●调仓机制:此后,策略在每周三进行调仓,其调整基于上一个调仓日到本次调仓日前一日的市场收益,我们将其称为回看期收益。 

●趋势模式 (y_pred=1):遵循动量追随原则。如果回看期收益>0,则增加持仓,每上涨1%买入0.1仓位;如果收益<0,则减少持仓,每下跌1%卖出0.1仓位。 

●震荡模式 (y_pred=0):遵循均值回归原则。如果回看期收益>0,则减少持仓,每上涨1%卖出0.1仓位;如果收益<0,则增加持仓,每下跌1%买入0.1仓位。 

●调仓限制:考虑到调仓的可行性,调仓日的收益/亏损将不会被计入。即周三进行调仓时,我们以收盘价进行买入,收益从周四开始体现。 

●仓位限制:所有仓位始终被限制在0.0(空仓)和1.0(满仓)之间。 

策略基准:以0.5的仓位买入并持续持有指数。 

3.1 基准信号与策略框架有效性分析 

由于测试集数据跨度较短,本次的策略将在整个回测期进行验证。首先我们对人工标注的信号进行验证。此次验证不仅是对标注信号的考察也是对策略有效性的探索。 

我们观察到,信号在2020-2021年的主要上升浪中,将市场定义为“趋势”,使得策略能够建立并维持高仓位;而在2022-2023年的长期下跌和盘整中,信号将市场定义为“震荡”,使得策略能够规避主要的回撤。 

为了进一步凸显择时信号的价值,我们额外引入了两种不依赖标注信号的纯粹策略作为对比: 

纯粹动量策略:该策略在每周调仓日,永远执行“追涨杀跌”的逻辑。 

纯粹反转策略:该策略在每周调仓日,永远执行“低买高卖”的逻辑。 

从净值曲线图中可以看到,这两种纯粹的策略表现均不理想,甚至长期跑输指数基准。这说明,在一个兼具趋势与震荡特性的复杂市场中,单一的、固定的策略范式难以取得成功。 

最后,就风险收益来看,信号策略的总收益率为61.62%,是基准(14.68%)的四倍多,年化波动率仅为9.35%,最大回撤控制在-9.18%从相对指标来看,策略取得了6.35%的年化超额收益,且年化波动仅为6.72%,夏普比率达0.94。这些数据表明,人工标注得到的“正确信号”可以作为回测的理想基准,同时我们的交易策略框架是有效的。 

3.2 等权信号的策略验证 

在对等权模型生成的信号进行策略验证后,我们发现其整体表现并不理想。虽然策略的最终总收益(31.54%)跑赢了指数基准(14.68%),但从净值曲线的演变路径来看,这种超额收益缺乏持续性和稳定性。在2022 年至2024 年长达两年的时间里,策略的净值多次来到基准指数之下。 

3.3 逻辑回归信号的策略验证

与等权模型相比,由逻辑回归模型得到的信号所计算而来的策略展现出了更有效的择时价值。该策略不仅在总收益(40.62%)和年化收益(6.46%)上超越了基准, 它在风险控制方面也表现得较为出色。策略的年化波动率(9.34%)略高于基准但最大回撤(-13.06%)低于基准。 

从相对指标来看,该策略的稳定性较好,在2022 年和2024 年的主要下跌浪中, 策略规避了市场的系统性风险。 

3.4 决策树信号的策略验证 

决策树模型的信号策略是目前所有预测信号的策略中表现最好的。其总收益率达77.20%,是基准(14.68%)的近三倍。在2022 年和2024 年的主要市场下跌期间, 策略信号指导仓位降至零,从而规避了这两次较大的回撤。 

4.总结 

本报告旨在设计并验证一套能够识别并适应A股市场“趋势”与“震荡”两种核心状态的量化交易策略。通过构建一套包含价格、成交量及波动率等维度的非传统特征集,我们训练并评估了等权、逻辑回归及决策树三种模型,最终获得了一个经过平滑处理、在样本外具备高预测准确率的择时信号。 

我们将该信号应用于一个纯价格行为驱动的动态仓位管理框架中,该框架在趋势期执行动量逻辑,在震荡期执行均值回归逻辑。回测结果表明,决策树模型所驱动的策略表现最为出色。该策略不仅在总收益和年化收益上明显优于持有的基准,同时显著降低的波动率和最大回撤,实现了1.12的夏普比率。 

本研究还发现,决策树模型的策略表现甚至超越了使用带有未来信息的“完美”标签信号。这揭示了信号与策略的适配性,也提示我们,长期的战略信号和短期战术信号具备不同的价值。这也为我们未来的研究提供了新的方向:如果能够将识别市场宏观状态的‘战略’信号,与捕捉短期变化的‘战术’信号进行有效的分离与结合,也许可以得到更多对市场状态的提示,从而实现更好的策略表现。 

5.风险提示 

本报告模型根据历史数据构建,准确度受限于历史数据的长度;模型历史表现不代表未来,宏观及市场环境大幅变化时模型可能失效。

 


【声明】内容源于网络
0
0
申万宏源金工
重剑无锋 大巧不工
内容 31
粉丝 0
申万宏源金工 重剑无锋 大巧不工
总阅读265
粉丝0
内容31