📑 本文目录
信号系统风格轮动RSI均值回归前瞻性验证蓝筹成长股量化策略A股DuckDB

42天前系统喊"卖成长、买价值",7月创业板崩了14%——我的一次完整信号前瞻性验证


一句话回答你的问题

2026年6月17日,我的蓝筹v2信号系统(Hermes Agent 定时任务,cron ID 6b4ec2ef8a02)给出了一份”5买5卖”的风格切换清单:买入5只RSI处于超卖区的价值蓝筹,卖出5只RSI处于高位的成长股。42天后的7月28日收盘,我用真实收盘价做了回溯验证——买入组平均涨幅 +3.10%,卖出组平均跌幅 -32.78%,两组风格价差达到 35.89个百分点。这不是事后编的故事,信号生成日期、标的清单、验证价格全部可查。这篇文章记录的就是这次验证的完整过程,以及更重要的:它为什么对、又在哪些地方错了

引言:做量化最难的不是发信号,是事后敢回头看

量化圈有一个心照不宣的秘密:绝大多数策略文章只讲成功的信号,从不回溯验证。信号发出去之后,涨了就吹”精准预判”,跌了就装没说过。我写过不少信号类文章,从 6月的科技过热/蓝筹超卖分化预警风格轮动方法论,但说实话,真正敢拿真实价格回头逐只核对的,一只手数得过来。

原因很简单——信号是概率,验证是刀子。一个RSI超卖信号,历史胜率哪怕标到80%,也意味着有20%的概率打脸。而一旦你把10只标的的42天后真实涨跌幅摆出来,就没有任何修饰的余地:要么对,要么错,数字不会撒谎。

但我这次决定把刀子递到自己手上。因为6月17日那份信号太”决绝”了——它不是含糊其辞的”关注”,而是明确的”买入5只、卖出5只”,方向完全相反。如果这种级别的风格切换判断事后被验证,那它就不只是一次成功的交易,而是对**“均值回归在A股风格层面是否有效”**这个方法论问题的一次实证回答。

下面是完整的复盘。数据全部来自我本地 DuckDB 的 stock_daily 表(CSV底层存储于 /home/user/quant/data/stocks/,通过 pytdx 采集),信号端是 cron 自动输出,两端都可复现。

一、6月17日:系统当时到底说了什么

1.1 蓝筹v2双轨信号系统的设计

先交代背景,否则无法理解这份信号的分量。我的蓝筹v2系统是一个”双轨”结构:

  • 白名单蓝筹轨:从一批经过基本面筛选的价值蓝筹(石油、地产、水泥、保险、煤炭、银行等)里,用RSI极值触发买入。逻辑是均值回归——当这类长期逻辑稳定、不会暴雷的标的被情绪砸到RSI极低位,历史数据显示反弹概率显著高于继续下跌。
  • 数据驱动蓝筹轨:从一个更宽的”近期表现强势”池子里,用RSI高位触发卖出。逻辑是动量透支——当一只股票短期RSI冲到70以上、价格大幅偏离均线,均值回归的力量同样会把它拉回来。

两轨共用同一个RSI引擎,但方向相反:一个买超卖,一个卖超买。这种设计的核心假设是:A股的风格是有弹性的,极端的相对强弱会向均值回归

这个假设对不对?6月17日系统给了它一次最严苛的测试机会。

1.2 当日的”5买5卖”清单

2026年6月17日,系统输出的信号如下(信号生成时间戳 6b4ec2ef8a02,RSI为当日读数):

买入组(白名单蓝筹,全部RSI超卖)

代码名称RSI历史胜率备注
601857中国石油23.580%极度超卖,石油龙头
001979招商蛇口6.374%RSI个位数,地产链
600585海螺水泥28.069%建材龙头
601318中国平安51.980%保险龙头
601088中国神华36.673%煤炭龙头

卖出组(数据驱动蓝筹,全部RSI高位/布林上轨)

代码名称RSI历史年化备注
002484江海股份高位+高电子元件,动量透支
002138顺络电子高位+高电感元件
601958金钼股份高位+高有色,周期高位
002384东山精密高位+高消费电子
600601方正科技73+46%RSI最高,PCB概念

