第二章:算法交易基础回顾

好,咱们正式开始。这一章我打算带大家快速过一遍算法交易的核心基础。你可能会问,都讲 Mean Field Game 了,为什么还要回头炒冷饭?

嗯,我个人的习惯是,地基不牢,楼盖得再高也心虚。尤其是做高频和做市策略,订单簿的微观结构就是你的战场地图。看不懂地图,你怎么打仗?

2.1 订单簿微观结构:你的战场地图

说白了,订单簿就是交易所里所有买卖挂单的实时快照。它由两个核心队列组成:买盘(Bid)和卖盘(Ask)。

我记得刚入行时,带我的老交易员跟我说:“别盯着K线看,那都是滞后的。要看就看 Level 2 数据。” 他说的 Level 2,就是订单簿的深度。

2.1.1 核心概念速览

  • 买一价 (Bid Price):当前市场上,有人愿意出的最高买入价。
  • 卖一价 (Ask Price):当前市场上,有人愿意卖的最低卖出价。
  • 价差 (Spread):卖一价减去买一价。这是做市商吃饭的本钱。
  • 深度 (Depth):在某个价位上挂着的总手数。深度越厚,价格越难被打穿。
  • 订单簿不平衡 (Order Book Imbalance):买盘总深度 vs 卖盘总深度的比值。我个人习惯用这个指标来预判短期价格方向。

实战经验: 我在项目中遇到过,单纯看价差缩小就以为流动性变好,结果被瞬间的冰山订单(Iceberg Order)给骗了。价差窄,但深度极浅,一单大单就能把价格打飞。所以,一定要结合深度看。

2.1.2 订单簿的“心跳”:事件驱动

订单簿不是静态的。它每秒都在变化。主要事件就三种:

  1. 限价单到达 (Limit Order Arrival):有人在某个价位挂单,增加了深度。
  2. 市价单成交 (Market Order Execution):有人直接吃掉对手盘,减少了深度。
  3. 撤单 (Cancellation):挂单的人反悔了,把单子撤回去。

你想想看,一个高频策略,本质上就是在预测这三类事件发生的概率和顺序。

避坑指南: 我曾经犯过一个低级错误,把撤单事件当成负面信号。后来发现,很多做市商为了试探市场,会频繁挂单又撤单。这叫“虚假挂单”(Spoofing)。现在监管严了,但依然存在。处理数据时,一定要把撤单率作为一个特征。

2.2 高频交易策略分类:快、准、狠

高频交易(HFT)不是一种策略,而是一类策略。它们的共同点是:速度极快,持仓时间极短,单笔利润极薄。

我习惯把它们分成三大类:

策略类别 核心逻辑 典型例子
市场微观结构策略 利用订单簿的瞬时失衡或价格发现延迟 订单流预测、价差捕手
统计套利策略 利用相关资产之间的短期价格偏离 跨期套利、ETF 套利
事件驱动策略 利用新闻、公告或大单引发的瞬间波动 新闻交易、大单拆单跟随

这里我要强调一点。很多人以为 HFT 就是拼网速。其实,在同等网速下,拼的是你对订单簿的理解深度。也就是我们刚才讲的微观结构。

个人经验: 我做过一个简单的“价差捕手”策略。逻辑很简单:当买一和卖一的价差突然扩大到正常水平的 3 倍时,我就在买一价挂单,同时在卖一价挂单。如果成交了,就赚一个价差。听起来很傻对吧?但在流动性差的品种上,这个策略年化收益能到 15%。前提是,你得能扛住单边行情。

2.3 做市商与流动性博弈:在刀尖上跳舞

做市商(Market Maker)是交易所的“服务员”。他们的任务是:同时提供买价和卖价,为市场提供流动性。

但做市商不是慈善家。他们赚的是价差,亏的是库存风险。

2.3.1 做市商的盈利模型

说白了,做市商就是在赌市场不会单边运动。他们通过不断地“低买高卖”来赚取微小的价差。

  • 理想情况:市场震荡,做市商在买一成交,然后在卖一成交。每次赚一个价差。
  • 噩梦情况:市场暴跌,做市商在买一接了一大堆货,结果卖一没人要了。库存全是亏损。

警告: 做市商最大的敌人不是散户,而是“毒流”(Toxic Flow)。什么是毒流?就是那些拥有信息优势的交易者。比如,某个大机构知道马上要出利空消息,他们会在做市商挂单的地方疯狂卖出。做市商接到的每一单都是亏损的。我曾经在 2015 年股灾时亲眼见过,很多做市商因为接单接到破产。

2.3.2 流动性博弈的数学本质

做市商的核心问题只有一个:如何定价?

价差设得太宽,没人来交易,赚不到钱。价差设得太窄,一旦遇到毒流,亏得底裤都不剩。

经典的 Avellaneda-Stoikov 模型给出了一个解。它把做市商的定价问题,转化成了一个库存风险控制问题。

# 一个简化的 Avellaneda-Stoikov 定价公式
# 假设当前中间价为 S,库存为 q,风险厌恶系数为 gamma,波动率为 sigma

reservation_price = S - q * gamma * sigma^2 * (T - t)

# 其中,reservation_price 是做市商愿意成交的“心理价位”
# 买价 = reservation_price - spread/2
# 卖价 = reservation_price + spread/2

这个公式告诉我们:当库存 q 为正(手里有货)时,做市商的心理价位会降低,因为他想赶紧把货卖出去。反之,当库存为负(净空头)时,心理价位会升高。

我的理解: 这个模型虽然简单,但它抓住了做市商博弈的核心——库存管理。你想想看,一个做市商如果库存管理不好,再好的策略也是白搭。我个人习惯在实盘中,把 gamma 参数设得比理论值大一点。为什么?因为市场比你想象的要残酷,风险厌恶系数高一点,活得久一点。

2.4 本章知识体系总览

为了让你更直观地理解这三块内容的关系,我画了一张图。

算法交易基础:三大核心支柱 订单簿微观结构 高频策略分类 做市商与流动性博弈 买一/卖一 · 价差 · 深度 限价单 · 市价单 · 撤单 微观结构 · 统计套利 事件驱动 · 订单流预测 价差收入 · 库存风险 毒流 · Avellaneda-Stoikov 核心目标:在微观结构中找到可预测性 利用订单簿信号,设计策略,管理库存风险

这张图把本章的三个核心模块串起来了。订单簿微观结构是底层数据,高频策略是上层应用,做市商博弈则是两者的结合与实战。

最后说一句: 这一章的内容,看起来都是基础。但相信我,后面讲 Mean Field Game 时,你会发现,所有的数学模型最终都要落回到订单簿的这几行数据上。没有这个基础,你连模型在优化什么都看不懂。


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