仅供教育用途,不构成投资建议。投资可能导致损失。
直接答案
有限差分期权定价用价格与时间节点取代连续估值方程。有效的实现不仅需要细密网格,还必须使日历时间与剩余期限的符号、空间算子、终端和边界条件、事件跳转、时间离散格式、美式障碍求解器、残差及收敛控制彼此一致。
网格细化只能处理数值误差,无法修正错误的支付函数、随机模型、股息处理、结算权利、市场输入或执行假设。求解器完全可能精确收敛到错误答案。
先推导网格,再编写程序
- 锁定合约权利、支付函数
Phi(S)、行权方式、结算、利率、借券成本、股息、波动率模型和坐标。使用日历时间t时,Black-Scholes PDE 为V_t + L V = 0;使用剩余期限tau = T - t时则为V_tau = L V,并从V(S, 0) = Phi(S)开始。 - 选择价格或对数价格网格、截断区间、时间网格,以及现价、行权价、障碍、股息和观察时点的对齐方式。说明
N代表区间数还是节点数,并将S_max与Delta S分别进行测试。 - 在均匀网格
S_i = i Delta S上,推导a_i = 0.5[sigma^2 i^2 - (r - q)i]、b_i = -(sigma^2 i^2 + r)和c_i = 0.5[sigma^2 i^2 + (r - q)i],从而得到(L_h V)_i = a_i V_(i-1) + b_i V_i + c_i V_(i+1)。 - 准确定义时间步:显式格式为
V^(n+1) = (I + Delta tau L_h)V^n;隐式格式为(I - Delta tau L_h)V^(n+1) = V^n;Crank-Nicolson 格式为(I - 0.5 Delta tau L_h)V^(n+1) = (I + 0.5 Delta tau L_h)V^n。把边界项放入正确的右端项和时间层。 - 检查全局系数符号、类似 CFL 的限制、正性、单调性、矩阵性质和振荡。显式与后向 Euler 通常都是时间一阶;隐式格式耗散更强,但并非普遍更不准确。Crank-Nicolson 的线性稳定性不保证单调,也不保证折点附近没有振荡。应记录每个不连续点附近是否以及如何使用 Rannacher 阻尼。
- 对美式行权,应采用有明确名称的离散线性互补方法,例如 PSOR、惩罚法或有文档说明的算子分裂。要求
V - Phi >= 0、A V - b >= 0和(V - Phi) elementwise_times (A V - b) = 0,并报告松弛参数、迭代上限和互补残差。 - 在现价处插值价格和希腊字母,再细化计算区间、空间、时间、事件对齐和求解器容差。欧式案例以公式为基准,美式案例以深层二叉树或独立求解器为基准,并记录价格、Delta、Gamma、自由边界、无套利检查及残差。
边界条件属于合约本身。在标准假设下,欧式认沽期权可采用 V(0, tau) = K exp(-r tau),并在 S 增大时趋于零;美式认沽期权通常采用 V(0, tau) = K。含股息欧式认购期权的高价渐近式则不同。离散现金股息需要跳转和插值,例如 V(S, t-) = V(max(S - D, 0), t+),然后按正确次序判断是否行权。
即使时间步很小,中心差分也可能产生负的对流系数,因此可能需要迎风、拟合或对数价格离散。扩散 PDE 也不会自动获得价格跳跃。模型、参数、校准、数值和可成交价格误差必须分别处理。
四个计算示例
- 时钟改变时,时间符号也会改变。 由
V_t + L V = 0和tau = T - t,链式法则给出V_tau = L V。因此,从tau = 0的到期支付向更大的tau推进时应使用正的L算子;照搬日历时间倒推时的负号会求解另一个问题。 - 单个节点看起来可能局部安全。 设
sigma = 25%、r = 4%、q = 0、i = 95、Delta tau = 0.0005,则a_i = 280.13125、b_i = -564.1025、c_i = 283.93125;显式权重分别为0.140065625、0.71794875、0.141965625,合计0.99998。相邻节点值为6, 5, 4时,更新值是4.998。对障碍值为5的美式认沽期权,显式投影保留5;隐式或 Crank-Nicolson 系统仍需检查其耦合 LCP 残差。 - 限制条件必须在全局满足。 使用相同输入但令
i = 200,显式权重为0.623、-0.25002、0.627;尽管现价附近的节点看似可接受,负的中心权重仍破坏单调性。将步长减至Delta tau = 0.0002后,权重变为0.2492、0.499992、0.2508,均为非负,合计0.999992。 - 价格和希腊字母需要独立控制。 对欧式认沽期权,设
S = $95、K = $100、T = 0.5、sigma = 25%、r = 4%、q = 0,Black-Scholes 给出d_1 = -0.088633257689、d_2 = -0.265409952985、价格$8.413258404601、Delta-0.535313311861和 Gamma0.023662224614。只有网格分别收敛到这三项输出后,才可以信赖它算出的美式溢价或自由边界。
七步控制中的失效风险
- 日历时间
t与剩余期限tau可能使用不一致的推进符号。 - 日、年、利率、波动率和股息的单位可能混用。
- 支付函数、行权方式、结算权利或终端层可能编码错误。
- 连续股息率与离散现金股息可能被重复计入或次序错误。
S_max可能离现价太近,即使Delta S看起来很小。- 低价和高价边界公式可能属于不同的合约或持有成本假设。
- 股息、障碍、定盘或观察时点可能落在时间节点之间,并被错误插值。
- 节点数与区间数或非均匀网格导数公式可能出现一位偏差。
- 漂移项可能使中心空间系数为负,从而破坏单调性。
- 显式权重可能在远离现价的位置违反全局稳定性或正性。
- Crank-Nicolson 可能在支付折点、障碍或事件跳转附近振荡。
- Rannacher 或其他阻尼可能被遗漏、用在错误事件上或未作记录。
- 即使价值曲面看起来平滑,线性系统残差也可能过大。
- PSOR 的松弛参数、停止容差、初始值或迭代上限可能不稳定。
- 一次无约束求解后逐节点取最大值,可能被误当成精确的隐式或 Crank-Nicolson LCP 求解。
- 现价处插值可能使价值、Delta、Gamma 或自由边界产生偏差。
- 价格看似收敛后,Gamma 和行权边界仍可能有噪声。
- 可能在尚未进入光滑渐近区间时使用观察到的收敛阶或 Richardson 外推。
- 扩散、局部波动率插值、跳跃、参数或校准可能存在结构性错误。
- 理论价值可能被描述成可成交的买价、卖价、对冲或套利机会。
常见误区
- “更细的网格就证明价格正确。”它既不能证明合约正确,也不能证明模型正确。
- “隐式格式天然比显式格式不准确。”两种 Euler 格式通常都是时间一阶,只是稳定性和误差特征不同。
- “Crank-Nicolson 无条件稳定,所以一定单调且没有振荡。”这些是彼此不同的性质。
- “美式价值等于一次无约束求解后逐点取最大值。”耦合隐式系统需要 LCP 方法或量化说明的近似。
- “匹配一个报价就验证了求解器和希腊字母。”校准与市场噪声可能掩盖数值或结构错误。
相关主题
主要来源
- The Pricing of Options and Corporate Liabilities
- Theory of Rational Option Pricing
- A Practical Method for Numerical Evaluation of Solutions of Partial Differential Equations of the Heat-Conduction Type
- The Valuation of American Put Options
- Finite Element Solution of Diffusion Problems with Irregular Data
- Convergence of Approximation Schemes for Fully Nonlinear Second Order Equations
- Operator Splitting Methods for American Option Pricing
- Characteristics and Risks of Standardized Options