Excelで動くオプション取引の統合ツール(TopT_01)の使い方 その1(設定マニュアル)

1.ツールの概要

日経225オプション取引をする際にあると嬉しい機能を集めた統合ツールです
EXCEL2016で作った、マクロ有効ワークシートです
楽天RSSが稼働していることが大前提です

★主な機能
・オプションの各銘柄を結んだIV曲線(スマイルカーブ)の描画
・オプションと先物のポジションの登録、および損益前日比やリスク指標計算
・上記で入力したポジションあるいは仮想ポジションの、損益シミュレーション機能(損益曲線の描画)や、SPAN証拠金の近似計算


機能について、もう少し詳しし説明はは下記リンクをご覧ください
Excelで動くオプション取引の統合ツール(TopT_01)の概要

ツール機能の使い方については下記リンクをご覧ください
Excelで動くオプション取引の統合ツール(TopT_01)の使い方 その2(機能マニュアル)

2.設定の概要

★利用開始時、およびSQ前日に実施すること
・「設定」シートに、利用する先物やオプションの満期日の情報を記述するとともに、各種「テーブル_xx」シートとの対応付けをします
・各種「テーブル_xx」シートに、利用する先物の銘柄やオプションの銘柄を登録します(楽天証券RSSの数式を登録します)。自動処理を用意していますので、それほど多くの手間はかからないでしょう

※具体的な説明は、5.設定方法(基本)をご覧ください

★権利行使価格の追加などがあった際に実施すること
・追加された銘柄を、オプションの「テーブル_xx」シートに登録します。手動で設定するので少しややこしいです

※具体的な説明は、 6.設定方法(権利行使価格の追加) をご覧ください

★毎日大引け後に実施すること
・毎日大引け後に、設定シートの「日次締処理」ボタンを実行すれば、損益前日比の算出などが可能になります
・また、証拠金近似計算や損益シミュレーションを、大引け時のプレミアムを使って算出することが可能になります

※具体的な説明は、7.日次締処理について をご覧ください

3.稼働条件

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

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

互換性チェックによると、EXCEL2010では、「ポジ分析」シートで2箇所のエラーが出ると思われます。(条件付き書式1か所、セルの式1か所)使い勝手向上のためだけの部分なのでそのまま使い続けて大丈夫です

互換性チェックで、「テーブル_OPA」などで、大量のエラーが出ることになっていますが、定義されていない自作関数を使っているのが理由です


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

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

4.シートの構成

5.設定方法(基本)

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

利用開始時、およびSQ前日に実施します

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

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

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

限月に対する「SQ日」「参照先物Key」「配当落ち」
限月の第1、第2、第3は便宜上のものです。期近から順番にならんでいる必要はありません。期近順にならべると「ポジ分析」シートを使って仮想ポジションのシミュレーション入力をする際のポジション入力がわかりやすくなります。
※拡張性確保のため、限月とオプションテーブルを分離しています。使い勝手がやや犠牲になった面があります。

「SQ日」:SQ日を設定してください。SQ日は通常金曜になりますが、SQ日チェックが「6」なら金曜日に設定されています
「参照先物Key」:SQ日が同一のミニ先物を対応させます。リストの選択式です。
「配当落ち」:通常0です。Weeklyオプションで利用する項目です。Weeklyオプションの場合、SQ日が一致する先物がないので、Weeklyオプションより後にSQ日を迎えるミニ先物を設定します。オプションのSQ日と先物のSQ日に配当落ちがある場合は、その金額を入れます。わからなければ、適当に5とか10とかの数値を入れて、ザラ場中にグラフが滑らかになっているか(ATMで、「N」型のギザギザになっていないか)を見ます。滑らかであればOK。プット・コールパリティのがあるので、配当落ちが正しく入ると、グラフが滑らかになるのです

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

「グラフ表示用先物」 IV曲線(スマイルカーブ)や損益曲線のグラフなどで使われる先物価格です。メジャーSQの限月を指定するのがお勧めです。リストの選択形式です。

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

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

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

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

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.日次締処理について

・毎日大引け後に、設定シートの上部左側にある日次締処理ボタンを実行すれば、損益前日比の算出などが可能になります
・また、証拠金近似計算や損益シミュレーションを、大引け時のプレミアムを使って算出することが可能になります

大引け終了後に手動で実施する場合
「日次締処理(手動)」ボタンを実行します
※EXCEL作業中などに、予約実行が突然始まったりするのが嫌な場合はこちらがお勧めです

大引け終了後、15:20に処理を予約し自動実行する場合
「予約」ボタンを実行します。予約実行のステータスが「予約中」に変わります。
15:20になると処理が 自動で始まり、終了すると 予約実行のステータスが「予約なし」に変わります
予約を中止する場合は、「予約キャンセルボタン」を実行します。予約実行のステータスが「予約なし」に変わります
※大引け終了時にPCの前に居ない場合はこのボタン利用が便利です

「予約」ボタン利用の注意
・処理はボタン実行当日の15:20に行われます。つまり前日のうちに予約しても処理は実行されません
・EXCELを終了した場合、予約はキャンセルされます。但し、その場合ステータスは「予約中」のままです。再度「予約」ボタンを実行する必要があります。「予約ボタン」は何度実行しても大丈夫です(処理は1回だけ行われます)
・上記の状態で、「予約キャンセル」ボタンを実行すると、VBAがエラーとなります。「実行時エラー’1004’」とのメッセージがでます。慌てずに、「デバッグ(D)」ボタンをクリックでデバッグモードに入り、右上の「×」でそれを閉じれば問題ないです。その際「このコマンドを使うとデバッグは中断します」というメッセージがでるのですが、「OK」で終了します。

8.ダウンロード

note.com のサイトからダウンロードできます
このサイトで紹介するツールのダウンロードは、https://note.com/nk1ok にまとめています

このツールのダウンロードURLは下記です
Excelで動くオプション取引の統合ツール(TopT_01)

「Excelで動くオプション取引の統合ツール(TopT_01)の使い方 その1(設定マニュアル)」への5件のフィードバック

    1. 管理人T

      コメントありがとうございます

      使うにあたってマクロの知識は不要です
      エクセルを使ったことがあるなら大丈夫だと思います
      是非使ってみてください

  1. パンダ

    こんにちは。質問なのですが、「参照先物Key」はリストから選択する形式になっていまが、今取引されている
    mini先物(2103M)はどうすれば選択できるでしょうか。直接数値を入力しましたが、エラーで入力できません
    でした。

    1. 管理人T

      パンダさん、コメントありがとうございます。

      解決できてよかったです。

コメントする

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