Excelツール opivoris01 IV曲線(スマイル・カーブ)の表示

2020.02.10
このツールの機能を、別のツールに組み込みその一部としました
よろしければ、そちらをお使いください

関連リンク
Excelで動くオプション取引の統合ツール(TopT_01)の概要
Excelで動くオプション取引の統合ツール(TopT_01)の使い方 その1(設定マニュアル)
Excelで動くオプション取引の統合ツール(TopT_01)の使い方 その2(機能マニュアル)

但し、TopT_01は、多機能な分処理が重いなどの欠点もあります。
シンプルにIV曲線だけを見たい場合はこちらのツールの方が使い勝手が良い場合もあると思いますので、廃止せずに残しておこうと思います

1.ツールの概要

楽天RSSからデータを取得し、オプションのインプライド・ボラティリティーを計算、リアルタイムでIV曲線(スマイル・カーブ)を描画するツールです

特徴

1.操作はシンプル
・グラフは、「全範囲」、「ATM付近」、「任意範囲」をボタンひとつで切り替えられます
・後場終了後に、「日次締処理」ボタンを実行すれば、前日グラフ、前々日グラフが見られます
 (実行しなければ、当日のリアルタイムのグラフだけが使えます)

2.新しい限月の登録の際も複雑な操作はなし
・JPXのサイトからダウンロードしたデータを、本エクセルの該当シートに貼りつけ、「月次繰越」ボタンを実行する
・SQ日を入力し、対応するミニ先物の限月を指定、および、対応するオプションのテーブルを指定する

3.3限月対応、ウィークリーオプション対応
・3つの限月をつかえます。すべて月次のオプションに使ってもいいし、一部をウィークリーオプションに使ってもいいです

4.IVの計算はOTMオプションの売り気配値と買い気配値を加重平均した仲値を利用
・グラフがスムーズになります
・これを利用してリスク指標やOTMのプレミアムを算出しています。それらを使って、ポジションの損益計算、リスク指標、証拠金計算などを行うとメリットが多々あります(今後、そういったツールもリリース予定です)

2.使い方の概要

■上記の図「IV曲線(スマイル・カーブ)の表示」(シート名「IVグラフ)で、
「グラフの権利行使価格最小値」を入力します
「全範囲を表示」ボタンを実行で、IV曲線の全範囲が表示されます
 「ATM付近を表示」ボタンを実行で、IV曲線のATM付近の表示がされます
任意設定の横軸・縦軸の最小値最大値を入力します
 「任意範囲を表示」ボタン実行で、指定した範囲のIV曲線が表示されます

■ 「設定」シートで、
 毎日、日中取引終了後(15:15以降、15:45頃までに)、「日次締め処理ボタン」を実行することにより、前日、前々日のIVが設定されます。
※忘れても、リアルタイムのIV曲線に影響はないです

3.稼働条件

1.楽天RSSが稼働していること
   RSSの動作環境
2.EXCEL 2010以上
3.パソコンの性能がある程度必要です

※ 上記の条件は、必須条件でありますが、稼働を保証するものではありません。
RSSが稼働していれば、このマクロ有効ブックのみで動きます。特別なインストール作業は不要です。

※参考:EXCELを作成したPC
2016年製
OS:Windows10 home 64ビット
CPU:InteI Core i5-6400 2,70GHz
RAM:8.00GB
EXCEL 2016 32ビット

立上げに数10秒かかります。
CPU50%程度まで使います
稼働開始すれば、それほどストレスは感じません

4.シートの構成

5.設定方法(基本)

1.「設定」シートで、必要事項を設定する

必要事項は、背景黄色の枠内です

「金利」
無リスク金利を設定します
低金利、マイナス金利の現在、何を設定すればいいか困ると思いますが、私はもう何年も0.1で固定しています。0.1や0.2ぐらいの小さい値ならば、何を設定してもIVに大きな違いがでないので無視してもいいぐらいです。
厳密に設定したい場合は、JPXのサイトをみればどういう値を使っているか調べられます。
 先物・オプション銘柄参考情報  :先物・オプションの各銘柄に係る参考情報(清算価格、理論価格、ボラティリティ等)を掲載しています。

「日付調整」
残存日数を、今日ーSQ日 で計算しています。問題がなければ0のままでいいです。
次の例のような場合は、数字を入れると調整ができます。
・深夜取引で、24:00を境に1日進んでしまうのが嫌な場合
・残存日数を、日数でなく、時分秒単位で計算したい場合

