流動性とスプレッドはどのように測定できますか?
測定可能な形での流動性とスプレッドの意味
流動性とスプレッドは、基準となる価格(またはその近辺)で取引することがどれほど容易で、どれほど高コストかを表します。
スプレッドとは、最良アスク(最も低い売値)と最良ビッド(最も高い買値)の差です。特定の瞬間におけるこの差を測定するには、タイムスタンプ付きのビッドとアスクの提示が必要です。
流動性は「スプレッドが狭いこと」よりも広い概念です。価格をあまり動かさずに、どれだけ取引可能な関心(需要・供給)が存在するかを反映します。多くの市場では流動性が単一の観測可能な数値ではないため、測定は通常、**代理指標(proxies)**に依存します。たとえば、最良価格付近の厚みや、定義した取引サイズに関連する価格変化などです。
メカニズム:測定可能な項目、時間ウィンドウ、計算例
スプレッドの測定(提示ベース)
測定単位(例:1秒または1分間隔)と、参照定義(例:同じ会場からの最良ビッド/アスク)を選びます。
各タイムスタンプ t について、次を記録します:
- BestBid(t) と BestAsk(t)
- Spread(t) = BestAsk(t) − BestBid(t)
- 任意で正規化した形:SpreadPercent(t) = Spread(t) / Mid(t)(ここで Mid(t) = (BestBid(t)+BestAsk(t))/2)
そして、ウィンドウ内で要約統計量を計算します:
- 平均スプレッド、中央値スプレッド
- パーセンタイル(例:90th percentile)で裾(テール)の挙動を捉える
例の前提: すべての提示タイムスタンプが同じ取引所/会場を指し、その時点での最良の執行可能価格を表している。
流動性の測定(厚みまたはインパクト代理指標)
よく使われる測定アプローチは2つあります:
A) 最良価格付近の厚み ブックの上部付近で、次のような数量を記録します:
- BidDepth(t, Δ):Δティック以内、またはミッドより下の小さな価格帯内の総ビッドサイズ
- AskDepth(t, Δ):Δティック以内、またはミッドより上の小さな価格帯内の総アスクサイズ
- Imbalance(t) = (BidDepth − AskDepth) / (BidDepth + AskDepth)
前提: オーダーブックデータ(または同等の厚みフィード)が利用可能で、タイムスタンプ間で比較可能であること。
B) 定義したサイズに対する価格インパクト 固定された名目サイズを動かしたときに価格がどれだけ動くかを推定できるなら、次のような代理指標を定義できます:
- Impact(t) = ExecutionPrice(t, Size) − Mid(t)(買いの場合)
前提: 「Sizeに対するExecutionPrice」が一貫して計算されている(同じモデル、同じ会場ロジック)こと、そしてタイム同期された入力に基づいていること。
エビデンスと比較:独立に比較できること
測定を意味のある形で比較するには、次のように一貫した枠組みを使います:
- 同じ測定ウィンドウ:同一の開始/終了時刻とサンプリング頻度。
- 同じ提示元と会場:最良ビッド/アスクと厚みは同じ場所から取得する。
- 同じ正規化:生のスプレッド、またはミッドに対するパーセント版のどちらかを一貫して使う。
- 同じ流動性代理指標の定義:例として、Δティック内の厚み vs 固定サイズに対するインパクト。
実務的な比較としては、Spread(t) の時系列と、少なくとも1つの流動性代理指標(厚みまたはインパクト)を公開し、それらがどのように同時に動くかを確認します。これは因果関係を証明するものではありませんが、選んだ代理指標が、市場環境の変化のもとで妥当に振る舞っているかをチェックする材料になります。
制約とリスク(重大な失敗パターン)
スプレッドと流動性の測定には、いくつかの制約があります:
- 提示の陳腐化(staleness)とタイミングの不一致: ビッド/アスクや厚みデータが遅延している、または異なる方法でサンプリングされている場合、計算されたスプレッドが誤りになる可能性がある。
- 会場と執行の不一致: あるフィードから得た「測定スプレッド」が、別の会場で実際に執行される内容と一致しないことがある。
- 流動性代理指標の不一致: スプレッドが狭くても、厚みが低い(取引サイズをこなす能力が限られる)ことがあり得る。厚みベースとインパクトベースの代理指標は一致しない場合がある。
- スプレッド以外のコスト: 実際の執行コストにはスリッページ、コミッション、そして執行エンジン内の価格ルールが含まれる。スプレッドだけでは総コストを過小評価する可能性がある。
- 非定常性(non-stationarity): 流動性とスプレッドの過去の関係は変化し得る。過去に同時に動いたことは、将来の挙動を意味しない。
検証:測定の選択を健全にチェックする方法
測定アプローチを検証するには、次の点を独立にテストします:
- 保存されたBid/Askからスプレッドを再計算し、Spread(t) ≥ 0 であること、そしてパーセントスプレッドがミッドと整合していることを確認する。
- データの完全性を確認:最良ビッド/アスク、または厚みがタイムスタンプで欠落している頻度を定量化する。
- 同じ計算を2つの時間ウィンドウ(例:落ち着いた期間 vs 変動の大きい期間)で実行し、要約統計量が期待される方向に変わるかを確認する。なお、保証された結果を前提にしない。
- 前提を文書化する:サンプリング間隔、会場、提示定義、厚み帯Δ、そしてインパクトのSize。
必要なら、利用可能なデータの範囲(提示のみ vs オーダーブックの厚み vs 取引/執行記録)を、あなたの状況に合わせて明確化することもできます。