記事の目次

根拠と適用範囲

TradingViewとSierra Chartはプロファイルの構築と各プラットフォームの規則を説明しています。資料が説明するのはツールであり、ここで提案する価格定着・反落ルールの利益を検証したものではありません。TPOは時間に基づく別の表現なので、特徴量の定義を変えずに代用できません。[1] [2] [3]

データと市場数量単位が明確な価格別約定データ、または近似と明示した下位時間足データを使います。再現には固定した取引日程、ティックサイズ、集計打ち切り時刻が必要です。
研究対象の時間足日足バージョンと日中バージョンは、それぞれ個別にテストする必要があります。この記事で示されているウィンドウ長は、研究上の設定であり、最適化された推奨事項ではありません。
六つの仮想価格区分は99から105まで。POCは[101,102)。本記事の規則による範囲は[100,103)で、全出来高135単位のうち105単位を含みます。図解を原寸で開く
独自の仮想例。六つの価格区分は99から105まで。POCは[101,102)。本記事の規則による範囲は[100,103)で、全出来高135単位のうち105単位を含みます。

実践の流れ

実践手順: 出来高プロファイル:POC・バリューエリアと売買ルール
詳しい手順を以下に示します。各段階でデータ不足や条件不成立があれば、除外理由を記録します。
  1. プロファイル間隔を選択してくださいエンドポイントとセッションカレンダーの両方を把握しておく必要があります。
  2. 固定価格の行を集計数量単位と基準原点を統一し、区分幅をティックサイズの整数倍にする。
  3. 1つの値領域アルゴリズムを適用する同率時の処理、目標割合、拡張を止める規則を固定する。
  4. 価格の反応を待つ価格の定着と反落では、別々のエントリー条件と無効化条件を使う。
  5. 構築規則への感度を検証取引データ、概算値、および現実的な約定値を比較してください。

出来高プロファイルは価格別約定量、TPOは時間区分ごとの到達を測る

POC は、最も出来高の多い価格行です。バリューエリアは、ターゲット比率と拡張アルゴリズムを使用して選択された POC を中心とした連続した領域です。VAH と VAL はその上端と下端です。高出来高ノードと低出来高ノードは、比較的活発な領域または疎な領域を表し、バリューエリアの境界と一致する必要はありません。TradingView は、より短い時間枠の観測と上昇/下降出来高の使用について説明しています。[1]

TPO は、取引量をカウントするのではなく、時間ブロック内で価格レベルが訪問されたかどうかを示します。[3] 少額の取引で繰り返し訪問されたレベルは、多くの時間的機会を蓄積しますが、取引量は少ない可能性があります。そのため、ボリューム POC を TPO POC に置き換えると、チャートのラベルが似ていても、測定される数量が変わります。

どちらの表現も、将来の流動性をすべて明らかにするものではありません。過去の約定取引量は現在の未約定注文とは異なり、取引量の多い地域であっても、現在その地域に誰がポジションを保有しているかは分かりません。このプロファイルは、その後の価格変動と照らし合わせて検証するための記録された分布として扱い、機関投資家の確実な支持を示す地図として捉えるべきではありません。

区間と価格行の構造を固定する

完了した前回のセッション、両端点が既に判明している範囲、または固定の移動間隔を選択します。表示範囲プロファイルは、チャートをズームすると変化し、表示ウィンドウを明示的なルールに設定しない限り、探索ツールとして機能します。開発中のプロファイルは、現時点で利用可能な情報のみを使用します。完了したセッション終了時のプロファイルは、その日の早い時間帯の開始取引の指針にはなりません。[2]

ビン幅はティックサイズの倍数とし、実験前に固定する必要があります。価格pはfloor((p−origin)/bin_width)を使用して割り当てます。固定された原点により、新たな高値が発生しても過去のビン境界が移動することはありません。取引サイズの単位は一貫して使用し、コイン数量とドル取引高を複数の取引所で同じ測定値として合算しないでください。

取引価格帯の間には空白行を残してください。これは、バリューエリアの拡大において連続性が重要となるためです。出来高ゼロの行を削除すると、離れた価格帯が隣接する価格帯のように見えてしまう可能性があります。正確な上限値をどのように割り当てるかを明記し、計算、チャートラベル、注文発注において、同じ半開区間の規則を使用してください。

集計バーから価格別出来高を再構築する際は、配分近似を文書化してください。OHLCVだけでは、レンジ内の約定の正確な分布はわかりません。過去のシグナルとリアルタイムのシグナルが同等であると仮定する前に、重複するサンプルの取引データと近似値を比較してください。

価値領域目標は完全なアルゴリズムではない

提案されている規則は、POC から始まり、隣接する行を比較して、ボリュームの多い隣接行を追加します。同点の場合は上の行を選択し、POC が同点の場合は最低価格を選択します。対象ボリュームが合計の 70% に達するかそれを超えるまで拡張を続けます。これらは明示的な調査規則であり、すべてのプラットフォームが同じ領域を計算するという主張ではありません。

この記事で確認したTradingViewの文書は、次の行を加えると目標を超える場合、その行を加える前に停止する規則を説明しています。[1] したがって上記の方式と結果が異なる場合があります。特定プラットフォームの再現には、同率処理、価格行の構築、バージョンを含む実際の規則に従う必要があります。

POCを選択する前に、正の総ボリュームを持つ空でないヒストグラムを必須とします。セッションが不完全な場合、またはデータ欠損が品質ポリシーに違反している場合は、利用不可のプロファイルを返します。実行漏れを捏造したり、空のヒストグラムによって一見有効なサポートレベルが生成されることを許容したりしないでください。

