5.2 金融工程应用:期权定价与风险度量的模拟实现


5.2 金融工程应用:期权定价与风险度量的模拟实现

本节摘要:金融是蒙特卡洛最大的商业用户。本节以欧式看涨期权开场——解析公式与模拟当场对账;再进入路径依赖期权的腹地(亚式期权必须靠模拟);最后处理风险价值与预期亏空的估计。全程沿用 5.1 的五步流水线,重点展示方差缩减在真实产品里的选型逻辑。

1970 年前后,金融学完成了一次范式搬家:股价被建模成随机过程(第 4 章的几何布朗运动),衍生品定价变成"计算某个随机收益的期望"。这一搬家的直接后果是:凡是收益依赖路径形状的产品,解析公式要么难看要么不存在,蒙特卡洛成了主食。今天大行内部成千上万的定价作业与隔夜风险计算,跑的就是这几节原理的工业版。

开场对账:欧式看涨的解析与模拟

欧式看涨期权:到期按 max(S(T) − K, 0) 支付。Black–Scholes 公式给出解析价格——几何布朗运动的分布已知(对数正态),期望加贴现即可闭式算出。它的价值不在公式本身,而在给蒙特卡洛当对照组:模拟实现先跟它对账,对上了才允许去碰没有公式的产品。

定价的经济学底座要交代一句:公式里的"利率"是无风险利率 r 而不是预期收益率 μ——定价在"风险中性测度"下进行,收益期望按 r 贴现。直观版解释:对冲消掉了方向性风险后,市场不因你承担可对冲的风险而付钱,所以所有可交易资产的期望涨幅都折算为 r。这层"测度变换"的严格讨论需要鞅工具(4.3 节的等价鞅测度),本节先取用结论。

主战场:路径依赖与必须模拟的理由

亚式期权按"平均价格"支付,比如到期前三个月的日均价格与行权价的差额。平均值把波动抹平,所以亚式比欧式便宜——它是对冲成本更低的工具,企业采购原材料常用它锁均价。它的解析定价只有近似式(平均值的分布不是精确对数正态),于是蒙特卡洛成为日常。

模拟时注意三点。其一,时间网格要够密才能代表"日均价",但也要留意真实合约的采样规则(交易日均值与日历日均值差别不小)。其二,同一条路径算完整条再算下一条,网格数据能完整保留,路径依赖才有依托。其三,方差缩减选型有讲究:亚式收益是路径均值的单调函数,对偶变量立竿见影;若产品还带"触碰障碍才生效"条款,对偶失效(障碍穿越不单调),改用条件蒙特卡洛(障碍外的情形可解析)或重要性抽样。

图:欧式与亚式期权的收益结构对比

图:欧式与亚式期权的收益结构对比

全流程案例:为一份亚式期权定价

背景:某航空公司在为航油采购套保,投行报价一份亚式看涨:未来一年 252 个交易日的均价减行权价 80 元、不足为零,报价单写着"权利金 4.62 元"。公司想知道这个价格是否离谱。

建模:油价按几何布朗运动 dS = r·S dt + σ·S dW,取 r = 3%、σ = 35%、现价 82 元。风险中性测度下,期权公允价值 = e 的 −rT 次方乘 E[mean(S) − K 的正部]。

操作:模拟十万条路径、每条 252 步;对每条路径算均价、算收益、贴现取平均;启用对偶变量后用同样预算把标准误压到千分位。

解读:模拟公允价 4.58 元,与报价 4.62 元的差距在两个标准误(约 0.03 元)之内——报价合理,买方不必还价,卖方也没宰人。真正的谈判空间不在权利金而在 σ 的取值:若公司自己的历史波动率估计是 28% 而非 35%,重跑模拟公允价降到约 3.5 元——报价差 1 元,八成是波动率假设的分歧。这提示谈判的正确战场:先谈波动率假设,再谈价格。

