記事の目次

根拠と適用範囲

Sierra ChartはNumbers Barsと対角線方向のビッド/アスク比較を説明しています。TradingViewのバー内価格方向による分類は、取引所が提供する成行側の売買区分と同一とは限りません。Bybitはテイカー側の区分を持つフィードの例です。提案した3×閾値の収益性はここでは実証していません。[1] [2] [3]

データと市場タイムスタンプ、価格、数量、および文書化されたサイドセマンティクスを含む約定済み取引、または明示的にラベル付けされたイントラバープロキシ。保留中のオーダーブックのスナップショットは別のデータタイプであり、約定履歴の代わりにはなりません。
研究対象の時間足日足バージョンと日中バージョンは、それぞれ個別にテストする必要があります。この記事で示されているウィンドウ長は、研究上の設定であり、最適化された推奨事項ではありません。
仮想の六価格行に三行のアスク約定スタックがあります。120、80、40を対角のビッド40、20、10と比べると、3×の比率条件と30単位の数量下限を満たします。図解を原寸で開く
独自の仮想図です。六つの価格行に三行のアスク約定スタックがあります。120、80、40を対角のビッド40、20、10と比較し、3×の比率条件と30単位の数量下限を満たします。

実践の流れ

実践手順: フットプリントの不均衡:対角線比較とスタックシグナル
詳しい手順を以下に示します。各段階でデータ不足や条件不成立があれば、除外理由を記録します。
  1. フィードのセマンティクスを検証するテイカー側のラベルと価格方向の代理指標を区別する。
  2. 約定を集計する固定価格グリッドを使用し、重複する取引を削除してください。
  3. 斜めに比較する比率、数量下限、分母ゼロの扱いを固定します。
  4. 価格変動を確認する継続と失敗は、それぞれ別のステートマシンに従います。
  5. 現実的な約定を再現するデータ受信時刻と実行可能な約定を使います。

色を解釈する前にラベルの意味を理解してください

アスクボリュームとは、一般的に買い手が開始したアスク価格での約定を指し、ビッドボリュームとは売り手が開始したビッド価格での約定を指します。取引所がテイカーサイドのフィールドを提供している場合は、そのスキーマに従います。分類が気配値またはティックルールから推測される場合は、推測方法と不明なカテゴリを保持します。Bybit publicTrade.S は、ここで調査したソースではテイカーサイドとして記載されています。[3]

TradingView のフットプリントは、バー内の価格方向を使用して観測値を分類し、利用可能な履歴の粒度は異なる場合があります [2]。そのため、買いや売りなどのラベルは、プラットフォーム間で同じものを測定する必要はありません。分類されたデルタがマイナスの緑色のローソク足は、必ずしも誤りではありません。始値から終値までの動きと符号付きの約定合計は、異なる質問に答えます。

フットプリントは実際の約定を記録します。未約定注文の全体、注文より前の待ち行列全体、約定しなかった隠れた流動性までは示しません。大きな成行買いの集まりも、十分な指値売りに吸収されて価格上昇が止まることがあります。継続か失敗かを判断するには、その後の価格反応が必要です。

対角線上の比較と同一行の比率を分けて行う

Sierra Chartの対角比較は、価格pのアスクでの約定出来高と直下の価格のビッドでの約定出来高を比べ、価格pのビッド出来高と直上の価格のアスク出来高を比べます。[1] 本稿は一ティック幅の行を使い、ask[p]が3×bid[p−tick]以上、ask[p]が30単位以上、かつビッド側の分母が正なら買い側不均衡とします。

連続する 3 つの条件を満たす行が、提案された積み重ねられた不均衡を形成します。比率、下限、および必要な長さは研究設定であり、検証済みの普遍定数ではありません。最小数量には宣言された単位が必要です。30 先物契約、株式、または暗号通貨の単位は、経済的に非常に異なる意味を持ちます。