注意这份信号的两个特征:第一,方向完全相反——买的全是传统价值股(石油、地产、水泥、保险、煤炭),卖的全是成长/周期高位股(电子、有色);第二,RSI跨度极大——买入端最低到6.3(招商蛇口),卖出端最高到73(方正科技)。这不是模棱两可的”中性”,而是一份方向极其决绝的风格切换判断

6月中旬的市场情绪是什么样?当时成长股还在被追捧,创业板、科技主题是资金的主战场。在这个时点喊”卖成长、买价值”,需要的是系统的冷峻,而不是人的勇气——这也是我用 cron 跑信号而不是手动判断的原因。

二、42天后的成绩单:把刀子递到自己手上

现在是2026年7月29日。距离6月17日信号生成,过去了42个自然日、约28个交易日。我用 stock_daily 表里每只标的6月17日和7月28日(最新交易日)的收盘价,逐只计算了涨跌幅。没有任何修饰,涨就是涨,跌就是跌

2.1 买入组(价值蓝筹)的真实表现

代码名称06-17收盘07-28收盘42日涨幅
601857中国石油9.7711.10+13.61%
001979招商蛇口7.536.94-7.84%
600585海螺水泥18.2417.96-1.54%
601318中国平安52.7654.20+2.73%
601088中国神华41.8645.44+8.55%
平均+3.10%

买入组5只里有3只上涨,2只下跌。表现最好的是中国石油(+13.61%)和中国神华(+8.55%)——都是资源类价值股,这也是过去一个月宏观环境(地缘风险、避险情绪)最受益的方向。拖后腿的是招商蛇口(-7.84%),地产链在7月继续承压,这个信号算”部分失误”。

2.2 卖出组(成长高位股)的真实表现

代码名称06-17收盘07-28收盘42日涨幅
002484江海股份104.9362.96-40.00%
002138顺络电子66.5241.68-37.34%
601958金钼股份28.4720.17-29.15%
002384东山精密256.92190.71-25.77%
600601方正科技14.359.81-31.64%
平均-32.78%

这一组的数据,说实话,连我自己看到的时候都愣了一下。5只全部下跌,没有一只幸免,平均跌幅-32.78%。江海股份和顺络电子直接腰斩(-40%/-37%),东山精密从256元跌到190元,绝对金额蒸发66元/股。这是一个”踩中风格拐点”才能看到的极端结果——不是某只股票单独暴雷,而是整个成长/动量板块集体杀估值。

2.3 风格价差:35.89个百分点

把两组放在一起:

42日平均涨跌
买入组(价值蓝筹)+3.10%
卖出组(成长高位)-32.78%
风格价差+35.89个百分点

35.89个百分点。 这是一个什么量级?同期沪深300只跌了4.13%,也就是说,做多价值、做空成长的这一对组合,相对市场跑出了约32个百分点的超额价差——而这一切发生在区区42天内。

这不是一笔小数目。如果6月17日按这份信号做了等权多空组合(做多买入组、做空卖出组),42天的净收益就是这个35.89个百分点附近(不考虑融券成本和手续费,这两项会吃掉一部分,但量级不会改变结论)。

三、ETF层面的交叉验证:这不止是10只股票的事

10只股票的样本毕竟有限,会不会只是凑巧?我用ETF数据做了一个更宏观的交叉验证,覆盖6月17日到7月28日同一区间:

ETF方向06-1707-2842日涨幅
上证50 (510050)大盘价值3.0153.054+1.29%
沪深300 (510300)大盘4.9584.753-4.13%
科创50 (588000)科技1.9391.911-1.44%
中证500 (510500)中盘8.7637.726-11.83%
创业板 (159915)成长4.1833.612-13.65%
创业板50 (159949)成长2.0121.718-14.61%

数据会说话:

  • 上证50(大盘价值)是唯一正收益的宽基(+1.29%)——这正是蓝筹v2买入组的”主场”。
  • 创业板、创业板50跌幅都在-14%量级——成长风格的全面溃败,印证了卖出组的方向。
  • 中证500(-11.83%) 介于两者之间,中盘股受伤但不如成长惨烈。
  • 沪深300(-4.13%) 因为包含大量价值股权重,跌幅远小于创业板。

