← 全部报告

低买高卖的随机优化:模型无关的随机逼近交易策略

"低买高卖"人人会说,但"多低算低、多高算高"是个硬问题。这篇2009年发表于 Stochastic Analysis and Applications 的论文(Song, Yin & Zhang)给出了一个模型无关的数值解法:只假设资产价格均值回归,不假设任何具体价格模型,用随机逼近(stochastic approximation)算法直接从观测价格中学习最优买卖阈值,并证明了收敛性,最后用 WMT、IBM 的真实数据做了验证。

原文:Song, Q. S., Yin, G. and Zhang, Q. (2009), "Stochastic Optimization Methods for Buying-Low-and-Selling-High Strategies", Stochastic Analysis and Applications, 27:3, 523–542. DOI 官方链接(按出版方要求从官方渠道获取,本文不附PDF)

一、论文讲了什么

背景是 Zhang & Zhang (2008, Automatica) 的工作:他们用动态规划/HJB方程解析地解决了均值回归资产的最优低买高卖问题——最优策略由买入阈值和卖出阈值刻画(本栏目另一篇解读讲的正是那篇)。但解析解依赖明确的模型假设:价格服从OU过程,且均值回归速度 $a$、均衡水平 $b$、波动率 $\sigma$ 都已知。

这篇论文换了一条路:不要模型,只要均值回归。价格可以是OU过程、带跳的均值回归扩散、带机制切换的均值回归——算法只看观测到的价格序列,用 Kiefer-Wolfowitz 型随机逼近迭代出最优阈值。这是"模型无关"(model-free)思想的早期实践,比后来流行的 model-free 强化学习早了近十年。

两个关键设定:

为什么是随机逼近:SA 是 Robbins & Monro (1951) 为"带噪声求根"发明的,Kiefer & Wolfowitz 把它推广到"带噪声优化"(即本文用的 KW 算法)。核心思想很朴素:目标函数算不准,就用带噪声的观测值迭代。Kushner & Yin (2003) 的 ODE 方法是分析这类算法的标准工具:把离散迭代插值成连续过程,证明它弱收敛到某个 ODE 的解,而 ODE 的平衡点正是原问题的最优点。这套工具特别适合交易——价格本身就是噪声,阈值优化的目标函数(期望收益)没有解析式,只能靠历史/模拟"试"出来;SA 把"试"这件事系统化了,不是网格搜索,而是沿着估计梯度走。

论文特别强调:该方法只在均值回归成立时有效,趋势市中会失效——用之前先看历史价格图确认。

二、关键公式:随机逼近求最优阈值

1. 价格与阈值策略

对数价格 $X_t$ 均值回归(算法本身不需要知道下式的具体形式),资产价格 $S_t = \exp(X_t)$:

$$ dX_t = a(b - X_t)dt + \sigma dW_t, \quad S_t = \exp(X_t) $$

阈值策略记为 $\theta = (x_b, x_s)$:价格跌破 $x_b$ 买入,涨超 $x_s$ 卖出。对应的停时为:

$$ \tau^b = \inf\lbrace t > 0 : S_t \le x_b \rbrace, \quad \tau^s = \inf\lbrace t > \tau^b : S_t \ge x_s \rbrace $$

2. 目标函数

$$ J(\theta) = E\left[e^{-\rho\tau^s}S_{\tau^s}(1-K) - e^{-\rho\tau^b}S_{\tau^b}(1+K)\right] $$

即:贴现后的卖出收入(含滑点)减去贴现后的买入成本。注意期望 $E$ 解析不可得——这正是要用随机逼近的原因:算不出梯度,就用带噪声的观测去估计梯度。

3. 随机逼近迭代(Kiefer-Wolfowitz 型)

$$ \theta_{n+1} = \theta_n + \frac{1}{n}\,\tilde{g}_n(\theta_n) $$

其中 $\tilde{g}_n$ 是用有限差分估计的梯度——在当前阈值附近沿每个坐标轴做正负小扰动(共4次观测),看哪个方向收益更高:

$$ \tilde{g}_{n,i} = \frac{1}{2c_n}\left[\tilde{J}(\theta_n + c_n e_i) - \tilde{J}(\theta_n - c_n e_i)\right], \quad i = 1, 2 $$

$\tilde{J}$ 为带噪声的收益观测,$c_n \downarrow 0$ 为差分步长。直观理解:小扰动试几次,往收益更高的方向走一小步——步长 $1/n$ 保证越到后期越谨慎。

4. 收敛定理

Theorem 2:在 (A1)–(A4)(连续性、一致可积、噪声混合条件、二阶导连续)下,插值过程 $\theta^n(\cdot)$ 弱收敛到常微分方程的解:

$$ \dot{\theta} = \bar{g}(\theta) $$

$\bar{g}$ 为平均梯度。Corollary 4:若该 ODE 有唯一渐近稳定的平衡点 $\theta^$,则 $\theta_n \Rightarrow \theta^$。

