1940 字
10 分钟

策略容量与多策略配置:规模是收益的敌人

本课目标:理解”规模为什么会吃掉收益”,学会粗略估算策略容量、识别拥挤度,并用风险预算的方式管理一个多策略组合。

回测里的年化收益是”零资金假设”下的理论值:假设你的交易不影响价格、想成交多少就成交多少。一旦资金变大,这两个假设都会破产。理解容量,是从”做出一个好策略”走向”管理一笔真实资金”的必修课。本文为方法讨论,不构成投资建议。

容量从哪里被吃掉:三个约束来源#

策略容量的本质是:随着管理规模上升,实际可实现的超额收益会衰减,直到某个规模时新增资金的边际收益为零。衰减来自三个层面:

  • 流动性约束:你能买的量受制于标的的成交额。小市值股票上的策略,规模稍大就买不进、卖不出,或者被迫拉长建仓周期,让信号在等待中过期;
  • 冲击成本:你的订单本身会推动价格。买入推高成本、卖出压低卖价,冲击成本大致随参与率上升而非线性增长——规模翻倍,冲击成本上升往往不止一倍;
  • 信号衰减:换手越高、持有期越短的策略,对执行摩擦越敏感。一个依赖短期反转的高换手策略,其超额收益的”半衰期”可能只有几天,大资金根本来不及完成布局。

一个直觉性结论:换手率越高、持仓越偏小市值、信号越短期,容量越小。指数增强这类低换手、全市场分散的策略容量大;小市值高频轮动策略容量小。

容量估算:不求精确,只求量级#

容量无法精确计算,但可以估出量级。一个常用的思路是从”参与率上限”倒推:

  1. 设定单票成交参与率上限(例如不超过当日成交额的某个百分比,避免明显冲击);
  2. 结合策略的持仓分布和调仓周期,算出每期最多能换手的金额;
  3. 再由策略的目标换手率,反推出可承载的总规模。
import pandas as pd
def capacity_estimate(positions: pd.DataFrame,
max_participation: float,
turnover_per_rebalance: float) -> float:
"""粗略容量估算:positions 含每只持仓的权重 weight 与日均成交额 adv"""
# 每只票单期可交易金额上限 = 日均成交额 * 参与率 * 建仓可用天数
tradable = positions['adv'] * max_participation * positions['days']
# 单票隐含的组合规模 = 可交易金额 / (权重 * 单期换手率)
implied = tradable / (positions['weight'] * turnover_per_rebalance)
return implied.min() # 瓶颈由最难交易的持仓决定

注意最后一行:容量由瓶颈持仓决定,而不是平均值。另一个交叉验证的办法是在回测中直接叠加随规模递增的冲击成本模型,画出”规模—净超额收益”曲线,找到收益衰减到不可接受的拐点。

策略拥挤度:别人和你做一样的事#

容量不只关于你自己的规模,还关于所有做同类策略的资金总量。当一个因子或策略变得拥挤:

  • 收益被提前透支,超额收益中枢下移;
  • 更危险的是”拥挤交易的踩踏”:当持有同类头寸的资金同时止损或降杠杆时,会出现与基本面无关的剧烈回撤,且流动性在你最需要它的时候消失。

拥挤度难以直接观测,但有一些代理指标可以跟踪:同类公开产品的规模增速、因子多头组合的估值分位、因子近期的动量与波动、成交额中疑似同向资金的占比变化。指标不必精确,重要的是当多个代理指标同时亮灯时,主动降低该策略的风险预算。拥挤本身不是立刻离场的理由——拥挤的策略往往还能继续赚一段——它改变的是风险收益比:上行空间在收窄,尾部风险在累积,你的仓位应该随之下调。

多策略配置:相关性管理与资金分配#

单策略容量有限,规模增长的正路是横向扩展策略池。多策略配置的两个核心问题:

**第一,相关性管理。**多策略的价值几乎全部来自低相关。两个相关性很高的策略放在一起,只是同一个策略的两份仓位。实操建议:

  • 用滚动窗口计算策略间收益相关性,重点看压力时期的相关性——平时不相关的策略在危机中经常一起回撤;
  • 按驱动逻辑给策略分类(价量类、基本面类、事件类、对冲套利类),逻辑同源的策略即使历史相关性低,也要合并计入同一个风险桶。

**第二,资金分配。**推荐从等波动(每个策略贡献相同波动)起步,再演进到风险预算(按你对各策略的信心和容量分配风险份额):

分配方式逻辑优点缺点
等资金每策略同样资金简单高波动策略主导组合风险
等波动每策略同样风险贡献风险均衡、稳健忽略收益预期差异
风险预算按信心与容量定制风险份额灵活、贴近实战依赖主观判断,需纪律

策略池的进出机制#

多策略组合是活的,需要一套新陈代谢规则:

  • 入池标准:新策略必须经过样本外跟踪期(先模拟盘、再小资金),且与现有池子的相关性低于门槛,逻辑上能说清楚收益来源;
  • 观察与降级:实盘表现显著劣于回测预期、或拥挤度指标持续恶化的策略,先降风险预算进入观察名单,而不是立刻踢出;
  • 出池纪律:事前定义下线条件(如滚动表现跌破阈值且逻辑基础被证伪),避免”亏损了但舍不得删”的沉没成本陷阱。

进出机制本身也要留痕复盘:每次入池、降级、出池的理由都记录在案,一年后回看这些决策的质量。你会发现自己系统性的偏差——比如总是对亲手研发的策略更宽容、对表现平稳但不起眼的策略更苛刻——而纠正这些偏差本身,就是多策略管理水平的提升。

本课小结#

  • 容量被流动性、冲击成本、信号衰减三者共同限制,换手越高、票越小、信号越短,容量越小;
  • 容量估算看量级不看精度,瓶颈由最难交易的持仓决定;
  • 拥挤度是系统性风险:无法精确测量,但可以用多个代理指标预警并主动降预算;
  • 多策略的价值来自低相关,资金分配建议从等波动起步,向风险预算演进;
  • 策略池要有明确的入池、观察、出池规则,并对这些决策本身做复盘。

动手练习:选你手上换手率最高的一个策略,按”参与率上限倒推”的思路估算它的容量量级;再在回测中叠加一个随规模上升的线性冲击成本,画出规模从小到大时净超额收益的衰减曲线,标出你认为的容量拐点。