量化研究中,很少有默认前提经受得住足够多的检验——“自适应优于固定”就是其中之一。
大多数做网格策略的 Quant ,都面临过一个选择:让网格间距随波动率实时缩放,还是给它固定值?
前者逻辑清晰。市场在变,网格当然要跟着变。变总比不变好。
但过去几年陆续公开的数据,指向了另一个方向。
各类使用动态间距的网格策略,样本外收益衰减很普遍。通常,衰减幅度与策略的复杂程度正相关——引入的预测模块越多,掉得越快。
反倒是那些使用固定间距、只调整整体仓位的策略,表现出更强的实盘稳健性。
那 “变” 这个动作,到底在哪个环节出了问题?又是通过什么样的路径,把一个原本可以成立的策略框架一步步瓦解的?
固定网格的先天错配
实盘中,固定网格策略虽然表现稳健,但逻辑上并非无懈可击。
它骨子里隐含着一个假设:价格的摆动幅度(波动率)在时间轴上是基本稳定的。网格步长内的涨跌概率,不随时间变化。
这个假设在样本内通常不会暴露问题,因为我们回测的是一段历史数据,它在时间轴上是静止的。
但实盘行情的演化是动态的。当市场从“慢跑”突变为“冲刺”(波动率放大),或者从“竞走”急停为“踌躇”(波动率收缩),固定网格的盈亏概率天平可能会瞬间倾覆。原本在低波动环境下大概率触发止盈的网格间距,一旦遇到高波动环境,一次触发就是一笔巨大的浮亏。
这并不是参数没选对。同一组参数在某一波动率水平上可能表现不错,一旦波动率的量级发现变化了,原先那个“不错”也不成立了。
真正的问题在于时间尺度的错配。市场不是匀速的,我们却用一个匀速的坐标系去丈量。既然市场速度在变,最直接的优化思路就是实时测量速度,然后按测量结果调整网格间距。
自适性的三种尝试
顺着这个思路,我们来把市面上一些常见的做法逐一拆解。
1. 波动率预测为何不准?
首先是波动率预测。通常做法是引入滚动窗口的已实现波动率(比如 ATR 或 GARCH 类模型),让网格间距跟着波动率缩放。波动率大、间距扩宽,波动率小、间距收缩。逻辑上没什么问题,除非我们停下来审视一个前提:
这些波动率预测模型,在“我们需要它们最准的时候”到底有多准?
Mincer 和 Zarnowitz ( 1969 )提过一个简单的检验框架。把波动率预测值与未来真实实现的波动率放在一起做回归:
•如果β显著偏离 1,说明预测值在系统性地放大或缩小真实波动率。如果把常见的波动率预测模型,无论是滚动 ATR 还是 GARCH 变体,直接套进这个框架,结果通常不太好看。预测值与真实值之间的关系,远比我们以为的松散。整个自适应网格,其实正依据一套有偏的预测,动态、实时地调整着防线。
但比滞后更严重的,是预测在危机时刻的系统性失效。 Hansen 和 Lunde ( 2005 )对比了 330 种波动率预测模型后,发现:所有模型在平静期拟合良好,但在波动率急速拉升的“刀刃时刻”,这也是网格最需要准确判断的时期。此时预测值呈现系统性的方向偏差,要么极度高估,要么极度低估。
实践过程中,波动率急升初期,预测值被滞后数据拖累,网格扩宽不够,在趋势启动时仓位过重;波动率刚触顶回落,预测值还停留在高位,网格过度收缩,在反转前频繁触发无效交易。每一次“自适应”似乎都踩在错误的节拍上——该扩宽时缩得太紧,该收缩时扩得太宽。
这已经不是“精度不够”的问题了。用一个市场平静期尚可、极端时刻却频繁失灵的预测模型,去指导极端情况下最需要保护的网格策略,实际上很难站得住。
2. 状态识别:趋势与震荡的灰度
如果说波动率的具体数值猜不准,那试着换一个思路:不去猜波动率有多大,而是直接判断市场当前处于什么“模式”。趋势还是震荡?
如果是趋势就关掉网格或偏向一边,震荡就正常开。听起来更高阶,但执行起来没那么简单。
具体来说,我们可以引入 Hurst 指数——大于 0.5 认为是趋势,小于 0.5 认为是震荡,然后据此决定网格的开闭或偏向。不过, Geweke 和 Porter-Hudak ( 1983 )的研究早已指出,这种半参数估计法对窗口长度的选择极其敏感。同一个品种、同一段行情,换一个窗口长度,结论可能截然相反。
当然,即便估计方法完美,Hurst 值本身是一个连续谱,比如 0.51 、 0.52 、 0.53 。在 0.53 和 0.51 之间,市场真的有本质区别吗?用一个统计上不稳健的指标,去切割一个连续谱,这是在误差之上叠加了错误。
还有一个更隐蔽的问题:金融市场是分形的。比如日线级别看起来是完美的震荡箱体,切换到 15 分钟 K 线,里面可能嵌套着三波单边推动。所以,如果我们直接用日线级别的 Hurst 值去指导分钟级别网格的开闭——这就像用一张世界地图去导航小区的内部道路,再准确的全局信息,落到局部也失去意义。
这不意味着状态识别就全无价值。如果 Hurst 值从 0.48 跳到了 0.55 ,即使数值不够精确,至少能提示“市场状态可能发生了变化”。
一个更务实的做法是我们可以把它当作仓位乘数的调整因子。当趋势迹象增强时,不关闭网格,只是略微降低每格的权重。这样即使判断有偏差,影响也会被缓冲,而不是被开关切换放大。
3. 参数漂移:当适应变成鱼的记忆
既然预测不准,判断又有噪音,那么如果我们放弃所有外部指标,直接让网格跟随价格走呢?
价格突破网格上沿,就把整个网格中心上移;价格跌破下沿,就把中心下移。这样网格永远围绕最新价格运转——听起来足够“顺势”,和前面那种依赖外部预测的方式截然不同。
顺着这个思路推演。
如果价格不断上涨,网格中心就不断上移,每次上移都触发原网格下沿的平仓指令。这样低位底仓被止盈,然后又在新中心附近重新开多。一次温和的单边上涨行情,就可能被这套机制切割成很多次“低位止盈、高位建多”的循环。
这本质上把“顺势持仓”完美地转化为了“反复追涨杀跌”。网格的锚点在跟着价格跑。每次更新,旧锚点承载的长期均值回归信息,就被被最近几根极端 K 线彻底覆盖。价格走多远,锚点就漂多远。
在持续学习领域有一个著名诅咒 “灾难性遗忘”( Catastrophic Forgetting ),它描述的是神经网络在学习新数据时彻底覆盖旧知识的现象。放到网格策略上,情况类似。
策略变得像鱼的记忆,只记得当下和刚才,忘了自己从哪里来。自适应的极致,就是丧失对长期中枢的感知能力。
这是所有自适应策略最深层的悖论:越努力贴合最新价格轨迹,就越容易被短期噪音奴役。
换一种自适应
前面的方法走下来,有些进退维谷:
自适应这条路,到底能走通吗?
关键看把自适应用在哪。如果我们把自适应定义在价格参数上,让网格锚点跟着价格跑,那确实不行。
1. 从预测位置到管理敞口
换个思路。
想象一座灯塔。基座永久固定,任凭潮水冲刷不移动分毫。但塔顶的灯光可以根据风暴的强度调整明暗——风暴来了调暗,风平浪静恢复。
同样,我们把网格的间距、层级、中心锚点全部固定,启动后就不再挪动。唯一允许调整的变量,是触发时开仓的手数。网格参数一旦固化,它的空间结构就固定了。这样,不管价格怎么走,锚点都不会漂移,旧的信息也不会被覆盖。
既然预测价格这条路走不通,那不妨放弃预测,把自适应的对象从价格方向转向风险暴露,只管理一个可以绝对控制的变量:在固定的空间骨架里,账户还能承受多大的亏损?
2. 风险预算的自适应
网格的每一次触发,不该被视为一笔方向性的下注。他更像是在出售保险,其本质是在做空波动率。
从出售保险的角度看,唯一需要严格控制的,是极端行情下的“最大赔付额”。这对应着条件风险价值框架( CVaR , Rockafellar 和 Uryasev , 2000 )——关注的不是“平均会亏多少”,而是“最坏的尾部情景下会亏多少”。
落实到操作层面,唯一的自适应变量就是总仓位乘数。它与账户的已实现净值曲线绑定,与市场价格解耦。
当净值回撤触及某个阈值时,仓位乘数会非线性地收缩。这不算止损,更像是 “降速”——市场还在按它的节奏走,但我们的下注变轻了。当净值创新高时,仓位乘数则做温和的、非对称的恢复。
比函数形式更重要的,是 “死区”( Dead Zone )的设置。比如,净值回撤在 5%以内时,仓位乘数维持不变。这样避免策略对微小波动的过度反应,也能减少不必要的调整次数。死区之外,策略才真正介入。
但介入之后如何退出?有趣的是,这个退出规则本身也是不对称的——恢复永远比收缩慢。回撤时亏的是本金,容错空间更小;创新高时赚的是浮盈。所以,亏的时候要收得快,赚的时候要放得慢。
举例来说。当市场剧烈波动时,账户回撤 8%,超过了设定的 5%死区阈值。此时,仓位乘数自动从 1.0 降到 0.6 。虽然网格间距不变,但我们每一格的赌注变轻了。市场即使继续波动,账户的回撤速度也自然放缓。
这样,策略的逻辑也从“对市场的无限博弈”转换成了“对自我账户的有限管理”。
市场是不可控的混沌,但账户余额是可控的。自适应,其实是我们对自身风险吸收能力的动态评估,而非对价格走势的追逐。
3. 等待的深度
把网格参数固定下来、放弃对价格路径的主动预测之后,还有一个现实问题需要考虑——交易摩擦。
在滑点和手续费面前,响应越敏感,交易成本越高。
对此,一个思路是在入场条件中增加时间维度的确认。价格穿越网格线后,不立即成交,而是要求在该线之外维持一个最小驻留时间。
在随机过程理论中,纯噪音驱动的价格穿越,其驻留时间服从指数分布,极短;而有实质性漂移驱动的穿越,驻留时间显著更长。这是在用等待换取信号的可靠性。
当交易成本真实存在时,快不一定就好。等待本身,就是一种筛选机制。用时间换信噪比——快的时候不犹豫,慢的时候不动摇。
好的自适应,恰恰是敢于在关键时刻“不作为”:让时间替我们确认,让噪音自己消散。
变与不变
所以问题不在 “变” 本身。
在市场的变与策略的不变之间,隔着一个判断:哪些东西该被价格带走,哪些东西必须留在骨架里?
网格的间距、层级、锚点,这些构成策略骨架的东西,不需要变。
真正该变的,是每一格背后押注的重量:仓位收缩、风险降速、净值锚定。
这不是什么高阶技巧,只是一个被反复验证过的常识:我们无法通过预测市场来稳定地赚钱,但可以通过控制自己在每一笔交易中暴露的风险来活得更久。
好的策略是一座灯塔。底座埋在礁石里,灯光只在风暴中调暗自己。
当网格不再为了“适应”而频繁跳动时,我们才开始驾驭它。