大口注文で板を一度に消費すると価格が動きますが、時間を置けば新しい指値が入り、影響の一部が減衰します。Obizhaeva–Wangモデルは、板の深さと回復速度を使って注文の分割間隔を考えます。
- 数値が表すものと、表さないものを分ける
- 未来情報を混ぜずに検証する手順を作る
- 予測精度ではなく費用後損益と損失管理で評価する
なぜこの指標・モデルが必要なのか
大口注文で板を一度に消費すると価格が動きますが、時間を置けば新しい指値が入り、影響の一部が減衰します。Obizhaeva–Wangモデルは、板の深さと回復速度を使って注文の分割間隔を考えます。
仕組みを分解する
ブロック型の板、線形な価格インパクト、指数的な回復を仮定し、初回・中間・最終注文の配分を求めます。回復速度が速いほど待つ価値が増えます。

計算例と数字の読み方
1,000万円の注文で板深度が300万円、回復半減期が10秒なら、一括発注より複数回へ分ける余地があります。ただし価格変動リスクも同時に増えます。
売買・リスク管理への落とし込み
1,000万円の注文で板深度が300万円、回復半減期が10秒なら、一括発注より複数回へ分ける余地があります。ただし価格変動リスクも同時に増えます。
実装手順:データから検証まで
大口約定後の深度とスプレッドを秒単位で追い、回復半減期を時間帯別に推定して、固定間隔との費用差を比較します。
- 仮説を一文にする:何が起きた後、どの期間に、何が変化すると考えるかを先に固定します。
- 時点を再現する:約定時刻、気配時刻、企業イベント時刻をそろえ、その瞬間に取得できた情報だけで特徴量を計算します。
- 基準戦略を置く:複雑なモデルだけを評価せず、売買しない場合、単純移動平均、等金額などと同条件で比較します。
- 費用を引く:手数料、スプレッド、価格インパクト、借株料、未約定を別々に見積もります。
- 未知期間で固定する:閾値や窓を凍結し、結果が悪くても途中で変更せず記録します。

