記事の目次
根拠と適用範囲
Cont、Kukanov、Stoikov は米国50銘柄の OFI と価格影響を研究した。以下の予測・約定モデルは別の実験提案であり、同論文が報告した成果ではない。
実践の流れ
- 注文板を復元取引所のスナップショット/差分規則を適用する。
- OBIとeを計算します表示中の板状態と気配変化の流れを分ける。
- 特徴量の集計区間を完了決定前に得られた観察結果のみを使用してください。
- 注文到着をシミュレーションする遅延、スプレッド、注文待ち行列の仮定を反映する。
- 将来の純収益を評価する予測と同一ウィンドウの説明を分離する。
スナップショットと変化の連続
OBI=(B−A)/(B+A) は、B と A が同時最良買値と最良売値のサイズを表します。マルチレベルバージョンでは、固定レベル数または固定価格距離を使用できますが、どちらを使用するかを明記する必要があります。OBI が +1 に近いということは、表示される買値の厚みが相対的に多いことを意味します。これは、買い手の数をカウントしたり、意図を明らかにしたり、注文が到着したときに買値が維持されることを保証したりするものではありません。
OFI は注文待ち行列の数量と気配価格の変化を測る。原研究は短い区間の価格影響と板の厚みを検討した。[1] この説明関係と、観測を受信してから未来の動きを予測し利益を得る戦略は異なる。
トレードデルタは積極的な約定をカウントします。OFIは、気配値の追加、キャンセル、価格変更も反映します。積極的な買い取引なしに売り注文がキャンセルされた場合、OFIはプラスになることがあります。以前は大きかった買い注文のキューが消えると、プラスのOBIスナップショットと急速にマイナスになるOFIが共存することがあります。
特徴量の集計区間を完了してから予測対象を定める
n−1 から n への更新で、b と a は最良買い/売り気配価格、qb と qa は各数量とする。コードは研究[1]の最良気配だけを使う OFI 定義に従う。価格不変なら、買い数量の変化から売り数量の変化を引いた値になる。価格が変わる場合は単なる数量差ではなく、適切な旧または新キューを使う。
完了したウィンドウ W 全体で e を合計します。可能な正規化には、前の平均深度またはトレーニング データを使用して推定された z スコアが含まれます。将来のテスト期間全体で標準化しないでください。ウィンドウ終了時の OBI、ウィンドウ内の OFI、およびスプレッドは別々の特徴として残ります。B+A=0 またはどちらかの側が欠落している場合は、観測を無効とマークします。
提案された候補の一つは、zOFI>1.5、OBI>0.3、spread≤2ティックと最新データを必要とします。そのターゲットは、観測と注文の遅延後の実行可能な気配値から始まり、H=2秒後に終了します。これらの閾値と期間は研究提案であり、論文で確立された収益性の高い構成ではありません。
取引所イベント時刻と完全な特徴量をローカルで受信した時刻を別々に残す。早い方の時刻から保有を始める予測シミュレーションは、当時未受信の知識を仮定する。特徴量区間内のリターンは説明実験の対象であり、未来の取引利益ではない。
e = I(b>=b_prev)*qb - I(b<=b_prev)*qb_prev
- I(a<=a_prev)*qa + I(a>=a_prev)*qa_prev
OFI_window = sum(e for quote events in completed_window)
OBI = (qb-qa)/(qb+qa)
features_known_at = local_receive_time_of_last_required_event
order_arrival = features_known_at + compute_delay + network_delay
label = executable_exit_price_after(order_arrival,H) - executable_entry_price
# A price move inside the feature window is not future trading profit.
注文板の復元も手法の一部
Bybit の資料は新規スナップショットで板を置換し、数量ゼロの差分で該当価格を削除すると説明する。[2] 実際のスキーマに従う。最良気配のみの配信はスナップショット専用の場合があり、深い板は差分を用いる。全メッセージを増分とする汎用処理は誤った板を作り得る。
取引所が保証する仕様に従い更新ID、クロスシーケンス、時刻を検証する。明記されていなければ全IDが一ずつ増えると仮定しない。再同期後のスナップショットと古い不連続な板との差を巨大な OFI と呼ばず、特徴量区間を再開始する。
公開気配は観測できる一部であり、待機中の全注文ではない。間引きや一括配信はメッセージ間の取消・追加を隠すことがある。結果をその配信頻度で観測した OFI と明記する。トレードデルタとの比較は別の約定チャネルのアグレッサー区分と時刻の意味に従う。[3]
深度の打切りも記録する。上位 K 価格帯だけの板では、個別取消を観測しなくても値動きで価格帯が対象外になり得る。既知の境界外の変化を正確な注文イベントと解釈しない。気配の欠損は数量ゼロではない。
合成計算と実行可能な結果
最良の買い注文が 100.00 で、サイズが 80 で、売り注文が 100.01 で、サイズが 20 であるとします。OBI=0.60。次に、売り注文のサイズが 20 から 5 に減少しますが、買い注文と価格は変更されず、e=+15 になります。これがキャンセルであれば、トレードデルタはゼロです。次に、買い注文のサイズが 80 から 70 に減少しますが、売り注文のサイズは変更されません。e=−10。2 つのイベント OFI は +5 ですが、最終的な OBI=65/75 は、およそ 0.867 です。
特徴量が正でも利益とは限らない。別の仮想成功経路では約定可能な売り気配100.01で買い、所定期間後の買い気配100.04で売る。単位あたり粗利益0.03、往復手数料とスリッページ合計0.01なら純利益0.02。中値100.005が買える値とは限らない。
失敗経路では到着前に厚い買い板が消え、気配が99.96/99.98へ動く。99.98で買い、買い気配99.94へ売って決済すればコスト前0.04の損失。100.00の待機指値は下落開始時にこそ約定する場合がある。不利なタッチだけ未約定、有利なタッチだけ約定保証とはできない。
レイテンシーと注文選択が経済性を決定する
テスト前に、積極的な執行か消極的な執行かを選択してください。積極的な注文はスプレッドを支払う必要があり、注文サイズが大きい場合は複数の深度レベルを消費する可能性があります。消極的な注文では、キュー、キャンセル、逆選択に関する仮定が必要です。注文IDのない集計されたL2では、通常、正確なキュー優先順位が明らかにならないため、保守的な約定シナリオまたは範囲を報告してください。
ティック幅ストップ、固定期間決済、特徴量の反転決済は別規則だ。特徴量の速い変化は過剰な売買回転を生む。待機時間や条件の持続を要求すると回転を減らせるが遅れも増えるため、両方を測る。
配信が古い、市場の規則上想定外の売買気配の交差がある、再同期中のいずれかなら新規建てを止める。既存保有には事前のリスク処理規則で対応する。データ欠損は価格停止を意味しない。
サイズ感度とレイテンシー感度の両方を実行してください。ある機能は中間価格のわずかな変動を予測するかもしれませんが、意図した取引量をサポートできない可能性があります。関連する結果は、表示されている最良気配値での無制限の取引数ではなく、調査対象のサイズにおける約定加重リターンです。
同時回帰を主張するアルファ値に変換しないでください
3つのタスクを分けて考えてみましょう。W期間中の中間価格の変化を説明すること、W期間後の変動を予測すること、そして現実的な遅延時間後にP&Lを測定することです。最初のタスクで高いR二乗値が得られても、3つ目のタスクが確立されるわけではありません。データがシステムに到達する前に、価格が既に反応している可能性もあります。
取引日ごとに分割し、検証境界と重複するターゲット期間を削除します。OFI を使用せずに、ラグ付きリターン、スプレッド、および深度を使用するモデルと比較します。これにより、OFI が情報を追加するのか、それとも主に直前に発生した価格変動を再述するのかがチェックされます。
予測品質とともに売買回転、約定率、純 P&L、極端な損失、遅延と数量への感度を報告する。流動性局面と取引所ごとに評価する。株式の証拠を、同じ閾値と同じコストを仮定したまま暗号資産の無期限契約へ転用できない。
よくある落とし穴
すべての注文を中価格で処理します
これによりスプレッドが排除され、利用可能なリターンが過大評価される。
表示された厚い板を確定需要とみなす
気配注文は取り消せる。参加者の意図は観測できない。
同時適合を予測と呼ぶ
ターゲットは、機能が完全に利用可能になった後に開始する必要があります。
この手法を使う前のチェックリスト
ご自身のデータで確認した項目にチェックを入れてください。進捗はこのブラウザに保存されますが、戦略の収益性を認定するものではありません。
よくある質問
OBIは価格が下落している時にプラスになることはありますか?
はい。板の厚みは一時的で、新たな注文の流れ、取消、他の取引所によって市場は即座に変わり得る。
標準のOHLCVはOFIを再構築できますか?
いいえ。少なくとも、最良の買値/売値と数量のシーケンスが必要です。取引量だけでは、気配値の変動は分かりません。
研究資料
各資料は、その横に記載された定義や根拠を支えています。擬似コード、架空の例、提案パラメータは別途検証が必要です。
- The price impact of order book eventsCont, Kukanov and Stoikov. 要旨とOFIの定義を読みました。対象は米国株50銘柄であり、この戦略のバックテストではありません。 確認日: .
- OrderbookBybit. スナップショット/差分、時刻、公開配信の限界を読んだ。 確認日: .
- Public TradeBybit. 積極的な約定と気配変更を区別するため約定チャネルの項目を読んだ。 確認日: .
関連する手法
リスクについて
この内容は学習と研究設計を目的とし、金融上の助言ではありません。Backtestは過去データのシミュレーションであり、将来の成果を保証せず、実際の売買注文も行いません。このライブラリの手法が、そのままアプリで利用できる機能とは限りません。関連情報: 検証方法 および 学習センター.
実際の資金を使う前にルールを検証する
アプリの対応範囲、データ、個々の模擬取引を確認してください。高度な検出手法は別途実装が必要な場合があります。
App StoreでBacktestをダウンロード