期望是积分,动态是常微分方程
量化金融的很大一部分是两件事之一。第一件是期望,也就是积分:期权价格是其收益的贴现平均,e^(-rT)∫(S_T-K)⁺ φ(z) dz,预期损失(expected shortfall)是超过某个分位数的平均损失。scipy.integrate.quad(f, a, b) 返回数值和误差估计,可以用 -np.inf 和 np.inf 作为积分限,被积函数光滑时精确到很多位。被积函数有拐点(比如看涨期权收益在行权价处)时,要从拐点开始积分,而不是让 quad 跨过它。即使存在闭式解,同时计算积分也是检验你是否理解公式的最好办法,而且积分对没有公式的收益也同样有效。
第二件事是动态:某个量按照其变化率的规则演化,即常微分方程 y'=f(t,y)。scipy.integrate.solve_ivp(f, [t0, t1], y0, rtol=..., atol=...) 向前追踪它并返回路径;sol.y 的最后一列就是 t₁ 处的值。Vasicek 短期利率模型给出债券价格 P=e^(A(τ)-B(τ)r₀),其中两个函数从零出发满足 B'=1-κB 和 A'=-κθB+1/2σ²B²,收紧容差后求解器能把教科书公式复现到 10⁻¹³。自由度为 2.6 的 t 分布在 1% 水平的预期损失是 8.54 个标准单位,正态分布是 2.67:积分显示了厚尾的代价。从联邦基金利率 3.88% 出发,模型收益率曲线从一年的 3.96% 缓慢上升到三十年的 4.36%。
- 期望就是积分:
quad支持无限积分限;从收益的拐点开始积分。 - 动态就是常微分方程:
solve_ivp从初值开始追踪;收紧rtol和atol以匹配公式。 - 用闭式检验数值解:两者都有时就都算,看二者的差距。
实验:评分内容
- 写成积分的看涨期权价格20 分
- 用积分求预期损失15 分
- 闭式10 分
- 由两个常微分方程得到债券价格25 分
- Vasicek 公式10 分
- 模型收益率曲线10 分
- 研究10 分