出来高バケットで市場の危険度を測る|VPINの仕組みと限界

売買出来高を均等なバケットへ分けて注文フローの毒性を測る分析。AI生成。 クオンツ投資

急落前には情報を持つ投資家の成行注文が片側へ偏り、マーケットメーカーが不利な相手と取引させられる状態が生じます。VPINは時間ではなく一定出来高ごとに売買を区切り、買い・売り出来高の偏りから注文フローの毒性を推定する指標です。

この記事で扱うポイント

  • 数値が表すものと、表さないものを分ける
  • 未来情報を混ぜずに検証する手順を作る
  • 予測精度ではなく費用後損益と損失管理で評価する
スポンサーリンク
【DMM FX】入金

なぜこの指標・モデルが必要なのか

急落前には情報を持つ投資家の成行注文が片側へ偏り、マーケットメーカーが不利な相手と取引させられる状態が生じます。VPINは時間ではなく一定出来高ごとに売買を区切り、買い・売り出来高の偏りから注文フローの毒性を推定する指標です。

仕組みを分解する

まず総出来高が一定量に達するたびにバケットを閉じます。各取引を買い主導・売り主導へ分類し、バケット内の絶対差を求めます。直近Nバケットの絶対差合計を総出来高で割るとVPINです。0に近ければ均衡、1に近いほど一方向へ偏りますが、分類方法とバケットサイズで値が変わります。

売買出来高を均等なバケットへ分けて注文フローの毒性を測る分析。AI生成。
仕組みを分解するを構造化した図解

計算例と数字の読み方

1バケット1万株、直近50バケットを使うとします。各バケットの買い売り差の絶対値が平均3,000株なら、VPINは15万株÷50万株=0.30です。0.30自体に普遍的な危険基準はありません。同じ銘柄の過去分布で90%点、95%点を求め、時間帯別にも基準を分けます。

売買・リスク管理への落とし込み

VPINが95%点を超えたら新規建玉を半分にし、スプレッドが平常中央値の2倍なら見送るという用途が考えられます。方向を直接予想するより、指値戦略の在庫上限を下げる、成行注文の参加率を落とすなど、流動性悪化時の防御に向きます。高VPINの後に上昇するか下落するかは別問題です。

実装手順:データから検証まで

取引分類はLee–Ready、ティックルール、取引所提供フラグを比較します。バケット量を日次出来高の0.1%、0.25%、0.5%で試し、結果が一つの設定だけで成立していないか確認します。イベント日と平常日を分け、VPIN分位ごとの将来ボラ、スプレッド、価格インパクトを未知期間で測ります。

  1. 仮説を一文にする:何が起きた後、どの期間に、何が変化すると考えるかを先に固定します。
  2. 時点を再現する:約定時刻、気配時刻、企業イベント時刻をそろえ、その瞬間に取得できた情報だけで特徴量を計算します。
  3. 基準戦略を置く:複雑なモデルだけを評価せず、売買しない場合、単純移動平均、等金額などと同条件で比較します。
  4. 費用を引く:手数料、スプレッド、価格インパクト、借株料、未約定を別々に見積もります。
  5. 未知期間で固定する:閾値や窓を凍結し、結果が悪くても途中で変更せず記録します。
売買出来高を均等なバケットへ分けて注文フローの毒性を測る分析。AI生成。
検証とリスク管理を具体化した図解

バックテストで最低限残す指標

年率リターンや勝率だけでは足りません。取引回数、平均保有時間、グロス利益、スプレッド負担、価格インパクト、最大ドローダウン、最悪10取引、銘柄別寄与、時間帯別寄与を分離します。パラメータを少し変えただけで利益が消えるなら、発見したのは市場構造ではなく標本固有の偶然かもしれません。

さらに、シグナル発生から注文送信までの遅延を100ミリ秒、1秒、5秒など複数置き、成績の減衰を調べます。理論上の終値やミッド価格でのみ約定する検証は避け、買いはアスク、売りはビッドを基本に、参加率が高い注文には追加のインパクトを課します。

資金管理の具体例

