σμimplied vol · KKmax(S−K,0)udβρᵢⱼfat tailsPnL · drawdownyield · TdSₜ = μSₜ dt + σSₜ dWₜC = S·N(d₁) − K·e⁻ʳᵀ·N(d₂)σₚ² = wᵀΣwd₁ = [ln(S/K) + (r + σ²⁄2)T] ⁄ σ√T∂V/∂t + ½σ²S²·∂²V/∂S² + rS·∂V/∂S − rV = 0Sharpe = (Rₚ − R_f) ⁄ σₚVaR₉₉ = μ − 2.33σρ = Cov(X,Y) ⁄ σₓσᵧE[Rₚ] = Σ wᵢ·E[Rᵢ]φ(x) = e^(−x²/2) ⁄ √2πE[Rᵢ] = R_f + βᵢ(E[Rₘ] − R_f)dXₜ = θ(μ − Xₜ)dt + σ dWₜσ²ₜ = ω + α·ε²ₜ₋₁ + β·σ²ₜ₋₁C − P = S − K·e⁻ʳᵀΔ = ∂V/∂S Γ = ∂²V/∂S²p = (e^(rΔt) − d) ⁄ (u − d)rₜ = ln(Pₜ ⁄ Pₜ₋₁)E[Xₜ₊₁ | ℱₜ] = Xₜf* = (bp − q) ⁄ bz = (x − μ) ⁄ σP(N=k) = λᵏe^(−λ) ⁄ k!Θ = −∂V/∂Tν = S·φ(d₁)·√Tmin wᵀΣw s.t. wᵀμ = μ*∫Σ∂∞λ
uantCraft Academyロードマップスキル
Ctrl K
AO
+1.2k 人の学習者
ログイン参加する ↗
ロードマップスキル
AO
+1.2k 人の学習者
ログイン
  • English
  • Français
  • Español
  • العربية
  • Português
  • Deutsch
  • 日本語
  • 中文
σμimplied vol · KKmax(S−K,0)udβρᵢⱼfat tailsPnL · drawdownyield · TdSₜ = μSₜ dt + σSₜ dWₜC = S·N(d₁) − K·e⁻ʳᵀ·N(d₂)σₚ² = wᵀΣwd₁ = [ln(S/K) + (r + σ²⁄2)T] ⁄ σ√T∂V/∂t + ½σ²S²·∂²V/∂S² + rS·∂V/∂S − rV = 0Sharpe = (Rₚ − R_f) ⁄ σₚVaR₉₉ = μ − 2.33σρ = Cov(X,Y) ⁄ σₓσᵧE[Rₚ] = Σ wᵢ·E[Rᵢ]φ(x) = e^(−x²/2) ⁄ √2πE[Rᵢ] = R_f + βᵢ(E[Rₘ] − R_f)dXₜ = θ(μ − Xₜ)dt + σ dWₜσ²ₜ = ω + α·ε²ₜ₋₁ + β·σ²ₜ₋₁C − P = S − K·e⁻ʳᵀΔ = ∂V/∂S Γ = ∂²V/∂S²p = (e^(rΔt) − d) ⁄ (u − d)rₜ = ln(Pₜ ⁄ Pₜ₋₁)E[Xₜ₊₁ | ℱₜ] = Xₜf* = (bp − q) ⁄ bz = (x − μ) ⁄ σP(N=k) = λᵏe^(−λ) ⁄ k!Θ = −∂V/∂Tν = S·φ(d₁)·√Tmin wᵀΣw s.t. wᵀμ = μ*∫Σ∂∞λ
uantCraft Academyロードマップスキル
Ctrl K
AO
+1.2k 人の学習者
ログイン参加する ↗
ロードマップスキル
AO
+1.2k 人の学習者
ログイン
  • English
  • Français
  • Español
  • العربية
  • Português
  • Deutsch
  • 日本語
  • 中文
SciPy スキル›モジュール 3 · 行列・信号・構造›トピック 3.5·~1 時間 30 分上級

総仕上げ:ネルソン・シーゲル利回り曲線とボラティリティ・スマイルのキャリブレーション

