先月、リサーチ部門の誰かから、なぜオプション担当のエージェントが一見まっとうなロングガンマ案を次々と却下するのかと聞かれました。シグナルに問題はなく、ボラティリティ予測も問題ありませんでした。原因はマーケットデータフィードの2項目と、フィードにすら載っていない1つの数字でした。
そこで、実際に議論していたデータを見てみましょう。Deribitのtickerレスポンス、BTC-25SEP26-110000-Cです。月曜日の11:20 UTC、満期まで18日という時点で取得しました。廃止予定の項目は省き、重要なものだけ残しています。
{
"instrument_name": "BTC-25SEP26-110000-C",
"index_price": 96412.18,
"underlying_price": 96980.44,
"underlying_index": "SYN.BTC-25SEP26",
"estimated_delivery_price": 96412.18,
"mark_price": 0.0041,
"mark_iv": 42.14,
"best_bid_price": 0.0038, "best_bid_amount": 4.9,
"best_ask_price": 0.0045, "best_ask_amount": 12.1,
"bid_iv": 40.42, "ask_iv": 43.94,
"last_price": 0.0043,
"interest_rate": 0.0,
"open_interest": 812.7,
"greeks": {
"delta": 0.0962, "gamma": 0.0000189,
"vega": 36.77, "theta": -42.91, "rho": 4.61
},
"stats": { "volume": 61.2, "high": 0.0051, "low": 0.0036 }
}
instrument_name:1つの文字列に4つの情報
BTC-25SEP26-110000-C。原資産はBTC、満期は2026年9月25日、権利行使価格は110,000、コールです。この文字列からは分からず、新しいオプションのバックテストが少なくとも1度は間違えるのが、残りの契約仕様です。1枚は原資産1 BTC分で、プレミアムはBTC建てで表示・決済され、満期時刻は現地時間の16:00ではなく08:00 UTCです。
BTC建てという点が落とし穴です。markが0.0041なら0.0041 BTCで、インデックス価格換算でおよそ$395です。この列を価格として保存し、あとでUSD建ての戦略損益と結合すると、オプション自体に変化がなくても、気づかぬうちにドル価値が現物価格とともに動くポジションを作ってしまいます。BTCが下落した日にロングコールが利益を出したバックテストを見たことがあります。プレミアムの列をドルと解釈したためで、実際には研究者がドル建ての会計枠でコイン建てプレミアムをショートしていました。原因の特定に2日かかりました。
index_priceとunderlying_price:568ドルの差、正しいのは片方だけ
両者には$568.26の差がありますが、これは誤りではありません。index_priceはDeribitのBTCインデックスです。主要取引所を組み合わせた現物価格の参照値であり、最終的にこの契約が決済される基準です。underlying_priceは満期がSYN.BTC-25SEP26の合成フォワード価格で、同じ満期の先物市場から算出されます。年率換算でおよそ12%のキャリーが18日分あるため、この$568の差が生じます。
ペイロード内のgreeksもmark IVも、すべてフォワード価格を基に計算されています。手元に読み込んでいたのが現物価格の系列だからと、自分で現物価格を使ってインプライド・ボラティリティを再計算すると、権利行使価格ごとに異なる値になります。しかも誤差には系統的な方向性があり、コールは実際よりボラティリティが低く、プットは高く見えます。ベーシスが0.6%ある18日物では、この権利行使価格のmark IVにおよそ1.5ポイントの誤差が出ます。多くの戦略が狙うボラティリティのエッジを上回る大きさです。
interest_rate: 0.0は、割引計算を金利ではなくフォワードを通じて行っているというDeribitからの情報です。無リスク金利カーブを探して入力する必要はありません。二重計上になります。
mark_priceとmark_iv:約定相手のいない価格
0.0041 BTC。誰もこの価格を支払っていません。Deribitは、板を基準にしながら権利行使価格と満期をまたいで滑らかにしたボラティリティ・サーフェスからmarkを算出します。1つの広い気配値が動いただけで証拠金や強制決済が大きく変わらないようにするためです。証拠金、未実現損益、すべてのポジションAPIのレスポンスに使われるのがmarkです。
そのため、暗号資産オプションのリサーチでは最も魅力的に見える約定価格であり、最もあてにならない価格でもあります。markで買ってmarkで売るバックテストは、平滑化スプラインを相手に取引しています。Sharpeは算出されるでしょう。そのSharpeが表しているのはサーフェスの当てはめであり、実際に約定できたかどうかについては何も教えてくれません。
最終的にルールにしたのはこれです:markは証拠金、リスク、mid-to-midの損益要因分析に使います。約定価格には使いません。バックテストに約定価格が必要なのに、その時点の板スナップショットがない場合、markで約定したことにせず、価格未算出としてフラグを立てます。行が欠けるほうを選びます。
best_bid 0.0038 / best_ask 0.0045:3つの単位で見るスプレッド
BTC建てで7ティックの幅です。$395のオプションに対して$67.50、プレミアムの17%に当たります。ボラティリティ換算では3.5ポイントで、bidが40.4、askが43.9です。オプションのトレーダーに幅を尋ねたとき、実際に返ってくるのはこの数字です。
価格と同じくらい重要なのが数量です。bidは4.9枚、askは12.1枚。Deribitのオプションの数量は枚数建てなので、原資産換算では4.9 BTC、およそ$472kの想定元本ですが、この権利行使価格でのデルタはわずか0.47 BTCです。戦略に意味のあるガンマが必要なら数十枚は要りますが、最良気配に見えている数量はその一部です。通常、2段目の板はさらに2〜3ティック離れています。数量モデルのあるオプションのバックテストでは、板を順に取るか、RFQやブロック取引の価格を仮定する必要があります。この2つの仮定では結果が大きく変わります。
last_price: 0.0043は過去24時間のどこかで成立した取引です。19時間前の、現物価格が大きく違っていた時点の約定かもしれません。1日61枚しか取引されない銘柄では、構造的に古いデータです。これを使ってリターン系列を作らないでください。
greeks:5つの数字、4種類の単位規則
このブロックはペイロードのほかの部分を合わせた以上に、気づかない損害を生みます。各値の次元は正しいのに、どれも想像しがちな単位ではないからです。
| 項目 | 値 | 単位 | よくある誤読 |
|---|---|---|---|
| delta | 0.0962 | 1枚あたりの原資産BTC量 | ドル建てデルタとして扱う |
| gamma | 0.0000189 | 原資産が$1動いたときのΔdelta | 1%の変動あたりと解釈する |
| vega | 36.77 | ボラティリティ1ポイントあたりのUSD | ボラティリティ100%あたり、またはBTC建てと解釈する |
| theta | -42.91 | 暦日1日あたりのUSD | 取引日あたりと解釈する |
| rho | 4.61 | 金利1%あたりのUSD | 無視する(それで正しい) |
deltaはコイン建て、vegaとthetaはドル建て、gammaは現物価格が1ドル動いたときの値です。コイン建てのdeltaをドル建てのリスク合計に混ぜると、一見フラットなブックが実は40 BTCロングということになります。週末戦略に響くのは、thetaが暦日あたりの値だという点です。金曜の引けから月曜の寄りまでは3日分の減価があり、この例では1枚あたり約$129です。その間の取引日は0日です。バックテストがバーごとに進みthetaを各ステップに適用すると、週末が抜け落ち、プレミアム売り戦略が実際以上に悪化した結果になります。
open_interest 812.7、volume 61.2:オプションチェーンの実態
前日に61枚取引された権利行使価格で、建玉は800枚超。実際に取引されている銘柄です。満期まで3週間の110,000は切りのいい数字で、フローが集中する場所です。さらに2つ先の120,000まで行くと建玉は10分の1になります。月次以外の満期で切りのよくない権利行使価格を見ると、bidはあるもののaskはその40%先にあり、1週間取引されていない銘柄が見つかります。
上場されている全銘柄を順に処理するチェーン全体のバックテストでは、どの銘柄でも平気で約定したことになります。そこで3つの条件を同時に満たす銘柄に絞りました。気配スプレッドがmarkの20%未満、両側に1枚以上の数量があること、過去24時間の出来高がゼロではないことです。通常の日にこの条件を通るBTCチェーンは、上場銘柄のおよそ3分の1です。残りの3分の2に偽のアルファが潜んでいます。
ペイロードにない項目
このオブジェクトには取引コストの情報が何もありません。Deribitの手数料はオプション1枚あたり0.0003 BTCで、makerもtakerも同額です。原資産の0.03%で、プレミアムの0.03%ではありません。ただし、オプション価格の12.5%が上限です。この契約では片道$28.92で、上限に達していません。0.0041の12.5%は0.000513であり、定額手数料のほうが小さいためです。
手数料は想定元本基準、プレミアムはボラティリティ基準です。そのため、アウト・オブ・ザ・マネーになるほど、支払った額に対するコストの割合が急増します。
0.0045のaskで買い($434)、0.0038のbidで売り($366)、手数料を2回払うと、markが$395の契約で往復コストは$125.80です。損益がプラスになるには、見立てがプレミアムの31%分の価値を生む必要があります。ロングガンマ案が却下された理由はこれです。シグナルとは無関係でした。
deltaを得るコストを考えると、さらに興味深いことが分かります。手数料は枚数に比例し、必要枚数はdeltaに反比例するからです。計算を単純にするため、すべての権利行使価格でmark IVを42.1%に固定します(実際のチェーンにはスキューがあり、暗号資産ではコールのウィングは通常ATMより高いボラティリティで取引されます。そのため、この表は楽観的です):
| 銘柄 | mark(BTC) | Delta | delta 1 BTCあたりの枚数 | 片道手数料 | delta 1 BTCあたりのコスト |
|---|---|---|---|---|---|
| 97000-C(ATM) | 0.0373 | 0.518 | 1.93 | $28.92 | $55.80 |
| 110000-C | 0.0041 | 0.096 | 10.4 | $28.92 | $301 |
| 120000-C | 0.0004 | 0.013 | 79.4 | $4.82(上限適用) | $383 |
| BTC無期限先物 | — | 1.0 | 1.0 | $48.21 | $48.21 |
一番下の行では12.5%の上限が効いています。上限がなければ、OTMの深いウィングはdelta 1 BTCあたり$2,300かかり、宝くじのような戦略は単に不利なのではなく、計算上成立しません。上限があっても、120,000の権利行使価格でエクスポージャーを買うコストは無期限先物の約8倍です。オプションは方向性を表現する安価な手段ではありません。そう示すバックテストは、この表を計算に入れていません。
9月25日 08:00 UTC
tickerから分からない最後のことは、ポジションがどう終わるかです。Deribitは満期日の08:00 UTC直前30分間のインデックス平均でオプションを決済し、イン・ザ・マネーの契約にはデリバリー手数料0.00015 BTCを課します。この手数料にも決済価値の12.5%という上限があります。
バックテストへの影響は2つあります。まず、この平均価格を使う時間帯は無視できません。07:59時点で$300イン・ザ・マネーのオプションでも、直前30分の値動きが荒ければ無価値で決済されることがあります。08:00の価格で決済するバックテストは、ほとんどの満期で自分のペーパー口座と数ベーシスポイント、時には大きく食い違います。次に、決済を望んでいたかに関係なくデリバリー手数料がかかります。満期まで保有する戦略は1サイクルに手数料を3回払い、07:30にクローズする戦略は手数料2回分にスプレッドが加わります。どちらが安いかは権利行使価格によって変わり、プレミアム0.0012 BTCあたりで逆転します。一律のルールを決めず、ポジションごとに計算しています。
本当はボラティリティ予測について書くつもりでした。ところが単位と手数料上限に1週間費やしました。オプションリサーチにおける華やかさと現実の比率としては、おおむね妥当です。
項目は20個。設計上異なる2つの価格、約定実績のない価格が1つ、4種類の単位系にまたがるgreeks、そしてコストモデルはペイロードの外、ドキュメントの中にあります。オプションのバックテストを立ち上げるなら、まずこのオブジェクトの1つを、コストをすべて含み、単位も正しいポジションに変換する関数を1つ書いてください。スプレッド、手数料、上限、デリバリー、コイン建てかドル建てか、すべてです。その後に書く戦略はどれも、その関数の前提を引き継ぎます。
← 記事一覧