1回の許容損失を運用資金の0.25%とし、損切りまでの想定価格幅が0.8%、通常のスリッページが0.1%なら、実効損失幅は0.9%です。運用資金1,000万円なら許容損失2万5,000円÷0.009で、建玉上限は約277万円です。ただし板に対して大き過ぎる場合は、出来高参加率による上限を優先します。モデルの確信度が上がったからといって許容損失そのものを増やさない方が、検証誤差に耐えやすくなります。

よくある失敗と停止条件

大量の機械的執行でもVPINは上昇し、必ずしも情報取引ではありません。急変を事前検知したように見えても、価格変動を使った売買分類が結果へ混入する循環性があります。危機事例だけを選ぶと成功して見えるため、全期間の偽陽性率と見逃し率を必ず併記します。

停止条件は損益だけでなく、入力データ欠損、スプレッド急拡大、推定係数の範囲逸脱、モデル残差の構造変化にも置きます。異常時に自動で新規注文を止め、既存建玉をどの価格・時間で縮小するかを事前に決めます。停止後に原因を確認せず同じ設定で再開すると、モデル劣化と一時的ノイズを区別できません。

小さく導入するための4段階テスト

第一段階は売買を伴わないシャドー運用です。実時刻にシグナルを記録し、取得遅延、欠損、計算時間を測ります。第二段階は最小単位での実注文です。バックテストが仮定した価格と実約定の差を、銘柄・時間帯・注文方式別に分解します。第三段階では通常予定額の25%、第四段階では50%へ増やします。各段階を一定取引数こなすまで進めず、利益が出た日数だけを昇格条件にしません。

昇格判定には、想定スリッページに対する実績、注文拒否率、未約定率、シグナルから約定までの遅延、最大日次損失を使います。例えば実スリッページの中央値が想定の1.5倍、95%点が2倍を超えた場合は、資金を増やす前にコストモデルを再推定します。取引量を増やした瞬間に価格影響が非線形に大きくなるため、少額での成功を比例拡大しないことが重要です。

成績が良く見えたときに確認すること

まず、利益が数日・数銘柄へ集中していないかを確認します。上位5取引を除くと損失になるなら、再現性より偶然の影響が大きい可能性があります。次に、同じ日の複数取引を独立標本として数えていないかを見ます。共通ニュースで同時に動いた取引は実質一つのベットです。日次またはイベント単位へ集約して信頼区間を計算します。

パラメータの近傍も重要です。窓20だけが利益で、19と21が損失なら採用を保留します。窓15〜30、閾値1.5〜2.5など合理的な範囲で収益面が滑らかに残るかを調べます。また、相場上昇期、下落期、高ボラ期、低ボラ期へ分け、どの環境で損益が生まれたかを確認します。全環境で勝つ必要はありませんが、不得意環境をリアルタイムで識別できないなら、年間平均だけを根拠に大きな資金を置けません。

実務チェックリスト

  • データのタイムゾーンと同時刻処理を固定したか
  • 価格調整、限月交代、売買停止を処理したか
  • 未来情報を使わず特徴量と標準化を計算したか
  • パラメータ選択回数と不採用結果を保存したか
  • スプレッド、手数料、インパクトを差し引いたか
  • 通常時だけでなく急変時の損失を確認したか
  • モデル停止・再開の責任者と条件を決めたか

まとめ

高度な指標は、単独で売買方向を教える魔法のサインではありません。価値があるのは、曖昧だった需給、流動性、変動、状態変化を測定可能な形へ変え、どの条件で使えなくなるかまで定義できる点です。計算式、入力時点、費用、停止条件をセットで設計し、単純な基準より未知期間の判断が改善したときにだけ採用します。

p-nuts

お金稼ぎの現場で役立つ「投資の地図」を描くブログを運営しているサラリーマン兼業個人投資家の”p-nuts”と申します。株式・FX・暗号資産からデリバティブやオルタナティブ投資まで、複雑な理論をわかりやすく噛み砕き、再現性のある戦略と“なぜそうなるか”を丁寧に解説します。読んだらすぐ実践できること、そして迷った投資家が次の一歩を踏み出せることを大切にしています。

p-nutsをフォローする
クオンツ投資
スポンサーリンク
【DMM FX】入金
シェアする
p-nutsをフォローする

コメント

タイトルとURLをコピーしました