盈利模型基础:买卖价差、库存管理与订单流预测

大家好,我是老张。在量化圈摸爬滚打了十几年,做市商这块业务,说实话是我觉得最考验「手艺」的领域之一。今天咱们聊的这三个东西——买卖价差、库存管理、订单流预测,说白了就是做市商赚钱的「三驾马车」。你想想看,没有价差你赚什么?没有库存管理你拿什么扛风险?没有订单流预测你怎么比别人快一步?

我个人习惯把这三块比作一个交易员的「左手、右手和大脑」。价差是左手,负责抓钱;库存是右手,负责稳住;订单流预测是大脑,负责提前判断。嗯,咱们一个一个拆开聊。

一、买卖价差(Bid-Ask Spread)——做市商的「面包和黄油」

做市商最基础的盈利来源,就是买卖价差。说白了,你同时挂买单和卖单,买价低一点,卖价高一点,中间这个差价就是你的利润。

举个例子:假设某股票当前市场中间价是100元。你挂99.98元买入,挂100.02元卖出。价差是0.04元。如果两边都成交了,你就赚了这0.04元。听起来简单吧?但这里面的门道可不少。

核心公式:

盈利 = 成交量 × 价差 × 成交比例 - 手续费 - 逆向选择成本

我在项目中遇到过很多新手,一上来就把价差设得很宽,觉得这样赚得多。结果呢?根本没人跟你成交。因为市场上还有其他做市商,人家价差更窄,流动性更好。你挂的价差再大,没人理你也是白搭。

那价差到底怎么定?我个人经验是,主要看三个因素:

  • 波动率:波动越大,价差越宽。因为风险大了,你得给自己留点安全垫。
  • 流动性:流动性越好,价差越窄。比如比特币现货,价差可以做到0.01%以内。
  • 订单簿深度:如果买卖盘口很薄,你挂单容易被吃掉,价差就得宽一点。

避坑指南:我曾经犯过一个错误——在低波动市场里把价差设得太宽,结果一整天都没成交。后来我学乖了,用动态价差模型,根据实时波动率自动调整。效果立竿见影。

二、库存管理——做市商的「命门」

做市商最怕什么?不是亏钱,是库存失控。你想想看,你一边买一边卖,如果买多了卖少了,手里就攒了一堆货。万一价格暴跌,你就亏大了。

库存管理的核心目标只有一个:让库存水平始终保持在安全范围内

我常用的库存管理策略有几种:

  1. 对称报价调整:当库存偏多时,把买价压低,卖价也压低,鼓励卖出、抑制买入。反过来也一样。
  2. 库存上限/下限:设定一个库存阈值,一旦超过就暂停某一方向的报价。
  3. 对冲策略:在期货或期权市场做反向操作,把库存风险转移出去。

举个例子,假设你手里已经攒了1000股某股票,而你的目标库存是0。这时候你应该怎么做?我会把买价往下调,比如从99.98调到99.95,同时把卖价也往下调,从100.02调到99.99。这样卖单更容易成交,买单更难成交,库存自然就降下来了。

注意:库存管理不是越频繁越好。我见过有人每秒钟都在调整报价,结果手续费比利润还高。合理的调整频率,我个人建议是每5-10秒一次,或者根据订单簿变化触发。

三、订单流预测——做市商的「水晶球」

订单流预测,说白了就是猜接下来谁会买、谁会卖。如果你能提前知道大单要来了,你就可以提前调整报价,吃下这波利润。

我常用的预测方法包括:

  • 订单簿不平衡分析:如果买单深度明显大于卖单深度,说明买方力量强,价格可能上涨。
  • 历史模式识别:某些时间段(比如开盘、收盘)订单流有规律可循。
  • 机器学习模型:用LSTM或Transformer预测短期订单流方向。

这里我分享一个简单的订单流预测代码框架:

import numpy as np
from sklearn.ensemble import RandomForestClassifier

# 特征:买卖盘口深度差、最近10笔成交方向、时间特征
def extract_features(order_book, trades):
    bid_depth = sum(order_book['bids'][:5])
    ask_depth = sum(order_book['asks'][:5])
    imbalance = (bid_depth - ask_depth) / (bid_depth + ask_depth)
    
    recent_trades = trades[-10:]
    buy_ratio = sum(1 for t in recent_trades if t['side'] == 'buy') / 10
    
    return [imbalance, buy_ratio, order_book['timestamp'].hour]

# 训练模型
model = RandomForestClassifier(n_estimators=100)
model.fit(X_train, y_train)

# 预测下一笔订单方向
pred = model.predict([features])

这个模型虽然简单,但在实际项目中效果还不错。我记得有一次,我用这个模型提前3秒预测到了一笔大单,然后迅速调整了报价,那一单就多赚了2000多美元。

小技巧:订单流预测不要只看一个指标。我习惯把多个信号综合起来,比如订单簿不平衡 + 大单拆分检测 + 时间模式,三个信号同时指向一个方向时,胜率会高很多。

知识体系总览

下面这张图是我自己整理的做市商盈利模型的核心逻辑,你可以把它当作一个「思维导图」来看:

做市商盈利模型 买卖价差 波动率 流动性 订单簿深度 库存管理 对称报价调整 库存阈值 对冲策略 订单流预测 订单簿不平衡 历史模式 机器学习 三者协同:价差抓利润,库存控风险,预测抢先机 缺一不可,互相影响

你看这张图,三个模块是互相影响的。价差太宽,库存容易失衡;库存管理不好,订单流预测再准也没用;订单流预测不准,价差和库存管理都会出问题。所以做市商这个活,说白了就是「三手都要硬」。

好了,这一章的内容就到这里。记住这三个核心概念,后面的章节我们会逐一深入展开。


专注资料整理