这是"低买高卖"问题第一次得到严格的数学 treatment:此前文献只有最优卖出(sell-side)的结果,买入端一直没有 rigorous 的分析。Zhang & Zhang (2008, Automatica) 用动态规划 + HJB拟变分不等式证明:最优买卖策略就是两个阈值——价格跌破 $x_1$ 买入、涨超 $x_2$ 卖出;而求这两个阈值,只需求解两个拟代数方程。本文解读其核心公式与验证定理。
原文:Zhang, H. and Zhang, Q. (2008), "Trading a mean-reverting asset: Buy low and sell high", Automatica, 44, 1511–1518. DOI 官方链接(按出版方要求从官方渠道获取,本文不附PDF)
2008年之前,关于股票交易时机选择的文献几乎全是卖出端的:Zhang (2001) 用 regime-switching GBM 求最优卖出(目标价+止损价),Guo & Zhang (2005) 用光滑粘贴把最优卖出化为代数方程组。但买入端——什么时候该进场——没有严格的数学结果。
这篇论文补上了这一块:买卖一起做。在均值回归价格模型下,目标是选择一列停时(买、卖、买、卖……)最大化贴现期望收益,每次交易收固定比例的滑点成本 $K$。仓位只能是 flat(空仓)或 long(一股)。
此前的最优卖出文献走的是另一条技术路线:Zhang (2001) 在 regime-switching GBM 下得到"目标价+止损价"双阈值,Guo & Zhang (2005) 用光滑粘贴把最优卖出化为代数方程组。但这些全是卖出端——手里有货,什么时候卖。买入端难在:买入决策的价值取决于"买入后未来卖出的期权价值",是个嵌套的最优停时问题。本文第一次把买卖两端统一在拟变分不等式框架下严格解决。
核心结论很干净:
这也是本栏目另一篇解读(Song, Yin & Zhang 2009)的理论源头——那篇正是把这里的解析问题改用随机逼近做数值求解。
1. 价格模型
对数价格 $X_t$ 服从 OU 过程,资产价格 $S_t = \exp(X_t)$:
$$ dX_t = a(b - X_t)dt + \sigma dW_t, \quad S_t = \exp(X_t) $$
$a > 0$ 为均值回归速度,$b$ 为均衡水平,$\sigma > 0$ 为波动率。论文注记:GBM 刻画趋势市(牛/熊),均值回归刻画围绕均衡波动的市况(如60–80年代的道指箱体、能源市场)。
2. 价值函数
记 $V_0(x)$ 为空仓出发的最大期望收益,$V_1(x)$ 为持仓出发的最大期望收益:
$$ V_i(x) = \sup_{\Lambda_i} J_i(x, \Lambda_i), \quad i = 0, 1 $$
$J_i$ 为贴现收益:每次卖出得 $e^{-\rho t}S_t(1-K)$,每次买入付 $e^{-\rho t}S_t(1+K)$。
价值函数的相互关系:从 $\tau_1 = 0$(立即买入)这个可行策略可得:
$$ V_0(x) \ge V_1(x) - e^x(1+K), \quad V_1(x) \ge V_0(x) + e^x(1-K) $$
即:空仓的价值至少等于"现在买入转持仓";持仓的价值至少等于"现在卖出转空仓"。这两个不等式正是 HJB 中"行动项"的来源。Lemma 4 还给出增长性:$V_0$ 有界(空仓不持有资产,收益有限),$V_1(x) \le K_1 e^x + K_2$(持仓价值随价格指数增长)——这决定了积分表示中该舍去哪个发散项,是求解的关键。
3. HJB 拟变分不等式
记 $\mathcal{M}$ 为 $X_t$ 的无穷小生成元:
$$ \mathcal{M} = a(b-x)\frac{\partial}{\partial x} + \frac{\sigma^2}{2}\frac{\partial^2}{\partial x^2} $$
则价值函数满足:
$$ \min\lbrace \rho v_0(x) - \mathcal{M}v_0(x),\ v_0(x) - v_1(x) + e^x(1+K) \rbrace = 0 $$
$$ \min\lbrace \rho v_1(x) - \mathcal{M}v_1(x),\ v_1(x) - v_0(x) - e^x(1-K) \rbrace = 0 $$
直观含义:每时每刻要么等待(第一项取等,价值按 $\rho v = \mathcal{M}v$ 演化),要么行动(第二项取等,立即买卖)。$v_0$ 的等待区域是 $(x_1, \infty)$(价格不够低就继续等),$v_1$ 的等待区域是 $(-\infty, x_2)$(价格不够高就继续拿)。
4. 光滑粘贴 → 拟代数方程组
在等待区域内 $\rho v_i - \mathcal{M}v_i = 0$ 的通解可表为积分形式(含待定常数 $C_1, C_2$)。在阈值 $x_1, x_2$ 处施加光滑粘贴条件(价值函数及其一阶导数连续),得到4个方程;消去 $C_1, C_2$ 后,剩下关于 $(x_1, x_2)$ 的两个拟代数方程(论文式(12))。这就是"把最优停时问题化为解方程组"的关键一步。
几何上,光滑粘贴要求价值函数在阈值处没有 kink(一阶导数连续)。这来自最优停时的一般原理:如果有个 kink,就可以通过微调阈值严格改进收益,矛盾。所以 4 个方程($x_1$ 处函数值+导数连续、$x_2$ 处函数值+导数连续)解 4 个未知数($C_1, C_2, x_1, x_2$),消去 $C_1, C_2$ 即得式(12)——"拟代数"是因为方程里还带着积分,但未知数只有 $x_1, x_2$ 两个,数值求解很容易。
5. 验证定理(Theorem 5)的条件
$(x_1, x_2)$ 若满足:
$$ x_1 \le \frac{1}{a}\left(\frac{\sigma^2}{2} + ab - \rho\right) \le x_2, \quad x_2 - x_1 > \log\frac{1+K}{1-K} $$
则阈值停时 $\tau_1^ = \inf\lbrace t \ge 0 : X_t \le x_1 \rbrace$、$\sigma_1^ = \inf\lbrace t \ge \tau_1^ : X_t \ge x_2 \rbrace$(及后续)是最优的,且 $v_i = V_i$。第二个不等式的经济含义很直白:买卖价差必须覆盖往返滑点成本*,否则交易稳亏。
数值例:取 $a = 0.8$、$b = 2$、$\sigma = 0.5$、$\rho = 0.5$、$K = 0.01$,解拟代数方程组得:
$$ (x_1, x_2) = (1.331,\ 1.631) $$
对应价格阈值 $S_1 = e^{1.331} = 3.78$(买入)、$S_2 = e^{1.631} = 5.12$(卖出)。注意两个阈值都在均衡 $b = 2$ 之下——均衡像一块磁铁,把价格往上拉,这是"低买"能成立的力学基础。
论文的 Fig.3 画了 $V_0(x)$ 和 $V_1(x)$:$V_0$ 整体有界(空仓),$V_1$ 随 $x$ 指数增长(持仓);在 $x_1$ 左侧 $V_0(x) = V_1(x) - e^x(1+K)$(立即买入无差异),在 $x_2$ 右侧 $V_1(x) = V_0(x) + e^x(1-K)$(立即卖出无差异)——图像与 HJB 的"等待/行动"分区完全对应,这是验证定理几何直观的最好注脚。
参数敏感性(论文 Tables 1–5,逐个参数扫描):
| 参数变化 | $x_1$ | $x_2$ | 直观解释 |
|---|---|---|---|
| 均衡 $b$ ↑ (1→3) | 0.331→2.331 ↑ | 0.631→2.631 ↑ | 均衡抬高,买卖线整体上移 |
| 回归速度 $a$ ↑ (0.6→1.0) | 1.175→1.425 ↑ | 1.375→1.725 ↑ | 回归越快,越值得积极交易 |
| 波动率 $\sigma$ ↑ (0.3→0.7) | 1.231→1.481 ↑ | 1.531→1.781 ↑ | 波幅越大,潜在利润越大 |
| 贴现率 $\rho$ ↑ (0.3→0.7) | 1.681→1.081 ↓ | 1.781→1.281 ↓ | 越没耐心,阈值越收敛 |
| 滑点 $K$ ↑ (0.001→0.02) | 1.431→1.231 微降 | 基本不变 | 成本越高,买入越挑剔 |
规律非常干净:$b, a, \sigma$ 推高阈值(多赚钱的机会),$\rho, K$ 压低阈值(等不起、玩不起)。$V_0(1)$、$V_1(1)$ 随 $b, a, \sigma$ 单调增、随 $\rho$ 单调减,与直觉完全一致。
一个反直觉的细节:$(x_1, x_2) = (1.331, 1.631)$ 都在均衡 $b = 2$ 之下。为什么卖出阈值也低于均衡?因为贴现 $\rho = 0.5$ 很重——等价格涨回均衡再卖,时间成本太高,不如在 1.631 就落袋。这说明阈值位置是"均值回归拉力"与"贴现惩罚"的均衡点,不是对称地放在均衡两侧。Table 4 印证了这一点:$\rho = 0.3$ 时 $x_2 = 1.781$ 更接近 2(有耐心,可以多等一会儿)。
它把"低买高卖"从一句口号变成了可计算的工程问题:给定 $(a, b, \sigma, \rho, K)$ 五个参数,解两个方程就得到买卖线。更重要的是验证定理——它告诉你算出来的阈值在什么条件下确实最优,而不是一个启发式规则。这在2008年是开创性的:买入端的严格分析此前是空白。
论文结论部分自己就指出来了:参数可以用最小二乘估计,也可以直接用随机逼近从价格里学阈值——这正是 Song, Yin & Zhang (2009) 做的事。实战推荐组合拳:
式(12)看着吓人,实际求解并不难:
论文的数值例就是这么算出 $(1.331, 1.631)$ 的。整个流程(估计 OU 参数 → 解方程组 → sanity check)写成脚本,一只股票几秒钟出阈值,完全可以批量跑全市场做筛选。
DOI: 10.1016/j.automatica.2007.11.003(按出版方要求从官方渠道获取,本文不附PDF)