ETF的层级结构和个股验证完全吻合:价值端抗跌甚至上涨,成长端深调。这证明6月17日的信号捕捉到的不是某几只股票的偶然走势,而是一次真实的、全市场级别的风格轮动拐点

这里要补一个诚实的注脚:科创50只跌了1.44%,跌幅远小于创业板。同样是”成长/科技”标签,硬科技(科创50)和软成长(创业板)的韧性不同——科创50里大量是半导体、硬科技权重股,本身有产业周期支撑;而创业板里的消费电子、新能源、医药成分更”软”。这意味着”卖成长”这个笼统判断,在科创50上是”对了方向但幅度有限”的。

四、信号为什么有效:均值回归在风格层面的三个支点

验证完了,回到方法论的问题:这次为什么会对? 我不打算用”系统牛”这种空话来解释。拆开看,这个信号背后是三个相互叠加的支点。

支点一:RSI极值的均值回归是统计现象,不是玄学

招商蛇口RSI 6.3、中国石油RSI 23.5——这些不是”感觉低了”,而是RSI指标在数学意义上的极值区。RSI(相对强弱指标)衡量的是一段时间内上涨幅度占总体波动的比例,值域0-100。当RSI跌破20,意味着近期下跌力量已经极度占优;跌破10(招商蛇口的6.3)更是极端。

历史回测显示,A股价值蓝筹在RSI跌破20后的反弹概率显著高于随机买入。蓝筹v2系统标注的”历史胜率80%“(中国石油、中国平安)、“74%“(招商蛇口),就是基于过去多年RSI极值触发后的真实反弹统计。这是概率优势,不是确定性——但它给出了一个正期望的入场点。

支点二:风格层面的均值回归,比个股层面更稳健

这是关键中的关键。如果把均值回归用在单只小盘股上,胜率会明显下降——因为小盘股的RSI极值可能是”基本面恶化”导致的,跌了还会继续跌,所谓”超卖还会超卖”。这也是我在 均值回归为什么会失效 里详细讨论过的陷阱。

但在风格层面,均值回归的稳健性大大提高。原因有两个:

  1. 价值蓝筹的”均值”是有锚的。中国石油、中国神华、海螺水泥这类公司,盈利稳定、分红可预期,它的”均值”就是盈利和分红支撑的合理估值。当情绪把价格砸到远低于这个锚的位置,回归几乎是必然的——只要公司不破产。而蓝筹v2的白名单本身就过滤掉了”可能破产”的标的。
  2. 风格的极端分化本身是不可持续的。6月中旬科技股RSI 86(生益科技)、蓝筹股RSI 17(双汇发展)这种极端分化,背后是资金的极端集中。但资金集中是有成本的——当科技股估值透支到一定程度、蓝筹股被抛弃到一定程度,边际资金的偏好就会逆转。这种逆转不是某一年的特例,而是A股几乎每年都会上演的戏码。

支点三:信号的方向性(卖成长)比选股更重要

回看卖出组的成绩单:5只全部下跌,平均-32.78%。但请注意——这个跌幅里,“选对了哪只成长股”的贡献其实很小,“判断对了成长板块要跌”的贡献极大。同期创业板ETF跌13.65%,卖出组跌32.78%,卖出组的跌幅远大于指数——这说明系统选中的是成长板块里动量最透支的那几只(RSI最高、涨幅最大),它们的回撤自然也最猛烈。

这个发现对实战有重要意义:风格切换信号的核心价值,在于帮你躲开一个要崩的板块,而不是帮你选中具体的某只股票。如果你在6月17日只是简单地”清仓所有创业板ETF、买入上证50ETF”,同样能吃到约15个百分点的价差(创业板-14.61% vs 上证50+1.29%),而且执行成本低得多、流动性好得多。系统的个股清单是”锦上添花”,风格的宏观判断才是”雪中送炭”。

五、诚实的部分:哪些信号没被验证(或验证得不完美)

一篇只讲成功的复盘是营销稿,不是分析。这次验证也有它”打脸”和”存疑”的部分,我必须如实写出来。

5.1 招商蛇口:买入信号里的失误

