Note不確実性をマネージしよう。本記事の目的は、コンパウンド・オプションの価格を解析的に表現し、Pythonを用いてコーディングする方法について述べることである。対象者は以下の条件を満たす読者である。基本的なオプションについて理解している人Pythonを使う環境が整っている人Pythonを使ってコンパウンド・オプションの価格を計算したい人また、以下の記事の内容を前提とする。プログラミング言語Pythonとはなにか、WindowsにPythonをインストールする方法Pythonでブラック・ショールズ式によるオプション・プレミアムの計算(解析解)なお、本記事の内容は下記書籍の内容を参考にしているため、合わせて参照してほしい。検算(『フィナンシャルエンジニアリング』の結果と照合)まとめコンパウンド・オプションとはなにかコンパウンド・オプションとは、オプションのオプション、すなわちオプションを買うもしくは売る権利である。オプションにはコールとプットがあるため、コンパウンド・オプションは、以下の4種類が存在する。権利行使日が設定されるので、オプションのオプションたるコンパウンド・オプションには、二つの権利行使価格と権利行使日がある。K_1\)にて、原オプションを購入もしくは売却する権利を有する。K_1\)を上回るとき、コンパウンド・オプションは行使される。K_2\)で、原資産を購入もしくは売却する権利である。以下では、コールオプションを買う権利、つまりコールオプションのコールオプションの価格を解析的に表現し、それを用いてPythonで計算する。\end{eqnarray*}で表される[1]。b\)以下のときの値である。\)でAt-The-Moneyとなるような原資産価格である。Pythonでのコード例まず必要なモジュールをインポートする。scipy.stats.normは一次元正規分布の累積密度関数を、scipy.stats.mvnは二次元の正規分布の累積密度関数を使用するために必要である。scipyに組み込まれたいくつかの関数と、方程式を解くためのサブモジュールscipy.optimizeをインポートする。数値の組を扱うための配列を呼び出すため、numpyをインポートする。np基本的なブラック・ショールズ式の関数を定義する。S^*\)を計算するために必要である。C_{T_{1}}(S_{T_1},K_2,T_{2}-T_{1})=K_1\)を解く必要がある。h(S_{sol})=C_{T_{1}}(S_{sol},K_2,T_{2}-T_{1})-K_1=0\)として方程式を解くため、関数を定義する。r,q,T2-T1,K2)-K1二次元正規分布の累積分布関数を定義する。M_{MVN}(a,b;c)\)は、以下のようにコーディングすればよい。p以上を踏まえ、コール・オン・コール・コンパウンド・オプションの価格は、以下のようなプログラムで計算可能である。以下のインプットで計算する。S0=100sigma=30/100r=5/100q=0/100T1=1T2=2K1=20K2=100rho=0.3SampleT1=100SampleT2=100SampleOP=100計算結果は以下の通り。CoC_AN_MVN(S0,T1,T2,K1,K2)9.1383287801281021検算(『フィナンシャルエンジニアリング』の結果と照合)『フィナンシャルエンジニアリング』[1]に付属しているソフトウェアDerivaGemを用いると、様々な金融商品を評価することが出来る。コンパウンド・オプションの価格も計算可能である。本節では前節での計算結果が、DerivaGemの計算結果と一致することを確かめる。DevivaGemをCD-ROMからインストールすると、3つのExcelマクロファイルが利用できる。functions.xlsを開く。Optionsシートにコンパウンド・オプションの計算フォームが載っている。ここに前節と同様のデータをインプットすると、9.138265559という計算結果が得られる。前節の結果9.1383287と小数第3位まで一致している。小数第4位以降で差異が生じているのは、正規分布の累積分布関数の定義が異なっているためであると考えられる。まとめ本記事では、コンパウンド・オプションの解析解をPythonで実装する際のコード例を提供し、インプットデータを与え実際に価格の計算を行った。その結果は、著名な金融工学の書籍である『フィナンシャルエンジニアリング』に付属の計算ソフトの結果に一致した。Next>人気記事RとRStudioをアップデートする方法。最近バージョンアップしていない人向け本記事ではRとRstudioをアップデートする方法について述べる。Rについて最近バージョンアップをしていない方(筆者は3.0.2からのアップデートであった)を対象にする。R本体をアップデートした後、RStudioをアップデートする方法を述べる。指定されているテキスト・教科書・参考書についてまとめている。その中からこのサイトおすすめのテキストを、パターン別に紹介する。本記事の目的は、Pythonで方程式を解くプログラムを作成することである。SciPyモジュールの関数を使って解く方法と、方程式の数値解法であるニュートン法、および二分法を素直にコーディングする方法の3種類を提示する。本記事では例として、以下...伊藤の公式を直感的に理解する(追記:ブラック・ショールズモデル)この記事では確率解析の重要な公式である「伊藤の公式」について述べる。伊藤の公式は確率過程の変換公式であり、日本の数学者伊藤清が創始した確率解析学の基礎となっている。この記事では直感的な理解を目指し、数学的厳密性にはこだわらない。online、Pythonオンラインを使う方法)本記事では、ブラウザ上で動作するPythonのプログラミング環境について紹介する。本来プログラミングは、自分が使うPCでプログラミング言語を動かすための「環境」を構築する必要がある。