收敛条件的人话版:(A1) 目标函数连续——阈值变一点点,期望收益也只变一点点;(A2) 噪声一致可积——极端离群不会太频繁;(A3) 噪声是混合型的——时间拉开后噪声近似独立,这是"平均掉噪声"的数学基础;(A4) 目标函数二阶导连续——做 Taylor 展开时余项可控。值得注意的是,证明全程没有用到均值回归的具体形式——OU、跳扩散、机制切换,只要满足这四个正则条件,算法都收敛。均值回归只保证"这个问题值得解"(趋势市里低买高卖本身不成立)。

三、主要结论:数值例子

例5(仿真):OU 参数 $a=0.8$、$b=2$、$\sigma=0.5$,$X_0 = 2$(价格围绕 $e^2 \approx 7.39$ 波动);$\rho = 0.01$,$K = 0.01$。初值 $(5, 18)$,300次迭代后 $(x_b, x_s) = (4.50, 17.94)$,$J = 10.85$。100次重复实验:买入阈值均值 3.99(标准差 0.16),卖出阈值均值 17.87(标准差 0.76)——卖出阈值的估计方差明显更大,直观上因为"等价格涨上去"这件事本身噪声更大。

这个例子是故意选的:它正是 Zhang & Zhang (2008) 解析论文里的参数设定,目的是用数值结果对答案。SA 跑出的 $(4.50, 17.94)$ 与解析解的阈值($S_1 = 3.78$、$S_2 = 5.12$)量级一致——注意两处 $\rho$ 取值不同(0.01 vs 0.5),故不完全可比,但方向正确,验证了算法有效。这也是"理论→计算"闭环的直接证据。

例6(WMT 真实数据):用50个交易日的历史估计阈值,在随后500个交易日做样本外模拟:

历史窗口 估计阈值 $(x_b, x_s)$ 未来500天总收益 交易笔数
2000/01–03 (44.83, 54.27) 24.95 3笔(每笔约8.3)
2000/03–05 (46.21, 58.72) 21.55 2笔(每笔约10.8)

例7(IBM 真实数据):

历史窗口 估计阈值 $(x_b, x_s)$ 未来500天总收益 交易笔数
2000/01–03 (110.39, 118.75) 28.90 5笔(每笔约5.6–6.0)
2003/04–05 (84.47, 98.72) 11.82 1笔

注意例6中两个历史窗口算出的阈值差别不小(44.83 vs 46.21)——阈值对样本期敏感,这是实盘必须滚动重估的直接证据。

横向对比也很有意思:IBM 例(1) 的5笔交易每笔赚约5.6–6.0,WMT 例(1) 的3笔每笔约8.3——阈值越宽,单笔利润越大、交易次数越少,这正是阈值策略的内在 trade-off(Bertram (2010) 用 renewal theory 把它形式化了:单位时间收益 = 单笔收益 / 期望周期)。

注意论文的收益是按单股计的(每次买卖一股):WMT 例(1) 500天累计 24.95 美元/股。评价这类策略不能只看总额,更要看交易频率:500天只做 2–5 笔,天然低频,对滑点不敏感——这正是阈值策略 vs 高频策略的结构性优势:在 $K$ 较大的市场(如A股)反而更稳,因为成本项 $e^{-\rho t}S_t K$ 在低频下占比小。

四、结合市场的应用前景与展望

1. 最大的价值:模型无关

传统做法(包括 Zhang & Zhang 2008 的解析解)要求先估计OU参数 $a, b, \sigma$ 再算阈值——参数估计误差会传导到阈值上。这篇的随机逼近跳过参数估计,直接优化阈值,对模型误设天然鲁棒。今天看,这就是 model-free 强化学习的雏形(用随机逼近代替 policy gradient)。

2. A股落地的现实约束

3. 算法层面的改进空间

4. 实盘实现清单

把论文算法落成代码,核心循环其实很短:

  1. 取历史窗口(如100天)日收盘 $S_t$;
  2. 初始化 $\theta_0 = (x_b^0, x_s^0)$(如历史 10%/90% 分位数);
  3. for n = 1..N:在 $\theta_n \pm c_n e_i$ 四个扰动点上,用同一段历史模拟阈值策略的收益 $\tilde{J}$,有限差分估计梯度,按 $\theta_{n+1} = \theta_n + \frac{1}{n}\tilde{g}_n$ 更新;
  4. 收敛后,用样本外数据验证,再上线。

第3步有个关键细节:4次扰动评估必须用同一段价格路径,否则梯度估计会被路径噪声淹没。论文的仿真和实证都是这么做的("for each iteration, we used the same trajectory")——这是方差缩减里 common random numbers 思想在实操中的体现,新手最容易踩的坑。

4. 与本栏目其他论文的关联

5. 风险提示

附:原文链接

DOI: 10.1080/07362990902844181(按出版方要求从官方渠道获取,本文不附PDF)

发布日期:2026-10-12 · 类型:金融建模