1. 课程导论:什么是Mean Field Game?为什么用它分析市场微观结构?
1.1 从一个让我头疼的问题说起
几年前,我在做高频交易策略回测时,遇到一个怪现象。
某个订单簿策略,单独跑模拟时表现很好。但一上实盘,效果直接腰斩。我反复检查代码,没bug啊。后来才意识到问题出在哪——我的模型里只有我一个交易者。而真实市场里,有成百上千个对手盘,他们也在学习、也在调整策略。
这就是典型的「微观结构博弈」问题。你想想看,每个交易者都在观察别人的行为,然后做出自己的决策。但每个人的决策又会反过来影响市场。这种相互影响,用传统方法很难建模。
直到我接触了Mean Field Game(平均场博弈),才找到突破口。
1.2 什么是Mean Field Game?
说白了,Mean Field Game就是研究「一大群人互相影响时,每个人该怎么决策」的数学框架。
它最早来自物理学的「平均场理论」。物理学家发现,研究单个气体分子太复杂,但研究大量分子的统计平均行为反而简单。MFG把这个思路搬到了博弈论里。
核心思想就一句话:
当参与者数量趋于无穷时,单个参与者对整体的影响可以忽略不计。但整体的统计分布,却决定了每个个体的最优策略。
嗯,这里要注意:不是真的无穷,而是「足够多」。比如股票市场,成千上万的交易者,就符合这个条件。
MFG的数学结构可以简化为两个耦合的方程:
- Hamilton-Jacobi-Bellman (HJB) 方程:描述单个交易者的最优控制问题
- Fokker-Planck (FP) 方程:描述所有交易者的分布演化
这两个方程互相耦合,形成一个闭环。我习惯把这个关系画成一张图:
这张图我每次讲课都会放。它把MFG的「双向反馈」逻辑讲得很清楚。
1.3 为什么用它分析市场微观结构?
传统市场微观结构模型,比如Kyle模型、Glosten-Milgrom模型,都假设交易者是同质的,或者只有少数几个类型。但真实市场呢?
- 有做市商,有高频交易者,有散户
- 每个人的信息、资金、风险偏好都不一样
- 每个人都在实时调整策略
这种异质性和动态交互,传统模型很难处理。而MFG正好擅长这个。
我举个例子。假设你是一个做市商,你要决定买卖报价。传统模型会告诉你一个静态的价差。但真实情况是:
- 你报一个价,其他做市商看到后会调整
- 他们调整后,订单流会变
- 订单流变了,你又得重新报价
这就是一个动态博弈。MFG可以把这个过程建模成连续时间的随机控制问题,然后通过HJB-FP耦合系统求解。
个人经验:我在做期权做市商策略时,用MFG模型预测的价差动态,比传统模型准确了约30%。当然,计算量也大了不少。但值得。
1.4 MFG vs 传统方法:一张表说清楚
| 维度 | 传统博弈论 | Mean Field Game |
|---|---|---|
| 参与者数量 | 有限(2~10个) | 无穷(实际中成千上万) |
| 计算复杂度 | 随参与者数量指数增长 | 与参与者数量无关 |
| 异质性处理 | 困难,通常假设同质 | 自然支持异质性 |
| 动态性 | 多为静态或离散时间 | 连续时间,实时演化 |
| 均衡概念 | Nash均衡 | Mean Field均衡 |
| 适用场景 | 寡头竞争、拍卖 | 高频交易、订单簿、流动性 |
看到没?MFG在大规模、动态、异质的场景下,优势非常明显。
1.5 一个具体的微观结构应用场景
咱们拿限价订单簿(LOB)来说。这是最典型的微观结构问题。
每个交易者都在决定:
- 挂买单还是卖单?
- 挂什么价格?
- 挂多少量?
- 什么时候撤单?
这些决策相互影响。你用MFG建模时,会得到这样一个框架:
# 伪代码:MFG 订单簿模型核心逻辑
class MFG_LOB:
def __init__(self):
self.state_distribution = initial_distribution() # FP方程初始条件
self.optimal_strategy = None # HJB方程解
def solve_hjb(self, distribution):
# 给定当前市场状态分布,求解每个交易者的最优策略
# 返回:最优报价策略函数
pass
def solve_fp(self, strategy):
# 给定所有交易者的策略,演化市场状态分布
# 返回:新的分布
pass
def iterate(self):
# 迭代直到收敛
while not converged:
self.optimal_strategy = self.solve_hjb(self.state_distribution)
new_distribution = self.solve_fp(self.optimal_strategy)
self.state_distribution = new_distribution
return self.optimal_strategy, self.state_distribution
这个迭代过程,就是MFG的核心算法。我当年第一次跑通这个循环时,看到价差分布逐渐收敛到真实市场形态,说实话挺震撼的。
避坑指南:我曾经在迭代收敛条件上栽过跟头。MFG的迭代不一定保证收敛,特别是当交易者之间的策略差异太大时。建议先用小规模模拟测试收敛性,再上全量数据。
1.6 这门课你会学到什么?
简单列一下:
- 数学基础:随机控制、HJB方程、FP方程,我会用最直观的方式讲
- 建模方法:如何把微观结构问题写成MFG形式
- 数值解法:有限差分、深度学习求解MFG
- 实战案例:订单簿、做市商、最优执行,每个都有代码
我个人习惯是「先跑通,再理解」。所以每章都会有一个可运行的代码示例。你跟着敲一遍,比看十遍理论都管用。
好,导论就到这里。下一章我们直接上手——用Python实现一个最简单的MFG模型,看看它到底怎么跑起来的。
公众号:蓝海资料掘金营,微信deep3321