4、订单簿特征工程:买卖压力比、订单簿斜率、深度不平衡等核心指标
做市商这行,说白了就是跟订单簿打交道。你盯着屏幕上跳动的数字,其实是在看一场永不停歇的博弈。我做了这么多年,最大的体会就是:原始订单簿数据太粗糙了,必须经过特征工程,才能变成真正有用的信号。
今天咱们就聊聊几个最核心的指标。这些指标我几乎每天都会用,它们就像医生的听诊器,能帮你快速判断市场当下的「健康状况」。
4.1 买卖压力比(Bid-Ask Pressure Ratio)
先问个问题:你怎么判断买方和卖方谁更着急?
光看价格涨跌是不够的。价格涨了,可能是买方真的强势,也可能是卖方暂时撤单了。我们需要一个更直接的指标——买卖压力比。
我个人习惯用这个公式:
Pressure_Ratio = (Bid_Volume * (1 + Spread_Adjust)) / (Ask_Volume * (1 - Spread_Adjust))
其中 Bid_Volume 和 Ask_Volume 是买一和卖一档的挂单量。Spread_Adjust 是价差调整因子,用来处理价差过大的情况。
嗯,这里要注意:单纯比较买卖挂单量是不够的。我在项目中遇到过,某个币种买一挂了100个BTC,卖一只有50个,看起来买方碾压对吧?但仔细一看,价差是0.5%,远高于正常水平。这说明什么?说明卖方在撤退,但买方也不傻,没人愿意吃这个高价。这时候压力比其实是个假信号。
4.2 订单簿斜率(Order Book Slope)
买卖压力比只看第一档,太片面了。真正的市场深度,要看整个订单簿的形状。
订单簿斜率,说白了就是衡量订单簿「陡峭」还是「平缓」的指标。斜率越大,说明价格稍微一动,挂单量就急剧变化——这种市场流动性差,容易滑点。
计算方式其实不复杂:
Slope = (ΔPrice / ΔVolume) * Normalization_Factor
具体实现时,我会取买一到买五、卖一到卖五这10个档位,分别拟合一条线。斜率就是这条线的角度。
你想想看,如果斜率突然变大,说明什么?说明有人在某个价位附近堆了大量的挂单。这可能是支撑位或阻力位。我曾经靠这个指标,在ETH的一个关键价位上提前发现了「鲸鱼」的挂单,成功避开了后续的瀑布行情。
4.3 深度不平衡(Depth Imbalance)
这个指标跟买卖压力比有点像,但更「厚」一些。它衡量的是整个订单簿的买卖力量对比,而不是只看第一档。
我常用的公式是:
Depth_Imbalance = (Bid_Depth - Ask_Depth) / (Bid_Depth + Ask_Depth)
其中 Bid_Depth 和 Ask_Depth 是买盘和卖盘在某个价格区间内的总挂单量。这个区间怎么选?我个人习惯用「当前价格 ± 0.5%」这个范围。
深度不平衡的值在 -1 到 1 之间。正值表示买方深度更大,负值表示卖方深度更大。
| 深度不平衡值 | 市场含义 | 我的应对策略 |
|---|---|---|
| > 0.3 | 买方明显占优 | 减少卖单,适当加仓 |
| -0.3 ~ 0.3 | 相对均衡 | 正常做市,双向挂单 |
| < -0.3 | 卖方明显占优 | 减少买单,控制风险 |
我曾经犯过一个错误:只看深度不平衡的正负,忽略了它的变化速度。有一次深度不平衡从0.4快速跌到0.1,我以为还是买方占优,结果下一秒就被砸穿了。后来我加了一个变化率指标,当深度不平衡在1分钟内变化超过0.2时,我会主动降低仓位。
4.4 三个指标怎么配合使用?
单独用哪个指标都不够稳。我一般这样组合:
- 先用买卖压力比做快速判断——看谁在主导第一档。
- 再用订单簿斜率确认趋势——看这个主导力量有没有「后劲」。
- 最后用深度不平衡做仓位管理——决定挂单的偏向和大小。
举个例子:假设BTC当前价格30000。买卖压力比是1.5,说明买方在抢第一档。订单簿斜率显示买盘斜率平缓、卖盘斜率陡峭,说明买方有深度,卖方却很脆弱。深度不平衡是0.4,进一步确认了买方优势。这时候我会怎么做?我会在买一和买二之间多挂一些买单,同时在卖一上方挂少量卖单——既吃到了上涨的利润,又不会在回调时被套太多。
这三个指标,说白了就是帮你把订单簿从「一堆数字」变成「可执行的策略信号」。我刚开始做做市商时,只会看价格和成交量,吃了不少亏。后来慢慢摸索出这些特征工程的方法,才真正开始稳定盈利。
嗯,今天就聊到这儿。这些指标看着简单,但用好了,效果不比那些复杂的机器学习模型差。