限月に対する「SQ日」「参照先物Key」「配当落ち」
限月の第一、第二、第三は便宜上のものです。期近から順番にならんでいる必要はありません
※将来の拡張性確保のため、限月とオプションテーブルを分離しました。IV曲線には影響ありません
「SQ日」:SQ日を設定してください。SQ日は通常金曜になりますが、SQ日チェックが「6」なら金曜日に設定されています
「参照先物Key」:SQ日が同一のミニ先物を対応させます。リストの選択式です。
「配当落ち」:通常0です。Weeklyオプションで利用する項目です。Weeklyオプションの場合、SQ日が一致する先物がないので、Weeklyオプションより後にSQ日を迎えるミニ先物を設定します。オプションのSQ日と先物のSQ日に配当落ちがある場合は、その金額を入れます。わからなければ、適当に5とか10とかの数値を入れて、ザラ場中にグラフが滑らかになっているか(ATMで、「N」型のギザギザになっていないか)を見ます。滑らかであればOK。プット・コールパリティのがあるので、配当落ちが正しく入ると、グラフが滑らかになるのです

「対応限月」 OPのデータ(テーブル_OPA~OPC)と対応する限月を設定する。リストの選択形式です。

「グラフ表示用先物」 IV曲線(スマイルカーブ)の、グラフで使われる先物価格です。リストの選択形式です。

シート「設定」

2.先物用のテーブルを設定する

2-1.事前準備
・JPXのサイトから「先物・オプション銘柄参考情報」の最新ファイルを取得する
 ダウンロードはこちら 先物・オプション銘柄参考情報
・必要なら(IV曲線のグラフで、前日、前々日を正確に表示したいなら)、
 「テーブル_先物」シートを開き、「前日_仲値」、「前々日_仲値」のメモをとる

2-2.シート「RSSの元S」を開き、すべての数値と値をクリアします。
 シートのデータが入っている部分を選択し、キーボードの「delete」キーでクリア
 ※行の削除、列の削除を使わないでください。このシートにリンクを貼っている式がエラーとなります。

2-3.JPXのサイトから取得した「先物・オプション銘柄参考情報」から、ミニ先物のデータをコピーします
 左から2列目が、「FUT_NK225M_」で始まるのがミニ先物です。必要な限月を(3限月分)をコーピーしてください
 余分に取得する分には問題ないです。先頭の3行が利用されます。

2-4.コピーしたデータを、シート 「RSSの元S」 に、貼りつけてください

※JPXの 「先物・オプション銘柄参考情報」 と、 「RSSの元S」 は、レイアウトを一致させています。
 必要項目は、RSSで使うコード、限月だけです。
 つまり、JPXからダウンロードしてコピペせず、手動変更でも問題なく稼働します

2-5.「設定」シートを開き、「先物_月次繰越」ボタンを実行します
 ※ボタン実行前に、バックアップをとることをお勧めします

2-6.2-1でメモした、 「前日_仲値」、「前々日_仲値」を 「テーブル_先物」シートの該当箇所に記述します


3.オプション用のテーブルを設定する

3-1.事前準備
・JPXのサイトから「 オプション理論価格等情報 」の最新ファイルを取得する
 ダウンロードはこちら  オプション理論価格等情報一覧

3-2.シート「RSSの元?」を開き、すべての数値と値をクリアします
 シートのデータが入っている部分を選択し、キーボードの「delete」キーでクリア
 ※行の削除、列の削除を使わないでください。このシートにリンクを貼っている式がエラーとなります。

 ※「RSSの元?」は、「RSSの元A」 「RSSの元B」 「RSSの元C」の3種類用意しています。
  それぞれが、オプション用のテーブル「テーブル_OPA」 「テーブル_OPB」 「テーブル_OPC」と対応しています
  それぞれのテーブルには、オプションの1限月分のデータがまるごと格納されます

3-3.JPXのサイトから取得した「 オプション理論価格等情報 」から、オプションの当該限月データをコピーします
 一番左の列が「NK225E」で始まるのが、 日経225オプション(従来限月取引)です
 「 NK225WE 」で始まるのは、 日経225オプション(Weeklyオプション)
 必要な限月を(1限月分)をコーピーしてください

3-4.コピーしたデータを、 「RSSの元?」 に、貼りつけてください
 ※JPXの 「オプション理論価格情報」 と、 「RSSの元?」 は、レイアウトを一致させています。

シート「RSSの元?」 データがコピーされた後の状態