バックテストで最低限残す指標
年率リターンや勝率だけでは足りません。取引回数、平均保有時間、グロス利益、スプレッド負担、価格インパクト、最大ドローダウン、最悪10取引、銘柄別寄与、時間帯別寄与を分離します。パラメータを少し変えただけで利益が消えるなら、発見したのは市場構造ではなく標本固有の偶然かもしれません。
さらに、シグナル発生から注文送信までの遅延を100ミリ秒、1秒、5秒など複数置き、成績の減衰を調べます。理論上の終値やミッド価格でのみ約定する検証は避け、買いはアスク、売りはビッドを基本に、参加率が高い注文には追加のインパクトを課します。
資金管理の具体例
1回の許容損失を運用資金の0.25%とし、損切りまでの想定価格幅が0.8%、通常のスリッページが0.1%なら、実効損失幅は0.9%です。運用資金1,000万円なら許容損失2万5,000円÷0.009で、建玉上限は約277万円です。ただし板に対して大き過ぎる場合は、出来高参加率による上限を優先します。モデルの確信度が上がったからといって許容損失そのものを増やさない方が、検証誤差に耐えやすくなります。
よくある失敗と停止条件
板の回復はニュース時に停止し得ます。平常時の回復係数を急変時へ外挿せず、価格リスク上限を別に置きます。
停止条件は損益だけでなく、入力データ欠損、スプレッド急拡大、推定係数の範囲逸脱、モデル残差の構造変化にも置きます。異常時に自動で新規注文を止め、既存建玉をどの価格・時間で縮小するかを事前に決めます。停止後に原因を確認せず同じ設定で再開すると、モデル劣化と一時的ノイズを区別できません。
小さく導入するための4段階テスト
第一段階は売買を伴わないシャドー運用です。実時刻にシグナルを記録し、取得遅延、欠損、計算時間を測ります。第二段階は最小単位での実注文です。バックテストが仮定した価格と実約定の差を、銘柄・時間帯・注文方式別に分解します。第三段階では通常予定額の25%、第四段階では50%へ増やします。各段階を一定取引数こなすまで進めず、利益が出た日数だけを昇格条件にしません。
昇格判定には、想定スリッページに対する実績、注文拒否率、未約定率、シグナルから約定までの遅延、最大日次損失を使います。例えば実スリッページの中央値が想定の1.5倍、95%点が2倍を超えた場合は、資金を増やす前にコストモデルを再推定します。取引量を増やした瞬間に価格影響が非線形に大きくなるため、少額での成功を比例拡大しないことが重要です。
成績が良く見えたときに確認すること
まず、利益が数日・数銘柄へ集中していないかを確認します。上位5取引を除くと損失になるなら、再現性より偶然の影響が大きい可能性があります。次に、同じ日の複数取引を独立標本として数えていないかを見ます。共通ニュースで同時に動いた取引は実質一つのベットです。日次またはイベント単位へ集約して信頼区間を計算します。
パラメータの近傍も重要です。窓20だけが利益で、19と21が損失なら採用を保留します。窓15〜30、閾値1.5〜2.5など合理的な範囲で収益面が滑らかに残るかを調べます。また、相場上昇期、下落期、高ボラ期、低ボラ期へ分け、どの環境で損益が生まれたかを確認します。全環境で勝つ必要はありませんが、不得意環境をリアルタイムで識別できないなら、年間平均だけを根拠に大きな資金を置けません。
実務チェックリスト
- データのタイムゾーンと同時刻処理を固定したか
- 価格調整、限月交代、売買停止を処理したか
- 未来情報を使わず特徴量と標準化を計算したか
- パラメータ選択回数と不採用結果を保存したか
- スプレッド、手数料、インパクトを差し引いたか
- 通常時だけでなく急変時の損失を確認したか
- モデル停止・再開の責任者と条件を決めたか
観測値を売買判断へ変換する
ブロック型の板、線形な価格インパクト、指数的な回復を仮定し、初回・中間・最終注文の配分を求めます。回復速度が速いほど待つ価値が増えます。 重要なのは、値が高い・低いだけで売買方向を決めないことです。まず同一銘柄・同一時間帯の平常分布と比べ、次に市場全体の変化か個別要因かを分け、最後に実際の約定条件で費用後の改善が残るかを確認します。
基準には全期間平均ではなく、直近20〜60営業日の同時刻中央値とMADを使います。寄り付き、引け、指標発表、満期日を混ぜると正常な変化を異常と誤判定します。正常・警戒・停止の三段階を作り、警戒時は注文量を半分、停止時は新規注文を出さない設計が実務的です。
数字を注文ルールへ落とす例
1,000万円の注文で板深度が300万円、回復半減期が10秒なら、一括発注より複数回へ分ける余地があります。ただし価格変動リスクも同時に増えます。 この数値を受け、通常注文量100%、警戒時50%、異常時0%という段階ルールを事前に決めます。単発の観測だけで元へ戻さず、正常域が複数回続いたことを再開条件にします。
データと検証設計
ローソク足だけでなく、約定時刻、価格、数量、売買方向、最良気配、可能なら複数階層の板イベントを同一時計へそろえます。取引所時刻と受信時刻を混ぜると見かけの先行関係が生まれるため、時計差と欠損率を日ごとに保存します。
イベント前、発生中、1秒後、10秒後、60秒後の窓を固定し、リターンだけでなくスプレッド、板厚、約定率、未約定率、マークアウトを集計します。同じ日の連続イベントは一つのクラスタとして扱い、独立標本数を水増ししません。
最低限残す評価表
| 項目 | 目的 | 警戒例 |
|---|---|---|
| 費用後期待値 | 理論優位性が残るか | 手数料控除後にゼロ以下 |
| 95%点スリッページ | 急変時の尾部損失 | 想定の1.5倍超 |
| 未約定率 | 仮想約定の排除 | 利益局面だけ未約定 |
| 環境別損益 | 依存する相場状態 | 一期間へ利益が集中 |
本番導入の手順
大口約定後の深度とスプレッドを秒単位で追い、回復半減期を時間帯別に推定して、固定間隔との費用差を比較します。 最初は売買を伴わないシャドー運用、次に最小単位、通常予定額の25%、50%の順で増やします。各段階は日数ではなく十分な取引数を満たしてから進めます。
日次損失上限、連続不利約定、データ欠損、遅延、スリッページ超過を別々の停止条件にします。停止後は時間経過だけで自動再開せず、入力データと市場状態の正常化を確認します。
使える場面と限界
この分析は注文方法、参加率、待ち時間、ヘッジ頻度などの改善に向きます。一方、企業価値や長期リターンを直接示すものではありません。短期の市場構造指標で長期投資判断を頻繁に覆すと、時間軸の不整合が生じます。
板の回復はニュース時に停止し得ます。平常時の回復係数を急変時へ外挿せず、価格リスク上限を別に置きます。 結果は一点推定ではなく範囲で持ち、パラメータを少し変えても結論が残るかを確認します。未知期間で単純な基準より費用後成績が改善した場合にだけ採用します。
まとめ
高度な指標は、単独で売買方向を教える魔法のサインではありません。価値があるのは、曖昧だった需給、流動性、変動、状態変化を測定可能な形へ変え、どの条件で使えなくなるかまで定義できる点です。計算式、入力時点、費用、停止条件をセットで設計し、単純な基準より未知期間の判断が改善したときにだけ採用します。


コメント