4、调仓信号设计:基于偏离度的信号、基于波动率的信号、基于流动性的信号

调仓信号,说白了就是告诉系统「什么时候该动」。
我见过不少团队,策略逻辑写得漂漂亮亮,但调仓信号设计得稀里糊涂。
结果呢?要么频繁交易把收益全吃掉了,要么该调的时候没调,眼睁睁看着偏离越滚越大。

今天咱们就聊聊三种最核心的信号类型。
我个人习惯把它们叫做「三驾马车」:偏离度、波动率、流动性。
这三者配合好了,再平衡才能做到「该出手时就出手」。

4.1 基于偏离度的信号

偏离度信号,是最直观的调仓依据。
你想想看,指数增强组合的核心目标是什么?
就是跟踪指数的基础上,跑出超额收益。

但组合里的股票,每天涨跌不一样。
时间一长,实际权重和目标权重之间就会出现偏差。
这个偏差,就是偏离度。

核心公式:
偏离度 = |实际权重 - 目标权重| / 目标权重

我在项目中遇到过一种情况:
某只股票因为连续涨停,权重从2%飙到了5%。
偏离度超过了100%。
这时候如果不调,组合就变成了「被动追涨」,风险极大。

具体怎么用?我建议设置两层阈值:

阈值类型 阈值范围 触发动作
预警阈值 偏离度 > 20% 标记为待观察,不强制调仓
强制阈值 偏离度 > 50% 立即触发调仓信号

嗯,这里要注意一点:
偏离度信号不能只看单只股票。
我习惯同时监控「整体偏离度」——也就是所有股票偏离度的加权平均值。
如果整体偏离度超过15%,说明组合已经「走形」了,需要全面再平衡。

# 偏离度信号计算示例
def compute_deviation_signal(current_weights, target_weights, threshold=0.5):
    deviation = abs(current_weights - target_weights) / target_weights
    # 标记需要调仓的股票
    signals = deviation > threshold
    return signals, deviation

4.2 基于波动率的信号

波动率信号,解决的是「什么时候调更划算」的问题。
你想想看,如果市场波动很大,你这时候调仓,滑点成本会很高。
反过来,如果市场很平稳,调仓成本就低很多。

我曾经吃过这个亏。
有一次市场剧烈震荡,我硬是按计划调仓,结果滑点吃了0.3%。
后来我学乖了——波动率太高的时候,宁可让偏离度多扛两天,也别急着调。

我的经验:
用20日滚动波动率作为基准。
当波动率处于历史80%分位以上时,暂停调仓。
当波动率回落到50%分位以下时,恢复调仓。

具体实现上,我习惯把波动率信号和偏离度信号结合起来:

# 波动率信号示例
def compute_volatility_signal(returns, window=20, high_percentile=0.8):
    rolling_vol = returns.rolling(window).std() * sqrt(252)
    threshold = rolling_vol.quantile(high_percentile)
    # 当前波动率高于阈值时,返回False(不调仓)
    return rolling_vol.iloc[-1] < threshold

说白了,波动率信号就是个「刹车片」。
它不告诉你该不该调,而是告诉你「现在调划不划算」。

4.3 基于流动性的信号

流动性信号,是最容易被忽视的。
很多人只盯着偏离度和波动率,结果调仓指令下去了,发现股票根本卖不掉。
或者一卖就把价格砸下去好几个点。

我记得有一次做小盘股增强策略。
某只股票偏离度到了60%,我按计划要卖出。
结果这只股票全天成交额才500万,我持仓市值就有200万。
一卖,直接砸了2%的跌幅。

避坑指南:
我曾经因为忽略流动性信号,单次调仓损失了0.5%的超额收益。
从那以后,我把流动性信号作为调仓的「一票否决权」。

流动性信号怎么设计?我一般看三个指标:

  • 日均成交额:低于1000万的股票,调仓时要格外小心
  • 买卖价差:价差超过0.5%的股票,调仓成本太高
  • 订单簿深度:前五档挂单量是否足够支撑调仓规模

具体到信号设计上,我建议这样:

# 流动性信号示例
def compute_liquidity_signal(stock_code, trade_volume, avg_daily_volume, threshold=0.1):
    # 如果调仓量超过日均成交额的10%,视为流动性不足
    if trade_volume / avg_daily_volume > threshold:
        return False  # 不调仓
    return True

4.4 三信号融合:我的实战框架

单独看每个信号,都有局限性。
偏离度信号告诉你「该不该调」,波动率信号告诉你「现在调划不划算」,流动性信号告诉你「能不能调」。
三者缺一不可。

我习惯用这样的决策逻辑:

  1. 第一步:检查流动性信号。如果流动性不足,直接跳过,不调。
  2. 第二步:检查波动率信号。如果波动率过高,延迟调仓,等市场平稳再说。
  3. 第三步:检查偏离度信号。如果偏离度超过阈值,执行调仓。

说白了,就是「先看能不能调,再看划不划算,最后决定调不调」。

核心逻辑:
流动性是前提,波动率是成本,偏离度是目标。
三者按优先级排序,缺一不可。

下面这张图,是我自己项目里用的信号融合框架:

调仓信号融合决策框架 偏离度信号 波动率信号 流动性信号 信号融合判断 流动性通过 → 波动率适中 → 偏离度超标 → 执行调仓 输出:调仓指令 / 延迟指令

最后说一句:
信号设计没有标准答案。
不同的市场环境、不同的策略类型,阈值和优先级都要调整。
我个人的习惯是,每季度复盘一次信号参数,看看有没有需要优化的地方。

毕竟,量化投资这件事,永远在迭代。