スキル上の位置モジュール 3/3 · トピック 5/5
3.5 総仕上げ:ネルソン・シーゲル利回り曲線とボラティリティ・スマイルのキャリブレーション
—ラボスコア— / 100合計XP—連続日数—

曲線全体を4つの数で

市場は米国債の利回りを3か月から30年までの10の満期で気配しますが、銀行はあらゆる日付の金利を必要とします。この総仕上げでは、ネルソン・シーゲル・モデルの4つの数、つまり長期の水準 β₀、傾き β₁、こぶ β₂、年単位の減衰の長さ λ で曲線全体を表します。scipy.optimize.least_squares で気配にキャリブレーションし、曲線は λ について線形でないため複数の λ から出発して、コストが最小の当てはめを採用します。当てはめた曲線からフォワードレートを読み取り、瞬間フォワード曲線を integrate.quad で積分して割引係数 D(T)=e^(-A/100) を求めます。A はフォワード曲線の下の面積(%)です。

同じ曲線で債券を価格付けします。各キャッシュフローはそれぞれの満期の利回りで割り引き、P=Σcᵢ e^(-y(tᵢ)tᵢ/100) です。最終利回りは価格を再現する唯一の利率で、optimize.brentq で求めます。オプションも同じ要領で、インプライド・ボラティリティは bs_call(σ)-価格 の根で、これも brentq で求めます。実際のオプション気配は共有データに含まれないので、スマイルは提供された bs_call で自分で作った価格でテストし、スマイル σ(m)=a+b m+c m²(m=ln(K/S) は対数マネーネス)を最小二乗法で当てはめます。各関数は独立した基準解に対してランダムな入力で採点され、最後のテストは実際の米国債ファイルで研究全体を実行します。

y(τ)=β₀+β₁g+β₂ (g-e^(-x)), x=τ/λ, g=(1-e^(-x))/x, D(T)=e^(-A/100)
実際の曲線が語ること2026年10月9日、10本の気配利回りは、β₀=5.75%、β₁=-1.52、β₂≈0、λ=2.7 年の曲線で、平均 7.3 bp の誤差で再現されます。5年から10年のフォワードレートは 5.64%、10年の割引係数は 0.586、年率5%・10年の債券の価格は 96.70(利回り 5.29%)です。市場がパニックだった2020年3月31日は、水準が 1.87%、当てはめ誤差はわずか 1.7 bp、5〜10年フォワードは 1.02%、10年の割引係数は 0.931、同じ債券の利回りは 0.67% でした。
  • 複数の出発点からキャリブレーションする:減衰の長さのせいで当てはめは非線形になり、1つの出発点では悪い曲線で止まることがある。
  • 別の経路で確かめる:積分したフォワード曲線から得た割引係数は、利回りから得たものと一致するはず。
  • 根が市場を価格付ける:最終利回りとインプライド・ボラティリティは、どちらも価格誤差に brentq を適用して求める根。

ラボ:採点される内容

  • ある日の気配曲線5点
  • ネルソン・シーゲル利回り10点
  • 曲線のキャリブレーション15点
  • フォワードレート10点
  • フォワードから割引係数10点
  • 曲線からの債券価格10点
  • 最終利回り10点
  • インプライド・ボラティリティ10点
  • 2次のスマイル10点
  • キャリブレーション全体10点
エクスプローラー · lab-sp-11
▾ lab-sp-11
▾ data
…
bash · ブラウザ内
learner@quantcraft:~/lab-sp-11$
Pythonは未読み込みPythonLn 1, Col 1Spaces: 4UTF-8

このトピックをリセットしますか?

lab-sp-11 の内容はすべてスターターファイルに戻り、ターミナルも消去されます。現在の解答は失われ、元に戻せません。

リセットされるもの
  • main.py → スターターコード
  • ターミナル履歴とテスト出力
  • 未提出の変更
保持されるもの
  • ラボの最高スコア
  • XPと連続日数
  • 講義の進捗とメモ

コードを実行するにはログインしてください。

レクチャーはすべて無料で読めます。コードの実行、テスト、ラボの提出にはアカウントの作成かログインが必要です。

  • ブラウザ内IDEとbashターミナル。インストール不要
  • 即時採点、XP、スキルでの現在地
アカウントを作成ログイン
または
GitHubで続ける