1. 第五周市场环境感知:震荡退潮期的信号陷阱
这一周的行情说起来很微妙,上证指数整体是震荡向下的,但市场内部并不是单边退潮,而是呈现明显的“指数钝化、个股分化”格局。对量化交易系统来说,这种环境往往比单边下跌更考验人——因为你在盘面上看到的机会和实际能落袋的收益之间,隔着大量的假突破和冲高回落。
从实盘记录来看,本周最重要的市场特征可以归纳为三点:
- 成交额逐日萎缩,从周一的万亿出头降到周五的八千多亿,流动性退潮是实打实的。
- 高位题材股反复无常,周二和周四都有明显的分歧转一致再转分歧,日内振幅非常大,追高的人基本都被埋。
- 板块轮动速度极快,从算力到军工再到消费电子,几乎一天一个方向,没有一个板块能连续领涨超过两个交易日。
这种环境下,系统的表现出现了明显的“内部分化”。部分策略模块在震荡市中捕捉到了不错的波段机会,但也有模块在假突破信号上连续止损,整体收益曲线呈现出“前半周小赚、后半周回吐”的格局。作为一个基于 OpenClaw 搭建的 AI 交易员系统,第五周的运行数据暴露出一个核心矛盾:单体策略的适应能力再强,也扛不住市场风格的快速切换,我们需要一个更上层的统筹机制来调配不同策略的参与节奏。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 雪球系统的架构迭代回顾:从单体策略到多策略协同
在展开第五周运行细节之前,有必要简单回顾一下雪球系统的架构演进,因为本周暴露的问题和前几周的迭代方向直接相关。
2.1 前三周的基础框架:单一策略跑通链路
雪球的第一版架构很简单,就是“OpenClaw 决策引擎 + 数据源模块 + 券商交易接口 + 风控模块”四件套。OpenClaw 在其中扮演的是决策大脑的角色,负责接收行情数据、运行交易逻辑、输出买卖信号。第一周到第三周,这套单一策略框架跑通了完整的自动化交易链路:数据拉取、信号计算、订单执行、仓位管理、回撤控制,这些基本能力都已经稳定。
但只有一个策略的问题在于:它的能力边界是固定的。举例来说,如果只写了一个“均线突破策略”,那它在趋势行情里表现很好,但在震荡行情里就反复打脸。第三周结束后,我明显感受到这个问题,所以开始规划多策略协同的架构。
2.2 第四周的核心升级:三大子策略模块上线
第四周的重点工作是多策略框架搭建,把原来单个策略拆成了三个独立的子策略模块:
- 趋势跟踪策略:基于均线系统和动量因子,擅长捕捉趋势性行情,主要活跃在成交额放大、指数单边运行的环境。
- 均值回归策略:基于布林带和RSI指标,专门做“超跌反弹”和“冲高回落”的交易,适合震荡行情。
- 事件驱动策略:基于盘中异动和板块联动信号,做一些事件驱动的短线交易,依赖的是实时舆情和市场情绪。
这三个子策略在 OpenClaw 里是以独立的“专家节点”运行的,每个节点都有自己的参数配置、仓位管理规则和止损止盈逻辑。决策引擎负责汇总三个节点的信号,再根据优先级规则决定最终执行哪些交易。
2.3 第五周的运行结构:协同机制的初步状态
第五周的雪球系统已经跑在“多策略并行”的架构上,但三个子策略之间还没有真正意义上的“统筹调度”。信号汇总的逻辑比较简单粗暴:三个策略各自输出信号,有共振就加大仓位,有冲突就取信号最强的那个执行。
这个机制在单边行情里问题不大,但在本周这种快速轮动的震荡退潮期,问题就暴露得很明显了。每个策略都是基于自身的逻辑独立决策的,它们不会主动“让路”或者“收缩”。当趋势策略还在等待趋势确立,均值回归策略已经进场抄底,事件驱动策略又在另一只股票上打板——三个策略的资金需求叠加在一起,整体仓位就容易超限,遇到行情反转时止损也是各打各的,回撤控制变得很难做。
3. 第五周实盘运行数据:收益曲线的“前半周小赚、后半周回吐”
3.1 总体收益表现
直接上数据(为保护隐私,账户名称和部分细节做了脱敏处理):
| 指标 | 数值 |
|---|---|
| 周初总资产 | 基准值 100 |
| 周末总资产 | 99.23 |
| 周收益率 | -0.77% |
| 最大回撤 | -2.84%(出现在周四盘中) |
| 胜率 | 42.6% |
| 盈亏比 | 1.63 |
| 交易次数 | 34次(其中开仓17次,平仓17次) |
| 日均持仓数量 | 5.2只 |
单看收益数字,-0.77% 谈不上灾难,但如果看运行过程,问题就清楚了:周一到周三累计浮盈其实达到过 +1.85%,但周四和周五两天把利润全部回吐,还倒亏了一点。典型的“该收割的时候没收割,该防守的时候没防守”。
3.2 三大子策略的分化表现
把三个子策略的数据拆开来看,分化趋势非常清晰:
| 子策略 | 盈亏贡献 | 胜率 | 最大回撤 | 交易次数 |
|---|---|---|---|---|
| 趋势跟踪策略 | +0.82% | 55.6% | -0.87% | 9次 |
| 均值回归策略 | -1.13% | 33.3% | -1.65% | 12次 |
| 事件驱动策略 | -0.46% | 38.5% | -1.02% | 13次 |
趋势跟踪策略是本周唯一正收益的模块。原因也很简单:虽然指数整体在震荡下行,但中间有过两次像样的日内反弹,趋势策略在反弹启动初段抓到了一些多头机会,并且及时止盈。它的逻辑是“顺势而为”,在信号没被破坏之前耐心持仓,所以避免了反复止损的窘境。
均值回归策略是本周的重灾区。它的逻辑是“跌多了会弹、涨多了会砸”,但在退潮期,弱势股的下跌是没有底的,你以为的超跌其实还能更超跌,你以为的反弹往往是一日游。12笔交易只有4笔盈利,胜率只有三分之一。更要命的是,均值回归策略在周四的反弹中加了一次仓,结果周五指数直接低开低走,那笔仓位成了本周最大的一笔亏损。
事件驱动策略的表现中规中矩,但在轮动加剧的环境里,它的问题是“上车的方向第二天就熄火”。周一打板的算力股周二就高开低走,周三参与的军工方向周四直接低开,几乎每次都是接力接在半山腰。13笔交易只跑出5笔盈利,胜率偏低但也说明它在震荡市中还有一定的生存空间,只是盈利能力被市场环境压住了。
3.3 分时维度的运行复盘
把账户的资金曲线和上证指数的分时走势叠在一起看,有几个时间节点非常值得复盘:
- 周一尾盘:资金曲线出现了一波突兀的向上拉升。追溯交易记录,是事件驱动策略尾盘进场了一只半导体方向的股票,当晚美股半导体板块大涨,周二开盘这票直接高开,账户浮盈一度逼近 +1.2%。
- 周二上午:趋势策略在冲高过程中止盈了一半仓位,资金曲线冲上本周最高点。但均值回归策略同时进场了一只下跌途中的化工股,这票下午继续走弱,直接拖累了整体表现。
- 周四下午:这是本周最大的一个转折点。指数午后出现一波急拉,三个策略同时发出看多信号——趋势策略看到均线拐头,均值回归策略看到超跌修复,事件驱动策略看到板块异动。三角形共振直接让仓位系统加到了接近满仓,结果周五早上市场直接低开,所有信号被证伪,账户出现了本周最大的单日回撤。
周四下午的这个“信号共振”就是典型的多策略协同失控。三个策略各自看到了自己逻辑内的机会,但它们没有意识到这是同一个机会——反弹的强度其实很弱,只是盘中短暂的脉冲。三个策略用自己的逻辑“确认”了同一个虚假信号,然后资金叠加,风险自然放大。
4. 核心问题回溯:多策略协同中的“信号共振加剧风险”
4.1 为什么多策略反而放大了回撤?
一个反直觉的现象:理论上多策略应该平滑收益曲线,一个策略亏的时候另一个策略可能赚,但本周的实际表现是三个策略在关键节点上“同向共振”,一起亏或者一起赚,协同的优势完全没有体现出来。
原因在于,三个策略虽然逻辑不同,但它们读取的底层数据源是一样的——同一份行情数据、同一个板块涨幅榜、同一批热门标的。当市场出现一个真正的高波动节点时,三个策略很容易对同一个板块、甚至同一只股票同时产生兴趣。比如周四下午那波急拉,异动的核心就是算力板块的几只权重股,趋势策略看到的是指标走强,均值回归策略看到的是短期超跌,事件驱动策略看到的是板块突然放量——它们其实都在盯着同一批股票。
单个策略的仓位控制是独立的,但资金池是共用的。三个策略同时看多同一板块时,总仓位会直接突破上限,等于用三倍的手数去赌一个方向。这就是本周最大回撤的根因。
4.2 “信号共振”的三种典型形态
复盘本周的交易记录,我把信号共振分成了三类,方便后续针对性地设计应对机制:
- 同一标的共振:三个策略在同一时间对同一只股票给出了同向信号。这种共振在周四下午出现过一次,风险最大,因为等于所有策略都在用同一个逻辑缺陷。
- 同一板块共振:策略选的具体标的不同,但集中在同一个板块内。周一的算力板块就是这样,趋势策略买了A股、事件驱动策略买了B股,虽然股票不同,但板块 beta 完全一致,组合层面的分散度形同虚设。
- 同时间段叠加:交易在时间上高度重叠,集中在某半小时内开仓,导致流动性冲击和滑点成本显著上升。周三尾盘的三笔交易就集中在一个窗口内,最后平均滑点比正常水平高了两倍以上。
4.3 协同机制的缺失:OpenClaw 框架下需要补上的一层
OpenClaw 本身提供了很灵活的智能体编排能力,但目前雪球系统的架构里,三个子策略是“并联”的关系,它们各自为战,没有一个“总调度”来协调它们的行为。OpenClaw 具备的记忆、反思和工具调用能力目前只用在单策略的决策上,没有上升到多策略统筹的层面。
打个比方,现在的系统像是一家公司里三个独立部门,每个部门都在用自己的考核指标做事,赚了算自己的,亏了也算自己的,但公司整体没有战略管控和资源分配委员会。市场环境好的时候三个部门都能找到机会,环境一转差,各自为战的后果就是资源重复投入、风险叠加放大。
所以在第五周的运行报告里,我认为最核心的结论不是“某个策略不行”,而是整个系统缺了一层统筹机制。这层机制需要解决的问题包括:如何判断当前市场环境适合哪个策略放量、哪个策略收缩?如何识别出三个策略的信号是在“重复确认同一个机会”而不是“三个独立机会”?当总仓位接近上限时,应该优先砍掉哪个策略的信号?
4.4 一个容易被忽略的细节:开仓时间段的纪律失控
除了信号共振的问题,本周还有一个容易被忽略的细节:开仓时间的纪律性在逐渐瓦解。
回看前三周的运行记录,系统绝大多数开仓都发生在上午10点到10点半之间,这个时间段的好处是开盘半小时的噪音交易已经过去,价格走势相对真实,信号的有效性更高。但本周出现了多笔下午尾盘的突发开仓,尤其是事件驱动策略,动辄在14:30之后进场,理由是“捕捉尾盘资金回流”。
周四下午那次接近满仓的操作,就是发生在14:17到14:33这个窗口内的。事后复盘那波急拉的成交量,其实只有正常水平的60%左右,属于典型的“量价背离式反抽”。如果有一个时间维度上的硬约束——比如规定14:30之后只允许减仓、不允许开新仓——这次的失控大概率能避免。
这提醒我:策略的灵活性和纪律性之间需要找到一个平衡点。事件驱动策略的“随时捕捉异动”在牛市区是很强的能力,但在退潮期,这种灵活性带来的更多是冲动交易。后续迭代时,可能需要给这类策略增加一个“只能在上午运行”的时间约束,或者至少加一道审批机制。
5. 二次审视:均值回归策略在退潮期的失效根源
5.1 均值回归策略的设计逻辑与适用边界
均值回归策略的数学基础是“价格围绕价值上下波动”,这个前提假设在绝大部分时间都成立,但在特定市场环境下会失效。本周就是典型的失效期。
设计这个策略时,我给它定义了两个核心触发条件:一是短期跌幅达到阈值(比如三日内下跌超过7%),二是技术指标显示超卖(比如RSI低于35)。当两个条件同时满足时,策略会进场做反弹,止损线设置在成本价下方3%。
这个逻辑在震荡市里是能赚钱的,因为震荡市的价格运行就是在“超跌—修复—再超跌—再修复”的循环里。但退潮期不一样,退潮期的特点是流动性持续收缩,成交额一天比一天低,这意味着每一波反弹的“燃料”都在减少。打个比方,震荡市里的反弹像皮球掉在地上弹三下,退潮期里的反弹像皮球掉在烂泥里——弹一下就没劲儿了。
5.2 量化层面的失效验证
用本周的实际交易来验证这个判断:
均值回归策略本周的12笔交易里,有9笔是在标的“三日内跌幅超过7%”之后进场的。但进场的次日,这些标的的平均反弹幅度只有1.2%,其中有5笔甚至继续下跌。原因在于,跌幅超过7%的股票大概率是主力资金在出逃,没有承接盘的“超跌”只是下跌的中继站,而不是反弹的起点。
另外,我这个策略设计的止损是3%,也就是说如果判断正确,平均盈利可能在1.5%到2.5%左右,但如果判断错误,就要亏3%。盈亏比虽然还能到1.5以上,但胜率一旦跌破40%,这个盈亏比是撑不住正期望的。本周的实际结算也验证了这个计算:胜率33.3%,亏损自然被放大。
5.3 均值回归策略需要的“环境过滤层”
后续迭代我认为必须给均值回归策略加一道“环境过滤器”。最简单的方式是用市场宽度指标来判断当前是否适合做反弹。
一个比较有效的过滤条件是:全市场上涨家数占比。当市场上有超过60%的股票在上涨时,均值回归策略的超跌反弹逻辑有足够的土壤;但上涨家数占比低于40%时,说明市场整体处于弱势,此时任何反弹都可能是短暂的,策略应该直接进入“禁止交易”状态。
本周的数据如果跑一遍这个过滤器:周一到周三的上涨家数占比分别是52%、45%、38%,周五只有31%——按这个规则,周五均值回归策略是不允许开仓的,那笔全周最大亏损就不会发生。这个过滤器的实现本身不复杂,在 OpenClaw 里增加一个前置条件判断节点就可以完成。
6. 再看事件驱动策略:轮动节奏加快下的信息衰减
6.1 事件驱动策略的运作逻辑
事件驱动策略的核心是“寻找市场的短期定价错误”。它的典型操作是:盘后拉取全市场的板块涨幅排名、主力资金流向、舆情热度数据,找出几个“有故事”的方向,然后根据第二天开盘的竞价情况决定是否进场。
本周这个策略的交易覆盖了算力、军工、消费电子、医药四个方向,看起来覆盖面很广,但结果都差不多——买入当日表现还可以,次日就熄火。这是一种典型的“信息衰减”现象:市场轮动速度太快,第一天发酵的信息到第二天已经price in了,第三天进场基本就是接盘。
6.2 从成交额维度验证信息衰减
回头看本周事件驱动策略的交易记录,有一个共同特征:它参与的股票,买入当天的成交额基本都是过去5日均值的1.5倍以上,属于明显放量。但第二天再看,这些股票的成交额普遍萎缩30%以上,说明进场的资金是“一日游”资金,根本没有后续接力。
如果给事件驱动策略加一个“持续性验证”条件——比如要求题材板块连续两天保持成交额放大——那本周13笔交易至少可以过滤掉一半。但这里有个矛盾:等“持续性”确认了,行情往往已经走了一大段,盈利空间就被压缩了。事件驱动策略本质上就是在“博弈早入场”和“等待确定性”之间做权衡。
6.3 事件驱动策略的开仓时间优化
另一个细化的优化方向是开盘后的观察期。本周事件驱动策略有三笔交易是集合竞价阶段直接挂单买进的,理由是“竞价超预期”。但实际上,集合竞价高开并不代表当天会走强,很多股票的高开是游资做的“竞价骗线”动作,开盘后瞬间就被砸下去。
更稳妥的做法是等开盘15分钟,观察分时走势和成交量能是否匹配,再决定是否入场。虽然入场价格可能会高一些,但确定性大幅提升。用本周的记录回测,如果所有事件驱动策略的交易都推迟到10点之后执行,虽然每笔交易的平均买入成本会增加约0.4%,但至少有两笔明确的“竞价骗线”亏损可以避免,净效果是正面的。
7. 统筹机制设计方案:从“并联”走向“分层管理”
7.1 整体思路:新增“策略调度层”
经过前文的复盘和分析,我认为当前雪球系统最需要的是一个位于三个子策略之上的“策略调度层”。这个调度层不是一个新策略,而是负责管理和编排现有策略的管理者。
在一个典型的多智能体架构中,OpenClaw 的主控智能体可以作为调度层的载体。它需要做的事情有三类:环境判断、策略放行、仓位分配。环境判断解决的是“当前市场适合进攻还是防守”,策略放行决定“哪些策略在这个环境下可以开仓”,仓位分配则负责在各策略之间调度资金和风险预算。
7.2 环境判断模型:三个核心维度的构建
为调度层设计环境判断模型,我计划用三个核心维度来构建市场情绪评分:
- 成交额维度:用当前成交额与20日均值的比值衡量流动性。比值大于1.2为“充沛”,0.9到1.2为“正常”,小于0.9为“萎缩”。
- 涨跌家数维度:全市场上涨家数占比,大于60%为“普涨”,40%到60%为“分化”,小于40%为“普跌”。
- 板块轮动维度:统计连续三天涨幅前三的板块变化情况,如果每天都在换新面孔,说明轮动过快,做T indicator的可靠性下降。
三个维度组合出四种典型环境:进攻环境(流动性好、普涨、轮动有序)、震荡环境(流动性正常、分化、轮动一般)、退潮环境(流动性萎缩、普跌、轮动加快)、混沌环境(各种信号混杂,识别度低)。
第五周周五的情况就是标准的退潮环境:成交额缩量至八千多亿、上涨家数占比低于40%、板块轮动从算力切到消费电子再切到医药,一天换一个方向。在这种环境下,调度层应该做的是:暂停均值回归策略的交易权限、减少事件驱动策略的开仓额度、只保留趋势策略的小仓位试错权限。
7.3 策略放行机制:三级信号模型
具体到操作层面,策略放行机制可以设计成三级信号模型:
- 一级级“允许”:市场环境与策略匹配度较高,策略可以按默认参数正常交易,单策略仓位上限不设额外束缚。
- S级“限制”:市场环境与策略匹配度一般,策略可以交易,但仓位上限减半、开仓次数减少、止损线自动收紧。
- L级“禁用”:市场环境与策略匹配度低,策略直接进入只读模式,不再产生任何交易信号。
这个机制实现起来并不复杂,本质上就是在策略节点的输入端增加一个总开关,由调度层根据环境评分动态控制开关的状态。OpenClaw 的节点编排能力可以很自然地支持这种结构:调度层作为上游节点,三个子策略作为下游节点,每个子策略的环境评分输出作为其“input gate”。
7.4 仓位分配算法:基于风险预算管理
仓位分配方面,我计划引入“风险预算”的概念。简单来说,每个策略在期初会分配到一定的风险预算(比如账户净值的2%),这个预算代表的是“该策略最多可以亏掉的钱”。当策略发生亏损时,它的剩余预算相应减少,当预算耗尽时,策略自动停止交易,直到调度层重新评估并决定是否补充预算。
这种机制的优势在于:它天然地限制了“一个策略连续亏损拖垮整个账户”的风险。以本周均值回归策略为例,如果它在周二亏损达到当天预算上限的60%,调度层可以在周三自动将其仓位上限压缩50%,而不是等到周五才通过复盘发现问题。
当然,风险预算的分配不能是静态的,需要根据环境判断动态调节。在进攻环境里,趋势跟踪策略的预算占比可能调到50%,另外两个策略各占25%;在退潮环境里,趋势策略占30%,事件驱动占20%,均值回归直接降至0%。分配逻辑的核心是:把有限的风险预算优先配置给在当前市场环境下期望收益最高的策略。
7.5 信号去重机制的补充
除了上面四层设计,还有一个比较关键但容易被忽视的补充:信号去重。
前文提到过“同一标的不同策略的同向信号”是风险放大器。对应的解决方案是在调度层维护一个“已关注标的池”,当某个标的已经被一个策略纳入持仓或监控列表时,其他策略对这个标的的信号需要经过额外审批才能执行。
更进一步,可以在标的维度加一层“板块一致性检测”:如果趋势策略开仓了算力板块的股票A,事件驱动策略想开仓算力板块的股票B,调度层需要判断这两个信号是否来自同一个驱动因素。如果是(比如都是因为某个算力行业的利好消息),则只允许其中一个策略执行,避免板块级仓位过度集中。
这层逻辑在 OpenClaw 里的实现方式是通过一个全局上下文模块来共享各策略的持仓和信号信息,要求每个策略在输出信号前先查询一下全局上下文,查看目标标的或板块是否已经被其他策略“锁定”。
8. 统筹机制落地前的过渡方案:手动纪律约束
统筹机制的开发需要时间,但在它完全落地之前,总不能裸奔运行。所以第五周报告里我也给自己定了几条在过渡期内必须遵守的手动纪律:
第一,每日开盘前检查市场宽度指标。如果上涨家数占比低于40%,当天强制关闭均值回归策略的自动交易开关,手动把该策略的现货仓位降到零。
第二,单板块总仓位不超过账户净值的20%。这个需要通过一个简单的监控脚本实现,当某个板块的持仓市值占比超过阈值时,系统自动推送告警,由我人工决定是否清理超出部分。
第三,14:30之后禁止任何新开仓。这个约束在 OpenClaw 里加一个时间判断条件就能完成,属于代码层面的硬约束,不需要依赖人工纪律。
第四,每周进行一次策略收益率的“归因分析”。分别算清楚每个策略的收益贡献来自哪些交易、哪些行业、哪些时段,从数据层面验证调度逻辑的正确性。
这四条过渡措施不完美,但胜在简单可执行,不需要等统筹机制全部开发完才能生效。多策略系统在实战中最大的敌人往往是“过度自信”——你以为策略之间会自然分散风险,但实际上它们大概率会找到同一个坑一起跳进去。
9. 下一周期的迭代计划与预期目标
接下来的开发工作,我给自己排了一个优先级列表:
第一优先:开发策略调度层的“环境判断模块”,把市场宽度指标、成交额指标、轮动速度指标落成实时的评分输出。这个模块是整个统筹机制的地基,没有它后面的放行机制和仓位分配都无从谈起。
第二优先:实现三级信号模型中的“策略放行开关”,先把自动降级和禁用的逻辑打通。这项完成后,至少可以保证在退潮环境下,均值回归策略不会在市场最弱的时候开重仓。
第三优先:实现风险预算管理系统,为每个策略分配独立的预算账本,实时记录盈亏消耗,动态调整仓位权限。
第四优先:实现信号去重模块,包括标的池和板块一致性检测。
预期目标是:在下一轮震荡退潮行情中,系统日最大回撤能从当前的2.8%左右压缩到1.5%以内,且不再出现三个策略同时重仓同一个方向的失控场景。这个目标不激进,盯着风险和回撤去打,保住本金永远是第一位。
第五周的数据和问题已经复盘完了。说实话,虽然整体是亏损的,但这一周暴露的问题远比前几周顺风顺水时的数据更有价值。多策略系统能不能发挥出“1+1>2”的效果,关键就在于统筹层的设计是否到位。下一周,我准备把重点从“策略开发”切换到“调度层开发”。