対応する分母がゼロなら、この版は比率を無限大とせず、相手側出来高ゼロの状態として別記します。分母ゼロを許すプラットフォームは別の変種です。ごく小さな単独約定が過大なシグナルを生まないよう、最小出来高を明示して別途検証します。

連続とは、固定グリッド上の隣接する価格行を意味します。欠落または空の行は、連続値を検索する前に削除することはできません。削除すると、分離した不均衡が積み重なって見える可能性があるためです。グリッドを維持し、最高値または最低値の行に、表示されるバーの範囲外に隣接行が必要かどうかを定義します。

for p in ordered_price_rows(closed_bar):
    a = ask_volume.get(p, 0)
    b = bid_volume.get(p-tick, 0)
    eligible[p] = b > 0 and a >= 30
    buy_imbalance[p] = eligible[p] and a >= 3*b
runs = consecutive_true_rows(buy_imbalance)
stack = first((run for run in runs if len(run) >= 3), default=None)
if stack is not None:
    zone_low, zone_high = row_bounds(stack)
    signal_available_at = closed_bar.received_at

6行の計算と無効化されたクラスター

仮想の各行のビッド/アスク約定数量は、100.00が40/10、100.25が20/120、100.50が10/80、100.75が12/40、101.00が9/15、101.25が8/10です。100.25のアスク120と100.00のビッド40を比べると3×です。アスク80とビッド20は4×、アスク40とビッド10も4×です。

この三つの隣接行は比率と30単位の下限を満たします。101.00のアスク約定量15は、分母が小さく大きな比率になっても数量下限を満たしません。図も同じ値を使い、強調したスタックを手計算で確認できます。

失敗例として、積極的な買いのスタックが抵抗線のすぐ下で形成され、価格がその上を終値で上回ることができず、次のバーがそのクラスターを下回った場合を考えてみましょう。これは吸収仮説と矛盾しませんが、フットプリントだけでは受動的な売り手を特定したり、反転を保証したりすることはできません。

表示された300%という比較値は、定義された二つの出来高の比率であり、成功確率が75%という意味ではありません。比率を取引の成功確率に変換するには、条件付きの結果分布とその不確実性を独立に推定する必要があります。

継続と失敗には異なるステートマシンが必要です

継続ロング案では、事前に固定した価格水準の突破、領域より上の終値、条件を満たす買いスタックが必要です。五本以内にzone_lowを維持する最初の再テストを待ち、その再テスト足の高値を上回る終値を確認します。次の約定可能な機会に入り、事前定義のバッファを加えてzone_lowより下にストップを置きます。確認前にzone_lowより下で引けたら取り消します。

提案されている失敗ショートは、代わりに、レジスタンスラインでの買いスタック、その領域を下回る終値、およびイベント安値のブレイクを必要とします。ストップロスはイベント高値の上に設定されます。テスト前に遷移、実行タイミング、および追加リスクが指定されていない限り、同じ統計内で損失ロングをショートに変換しないでください。

両案とも該当する資金調達・借入費用と現実的な約定を含めます。速い相場では足の確定を待つ間に値動きの大部分が終わることがあります。この遅れは手法の一部であり、後から完成したフットプリントを使って過去の早い時点で約定したことにはできません。

ゾーンの範囲が行の中心間か、行の外縁全体かを記録します。一ティック刻みなら、損切り前に上下端を明示します。損切り幅が狭い場合、四分の一ティックや一ティックの違いでもリスク倍率が大きく変わります。

過去のリプレイはライブ集計と一致する必要がある

シーケンス識別子、取引所時刻、受信時刻、取引ID、未分類出来高を保存します。記録したキーで重複を除き、訂正は当時入手できた情報の規則で扱います。過去データが一分足の代理値でライブが個別約定なら、粒度と分類は一致しません。

収益性を比較する前に、同じフィードと集計ルールに基づいてリプレイを実行してください。市場深度スナップショットでは、スナップショット間のすべての約定を正確に再現することはできません。シーケンスギャップが発生した場合は、結果から欠落している取引側を推測するのではなく、影響を受けるバーをマークし、事前に定義された品質ポリシーを適用してください。

