
先声明一下这篇文章聊的是技术研究层面的方法论和工程实现思路不是荐股也不是喊单。之所以想花一整篇聊Dream-RSI是因为RSI这个指标本身够老、够普及但它的短板也足够明显而谷歌这次的研究方向恰好戳中了传统RSI最疼的几个地方。无论你是自己做量化策略还是只是用指标辅助判断行情强弱这篇都应该能给你一点不一样的思路。1. 为什么谷歌会盯上RSI这个老指标——传统RSI的三大硬伤1.1 RSI的底子很朴素但多数人只记住了70和30RSI全称Relative Strength Index相对强弱指标1978年由Wells Wilder提出来。它的计算逻辑其实非常简单统计一段时间内价格上涨和下跌的幅度用两者的比值换算成一个0到100之间的数值。默认周期是14根K线数值超过70算超买低于30算超卖这是全世界交易软件里最经典的共识。但恰恰是共识这两个字成了传统RSI最大的问题。因为它太普及所以很多人都把它当成一个独立的买卖信号在用RSI到了70就空跌到30就多。可Wilder当年发明这个指标的时候本来目的是衡量动量的强弱状态而不是预测拐点。70和30只是他基于统计学经验给出来的参考边界不是什么铁律。你把一个描述状态的工具当成预测工具来用那后面所有的不准、钝化、假信号其实从起点就已经埋下了。1.2 硬伤一固定周期参数在市场切换时就是刻舟求剑默认的14周期在1980年代以日线为主的交易环境里是够用的因为那时候市场节奏相对稳定一天一根K线14天差不多就是两周的动量。但现在呢高频数据普及市场结构变化极快同一个品种在不同阶段它的有效动量周期可能完全不一样。我举个具体例子。某个指数在低波动震荡期6到8天的动量周期就已经能很好反映强弱切换可一旦进入趋势加速阶段你会发现20天甚至更长的周期才更有参考价值。固定用14震荡期反应偏慢趋势期又显得太敏感两头不讨好。这就是所谓的参数不适应性。做量化的朋友应该都有体会一个策略在某个时间段调出来的最优参数换到另一段行情里经常直接失效RSI这种单参数指标尤其明显。1.3 硬伤二单边趋势里RSI钝化反而成了反向指标钝化问题是所有超买超卖类指标的共性问题但在RSI身上表现得特别典型。当市场进入强势单边上涨时RSI会长期停留在70甚至80以上如果你机械地按照超买就卖出的逻辑那你会一路踏空并且反复被市场打脸。真实的情况是在强趋势行情里RSI长期处于高位并不是超买风险的信号恰恰是买盘动量仍在持续的证据。反过来单边下跌里RSI长期趴在30以下也不代表马上要反弹可能只是说明卖方动量依然占优。这时候RSI从超买超卖参考指标实际变成了一个反向误导指标。传统RSI又没有内置任何机制来区分动量延续和动量衰竭所以使用者只能靠自己的经验去主观判断这本身就说明了它的信息维度是不够的。1.4 硬伤三滞后性加无效信号回测胜率被反复拉低RSI从算法本质上说是对过去N根K线涨跌幅的平滑统计所以它天然滞后。价格先动RSI后动这个后的幅度虽然不大但在做自动化交易的时候已经足以造成问题了。更大的问题在于横盘震荡行情。价格在一个箱体里来回撞RSI会频繁地穿越70和30边界形成大量无效信号。你如果回测一版基于传统RSI的策略通常会发现它的胜率在45%到55%之间晃扣掉手续费和滑点之后往往所剩无几。原因很简单指标在描述已经发生的行情而你在拿它预测还没发生的行情信息上天然就慢了一拍。Dream-RSI这次的研究本质上就是想通过深度学习把这一拍的差距补回来。2. Dream-RSI的三个核心改动从固定公式到生成式推断2.1 改动一自适应回顾窗口不再把14写死Dream-RSI在架构上做的第一件大事是把固定回顾窗口换成了自适应回顾窗口。传统RSI的计算必须指定一个周期N而Dream-RSI让模型根据当前的市场状态自己去判断这个阶段到底该看多少根K线的涨跌幅汇总才最有信息量。实现思路大致是先用一个轻量级的状态编码器把最近一段时间的波动率、成交量特征、趋势强度这些信息压成一个隐状态向量再由一个生成式模块输出一个回顾窗口的概率分布而不是直接给一个确定的N。你可以把这个过程理解成一台会自动对焦的相机传统RSI是固定焦距你拿它拍远拍近都得靠手动调Dream-RSI则是根据拍摄场景自动判断焦距该拉近还是拉远在震荡行情里用短窗口抓敏感转折在趋势行情里用长窗口过滤噪音。这一层的价值本质上是在敏感性和稳定性之间找平衡。而传统RSI做不到因为它的敏感性完全由人为设定的周期决定市场一变你就得重新调参永远慢半拍。2.2 改动二单个数值换成多尺度动量向量注意力做加权传统RSI最后只输出一个0到100的标量数字。单看这个数字你根本不知道它背后的动量结构是什么——是连续大阳线推上来的还是慢慢爬坡磨上来的这两者后续的演化路径完全不同但RSI给出的数字可能是一样的。Dream-RSI在这里做了一个非常重要的改造它不再输出单一数值而是同时计算多个尺度下的RS和动量特征生成一个多尺度动量向量。比如2日动量、5日动量、14日动量、30日动量各算一组然后通过注意力机制动态加权。注意力权重的意思就是模型根据当前市场状态去判断哪个尺度的动量信息更值得信任。这个改动解决了RSI信息维度过于单一的问题。强度相同但结构不同的两段行情在Dream-RSI里会被编码成两种不同的向量状态后续的信号决策自然也会不同。这是传统RSI在数学上就做不到的。2.3 改动三输出置信度给每次信号加一道质检门第三个改动我觉得是所有改动里最实用的一个Dream-RSI在输出动量分数和方向判断的同时还会输出一个置信度分数。这个置信度表示模型对自己这一轮判断的把握程度。为什么要加这个输出做过实盘信号的朋友肯定有感触量化策略里最伤人的往往不是判断错误而是你在信号很模糊的时候也强行做了决策。低置信度的时候干脆不做这个纪律太重要了。传统RSI不会告诉你它的把握有多大你看到70就空看到30就多信号本身完全没有质量区分。Dream-RSI的置信度层本质上就是一道质检门低置信度的信号会被自动降级你可以选择过滤掉或者把它标记为观察信号而不是执行信号。实战中具体怎么用我后面会细讲。这里先记住这个改动让RSI从一个直接给结论的指标变成了给结论同时给可信度的研究工具。2.4 名字里的Dream用生成模型补足极端行情样本Dream-RSI这个名字里的Dream我一开始以为是噱头后来看公开的研究资料才明白它还真不是白叫的。传统RSI在训练机器学习模型时有个天然困难极端行情样本太少了。你想想如果拿过去十年日线数据来训练其中真正属于极端暴涨暴跌的样本可能只占极小比例。模型在大多数时间看到的都是平稳行情它对极端状态的理解一定是不够的。Dream-RSI的做法是用生成式模型去合成极端行情下的K线形态和动量特征把这些合成的梦境样本也放进训练集让模型在数据层面见过足够多的极端情况。之后再拿真实数据去检验看它在见多识广之后能不能保持判断力。这一点我是比较认可的。很多AI量化模型效果跑不出来问题往往出在训练数据分布不均而不是模型结构不够复杂。合成数据可以一定程度上缓解这个问题但它也带了一个必须警惕的副作用如果你的生成分布和真实市场偏差太大模型学到的是想象的极端行情反而是更大的灾难。关于这个边界我在第五章会专门展开讨论。3. 训练与评测的细节这些地方比模型结构更决定成败3.1 监督标签到底怎么打RSI研究的核心难点做AI指标研究最难的不是模型设计而是标签怎么打。你要让模型学习正确的RSI应该是什么样首先得定义什么叫正确。如果你直接用传统RSI的数值当标签让模型去回归那就没有意义了模型学到的只是把传统RSI换个方式拟合一遍它不会比原版RSI更聪明。Dream-RSI的研究里设计了一套更有意思的标签体系它看的不只是某一个时刻的动量强度而是这个动量强度对未来收益的预测能力。也就是说标签是滞后的——用未来一段时间价格的实际表现来给当前的动量状态打分。模型学习的其实是哪些动量状态更可能预示着后续的趋势延续或反转。这个设计把RSI从描述统计量重新定义成了预测信号我理解这是整个研究里最有价值的一步。这样做有个好处它绕开了RSI原始计算方式对标签的约束模型可以有更大的自由度去发现那些传统指标发现不了的信息模式。3.2 评估指标的组合IC、IR、换手率一个都不能少论文公开的评估框架里重点提到了几个指标我觉得非常值得自己跑策略时参考。第一个是IC信息系数也就是指标预测值和未来收益之间的相关性。IC越高说明这个信号的预测能力越强。第二个是IR信息比率相当于IC的均值除以标准差它衡量的是预测能力的稳定性。第三个是换手率这是最容易被人忽略的。我做研究时特别看重换手率因为一个信号就算IC再高如果它导致你每天反复开平仓交易成本会把所有超额收益吃光。传统RSI在震荡市里换手率惊人高到几乎不可能实战使用。Dream-RSI加上置信度过滤之后理论上的换手率应该是显著下降的这个点我非常期待看到更多独立的复现验证。3.3 论文里被我重点圈出来的结论与边界这次研究公开的一些对比结果虽然因为不同市场环境差别很大不能当成万能数字去套但方向上是符合直觉的在样本外区间Dream-RSI的IC均值相比传统RSI有明显的提升提升幅度大致在一个比较可观的量级上同时最大回撤和换手率都有明显改善。但论文自己也没有回避边界问题。比如Dream-RSI在趋势型品种上的表现明显好于震荡型品种这个局限很重要。在那些长期横盘的标的上任何动量类指标的信息含量本来就低Dream-RSI只是把这一点解释得更清楚了并不会凭空创造信号。所以如果你主要做的品种正好是长期低波动的标的这篇文章对你的实际帮助可能有限。研究再厉害也要看它适不适合你的战场。4. 把Dream-RSI接进现有策略框架要重构的四个环节4.1 信号生成逻辑从超买超卖变成方向置信度双确认如果你打算在自己的策略里把传统RSI替换成Dream-RSI第一步要重构的一定是信号生成逻辑。传统做法是RSI大于70空、小于30多边界固定信号明确。但Dream-RSI的输出是方向判断加置信度双通道你要做的是重新设计一份判断规则。我的建议是第一层看方向第二层看置信度。只有方向和置信度同时满足条件才生成有效信号。举个例子模型给出一组信号动量方向看多但置信度只有0.45那这个信号我建议直接丢弃。反过来方向看空且置信度有0.75那这个信号的权重要给足甚至可以考虑作为主信号下发。你可以把置信度理解为一票否决权置信度不够方向再明确也先缓一缓。毕竟在一个不可靠的信号上反复进出损失的不仅仅是手续费还有心态。4.2 风控过滤环节低置信度信号宁可放弃风控层面Dream-RSI要比传统RSI先天友好得多因为置信度本身就是天生的风控条件。我建议你把它和已有的止损止盈逻辑做交叉验证。比如你策略里有一个硬性风控规则单笔亏损超过净值2%就必须离场。有了Dream-RSI之后你可以再加一条软规则如果当前信号置信度低于0.5则头寸规模减半如果连续5次信号置信度都低于0.4触发系统级的风控锁暂停开新仓直到模型重新给出高置信度信号再说。这条软规则的实战价值在于它能把模型没把握但市场走势还行的那一段震荡期彻底过滤掉避免策略在无意义的行情里反复磨损。我做策略有一个很深的体会大多数策略亏损不是亏在大行情的判断上而是亏在没行情硬找行情做的震荡阶段。置信度这个维度恰好能把没行情这件事用可量化的方式告诉你。4.3 组合层用法先把Dream-RSI当因子别当圣杯我强烈建议你不要把Dream-RSI当独立策略来做而是先把它当一个因子写进你现有的多因子模型里。这个因子和传统的动量因子、波动率因子有相关性但它的信息维度更丰富能提供一定的增量信息。集成方式可以这样把Dream-RSI输出的动量方向和置信度同时作为两个特征喂给上层的组合优化器。方向特征决定信号的符号置信度特征决定该信号在因子矩阵里的权重。这样做的好处是即使Dream-RSI在某段时间判断失准其他因子还能帮你在组合层面兜底不至于因为一个模型失效导致整个策略崩盘。4.4 回测实现时的数据对齐与参数回退检查回测阶段有两个特别具体的坑我建议你提前排一下。第一个是数据对齐问题。Dream-RSI的自适应回顾窗口意味着每个时间点模型看的K线数量是不同的。你在用向量化回测框架做批量计算时要特别注意是不是用了整个数据集的信息来计算某个单点的特征。如果特征计算里混入了未来数据你的回测结果会漂亮得离谱但实盘一跑就现原形。第二个是参数回退问题。如果你希望模型的哨兵机制能从当前的置信度判断中恢复历史状态一定要确认模型在历史每个时点上只能用那个时点之前的数据做推理。很多看起来优秀的ML量化模型跑实测崩盘都是因为在回测里隐式地泄露了未来信息。建议大家回测之前先做一个简单的shuffle测试把标签随机打乱再训练一遍如果这时候模型还有明显的预测能力说明你的数据处理流程里有前视偏差的bug。5. 实测中最容易踩的坑和你真正该关注的使用边界5.1 前视偏差序列归一化是重灾区做这类带序列特征的模型前视偏差最常见的地方就是归一化。很多人习惯对整个数据集算均值和标准差然后做标准化。这个操作放在传统统计里问题不大但在时间序列模型里是致命的——因为你用到了整个数据区间的统计量等于让模型偷看了未来的分布信息。正确的做法是只能用滚动窗口在每个时间点用该点之前的数据计算均值和标准差再对该点做标准化。Dream-RSI的研究里公开的实验设置对这一块也比较克制因为做这种工作的人自己清楚前视偏差一旦出现结果就彻底失去参考价值。你在复现的时候第一步就检查归一化是不是严格历史化的。5.2 低流动性标的下生成样本可能失真之前提到Dream-RSI用生成模型合成极端行情样本这招在流动性好的标的上挺管用但在低流动性标的上很容易翻车。因为低流动性标的的K线形态本身就很不规整涨跌停次数多、跳空频繁生成模型学到的分布会偏离真实交易逻辑甚至可能生成出根本不可能在真实盘面上出现的形态。一旦模型在训练中被这些幻想形态干扰实盘面对真实数据时就会频繁给出低置信度的混杂信号。所以我建议如果你要跑的是小盘股、新上市品种、或者交易量很小的品种一定先用高流动性数据做主干训练再用该品种的小样本数据做微调修正不要直接拿小样本从头训练。5.3 模型漂移问题重训节奏和线上监控深度学习模型都逃不过漂移问题Dream-RSI也不例外。市场结构一旦发生变化比如某类参与者结构改变、交易制度调整、流动性格局变化模型的适应能力会慢慢下降。最明显的现象是主管置信度越来越低方向判断反复横跳。我的建议是设置一个线上监控指标每日记录模型输出的平均置信度和方向连续性。如果连续一段时间平均置信度明显下降或者信号方向频繁翻转就要触发重训流程。重训要保留最近N个月的数据作为验证集不要只盯着负数时间段的拟合效果否则很容易做过拟合而不自知。5.4 哪些场景真正适合Dream-RSI一个清单最后整理一个我自己的使用清单方便你对号入座高流动性、趋势特征明显的品种例如主流指数、成交活跃的龙头股、交投充分的大宗商品Dream-RSI的价值体现最明显。日线及以上级别低频交易场景里信号质量比信号频率更重要置信度过滤带来的价值也更大。与趋势过滤模块配合使用先用趋势指标判断市场环境只在趋势明确的环境下启用Dream-RSI的顺势信号。不适合的场景包括长期低波动的横盘品种、流动性极差的标的、数据噪声严重的盘口以及任何你没法保证数据质量的环境。按照这个清单去选择应用场景比拿它到处套要靠谱得多。我个人在实际操作中的体会是Dream-RSI这类研究的价值不在于它预测得有多准而在于它把判断依据和判断信心分开了。过去用RSI我们只知道结论不知道依据现在至少你能看到模型是凭什么做出的判断、以及它对这个判断有多大把握。这件事本身就值得所有做技术指标研究的人认真琢磨一遍。