ヨーロピアンオプションのインプライド・ボラティリティの計算ルーチン
ヨーロッパのコールオプションの価格のブラックショールズ方程式は次のとおりです。
\[ C = S_0 \Phi \left( \frac {\ln \left( \frac {S_0}{K} \right) + \left[ r + \frac {\sigma^2}{2} \right] T}{\sigma \sqrt {T}} \right) - Ke^{rT} \Phi \left( \frac {\ln \left( \frac {S_0}{K} \right) + \left[ r - \frac {\sigma^2}{2} \right] T}{\sigma \sqrt {T}} \right) \]
ここで Tは契約の満期までの時間で、S0は原資産のスポット価格です。Kはオプションの行使価格、rは金利、σはボラティリティーです。 σの明示的な計算式はありません。また、財務データから直接測定することはできません。そのため、数値的な近似値を用いて計算する必要があります。

図が示すように、ボラティリティ・サーフェイス(価格や満期までの時間によってボラティリティがどのように変化するかを三次元的にプロットしたもの)は、高度に湾曲している場合があります。そのため、ボラティリティを正確に計算するのは難しい問題です。
NAGライブラリのMark 27.1には、入力データの配列に対するヨーロピアンオプションのインプライド・ボラティリティを計算するための新しいルーチンs30acfが含まれています。
このルーチンでは、ユーザーは2つのアルゴリズムから選択することができます。1つ目はJackel (2015)の方法で、3次Householder法を使用して、最も極端な入力以外のすべての入力に対して機械精度に近い精度を達成します。この方法は、入力データの短いベクトルに対して高速です。
2番目のアルゴリズムは、Glau et al.(2018)のアルゴリズムに基づいていて、NAGとロンドンのクイーン・メアリー大学の数学者との共同研究で開発された追加の性能強化が施されています。この方法は、チェビシェフ補間を使用し、ベクトル命令を利用できる入力データの長いベクトル用に設計されています。機械精度に対する精度が要求されないアプリケーションの場合、アルゴリズムは、ほぼ単精度(小数点以下約7桁)の精度を目指すように指示することもでき、更なるパフォーマンス向上も可能です。
リファレンス
Jackel P (2015), Let’s be rational, Wilmott 2015(75), 40-53
Glau K, Herold P, Madan D B and Potz C (2018), The Chebyshev method for the implied volatility, Accepted for publication in the Journal of Computational Finance