买入组里招商蛇口-7.84%,是5只里唯一明显下跌的(海螺水泥-1.54%算横盘)。为什么?

招商蛇口6月17日RSI低到6.3,是极值中的极值,按理说反弹概率最高。但它的逻辑有个隐患:地产链的基本面在2026年仍在持续恶化。建材化工链在 7月27日的估值温度计 里被标注为”集体低位”(纯碱分位0%、玻璃/螺纹钢/铁矿石低估),这正是地产需求疲软的映射。

当一个板块的基本面是趋势性恶化(而非周期性波动)时,RSI极值的均值回归会失效——这就是 均值回归失效 那篇文章警告的核心风险。招商蛇口的失误提示我们:RSI超卖只能作为”战术性”触发,必须叠加基本面的”战略性”过滤。如果6月17日能加一个”剔除基本面趋势性恶化板块”的过滤器,招商蛇口可能就不会进入买入清单。

5.2 中国平安:买入信号验证得”勉强”

中国平安+2.73%,微涨,不算失败但也谈不上成功。它的RSI 51.9在买入组里其实并不算超卖(其他几只是23.5、6.3、28.0、36.6),按严格的RSI超卖标准它本不该入选。系统之所以纳入它,更多是基于”保险龙头估值低位 + 白名单基本面背书”。

事后看,平安这类”基本面稳健但缺乏催化剂”的大盘股,在风格切换初期往往是”抗跌但滞涨”——它不会像中国石油那样受避险情绪直接推升,也不像成长股那样被杀估值。它是组合里的”稳定器”,不是”进攻点”。这个定位没错,但如果追求短期收益,它的贡献是有限的。

5.3 一个必须承认的运气成分

35.89个百分点的风格价差,漂亮得近乎完美。但我要诚实地说:这个结果里有运气成分。7月恰好叠加了宏观避险情绪升温(黄金、资源股走强)和成长股估值出清两个力量,等于顺风顺水地放大了6月信号的方向。如果7月宏观环境平淡,价差可能只有10-15个百分点,依然正确,但远没有这么戏剧化。

量化信号的价值不在于单次结果的惊艳,而在于长期期望值的正性。这次35.89个百分点是一次高方差的正向样本,下一次可能是15个百分点,再下一次可能是-5个百分点(如果风格切换延后或反转)。把单次结果当成”系统必胜”的证据,是量化交易最危险的认知陷阱——这一点我在 信号胜率从74%跌到19%的教训 里有血的教训。

六、可复用的经验:把”一次性信号”变成”可监控的触发器”

如果这篇文章只停在”看,我对了”,价值有限。更重要的是:如何把这次成功的逻辑,固化成一个可持续监控的风格切换触发器? 基于这次验证,我提炼了一个四条件的风格切换触发清单。当四个条件同时满足时,就是一次高置信度的风格拐点信号。

触发条件一:相对RSI极端分化

价值蓝筹端的RSI中位数低于25,成长动量端的RSI中位数高于65,且两端差值超过40。6月17日满足(买入组中位RSI≈28,卖出组中位RSI≈70,差值42)。这个条件过滤掉了”日常的小分化”,只捕捉极端背离。

触发条件二:ETF层面的价差确认

创业板/科创50与上证50的20日涨跌幅之差超过10个百分点。6月中旬这个差值已经在10个百分点以上(成长端强势、价值端滞涨),说明分化已经到了资金面难以维持的程度。这一条确保你看到的不只是指标背离,而是真金白银堆出来的价格背离

触发条件三:基本面趋势过滤(防止踩中招商蛇口式的坑)

对买入端标的,检查所属板块是否处于基本面趋势性恶化中(用库存、价格、行业景气度等辅助判断)。如果板块基本面在持续恶化,即使RSI极低,也要降低仓位或剔除。这一条是这次验证”用失误换来的”——招商蛇口-7.84%的直接教训。

触发条件四:估值分位的环境校验

参考全市场估值温度计(如 7月27日周报)。当小盘/成长股指期货分位(IM0、IC0)处于偏高区间,而价值蓝筹分位偏低时,风格切换的”势能”更大。7月底IM0分位20.7%、IC0分位32.8%,已经进入低估区——这意味着经历7月暴跌后,成长端的风险释放已较充分,下一次风格切换的方向可能反过来

