はじめに
オプションでできる世界三大利殖の一つのサヤ取り(アービトラージ)の手法が実現可能か検証してみようと思います。
日経225などのオプションでプットコールパリティを利用して投資します。
以下の参考サイトの記事では、オプションのサヤ取りで1枚あたり5,000円の利益を簡単に取れるとあります。
ただし、サヤ取り業者のようなトレーダーがいるようで、一般的にはこのサヤ取りは難しいそうです。
しかしIB証券のAPIを利用したシステムトレードであれば可能性がゼロではないと思いますので、そのあたりを含めて検証します。
参考サイト
今回は以下の記事を参考にしました。
https://225option.net/how-to-easily-find-anyone-who-is-falling-in-the-market-saya/
オプションのサヤ取りのトレード手法
プットコールパリティとは
まず、プットコールパリティとは何かを理解しましょう。
プットコールパリティとは、プットとコールの本質的価値は等価であることを指しています。
この等価であるはずの価値が、時々ズレが発生するようで、このズレがサヤとなって、サヤ取りが成立するということです。
原資産価格の先物を利用した等価の式は以下になるそうです。
*参考サイトの以下のページに説明がありました。
プットコールパリティとは?
コール買い + プット売り = 先物ロング
上記の売買を逆転した変形の式は以下になるそうです。
コール売り – プット売り = 先物ショート
プット売りが逆になっていませんね。
参考サイトの例を確認します。
- 原資産価格:19340円
- C19375:65円ー>買気配?現値?のどちらか不明。
- P19375:105円ー>現値のようです。
P19735円には、100円の価格が付いてるはずだそうです。
上記の式に当てはめると、どうなるのか?
コール買い + プット売り = 先物ロングを変形すると以下になります。
コール買い – 先物ロング(原資産価格) = プット売り
権利行使価格¥20,000-原資産価格¥19,530+コールのプレミアム¥80=¥550
権利行使価格C19375円 + コールのプレミアム65円 – 原資産価格19340円 = プットのプレミアム100円
ということなのでしょうか?
プットの価格に権利行使価格が含まれていませんが公式は成り立ちますね。
コール買い + プット売り = 先物ロングの整理
コール買いとプット売り、先物ロングの関係を図に表すと以下になります。
コール買い(青い線)は価格が上がれば利益となり、プット売りは価格が下がれば利益となります。
その2つを合わせる(合成)すると先物ロング(グレーの破線)と同じ意味合いになります。
これがプットコールパリティということになります。
このサヤを取るということですが、以下の図になります。
- 割高のプット(ピンク色の線)が割高な状態になっていますので、それを売ります。
- 2つのオプションのサヤを取るわけですから、反対のコールを買います。
- 価格変動のリスクをヘッジするために合成と同じ意味の先物ロングの反対売買として先物を売ります。これで先物の両建てと同じ意味になります。
実際の画面でサヤを確認
実際の画面でサヤが発生しているか確認してみましょう。
日経225のデータを購読していないので、ES(S&P 500ミニ)での確認になります。
IBの画面では、現値というものがありません。
コールのプレミアム(買気配)とプットのプレミアムの買気配と売気配で確認することにします。
赤枠を上から順に確認しました。
<権利行使価格:$3250.00>
権利行使価格$3250.00-原資産価格$3264.00 + コールのプレミアム(買気配)$106.75 = $92.75
- プットの買気配:$92.75・・・一致しています。
- プットの売気配:$97.00・・・$4.25割高
買気配が一致しています。
<権利行使価格:$3260.00>*原資産価格に一番近い
権利行使価格$3260.00-原資産価格$3264.00 + コールのプレミアム(買気配)$100.50 = $96.50
- プットの買気配:$96.25・・・$0.25割安
- プットの売気配:$97.00・・・$1.50割高
両方一致していませんね。
<権利行使価格:$3270.00>
権利行使価格$3270.00-原資産価格$3264.00 + コールのプレミアム(買気配)$100.50 = $106.50
- プットの買気配:$100.00・・・$6.50割安
- プットの売気配:$101.00・・・$5.50割安
両方一致していませんね。
参考サイトの文面からでは大抵は一致しているはずですが、一致していないようです。
コールのプレミアムは買気配で見ていますが売気配でも同じです。
この一致していない価格が一致するようになるのでしょうか?
トレードするポジション
上記の式が正しいとして、このサヤを利用してトレードする場合は、以下のポジションで5円のサヤ取りが完成するそうです。
以下は参考サイトからの引用です。
例えばP19500を205円で売り、C19500を200円で買い先物を19500円で売ります。
そうするとC19500+先物19500を200円の支払いプレミアムで建てられたということになります。
よってP19500を205円で売って、P19500を200円で買っているので、差し引き5円のサヤが取れます。
このポジションは、コールを売って同じ権利行使価格のプットを買って先物で相殺しているので、相場の変動に対して全く損益が変化しない、つまりリスクにさらしていない両建て状態と同じです。
それにもかかわらず5円の利益が手に入るということになります。
上記を整理すると以下になります。
- P19500:売り:205円・・・売気配でしょうか?
- C19500:買い:200円・・・買気配でしょうか?
- 先物:売り:19500円・・・売気配でしょうか?
ちょっと理解ができません。
以下も同じ参考サイトに記載があった例の引用です。
例えば上記の価格は2017年9月6日時点の価格表ですが、原資産価格が19340円の時に、C19375とP19375でサヤ取りをしたいと思って価格を見てみることにします。
その際にC19375が65円と値段が付いていた場合には、P19735円は100円の価格が付いてるはずです。ところがP19375は105円となっていますので割高です。よって高くなっているプットを売って、適正価格のコールを買って、日経225ミニを10枚ショートポジションにすれば5円のサヤ取りが完成します。
上記を整理すると以下になります。
- P19375:売り:105円(割高なプットを売る)・・・現値?買気配?
- C19375:買い:65円(適正価格のコールを買う)・・・現値?買気配?
- 日経225ミニ:売り:10枚・・・いくらの先物でしょうか?
なお、取引単位は以下になります。
- 日経225オプション:1000倍
- 日経225ミニ:100倍
少し不明なところがありますが、デモ環境で実際にトレードして確認することにします。
不明点は以下になります。
- プットコールパリティの計算は現値で良いのか?
IB証券のAPIを利用したシストレを構築する前に・・・
日経225のデータを購読していないので、ES(S&P 500ミニ)で検証することにします。
取引単位は以下になります。
- S&P 500ミニ オプション:50倍
- S&P 500ミニ:50倍
IB証券の仕様の問題点
システムを開発するにあたり、IBの証券の仕様の問題点がいくつかありました。
この仕様の問題点はAPIだけでなく、通常のデスクトップのツールを使った売買でも同じようです。
- スプレッド注文において、銘柄別に指値ができない。
- スプレッド注文において、先物とオプションの組み合わせができない。
スプレッド注文とは複数の注文を同時に発注して、複数の注文が必ず成約するというものです。
システムなどは以下を参照してください。
IB証券 API スプレッド注文、決済(コンボ注文)
1つ目の指値ができないということは、成行でしか発注することができません。サヤが開いたとしてもその価格で注文が約定するとは限りません。
2つ目の先物とオプションの組み合わせができないということは、オプションのコール買いとプット売りの注文と先物の注文を個別に発注する必要があり、当然ながらタイムラグが発生しますので価格のズレが発生する可能性が高いです。
上記を踏まえた上で、指値を諦めて成行で実行することにします。
IB証券のスプレッド注文の説明は以下にあります。
トレードの仕様の問題点
そもそも、サヤという薄利のトレードを実現する上で、ネックになるのが、手数料と売買のスプレッドになります。
利益の計算
S&P 500ミニの取引単位は以下の通りになります。
- S&P 500ミニ オプション:50倍
- S&P 500ミニ 先物:50倍
1枚あたりの利益は以下の通りになりす。
- サヤが$0.25・・・$12.50
- サヤが$0.50・・・$25.00
手数料
- S&P 500ミニ オプション:$1.42(片道)*往復$2.84
- S&P 500ミニ 先物:$2.10(片道)*往復$4.10
コール買いとプット売りで$2.84 × 2 = $5.58。
先物と合わせて合計$9.68になります。
おおよそ$10.00ということですが、サヤが$0.25でも約$2.50の利益を出すことができますね。
スプレッドの比較
上記の原資産価格$3264のときのプットの売買スプレッドは以下でした。
- 権利行使価格$3250.00・・・$4.25(ask $92.75, bid $97.00)
- 権利行使価格$3260.00・・・$0.75(ask $96.25, bid $97.00)
- 権利行使価格$3270.00・・・$1.00(ask $100.00, bid $101.00)
大きいですね。サヤを$0.25や$0.50を狙おうとしているときでは影響が大きそうです。
スプレッドを意識したサヤ取りを実現しないとスプレッドが負け越しそうな気がします。
IB証券のAPIを利用したプットコールパリティのシストレ
本当はもう少し作り込みをしないといけないのですが、構築途中に、やはりスプレッドで負けることが判明しましたので断念して一旦公開します。
コメントアウトが多いですが、必要に応じて削除してください。
改めて売買のスプレッドを克服したサヤ取りが実現したら、本ページを更新しようと思います。
開発環境
- OS:macOS Carolina 10.15.6
- 言語:Python 3.7.2
- 開発ツール:Visual Studio Code 1.47.3
システム
以下はGithubにアップしていますので、ダウンロードして利用してください。
(左下のファイル名をクリックするとGithubのサイトに遷移します。「Download ZIP」をクリックするとダウンロードできます。)
プットコールパリティのサヤ取りのまとめ
課題についてまとめておきます。
- 売買のスプレッドによって利益がなくなる。
- 指値ができないので、想定した価格と実際に約定した価格に乖離がある。
- 今回のサヤはプットの割高(サヤの広い)でしたが、プットの割安(サヤが狭い)も調査した方がいい。
コメント