4. 行业ETF流动性画像与成本基准

在行业ETF轮动策略中,交易成本并不是一个可以统一套用的常数。同样一笔50万元的调仓指令,放在日均成交额数十亿元的宽基ETF上可能只是盘口里的一朵小浪花,而放在某些细分行业ETF上,却足以把买一卖一价差推开好几档。因此,构建成本测算模型的第一步,不是急着套公式,而是先给每只候选ETF做一份“流动性画像”,并据此建立分层化的成本基准参数库。

一、流动性画像的三个核心维度

刻画一只行业ETF的流动性,最直接可得的指标有三类,它们分别回答不同层面的问题。

日均成交额回答“这只ETF一天能吞吐多少资金”。它是最粗粒度但最稳定的容量指标,通常取近20个交易日成交额的均值,同时观察最小值,以识别是否存在个别交易日流动性骤降的情况。日均成交额决定了策略容量上限的粗略量级。

盘口深度回答“在当前价位附近,我能立刻成交多少而不显著推动价格”。实务中常取买一至买五、卖一至卖五的挂单金额合计,或计算冲击成本曲线:以不同委托规模(如10万、50万、100万、300万元)模拟吃单,估算相对中间价的成交均价偏离。盘口深度是即时冲击成本最贴近真实的来源,但它随行情瞬时变化,需要多次采样取中位数。

换手率回答“这只ETF的交易活跃度相对于其规模是否充分”。换手率=区间成交额÷区间平均规模。规模大但换手率极低的ETF,往往持有人结构集中、做市商报价稀疏,盘口可能比成交额所暗示的更薄。换手率与日均成交额配合使用,可以识别“大而不活”的品种。

此外,买卖价差(相对中间价的半价差,单位bp)是直接计入成本的显性项,也应纳入画像。它与盘口深度高度相关,但更直观,适合作为分层的第一道筛子。

二、从指标到分层:建立成本基准参数库

把上述指标综合起来,可将行业ETF划分为若干流动性层级,并为每层设定一套默认成本参数。下面给出一个示例性的分层框架(参数为教学假设,实际使用时应以自身券商费率与真实盘口采样结果校准):

层级典型特征(示例阈值)半价差基准冲击成本系数建议单笔上限
L1 高流动性日均成交额≥10亿元,盘口五档≥800万元,换手率≥3%1.5 bp0.8500万元
L2 中流动性日均成交额2~10亿元,盘口五档200~800万元3 bp1.2150万元
L3 低流动性日均成交额0.5~2亿元,盘口五档50~200万元6 bp1.850万元
L4 稀薄日均成交额<0.5亿元,或换手率<1%且盘口五档<50万元12 bp2.520万元或改用分批

表中“冲击成本系数”用于把委托规模换算为额外成本:单边冲击成本(bp)≈ 系数 ×(委托金额 ÷ 建议单笔上限)× 基准冲击量。举例来说,某L2层级ETF建议单笔上限150万元,若一次委托300万元,则规模倍数为2,冲击成本约为1.2×2×(该层基准冲击,假设为5bp)=12bp,再加上3bp半价差,单边成本约15bp,双边往返约30bp。这个量级已经足以吞掉一次行业轮动中相当一部分预期超额收益,这正是必须先做流动性画像的原因。

分层不是给ETF贴永久标签。季报规模变化、做市商更换、指数调样都会改变流动性,建议每季度重采样一次盘口与成交额,滚动更新参数库。

三、画像与分层的实际操作流程

落地时可按以下顺序执行,形成可复用的基准参数库:

  1. 确定候选池:列出策略可能触及的全部行业ETF,按跟踪指数去重,保留规模最大、成交最活跃的一只作为代表。
  2. 采集成交数据:取近20个交易日的日成交额、日换手率,计算均值与最小值,记录最小值/均值比值作为稳定性指标。
  3. 采样盘口:在连续竞价时段(避开开盘前5分钟与收盘前5分钟)分3~5个时点抓取买卖五档,记录五档挂单金额合计与半价差,取中位数。
  4. 模拟冲击:以10万、50万、100万、300万元四档规模,按盘口逐档吃单估算成交均价,得到各规模下的冲击成本曲线。
  5. 归层与赋值:按上表阈值归入L1~L4,写入半价差基准、冲击系数与单笔上限,形成参数库条目。
  6. 回测校验:用历史调仓记录代入参数库估算成本,与账户实际成交回报对比,偏差持续超过30%的品种需重新采样。

需要强调的是,参数库的价值在于“可比较、可更新、可追溯”。每只ETF的条目应保留采样日期与原始指标,这样当轮动信号触发时,成本测算模块可以直接按层级调用参数,而不必临时拍脑袋估计。

行业ETF流动性画像与成本基准分层 画像指标采集 日均成交额(20日) 均值 / 最小值 盘口五档深度 挂单金额 / 半价差 换手率 识别“大而不活” 冲击成本曲线 10/50/100/300万 多时点采样取中位数 流动性分层判定 L1 高流动性 成交额≥10亿 · 半价差1.5bp L2 中流动性 2~10亿 · 半价差3bp L3 低流动性 0.5~2亿 · 半价差6bp L4 稀薄 <0.5亿 · 半价差12bp 成本基准参数库(示例) L1:冲击系数0.8 · 单笔上限500万 双边成本约 3~6bp L2:冲击系数1.2 · 单笔上限150万 双边成本约 8~15bp L3:冲击系数1.8 · 单笔上限50万 双边成本约 18~30bp L4:冲击系数2.5 · 单笔上限20万 双边成本 35bp 以上,需分批 每季度重采样盘口与成交额 回测成本与实际回报偏差>30% 则更新 注:表中阈值与成本参数为教学示例假设,实际使用须以券商费率与真实盘口采样校准

有了这份分层参数库,后续章节中的轮动成本测算就有了统一的输入口径:每只ETF不再是一个模糊的“流动性还行”,而是带着层级、半价差、冲击系数和单笔上限的结构化条目。当策略信号要求把资金从L3品种切换到L1品种时,成本模型可以分别调用两边的参数,算出这次切换的真实往返成本,再与预期收益增量比较,从而判断这笔轮动是否值得执行。

常见误区是只看日均成交额就下结论。某些行业ETF成交额看似过亿,但盘口五档合计不足百万元、半价差超过10bp,实际大额委托的冲击远超成交额所暗示的水平。分层时必须让盘口深度与换手率参与判定,避免被单一指标误导。

最后提醒一点:流动性画像的采样时间应尽量覆盖不同市场状态。平静期与波动放大期的盘口深度可能相差数倍,若参数库只基于平静期数据建立,在极端行情下会系统性低估成本。稳妥的做法是同时记录平静期与压力期的采样结果,在成本测算中按策略所处的市场状态选择对应参数,或对基准值施加一个压力情景上浮系数。