变式:把条款换成"障碍亚式"(均价超 100 元则合约作废,用于压低权利金),对偶变量失效,改用条件蒙特卡洛。跑完对比:障碍砍掉了右尾,权利金降约三成,但保护效果也在暴跌行情里打折——便宜与保护不足是一枚硬币的两面,模拟把这笔账算给了买方看。

import numpy as np rng = np.random.default_rng(555) S0, r, sigma, T, K = 82.0, 0.03, 0.35, 1.0, 80.0 n_steps, n_paths = 252, 100_000 dt = T / n_steps # 对偶变量:同一批正态数取正负两套路径 Z = rng.normal(0.0, 1.0, size=(n_paths, n_steps)) payoffs = [] for sign in (1.0, -1.0): incr = (r - 0.5*sigma**2)*dt + sign*sigma*np.sqrt(dt)*Z log_paths = np.log(S0) + np.cumsum(incr, axis=1) averages = np.exp(log_paths).mean(axis=1) # 算术均价 payoffs.append(np.maximum(averages - K, 0.0)) payoffs = np.concatenate(payoffs) price = np.exp(-r*T) * payoffs.mean() se = np.exp(-r*T) * payoffs.std(ddof=1) / len(payoffs) print(f"亚式公允价 {price:.3f} ± {1.96*se:.3f}(95% 置信)") # 敏感性:波动率假设是谈判主战场 for sv in (0.28, 0.35, 0.42): incr = (r - 0.5*sv**2)*dt + sv*np.sqrt(dt)*Z averages = np.exp(np.log(S0) + np.cumsum(incr, axis=1)).mean(axis=1) p = np.exp(-r*T)*np.maximum(averages - K, 0).mean() print(f"sigma = {sv:.2f}: 公允价 {p:.3f}") # 典型输出:4.58 ± 0.03;sigma 从 0.28 到 0.42,公允价约 3.5 至 5.8 元

风险度量:VaR 与预期亏空

定价问"值多少",风险管理问"最多亏多少"。**风险价值(VaR)**在置信水平 α 下回答"十天之内、九成九的情况下,损失不超过多少";**预期亏空(ES)**再进一步,回答"一旦跌破那条线,平均亏多少"。两者用蒙特卡洛估计都是全分布模拟后取分位数或尾均值。

方法论要点有二。其一,重尾不容正态假设:股价收益的实测分布比正态厚尾得多(3.5 节的教训在金融数据上最刺眼),正态假设下的 VaR 系统性低估尾部——2008 年危机后监管框架集体转向 ES 的部分原因即在此。其二,尾部的模拟精度贵:九成九分位落在样本最贵的百分之一里,标准误大,重要性抽样或多层模拟是压缩成本的常规武器。

⚠️ 模拟风险的经典事故:用历史数据校准 σ 却忽略了波动率聚集(第 2 章"违反独立增量"清单上的第一名)。平静期估出的低 σ 会给 VaR 注入虚假的安全感,而市场转舵恰恰发生在聚集加剧之后。风控模型的稳健做法是让 σ 随状态变化(随机波动率模型),这已经站在第 6 章前沿的门口。

本节要点回顾

  • 定价即算风险中性期望:贴现利率取 r 而非 μ;欧式有公式,是模拟的对照组。
  • 路径依赖必须模拟:亚式、障碍、回望等产品的收益吃完整路径。
  • 方差缩减按条款选型:单调收益用对偶,障碍条款用条件法或重要性抽样。
  • 谈判的真正变量是假设:同一份合约,σ 从 0.28 到 0.42,公允价差六成。
  • VaR 与 ES:分位数与尾均值;厚尾与波动率聚集是两大天敌。

金融现场收工。下一站换个行业:排队系统——闭合公式与仿真双轨并行,容量设计从公式走到决策。


作者与出处
原作者: 灏天文库
来源:灏天文库
整理: 灏天文库整理
由灏天文库平台收录,内容或由平台用户上传,仅供学习交流
发布者: 作者: 灏天文库 转发
评论区 (0)
U