3-5.「設定」シートを開き、「OP?_月次繰越」ボタンを実行します
 ※ボタン実行前に、バックアップをとることをお勧めします

3-6.テーブル_OP? の使う予定がないなど過剰なデータをクリアします
 ※下図を参照
 ※この作業をしなくても、動作「可能」です。但し、動作が変になる場合があります。
  楽天RSSでは、取得できる銘柄数の上限が300銘柄になっています。超えるとエクセルの動作が変になります。
  この作業は、上限数を超えないようにするために行う作業です。

 クリア終了後、「権利行使価格」の▼をクリック、「昇順(S)」をクリックし、昇順でソートを実施します
 ※下図の赤丸で囲った部分です

クリアする箇所(削除ではない)

プットが1円売り気配で、今後復活することもないだろう(使われることがないだろう)という、権利行使価格
クリア幅(先頭列~列名「C売気配数量1」)

・コールがディープインしていて(深くITMになっていて)、今後使われることがないだろうという、権利行使価格
クリア幅(列名「C買気配値1」~ 「C売気配数量1」 )

・プットがディープンしていて (深くITMになっていて)、今後使われることがないだろうという、権利行使価格
クリア幅(列名「P買気配値1」~ 「p売気配数量1」 )

コールが1円売り気配で、今後復活することもないだろう(使われることがないだろう)という、権利行使価格
クリア幅(先頭列~列名「C売気配数量1」)

そもそも権利行使価格が設定されていないエリア
クリア幅(先頭列~列名「C売気配数量1」)

結果、何もしない部分は、ATMを中心とした範囲になります。どれぐらい残すかは好みです。私は下方向に1500円以上、上方向に1000円以上、合わせて3000円幅程度を残すようにしています。削除しすぎて、将来、ATMの銘柄がなくなってしまうと、動作が変になります。その際は、削除した部分を再度追加する必要があります。

クリア終了後、「権利行使価格」の▼をクリック、「昇順(S)」をクリックし、昇順でソートを実施します
 ※図の赤丸で囲った部分です

シート「テーブル_OP?」 データをクリアする箇所

6.設定方法(権利行使価格の追加)

1.新しく追加される権利行使価格のRSS用コードを調べる
  JPXのサイトで追加情報が発表されます  権利行使価格の新規・追加設定
  「5.設定方法(基本)」のところで使った、 オプション理論価格等情報一覧 でもわかりますが、情報が1日遅れになります

2. シート「RSSの元?」の最下部に、「オプション理論価格等情報一覧」とレイアウトを揃えて、「権利行使価格」、「限月」。プットの「RSS用コード」、コールの「RSS用コード」を設定する

シート「RSSの元?」にデータを追加する

3.シート「RSS関数生成?」を開き、追加された式の範囲を選択する
 ※ シート「RSSの元?」 で追加した行と同じ行に、RSS用の式などが生成されます

シート「RSS関数生成?」 生成された式を「コピー」

4.シート「テーブル_OP?」を開き、下部のデータが入ってない場所に、「形式を選択して貼り付け」→「値」を実行
 下の2つの図は、貼りつけ前、貼り付け後
 ※この状態では、貼りつけた式が式として認識されず、文字列として認識されています

「テーブル_OP?」 に貼りつけ前 下部のデータが入ってない場所を選択する
「テーブル_OP?」 に貼りつけ後 「=」は文字として認識されている

5.文字「=」を、等号「=」 に置換する
 4.で貼りつけられた領域をそのままにして、(別のところをクリックするなどで解除されたら、選択しなおして)
 「ホーム」-「検索と置換」-で「置換」を選択 
  「検索する文字列(N)」 に 「=」
  「置換後の文字列(E)」 に 「=」
 を入力後、「すべて置換(A)」を実行する
 これで、文字列が式に置き換えられます

6.権利行使価格で昇順ソート
   シート「テーブル_OP?」 の左から2列目「権利行使価格」の▼をクリック、「昇順(S)」をクリックし、昇順でソートを実施します

7.ダウンロード

note.com のサイトからダウンロードできます
このサイトで紹介するツールのダウンロードは、https://note.com/nk1ok にまとめています
このツール のダウンロードurlは下記です
オプションのスマイルカーブを表示 日経225オプションのIV曲線をリアルタイムで表示するEXCELツール
https://note.com/nk1ok/n/n6f9db88ad3c7

コメントする

メールアドレスが公開されることはありません。 が付いている欄は必須項目です