histogram = aggregate_trade_size_by_fixed_price_bin(trades_before_cutoff)
if len(histogram) == 0: return INSUFFICIENT_DATA
if any(not finite(v) or v < 0 for v in histogram): return INVALID_DATA
if sum(histogram) <= 0: return INSUFFICIENT_DATA
poc = first_lowest_price_argmax(histogram)
lo = hi = poc
covered = histogram[poc]
target = 0.70 * sum(histogram)
while covered < target:
    left = histogram[lo-1] if lo > 0 else -1
    right = histogram[hi+1] if hi+1 < len(histogram) else -1
    if right >= left:
        hi += 1; covered += histogram[hi]
    else:
        lo -= 1; covered += histogram[lo]
VAL, VAH = lower_edge(lo), upper_edge(hi)
freeze_profile(cutoff, bin_width, poc, VAL, VAH)

六つの価格区分で見る計算規則の差

価格区分[99,100)、[100,101)、[101,102)、[102,103)、[103,104)、[104,105)の出来高は順に10、30、50、25、15、5です。合計は135です。POCは中心101.5の[101,102)行です。70%の目標数量は94.5です。

本記事の規則では50から始め、下側の隣接行の出来高30を加えて80にし、次に上側の隣接行の25を加えて105にします。VAL=100、VAH=103となり、実際の包含率は105/135、約77.78%です。目標超過の前に止める規則なら25の追加を行わず、80/135、約59.26%にとどまります。

どちらの構成でも、異なる境界値を生成しながら70%設定を表示できます。これは、どちらの出力も70%の確率で反転、抑制、または利益が発生することを意味するものではありません。このパーセンテージは、過去の出来高に対する構築目標を表しています。

ブレイクアウト失敗の例として、価格が固定された VAH の 103 を上回った後、102.5 まで下落した場合が挙げられます。その後、102 まで下落した VAH を代入すると、元の参照が書き換えられます。新しい領域に対して古いシグナルを判断するのではなく、候補に添付されているプロファイルのスナップショットを保持してください。

受容と拒絶は別々の戦略である

提案する価格定着後のロングは、固定した前セッションのプロファイルを使います。VAHに0.1 ATRを加えた水準より上で二本連続して終値を付け、その後五本以内の最初の再テストがVAH−0.15 ATRより上を保ち、再テスト足の高値を上抜くことを要求します。次の約定可能な機会に入り、ストップは再テスト安値より下に置きます。再テストのないブレイクは見送ります。

提案されているリジェクション・ショートルールでは、VAHを上回る高値の後、その下を終値で下回り、その後リジェクションバーの安値を下回る必要があります。ストップロスはイベントの高値の上に設定されます。POCが凍結状態にある場合、実際の約定後もその距離がリスクに対して必要な報酬を提供する場合にのみ、ターゲットとして使用できます。

価格定着と反落は逆の仮説なので、別々の状態機械が必要です。相場環境フィルターは結果から後付けせず、イベント前に定義します。反落を狙った取引が継続候補に変わる場合は、負け取引を改名せず、事前の遷移規則に従って新しいイベントを記録します。

ATRバッファと五本の期限は提案値です。事前登録した少数の設定範囲を試し、最終評価標本は未使用のまま保ち、見送りや期限切れも報告します。出来高の薄い価格帯でのスリッページは重要ですが、過去の取引の少なさだけで将来の流動性不足は証明できません。

優位性を主張する前に、構造の感度を測定してください。

両方のデータタイプを含むセグメントで、トレードベースのプロファイルとバー近似を比較します。POCまたはバリューエリアの境界がビンを変更する頻度と、候補状態が変化する頻度を測定します。見た目が似ている2つのチャートでも、エッジ付近では異なるストップロスとエントリーポイントが生成される可能性があります。

同じソース、セッション、カットオフルールを使用して、あらかじめ定義された少数の行幅をテストします。チャート上に既に表示されているサポートに合わせて調整するのではなく、ティック経済性に基づいて幅を選択します。実行を固定したまま、価格のみのベースラインと、POCおよびバリューエリア境界までの追加距離を比較します。

プロファイル欠落率、約定なし率、スプレッド、スリッページ、純期待値、ドローダウンを報告してください。正しいヒストグラムは計算の妥当性を検証するものであって、戦略の妥当性を検証するものではありません。有益な調査結果の結論は、測定可能なメリットがない場合も含め、現実的な実行と合理的な構築選択において、その機能が有効であるかどうかを明記する必要があります。

よくある落とし穴

セッションの早い段階で最終プロファイルを使用する

完了した分配には、決定時点ではまだ執行されていなかった執行も含まれる。

すべての 70% 値領域を同一として扱う

拡張と停止の規則によってバリューエリアの境界は大きく変わり得る。

過去の出来高を待機注文の流動性と同一視

実行されたアクティビティは、現在の注文状況全体を明らかにするものではありません。

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

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

0/8 項目

よくある質問

ボリュームプロファイルはTPOと同じですか?

いいえ。一方は価格ごとの約定数量を集計し、もう一方は各時間区分でその価格に到達したかを記録します。

70%のバリューエリアは、価格がそこへ戻る確率70%を意味しますか?

いいえ。過去の出来高分布を構成するための目標割合です。将来の値動きとの関係は別途検証が必要です。

研究資料

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

  1. Volume profile indicators: basic conceptsTradingView. POC、値領域、下位時間枠の入力、および文書化された展開規則。 確認日: .
  2. Volume By PriceSierra Chart. プロファイル設定、価格別出来高、時間とともに更新される基準水準。 確認日: .
  3. Time price opportunity charts explainedTradingView. TPOの時間区分ごとの価格到達と、出来高ヒストグラムとの違い。 確認日: .

関連する手法

リスクについて

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

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

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

App StoreでBacktestをダウンロード