4、策略信号生成:基于订单簿不平衡的信号、基于波动率的信号、信号合成与过滤

好,咱们进入第四讲。信号生成,这是策略的灵魂。

说实话,很多做市策略的成败,就卡在这一步。你回测框架搭得再好,参数调得再勤,信号不对,一切都是白搭。我个人习惯把信号生成分成三个层次:原始信号合成信号过滤后的信号。今天咱们就一层层剥开来看。

4.1 基于订单簿不平衡的信号

订单簿不平衡,英文叫 Order Book Imbalance,简称 OBI。这玩意儿说白了就是看「买的人多还是卖的人多」。

你想想看,如果买单深度远大于卖单深度,那价格短期往上走的概率就大。反之亦然。这个逻辑很朴素,但实战中非常有效。

我常用的计算公式是这样的:

OBI = (bid_volume - ask_volume) / (bid_volume + ask_volume)

其中 bid_volume 是买一到买五的总挂单量,ask_volume 是卖一到卖五的总挂单量。OBI 的取值范围在 -1 到 1 之间。正值表示买方占优,负值表示卖方占优。

嗯,这里要注意:不要只看一档深度。我在项目中遇到过,有些做市商喜欢在买一挂大单装样子,但买二买三空空如也。如果你只看一档,很容易被误导。我建议至少看三档,最好看五档。

我的小技巧: 可以给不同档位加权重。比如买一卖一权重0.4,买二卖二权重0.3,买三卖三权重0.2,买四卖四权重0.1。这样既能捕捉到近端压力,又能兼顾远端信息。

还有一个变种,叫 加权订单簿不平衡。公式长这样:

weighted_OBI = Σ(weight_i * (bid_i - ask_i)) / Σ(weight_i * (bid_i + ask_i))

这个信号对高频做市尤其重要。因为它能更细腻地捕捉到订单簿的「形状」变化。

4.2 基于波动率的信号

波动率信号,很多人把它当成风险指标来用。但我告诉你,它也可以直接作为交易信号。

逻辑是这样的:当波动率突然放大时,说明市场情绪在变化。这时候做市商需要调整报价宽度,甚至暂时退出市场。而当波动率回归正常时,又可以重新进场。

我常用的波动率指标有两种:

指标 计算方法 适用场景
瞬时波动率 最近N笔交易的收益率标准差 高频做市,捕捉短期波动
相对波动率 当前波动率 / 历史波动率均值 判断波动是否异常

我个人习惯用 相对波动率。为什么?因为瞬时波动率在不同品种、不同时间段差异太大。比如BTC在亚洲下午和欧美晚上,波动率能差好几倍。用相对值就能归一化处理。

我曾经踩过一个坑:直接用瞬时波动率做阈值过滤,结果白天信号太少,晚上信号太多。后来改成相对波动率,问题就解决了。

避坑指南: 波动率信号有滞后性。它是基于历史数据算出来的。所以用它做「预测」时要小心。我一般把它当成「当前市场状态」的指示器,而不是「未来走势」的预测器。

4.3 信号合成与过滤

单一信号往往不够稳定。比如OBI信号在横盘震荡时表现不错,但遇到突发消息就失灵了。波动率信号能识别异常,但无法告诉你方向。

所以,我们需要做 信号合成

我常用的合成方法有三种:

  1. 加权平均法:给每个信号分配权重,然后线性组合。比如OBI占0.6,波动率占0.4。
  2. 条件触发法:只有当多个信号同时满足条件时,才生成交易信号。比如OBI > 0.3 且 波动率 < 2倍均值。
  3. 分层决策法:先用波动率信号判断「能不能做」,再用OBI信号判断「往哪做」。

我个人最推荐第三种——分层决策法。它更符合人的直觉。你想想看,一个优秀的做市商,一定是先判断「今天这行情适不适合做」,再决定「往哪个方向做」。

下面是我在项目中用过的信号合成流程图:

信号合成与过滤流程 订单簿不平衡信号 波动率信号 其他辅助信号 第一层过滤:波动率阈值判断(是否适合做市) 第二层过滤:OBI方向判断(做多/做空/中性) 最终交易信号(含报价宽度与方向)

信号过滤这块,我还有一个心得:不要过度过滤。有些同学恨不得加十个八个条件,结果信号少得可怜,一天都开不了几次仓。做市策略的核心是高频次、小盈利,信号太少就失去了做市的意义。

我的经验法则: 过滤条件不要超过3个。每加一个条件,信号数量大约减少30%-50%。三个条件下来,信号可能只剩原来的10%-20%。如果还不够,那就不是过滤的问题,而是原始信号本身就不行。

4.4 实战中的信号处理技巧

最后分享几个我在实战中积累的小技巧:

  • 信号平滑:用EMA对原始信号做平滑,避免毛刺。我一般用3-5周期的EMA。
  • 信号归一化:把不同量纲的信号统一到0-1或-1到1的范围,方便合成。
  • 信号延迟:做市信号不能太灵敏,否则会被频繁的买卖盘跳动骗进去。我习惯加1-2个tick的延迟。
  • 信号衰减:如果某个信号连续N次都预测错误,临时降低它的权重。这叫「动态权重调整」。

嗯,说到动态权重,我曾经在ETH-USDT的做市策略里用过。一开始OBI信号权重设0.7,波动率设0.3。跑了三天发现OBI信号在震荡市表现很好,但在趋势行情里老是反向。后来我加了一个「趋势强度」指标,当趋势强时自动降低OBI权重、提高波动率权重。效果立竿见影。

好了,信号生成这块就讲到这里。记住一句话:信号不是越多越好,而是越准越好。下一节咱们会讲如何用这些信号去驱动报价引擎,那才是真正见真章的地方。


公众号:蓝海资料掘金营,微信deep3321