期待値は積分、ダイナミクスは微分方程式
定量ファイナンスの多くは2つの仕事のどちらかです。1つ目は期待値、つまり積分です。オプション価格はペイオフの割引平均 e^(-rT)∫(S_T-K)⁺ φ(z) dz で、期待ショートフォールは分位点を超えた損失の平均です。scipy.integrate.quad(f, a, b) は値と誤差推定を返し、-np.inf と np.inf も積分範囲に使え、被積分関数が滑らかなら多くの桁まで正確です。コールのペイオフが行使価格で折れるように被積分関数に折れ目があるときは、quad に跨がせず、折れ目から積分を始めます。閉じた式があっても積分も計算するのは、式を理解しているかの最良の検査で、式のないペイオフでも積分は使えます。
2つ目の仕事はダイナミクスです。ある量が、その変化率についての規則、常微分方程式 y'=f(t,y) に従って変化します。scipy.integrate.solve_ivp(f, [t0, t1], y0, rtol=..., atol=...) はそれを前に進めて経路を返し、sol.y の最後の列が t₁ での値です。バシチェック短期金利モデルの債券価格 P=e^(A(τ)-B(τ)r₀) では、2つの関数が0から B'=1-κB と A'=-κθB+1/2σ²B² を満たし、許容誤差を厳しくすれば教科書の式を 10⁻¹³ で再現します。自由度2.6のt分布の1%期待ショートフォールは標準単位で 8.54、正規分布では 2.67 で、積分が厚い裾の代償を示します。フェデラルファンド金利 3.88% から、モデルの利回り曲線は1年の 3.96% から30年の 4.36% へ緩やかに上がります。
- 期待値は積分:
quadは無限の範囲を扱える。ペイオフは折れ目から始める。 - ダイナミクスは微分方程式:
solve_ivpは初期値から追う。式に合わせるにはrtolとatolを厳しくする。 - 数値を閉じた式で確かめる:両方あるなら両方計算して差を見る。
ラボ:採点される内容
- 積分としてのコール価格20点
- 積分による期待ショートフォール15点
- 閉じた式10点
- 2つの微分方程式からの債券価格25点
- バシチェックの式10点
- モデルの利回り曲線10点
- 研究10点