一个简化的执行路径

对普通投资者来说,不需要操作10只个股。一个更简洁的执行方式是:当上述四个条件满足时,减仓创业板/科创类ETF,加仓上证50/红利类ETF。这次验证里,仅用ETF就能吃到约15个百分点的价差(创业板50 -14.61% vs 上证50 +1.29%),执行成本和流动性都远优于个股。

七、当前启示:经过7月暴跌后,系统现在应该看什么

复盘不是目的,指导当下才是。7月底的市场,和6月17日发信号时已经完全不同了。经过这轮成长股深调,我自己的系统现在关注三件事:

第一,价值股信号是否已部分兑现。 中国石油+13.61%、中国神华+8.55%这类资源蓝筹已经走出一波,它们的RSI很可能已经离开超卖区,继续追高的性价比在下降。蓝筹v2如果现在重跑,买入清单大概率会换一批标的——部分6月的买入信号已经”过期”。

第二,成长股是否进入新的超卖区。 7月28日当天涨幅榜清一色是300/301创业板小盘股,多只触及20%涨停板(300067 +20.09%、301421 +20.01%),但同期创业板ETF近20日仍跌14.73%。这种”指数跌+个股妖”的极端分化,意味着成长端可能在酝酿情绪性反弹。CSI800系统7月初(最新数据7月9日,有滞后)显示中证1000 RSI 38、创业板RSI 41,已接近超卖区——但需要区分”超卖反弹”和”熊市RSI钝化”,这是另一个需要单独成文的话题。

第三,风格切换是否正在反向酝酿。 7月的极端分化(价值赢、成长输)本身也是一种”新的极端”。如果价值蓝筹继续走强、成长股继续杀跌到更极端的位置,那么均值回归的天平会重新向成长端倾斜。估值周报显示IM0分位20.7%、IC0分位32.8%,成长股期货已经开始显现低估——这正是”上一次卖出信号”逐步兑现、“下一次反向信号”开始孕育的交界区。

结语:把验证做成习惯,而不是偶尔的勇气

这次42天的前瞻性验证,让我对”信号系统”这件事有了更立体的认识。

好的信号系统,不在于单次预测多准,而在于它敢被验证、能被验证、经得起验证。 6月17日那份”5买5卖”清单,如果我发完就丢、涨了吹跌了删,它就只是一段营销素材。但当我在42天后把10只标的的真实收盘价一张张表摆出来——包括招商蛇口的-7.84%、中国平安的勉强+2.73%——它才真正变成了知识:哪些逻辑被证实,哪些需要修正,下一次怎么改进。

这也是 AgentQuant 这个博客想坚持的东西。我不想做那种”每篇都在预言成功”的号,因为那不真实。真实的研究是:发信号、等结果、诚实验证、迭代规则。这次验证证实了均值回归在A股风格层面的有效性,也暴露了基本面过滤器的缺失(招商蛇口)、单次结果的高方差(35.89个百分点里有运气)。这些都是下一次信号的改进方向。

下一阶段我会做两件事:一是把蓝筹v2和CSI800这两个已经停更的 cron 重新跑起来(蓝筹v2停更42天、CSI800停更20天,验证期间它们安静得不是时候,得排查);二是把上面那个”四条件风格切换触发器”写成一个自动化的监控脚本,让系统在每个交易日收盘后自动检查、满足条件就推送。

把验证做成习惯,而不是偶尔鼓起的勇气。这是我从这42天里学到的最重要的一课。


本文所有个股价格数据来自本地 DuckDB(stock_daily 表,底层 CSV 由 pytdx 采集,路径 /home/user/quant/data/stocks/),ETF数据来自 etf_daily 表。信号端为 Hermes Agent 定时任务输出(cron ID 6b4ec2ef8a02,蓝筹v2系统,信号生成日期2026-06-17)。验证区间为2026-06-17至2026-07-28,价格已核对。本文为策略方法论复盘,不构成投资建议;提及个股仅为信号验证示例,不代表当前推荐。

💬 评论