満期ごとに1つのスマイル、そして整合が必要
対数マネーネス k=ln(K/F) に対して全分散 w=σ²T を扱います。SVIスマイルは w(k)=a+b(ρ(k-m)+√((k-m)²+s²)) で、パラメータは5つです。a は水準を上げ、b は裾の角度を決め、-1<ρ<1 はスマイルを傾け(株式では負)、m は最小点を動かし、s は底を丸めます。気配値への当てはめは最小二乗問題ですが繊細で、パラメータが部分的に補い合い、悪い初期値では行き詰まります。least_squares(residuals, x0, bounds=(lower, upper)) は b>0、|ρ|<1、s>0 を保つ境界を扱い、複数の初期値から cost が最小のものを残すと頑健な答えになります。
サーフェスは満期ごとに1つのスマイルで、スマイルは時間をまたいで整合しなければなりません。あるストライクで満期が延びるのに全分散が下がるなら、カレンダースプレッドの価格が負になり、裁定です。確認は簡単で、連続する満期について、当てはめた2つのスマイルを k の格子で評価し、w_T₂<w_T₁ となる点を数えます(ごく小さな許容付き)。辞書は順序を保証しないので、先に満期をソートします。当てはめの実現ボラティリティは σ(k)=√(w(k)/T) です。ラボでは4つの満期を0.2%のノイズ入りの気配値に当てはめます。rmse はそのノイズ程度、ATMボラティリティは1%以内で復元され、違反はありません。2つの満期のパラメータを入れ替えると、格子の全点で計121件の違反になります。
- 境界と複数の初期値:SVIのパラメータは補い合うので、3つの初期値から当てはめて最小コストを残す。
- ボラティリティではなく全分散:満期の比較には w=σ²T を使い、T が増えて下がってはいけない。
- 満期をソートしてから隣同士を比較する。辞書に順序の保証はない。
ラボ:採点される内容
- SVIスマイル10点
- スマイルを1つ当てはめる25点
- サーフェスのキャリブレーション20点
- 実現ボラティリティ10点
- カレンダー裁定20点
- サーフェスの研究15点