1. 先说清楚:量化的“不公平”到底从哪里来?
量化交易在A股市场这几年算是站在风口浪尖上了。提起“量化”,有人想到的是惊人的换手率和亮眼的超额收益,有人想到的则是“不公平”三个字。我自己做量化策略开发接近十年,从最早用日线数据做选股,到后来接触tick级数据和算法执行,越来越清楚地意识到一个事实:量化的确有“吃掉”对手盘的技术优势,而这种优势一旦被放到无序竞争的环境里,对市场公平性和策略长期有效性都是一种伤害。标题里说的“套上笼头”,在我看来并不只是外部强加的负担,它更像市场结构发展到一定阶段之后必然会产生的一套平衡机制。
要回答“为什么必须被套上笼头”,首先得搞清楚量化交易的不公平手感到底来自哪儿。很多人一提“不公平”就下意识归因于“别人有超级计算机、我没有”,这个理解其实过于粗糙。量化交易对普通参与者形成的真实壁垒,远比“算得快”更系统、更隐蔽,而且每一项都可以被拆开来说清楚。
1.1 速度优势:先到先得,赢的不是智商而是物理距离
A股市场的成交撮合机制是“价格优先、时间优先”,这句话几乎所有交易者都听过。但真正意识到时间优先有多残酷的人并不多。
在同一个价位上,比如卖一挂了一万手,买一挂了两万手,谁先到谁先成交,后到的只能在队列里排队等前面消化完。这里的关键在于“到”这个字——一笔委托从你的电脑到交易所核心撮合引擎,要经过什么路径?你自己的网络带宽、券商柜台、中间路由器、交易所前置网关,每一跳都有延迟。对于普通投资者来说,这笔延迟通常是几十毫秒甚至几百毫秒的级别,体感上根本察觉不到。但对于做高频执行的量化机构来说,他们在意的已经不是毫秒,而是微秒。
这意味着什么?意味着当某只股票出现一个瞬间价差,或者某个板块因为突发消息出现联动异动的时候,量化系统可以先于市场其他参与者完成分析、决策、报单三步动作。等到普通投资者看到K线跳动、手忙脚乱敲单的时候,基于这个信息窗口的利润区间往往已经被填平了。这不是说量化交易者更“聪明”,而是他们提前抢占了物理位置上的先机。机房托管、低延迟链路、极简协议通讯,这些在真实交易里就是“不公平”的一个具体来源。
我在早期做过一个简单的对照实验:同一套信号逻辑,分别用普通家用宽带的模拟链路和本地回放数据做执行测试,结果发现仅仅因为延迟上的差异,日内高频逻辑的收益就能相差一倍以上。后来我彻底放弃了在超低延迟赛道上拼速度的想法,因为那个赛道拼的根本不是策略,而是基础设施投入。
1.2 订单簿博弈:撤单、试探、冰山单与看不见的对手
如果说速度优势还属于“硬件差距”,那订单簿层面的博弈就更晦涩,也更容易被误解。普通投资者看盘,看到的是五档行情,觉得“买一卖一”就是市场的全部厚度。但在以算法执行为核心的交易系统眼里,五档行情只是一个可以被试探、推挤、诱导的信号源。
高频策略里有个行为叫“试单”。系统在盘口附近挂出一笔小额订单,不是为了成交,而是为了观察市场反应。如果挂单之后价格迅速朝预期方向移动,说明前方买盘或卖盘薄弱,系统会顺势加码;如果价格毫无反应,系统会毫不犹豫地撤单。这种行为一天之内可以重复成千上万次,每个循环都在帮你“触摸”市场的真实深度,而普通投资者完全感知不到这些试探性委托的存在。
还有一类做法是拆单。大单如果一次性打到盘口,价格冲击会非常明显,等于提前向市场暴露了自己的意图。量化系统会把一个大单拆成很多小单,按照时间切片或者价格区间逐步释放,甚至在盘口用“冰山单”的形式只暴露一部分数量。这些订单管理手段在成熟市场已经存在了很多年,但对于普通账户来说,既没有工具也没有意识去做这种精细化的执行控制,看到盘口什么样就以为市场是什么样,天然处于信息弱势。
这里最容易被忽略的一点是撤单成本。普通投资者撤单要付出的代价只是重新下一个单的时间,而高频策略通过大量撤单换来的是对市场微观结构的认知优势。换句话说,高频系统每天报出大量订单但成交比例很低,它在用撤单“试探”这个市场的软肋。如果市场对这种行为不加以任何约束,普通参与者的每一笔真实委托都会变成别人模型训练的经验样本。
1.3 信息处理:事件驱动与秒级反应
除了执行层面的速度差和订单簿层面的信息差,量化交易在信息处理速度上的优势也同样不容小觑。A股市场从来不是一个纯技术指标驱动的市场,政策消息、行业公告、社交媒体情绪,每一类信息都会引发价格波动。普通投资者获取信息的方式往往是打开行情软件、翻看资讯推送,然后再用自己的经验判断可能的影响方向。这个过程通常需要几分钟,而量化系统处理的是结构化或者半结构化的信息流。
举个例子,一家公司盘前发布了一个超出预期的业绩预告。普通投资者看到这条消息时,可能在考虑这只票的估值逻辑、历史股性,甚至需要翻一翻K线确认位置。但量化系统可以在信息出现后的几百毫秒内完成分词、情感打分、历史相关性匹配、信号生成、风控检查、路由报单这样一整条流水线。等普通投资者真正开始买入,基于消息脉冲的斜率收益已经被抽走了一大截。
另外还要注意A股市场的特殊性:它有涨跌停板制度,也有T+1的交易约束。这看起来限制了量化交易的发挥空间,但实际上反而催生了另一种不公平的来源——日内波动结构。因为T+1限制了当天买入的筹码当天卖出,普通投资者一旦在错误的时间点追高,就被锁死在当日仓位里。而量化系统可以利用底仓和程序化拆单在日内多次进出,相当于在同样的资金规模下获得了更高的资金周转率。这种约束差异带来的优势,比单纯的速度差更容易被普通投资者体感不满。
2. “套上笼头”不是打压:约束背后的市场结构逻辑
既然量化交易的这些优势客观存在,那为什么说“必须”给量化套上笼头?很多人听到这个话题,第一反应是“政策限制增量”,这种理解其实走到了另一个极端。在我看来,量化的约束框架更接近一个基础设施问题——就像城市里的车道,如果不限速、不设红绿灯,跑得快的车确实爽了,但整个交通系统会陷入混乱,最后谁也跑不动。
拆开来看,约束的价值可以从交易者结构、市场稳定性和策略长期有效性三个维度去理解。
2.1 公平性维度:保护市场参与者的结构生态
一个健康的股票市场,需要容纳不同类型参与者:长期价值投资者、趋势交易者、套利者、做市商、机构配置盘和普通散户。每种参与者都在市场里承担着不同的功能,有的提供流动性,有的提供定价修正,有的承担风险转移。如果市场变成一个只有极少数超高速交易者能活下来的竞技场,其他参与者的参与意愿会持续下降,最终市场深度会萎缩、换手率分布会扭曲。
举个最简单的类比。一场田径比赛,如果允许一部分人穿喷气式推进器参赛,普通选手即使体能再好也根本没有上场意愿。观众看一两次新鲜感过后就会离场,赞助商也不愿意投钱,整个比赛生态就崩了。量化交易速度无限扩张的极端情形,就是这个比赛里人人都开始穿推进器,成本越来越高,边际收益越来越小,最后剩下的只有碎片化的订单流和无意义的系统内循环。
约束的本质,并不是限制量化交易者获得合理回报,而是保持市场上不同参与者之间的“起跑线差距”在一个可接受范围内。如果普通参与者的对手只有自己的同类,他们可以通过经验、纪律和认知去弥补差距;但如果对手是一台全天候运转、无情绪、零容错的执行机器,那这种差距根本无法通过个人努力去弥合。长期来看,普通参与者会被迫退出市场,而市场失去非专业参与者的流动性供给之后,机构的交易成本同样会上升,这是一个双输局面。
2.2 稳定性维度:从过度竞争到系统性波动放大
很多人没有意识到,高频执行的过度竞争除了不公平之外,还会带来真金白银的风险——波动放大器效应。量化系统的风控逻辑和普通人有本质区别:普通人会因为恐慌而卖出,量化系统则会在预设风控阈值被触发后做出机械式反应。平时这种反应是理性的,但当市场出现极端行情、大量量化系统同时触发相同风控逻辑的时候,就会产生步调一致的抛压。
这一点在很多市场都有过技术复盘,A股虽然因为T+1和涨跌停制度天然降低了一些极端风险,但日内闪跌、瞬间流动性枯竭之类的事件仍然值得警惕。比如某只股票盘中突然出现一笔大单砸盘,价格短时间内跌破某条均线,触发了一批算法单的系统性卖单,卖单进一步压低价格,又触发更多模型的止损条件,盘口买单被秒级吞掉,流动性出现真空,价格在一两分钟之内就走出了剧烈波动。等到波动回归理性,留下的往往是追涨杀跌者的损失和更大的不确定性。
对量化交易施加约束参数,比如限制撤单率、约束最低持仓时间、设定期货端的单笔报单限制,本质上是给这套高速运转的机器装上缓冲垫。缓冲垫不会让机器停下,只是让系统在极端情形下不会瞬间释放全部动能,争取到让人类重新评估和介入的时间窗口。这个逻辑跟桥梁护栏是一个道理:护栏不是为了限制你永远不过桥,而是为了防止失控时直接被冲下去。
2.3 有效性维度:约束反而延长策略的寿命
这层逻辑可能只有做过几年量化策略的人才看得最清楚。在完全没有约束的环境里,策略的有效窗口期其实非常短。为什么?因为如果你基于某个微观结构信号赚钱,别人也会发现,资金会持续涌入,直到把这个信号的收益压平。速度竞争越激烈,策略同质化越严重,alpha的衰减速度越快。
而约束框架存在的时候,策略开发反而会走向“更慢但更稳”的赛道。当“拼速度”这条路变窄,从业者会自然转向更深的搜索方向:更精细的因子组合、更耐噪的风险模型、更多元的另类数据、更稳健的交易执行框架。这类策略对微观结构和基础设施的依赖度更低,它们的竞争优势来自信息处理和风险定价能力,而不是物理链路速度。
换句话说,约束并没有消灭量化交易,它只是把行业从“军备竞赛”模式推向了“认知竞赛”模式。前者拼的是谁离交易所机房更近,后者拼的是谁对市场和风险的理解更深。对从业者个人而言,后者积累的能力更可迁移、更不容易随着市场结构改变而失效。这也是我在回测了大量的高频策略之后转身去做中低频策略的核心原因——用约束换稳定性,这笔账其实是划算的。
3. 什么样的“笼头”才是真正有效的?
既然“套笼头”是必要的,那具体的框架应该长什么样?这里需要说明一点:笼头不是越紧越好。过度的约束会抑制合理的流动性提供行为,让买卖价差变大、市场效率下降。真正有效的约束体系,应该像一套精密的仪表盘,既能限制过度投机,又不会影响正常策略的运行。从实操角度看,我认为可以从三个层面去理解:委托行为限制、持仓行为限制和异常行为熔断。
3.1 委托行为限制:报撤比、最小驻留时间与订单规模
先说委托行为。量化策略在市场上留下的最显著痕迹,就是巨额报单和高频撤单。约束委托行为的核心观测指标,业内通常用“报撤比”来监测——也就是统计一段时间内,账户报入市场的委托笔数与真正成交笔数之间的比值。这个比值越高,说明委托中有越多的“试探性”成分,或者说越多的订单发出去之后并没有真实成交意图。
在实际工作中,我会把报撤比拆成更细的三类来看:纯撤单率、部分成交撤单率、超时自动撤单率。纯撤单率指的是订单发出后没有任何成交就被撤销的比例;部分成交撤单是指订单成交了一部分但剩余仓位被撤;超时撤单是委托在市一段时间未成交后被系统主动放弃。不同类型的撤单对应不同的策略意图,对市场的干扰程度也不同。
再一个参数是最小驻留时间。如果一个订单发出之后不到几毫秒就被撤销,这种高频往返对市场就是一种信号污染。合理的约束是要让每一笔委托都有一个更长的“承诺期”——你可以挂单,但挂上去之后至少要保留一段合理时间,不能瞬间撤掉。这样做的意义是让盘口上挂出的订单真实可信,市场参与者才敢基于盘口去判断买卖压力。
可以整理一个简化版的自查表格,方便读者理解这些指标的含义:
| 约束指标 | 观测目的 | 合理方向 |
|---|---|---|
| 报撤比 | 识别试探性报单占比 | 比值过高说明策略过度试探 |
| 撤单率 | 衡量订单承诺度 | 控制在策略能解释的范围内 |
| 最小驻留时间 | 限制瞬时进出 | 越长越稳定,但太长会影响执行 |
| 单笔报单规模 | 控制盘口冲击 | 与盘口深度匹配,不宜过大 |
这里我想强调一下:这些指标不是死板的阈值,真正的约束应该让策略在边界内仍然有充分的决策空间。比如撤单率约束可以设成动态的——波动率大的日子里允许更高的阈值,因为市场摩擦本身就在变大;市场平稳的日子里则收紧。这种动态约束逻辑,比一刀切的固定数值更贴近真实交易需求。
3.2 持仓行为限制:换手率、持仓周期与资金周转
委托行为约束管的是“怎么下单”,持仓行为约束则管“拿多久”。量化和普通交易者最大的体感差异之一就是T+1背景下的换手率矛盾。一套完整的量化仓位管理框架,通常会为每类策略设定持仓周期下限、换手率上限和单票仓位上限。
持仓周期下限的意义在于,强制策略不能在日内反复横跳。A股虽然有T+1限制,但如果账户本来就持有底仓,日内可以做的操作其实是“先卖后买”和“先用底仓滚动”,量化系统可以借底仓反复实现日内高抛低吸。这种操作本身未必违规,但如果所有量化策略都把手里的底仓当成无限弹药来做高频滚动,盘口会变得极度不稳定。持仓周期约束要求策略对每一笔底仓滚动操作给出明确依据,不能无理由高频进出。
换手率上限更为直白。普通账户一天之内调仓百分之二三十已经算很激进了,但量化策略的账面换手可以轻松做到十倍以上。换手率上限的约束逻辑是,让策略必须更谨慎地选择交易机会——只有在信号强度足够高的时候才启用资金仓位,而不是每天都把仓位倒来倒去。我自己的经验是,策略设计里加入换手率约束之后,总收益不一定会下降,但交易成本和滑点支出会显著下降,反而是净收益变高了。
资金周转率的控制其实衍生出一个额外的优点:它让策略天然具备对低质量信号的免疫力。当你可以无限制交易的时候,几乎每个信号都值得去尝试,因为浪费的只是不真实的手续费;但当你被约束着每一次调仓都精打细算的时候,策略会自己学会“不值得的交易不做”,这反而是模型稳健性的来源。
3.3 异常行为熔断:从单票级到策略级的风控体系
前两类约束是慢变量,它们在日常交易中持续起作用,保持市场平稳;而第三类约束是快变量,专门应对极端情况。一个健康的量化交易框架,一定要有异常行为熔断机制,而且这个机制必须分层次:单票级、策略级、账户级都要有独立的风控开关。
单票级熔断关注的是单个标的的持仓集中度、当日累计成交额、价格偏离度等指标。策略级熔断关注的是整个策略当日的回撤幅度、连续亏损次数、开仓频率异常变化。账户级熔断关注的是整体净值的日内回撤、保证金占用比例、总暴露头寸。任何一个层级触发熔断,都要能自动降级甚至终止交易。
这个框架在我自己开发策略时是作为基础设施搭建的,下单接口的前置路由层是独立于策略引擎的,它不关心策略在做什么,只做规则检查。任何一笔委托进来,先要过一遍“是否触发单票仓位上限,是否触发策略当日止损线,是否超出账户总回撤阈值”,三层检查全通过才会真正送往交易所。哪怕策略引擎自己的逻辑已经判断“现在应该买”,只要风控层说“不行”,单子就发不出去。
我建议所有做量化开发的人,不管资金量大小,都先在模拟盘阶段就把这套风控体系搭出来。很多人在小资金阶段觉得风控是累赘,结果资金规模一上来就遇到单票持仓失控或者连续回撤扛不住的情况,再去补风控已经晚了。风控系统的价值平时看不出来,但极端行情来临时,它就是唯一能保住你账户的那道闸门。
4. “带笼头”状态下,策略应该怎么改才不别扭?
理解了约束的必要性和框架设计,接下来就是最实际的问题:作为量化策略开发者,在约束条件下,策略结构应该做怎样的调整?很多朋友的策略一旦被套上参数限制,第一反应是“被束缚了、做不了”,其实不是约束本身的问题,而是策略架构在根上没有给约束留出接口。我把自己这几年调整策略的经验总结成四个方向,每个方向都经历了从“硬伤”到“顺手”的转变过程,希望能给你一些参考。
4.1 从高频到中低频:把时间尺度拉长,把信号质量做厚
我早期开发策略的时候沉迷于tick级信号,觉得分秒必争才叫量化。后来在A股的执行环境里做久了,发现真正稳定盈利的日内策略不需要毫秒级执行,它需要的是在未来几分钟或者十几分钟内有显著统计优势的预测信号。时间尺度拉长之后,对执行速度的要求会急剧下降,策略对延迟波动的鲁棒性反而增强了。
这是怎么做到的?核心是把信号构建从“捕捉瞬间不均衡”转为“识别持续性倾向”。比如盘口异动可以告诉你“现在有资金在买”,但如果你把观测窗口从几百毫秒拉长到几分钟,你需要回答的问题就变成了“这种买盘倾向是否具有持续性,是否足以支撑接下来的价格上行概率”。后者需要的信息更丰富,对噪声的容忍度也更高,天然就不那么依赖速度。
中低频策略在执行上还有一个优势:它可以把注意力和技术资源从低延迟链路优化转移到订单执行算法的改进上。下单的时候不用再去抢所谓的前排单,而是更关注“如何在降低对盘口冲击的前提下拿满目标仓位”。我的体会是,用5分钟级别的建仓逻辑逐渐替代逐tick抢单逻辑之后,策略的绩效稳定度明显提升,回撤更平滑,交易成本占比也降下来了。
4.2 从速度到深度:把优势转移到模型本身
没有约束的时候,很多团队习惯用基础设施优势来掩盖模型劣势:模型平庸没关系,只要下单快,就能在微小价差里薅到利润。但这是一种非常不健康的路径依赖。一旦约束框架上线,速度优势被压缩,模型本身的预测能力就成了唯一的分水岭。
转向“模型深度”意味着要把精力放在几个长期有效的地方:第一是因子挖掘,但不再停留在技术指标排列组合的层面,而是深入交易行为背后的逻辑,比如筹码分布变化、大单主力行为、板块资金流结构;第二是风险模型,加入行业暴露、风格暴露的约束,让组合的系统性风险敞口可控;第三是多周期确认,把日线、60分钟、15分钟甚至分时形态融合成一个多维度信号体系,提高信号质量的稳定性。
我用过一个非常笨但有效的方法:把一套原本依赖日内高频执行的策略,强行只允许每天收盘前做一次调仓,然后看它在“低频执行、中频信号”的模式下表现如何。最开始回测数据很差,因为原来的信号设计根本没有考虑持仓周期这么长的情况。但经过几轮迭代,把信号预测目标从“未来几分钟的涨跌”调整为“未来半天到一天的趋势倾向”之后,这套策略反而跑出了比高频版本更稳定的净值曲线。这个过程让我明白,约束不是让你不做量化,而是逼你思考哪些优势是真正属于认知层面的优势。
4.3 工程实现:订单管理、软限速与延迟容忍度设计
这里分享一些工程层面的实现思路。在“带笼头”策略架构里,订单管理模块应该承担更多职责,而不仅仅是把策略产生的信号翻译成委托。
我在实际项目里用的是“软限速”方案:策略引擎与交易路由之间加了一层委托节流器,它的任务是对策略发出的委托做频率限制和规模限制。比如一个策略策略模型每分钟最多只能向交易接口发送20笔有效委托;超过这个限制,后续请求会进入一个等待队列,而不是直接被丢弃。等待队列配合一个延迟计数器,如果等待时间超过阈值,该笔委托就会自动降级为“不操作”。这样做的效果是:既限制了策略的报单疯狂度,又保留了策略模型不被非预期错误打断的能力。
另一个重要的工程优化是“延迟容忍度设计”。低延迟链路当然很有用,但约束环境下的策略不能把性能假设建立在“永远低延迟”上,因为市场结构的变化、节假日期间的通道负载、策略自身的参数调整都可能导致延迟波动。我自己的做法是,在设计策略性能评估框架时,把延迟模拟器接入回测系统——在回测过程中随机注入几毫秒到几十毫秒不等的额外延迟,然后观察策略净收益和换手是否保持稳定。如果策略在这些延迟扰动下绩效严重失稳,说明它对时序敏感度过高,并不适合长期实盘。
4.4 成本模型重建:盘口冲击与隐性惩罚
最后要调整的其实是交易成本建模。量化策略在回测里常常显得无比强大,一到实盘就缩水,很大一部分原因就是成本模型忽略了“约束环境下的隐性惩罚”。试想一下,当你严格控制撤单率之后,很多试探性的信号你根本不会去执行,那么策略实际承担的滑点其实比不控制时要低,但代价是你错过了一些只有试错才能发现的交易机会。这种错失机会本身就是成本的一部分。
所以我在实盘成本建模的时候会额外做两个检查项。第一项是市场冲击成本检查:单笔委托规模相对于当前盘口深度的占比一旦超过某个临界值,就需要调整委托规模或拆单执行方式。第二项是成交率期望检查:设定某策略的预期成交率区间,如果实际成交率偏离过大,说明策略要么太激进要么太保守,需要重新校准委托价格结构。这几步做完,策略对实际摩擦的反应会更真实,约束参数也和绩效之间的关系更可解释。
5. 实操中的常见问题与自查清单
做量化这几年,我在策略上线和运行过程中的踩坑记录可以说是最多的财富。很多问题在教科书和研报里不会写,只有自己亲手把源码跑起来、让策略在市场里撞过南墙之后才会真正明白。这一节整理几个高频出现的问题,每个都附上我自己的排查思路,希望能帮你少走一些弯路。
5.1 撤单率总是偏高,怎么办?
撤单率高的原因通常可以分成三类:信号噪音太大、委托价格设置不合理、执行算法过度防御。
信号噪音导致的高撤单率,常见于使用分钟级或者分时级数据预测日内波动的策略,盘中行情会不断触发新的多空判断,策略逻辑频繁反转,委托发出后没过几秒信号失效,于是只能撤单。对于这类问题,我的建议是给信号增加一个“确认窗口”——信号触发后不是立刻下单,而是等待一个短周期数据确认后再下单。这不一定增加延迟,但能显著过滤掉脆弱信号带来的试探性委托。
委托价格设置不合理则更容易排查。如果策略发出的是限价单,而委托价格距离当前对手价太远,挂上去半天也未必能成交,系统逻辑等待一段时间后选择撤单重发,这种情况会造成大量“超时撤单”。排查方法很简单:观察委托在撤单前的平均驻留时间和平均未成交价格距离,如果驻留时间普遍小于你设定的最小驻留时间,说明订单价格太保守;如果距离很大,则说明策略对市场价格波动预期把握不足。
执行算法过度防御多见于使用拆单算法的时候。拆单算法为了保证成本可控,会不断根据盘口更新委托数量和价格,这个反向更新过程会产生大量撤单。这种情况下,我会建议简化算法参数,减少动态调价的频率,给订单更多的时间去自然成交。撤单率高这件事并不是说一定要降到某个具体数值以下,关键是要知道每一笔撤单背后的原因,并且让这个原因处于可解释、可控制的状态。
5.2 延迟变高之后策略失效,怎么办?
很多中低频策略其实对延迟并不敏感,但如果你发现自己的策略在延迟拉高时净值曲线明显恶化,那就需要排查延迟具体影响到了哪一部分环节。
一种常见情况是策略的行情解析和数据对齐环节设计了累积缓冲逻辑,当延迟波动变大时,行情快照和落盘数据之间的时序错乱会导致信号计算错误。我的建议是在行情接入模块里加入时间戳校验和跨源对账机制,确保来自不同源的数据之间的顺序关系是可靠的,哪怕延迟偏大,数据本身的一致性也不能丢。
另一种情况是策略依赖“边际变化”信号,比如希望通过差量信息捕捉盘口方向,这类策略天然对时序顺序和速度要求极高。如果延迟无法保障,最有效的处理办法是对策略做降频重采样。把tick级或者逐笔级信号降级到五档快照级甚至是分钟级特征,过滤掉微结构层面的噪声。虽然信号精度会降低,但稳定性和延迟鲁棒性会大幅提升,这正是约束环境下更需要的特性。
5.3 约束参数一收紧就亏损,如何调整?
如果你在回测中尝试收紧某个约束参数,发现策略收益立刻下降甚至转为亏损,先不要急着否定约束框架。绝大多数情况下,这不是约束不合理造成的,而是策略本身在过度依赖某种被限制的行为。
举个例子,一个策略高度依赖高撤单率来试探最优成交价,你把撤单约束收紧之后,它自然就失去了原有的执行代价优势。这种策略的正确调整方向不是放宽约束,而是优化委托价格逻辑,让每一笔委托从一开始就尽可能接近最优成交区间,不再需要靠大量试错来逼近。也就是说,约束暴露的是策略本身的惰性——它之前太依赖试错,而不是真正理解盘口。
调整的方法通常有两个方向。一是加强信号层面的质量过滤,让策略减少低置信交易,整体委托数量下降后,约束压力自然就缓解了。二是引入事件驱动的订单调度,用更精细的执行意图管理替代机械式委托。比如把策略的委托按交易目的分为“试探型”“建仓型”“播种型”三类,不同类型设置不同的约束容忍度,而不是用同一个参数套所有场景。
5.4 上线前的自检清单
最后整理一份我每上一个新策略之前都会跑一遍的自检框架,你可以直接抄作业:
| 检查项 | 具体问题 | 自查结果 |
|---|---|---|
| 委托频率 | 每分钟最大报单量是否在策略设计范围内 | 是/否 |
| 撤单占比 | 纯撤单率是否高于策略可解释范围 | 是/否 |
| 持仓周期 | 持仓周期下限是否匹配策略设计目标 | 是/否 |
| 成本压力 | 冲击成本与手续费占比是否在预算内 | 是/否 |
| 极端行情 | 连续大幅回撤时是否自动熔断 | 是/否 |
| 信号延迟 | 延迟扰动下策略绩效是否保持稳定 | 是/否 |
这份清单看起来简单,但每一条在真实环境里都可能牵连出很深的坑。我自己早年上线策略时,就因为持仓周期下限和策略逻辑不匹配,导致日终风控频繁介入,反而让正常交易被误伤。后来把参数配置从“死数值”改成“动态范围”,并给不同策略分配不同的参数配置文件,才彻底解决这个问题。
对量化从业者来说,约束不是束缚手脚的绳索,它更像一个路标:告诉你哪些路已经被走烂了,哪些路才是还能挖出alpha的方向。我在实际开发中逐渐体会到,一个真正能在市场里长期活下去的策略,往往不是那个跑得最快的策略,而是那个知道自己在什么边界内跑最舒服的策略。速度优势可以被复制,基础设施可以被超越,但基于深度理解构建的稳健策略框架,才是真正难以替代的护城河。把笼头戴好、戴顺,反而能让你比那些拼命踩油门的玩家跑得更远。