3. 预备知识:最优控制理论与HJB方程

好,咱们进入正题。这一章要聊的,是理解Mean Field Game绕不开的两块基石——最优控制理论和HJB方程。说白了,MFG里的每个智能体都在做决策,而决策的数学本质,就是最优控制。

我个人习惯把最优控制理解成「在时间轴上做选择」。你想想看,从0时刻到T时刻,每个时间点你都能做点什么,最终目标是让某个指标最大化或最小化。这不就是交易员每天都在干的事吗?

3.1 最优控制问题长什么样

先给个标准定义。一个典型的最优控制问题包含三要素:

  • 状态变量 \(x_t\):描述系统当前的状态,比如股票持仓、订单簿深度
  • 控制变量 \(u_t\):你施加的动作,比如下单速度、报价偏移
  • 目标函数:你要优化的东西,通常是收益减去成本

数学上写成这样:

最大化 J = ∫₀ᵀ f(x_t, u_t, t) dt + Φ(x_T)

约束条件:
dx_t = μ(x_t, u_t, t) dt + σ(x_t, u_t, t) dW_t
u_t ∈ U (控制可行域)

我在做高频交易策略回测时遇到过一个问题——控制变量选得太细,结果优化出来的策略根本没法实盘跑。后来我学乖了,控制空间一定要跟实际交易约束对齐,比如最小报价单位、交易所的限速规则。

核心要点:最优控制就是在「状态演化」和「控制代价」之间找平衡。你动作越大,状态变化越快,但成本也越高。

3.2 HJB方程的推导直觉

HJB方程是解决连续时间最优控制问题的核心工具。它的思想其实很朴素——用动态规划的思路,把整个时间区间的问题拆成「当前时刻」和「剩余时间」两部分。

定义值函数:

V(x, t) = max_{u} E[ ∫ₜᵀ f(x_s, u_s, s) ds + Φ(x_T) | x_t = x ]

这个V(x,t)表示:从t时刻、状态x出发,后面怎么控制最好,能拿到多少总回报。

然后我们用伊藤引理展开dV,再结合贝尔曼最优性原理,就能得到:

∂V/∂t + max_u { f(x,u,t) + μ(x,u,t) ∂V/∂x + ½ σ²(x,u,t) ∂²V/∂x² } = 0

边界条件:V(x, T) = Φ(x)

嗯,这里要注意——这个方程是偏微分方程,不是常微分方程。很多初学者在这栽跟头,以为解个ODE就行。

我的经验:HJB方程最难的部分不是推导,而是求解。大多数情况下你得不到解析解,得靠数值方法。我建议先掌握线性二次型(LQ)这种有闭式解的特例,再上手数值求解。

3.3 一个简单的交易例子

光讲理论太干,咱们来点实际的。假设你在做最优执行——要在T时间内买入Q股股票,目标是让总成本最小。

状态变量:持仓量 \(q_t\)
控制变量:交易速度 \(v_t\)
价格动态:\(dS_t = \sigma dW_t\)(不考虑永久冲击)
临时冲击成本:\(C(v_t) = \eta v_t^2\)

目标函数:

min E[ ∫₀ᵀ (S_t v_t + η v_t²) dt + S_T q_T ]

约束:dq_t = -v_t dt, q_0 = Q, q_T = 0

对应的HJB方程:

∂V/∂t + min_v { -v ∂V/∂q + η v² } + ½ σ² ∂²V/∂S² = 0

对v求一阶条件:

v* = (1/(2η)) ∂V/∂q

你看,最优交易速度跟值函数对持仓的偏导数成正比。这个结果很直观——持仓越「贵」(边际成本高),你就卖得越快。

避坑指南:我曾经在这个问题上犯过一个低级错误——忘了检查二阶条件。HJB方程里的max/min操作,一定要确认你找到的是全局最优,不是局部极值。特别是当控制空间非凸的时候,更要小心。

3.4 数值求解HJB方程的常用方法

现实中大部分HJB方程没有解析解。我常用的方法有这几种:

方法 适用场景 优点 缺点
有限差分法 低维状态空间(≤3维) 实现简单,精度可控 维数灾难
策略迭代 控制空间离散 收敛快 每步要解PDE
深度神经网络 高维问题 能处理10+维 训练不稳定
蒙特卡洛方法 随机控制 并行化容易 方差大

我个人偏好策略迭代。虽然每步都要解一次PDE,但迭代次数通常很少(5-10步就收敛了)。相比之下,有限差分法在二维以上就慢得让人抓狂。

3.5 HJB方程与MFG的联系

最后说说HJB跟Mean Field Game的关系。在MFG里,每个智能体都在解一个HJB方程——只不过这个方程里多了一项「平均场项」。

具体来说,MFG中的HJB方程长这样:

∂V/∂t + H(x, ∂V/∂x, m_t) = 0

这里的\(m_t\)是智能体状态的分布,也就是「平均场」。每个智能体的最优控制依赖于这个分布,而分布又由所有智能体的行为共同决定。

说白了,MFG就是HJB方程加上一个自洽条件——你猜别人怎么做,然后你的最优策略恰好验证了你的猜测。

记住这个结构:MFG = HJB方程(个体最优)+ Fokker-Planck方程(群体分布)+ 不动点条件(自洽性)。这三者缺一不可。

我在做订单簿模拟时,一开始只解了HJB方程,没考虑分布演化,结果模拟出来的市场深度跟真实数据差了好几个数量级。后来加上FP方程,结果才像样。

好,这一章就到这里。HJB方程是MFG的发动机,搞懂它,后面讲MFG的耦合系统就轻松多了。


专注资料整理