行ごとのティック数を変更すると、比率とスタック長の両方が変わります。候補が作成されたら行サイズを固定し、将来のデータセット全体に基づいて自動的にサイズ調整が行われるのを避けてください。適応型サイズ調整が必要な場合は、履歴ウィンドウと可用性ラグを別の戦略の一部として定義してください。

ネットワーク遅延を反映させる必要がある判断には、受信時刻を使用してください。取引所のタイムスタンプはイベントの順序付けには役立ちますが、トレーダーが既にイベントを受信していたことを証明するものではありません。配信遅延やメッセージの順序間違いをシミュレートして、終値に基づくシグナルが再現可能かどうかを確認してください。

スタックが大きな出来高以上の情報を加えるか検証する

同一価格ブレイクアウトの場合、フットプリントフィルターなし、総出来高のみ、デルタのみ、およびスタックされた不均衡を比較します。エントリーとエグジットは固定するか、タイミング分析と選択分析を明確に分離します。スタックは活発なバーで発生することが多いため、空間パターンが活動量以上の情報を提供しているかどうかを検討します。

R値での純期待値、取引欠落率、約定なし、ドローダウン、レイテンシーとスプレッドに対する感度を報告します。トレーニングデータに基づいて閾値と数量の下限を選択し、最終的な時系列テストを確定します。取引頻度の低下が隠されるのではなく、可視化されるように、却下された候補も含めます。

合成テーブルを正しく色付けすることで、計算とレンダリングの妥当性は検証されますが、実際のトランザクションデータ上で実行可能な戦略の妥当性は検証されません。有益な結論としては、データ分類、市場、期間、コスト、および観察された改善が維持される障害条件を明記することが挙げられます。

よくある落とし穴

緑のセルが多ければ上昇を保証すると考える

大きな成行買いでも十分な指値売りに吸収され得ます。その後の価格反応が重要です。

待機中の注文板全体を推測する

フットプリントは実行された取引を表すものであり、未処理のすべての注文やキューの位置を表すものではありません。

プロキシをテストし、別のライブフィードで取引する

解像度や分類方法が異なると、グラフが似ていてもシグナルが変わる可能性があります。

この手法を使う前のチェックリスト

ご自身のデータで確認した項目にチェックを入れてください。進捗はこのブラウザに保存されますが、戦略の収益性を認定するものではありません。

0/8 項目

よくある質問

300%の不均衡は、75%の勝率を意味するのでしょうか?

いいえ。二つの出来高の比較であり、結果の確率の推定ではありません。

通常のOHLCVは、正確なフットプリントを再現できますか?

いいえ。近似はできますが、価格ごとの正確な約定分布や成行側の売買区分は分かりません。

研究資料

各資料は、その横に記載された定義や根拠を支えています。擬似コード、架空の例、提案パラメータは別途検証が必要です。

  1. Numbers BarsSierra Chart. Numbers Barsにおけるビッド/アスク約定出来高と対角比較の定義。 確認日: .
  2. Volume footprint charts: a complete guideTradingView. バー内価格方向による分類と過去データ粒度の制約。 確認日: .
  3. Public TradeBybit. 取引識別子、タイムスタンプ、およびテイカー側のスキーマ。戦略のパフォーマンスに関する主張は含まれません。 確認日: .

関連する手法

リスクについて

この内容は学習と研究設計を目的とし、金融上の助言ではありません。Backtestは過去データのシミュレーションであり、将来の成果を保証せず、実際の売買注文も行いません。このライブラリの手法が、そのままアプリで利用できる機能とは限りません。関連情報: 検証方法 および 学習センター.

実際の資金を使う前にルールを検証する

アプリの対応範囲、データ、個々の模擬取引を確認してください。高度な検出手法は別途実装が必要な場合があります。

App StoreでBacktestをダウンロード