記事の目次

根拠と適用範囲

TradingViewは、時間一致の相対ボリュームを記録しています。ORB論文では、銘柄選択に特定のバージョンを使用しています。この完全な戦略の結果は、RVOL閾値の独立した価値を確立するものではありません。以下のメディアンベースおよびベンチマーク相対のバリアントは、個別のテストが必要です。[1] [2]

データと市場株式、先物、または特定の仮想通貨取引所におけるセッション同期型OHLCV。FX/CFDティックボリュームは明示的にラベル付けしてください。これは約定取引量とは異なります。
研究対象の時間足日足バージョンと日中バージョンは、それぞれ個別にテストする必要があります。この記事で示されているウィンドウ長は、研究上の設定であり、最適化された推奨事項ではありません。
合成のバーRVOLは寄り付きのピーク2.5から1へ低下します。縦軸は相対出来高であり、価格や方向の確率ではありません。図解を原寸で開く
独自の合成図。バーRVOLは寄り付きのピーク2.5から1へ近づきます。縦軸は相対出来高であり、価格や方向の確率ではありません。

実践の流れ

実践手順: 同時刻の相対出来高:未来の情報を使わないRVOLアルゴリズム
詳しい手順を以下に示します。各段階でデータ不足や条件不成立があれば、除外理由を記録します。
  1. 測定方法を選択してくださいバー単位・累積・日次のどのRVOLを使うか検証前に決める。
  2. セッションの時刻を対応させる正しいカレンダー、タイムゾーン、および過去の時間帯を使用してください。
  3. ベースラインを検証する十分な履歴と正の有効な分母が必要です。
  4. 終値を待つ機能を完成させ、利用可能になった日時をタイムスタンプとして添付してください。
  5. 価格候補を絞り込む固定しきい値を適用し、拒否された候補をログに保持する。

ボリュームに関する3つの異なる質問

バーRVOLは、活動の急激な増加を測定します。累積バーRVOLは、セッション開始から現在までの参加状況を測定します。日足バーRVOLは、完了したセッションを測定します。調査の目的に合わせて数量を選択してください。個別のブレイクアウトにはイベントバーを使用する一方、取引日の銘柄選択には累積参加状況を使用する場合があります。どちらの定義がより良い結果をもたらしたかを確認した後は、定義を変更しないでください。

TradingView は、対応する時刻の過去の平均を説明しています。[1] 20セッションの中央値は、例外的な観測値の影響を抑えるために提案する代替手法です。平均値と中央値では同じ銘柄でも順位が変わる場合があるため、各シグナルに基準値の推定方法とサンプル期間の両方を記録します。

取引量の多さは方向性を示すものではありません。継続、拒否、ニュース、強制清算など、様々な状況で発生する可能性があります。価格検出器は、これらの仮説を区別する場所とそれに続く反応を特定する必要があります。また、RVOLは参加者を機関投資家として識別することはできません。アカウントの識別ではなく、活動状況のみを観測するからです。

割り算の前にカレンダーを合わせる

米国株は取引所カレンダーとAmerica/New_Yorkで各セッションの09:30–09:35を合わせます。固定UTC区間では夏時間変更時に寄り付き時刻との対応がずれます。通常・時間外取引、短縮セッション、不完全な配信を分けます。常時取引の暗号資産では日付境界を明示し、十分な完全週があれば曜日と時刻を合わせる正規化を別実験にできます。

分母には過去のセッションのみが含まれます。ベースラインがゼロの場合、または有効な履歴が不十分な場合は、insufficient_data が生成され、RVOL のように極端に大きな値になることはありません。観測値の欠落と真のゼロボリューム区間は異なる状態です。[3] の情報源品質に関する研究は、取引所データの確認を促しますが、すべての取引所に対して普遍的な修正を規定するものではありません。

ベースラインセッションの実際のリストを保存してください。休日や障害が省略された場合、別の研究者がどの観測データがそれを置き換えたかを再構築できるようにする必要があります。以前の有効なセッションを20個取得する選択ルールは、20暦日を取得し、欠落している行を黙って削除するルールとは異なります。どちらのルールも研究対象となりますが、構成識別子を共有してはなりません。

計算と情報入手可能性

擬似コードでは、20 セッションの平均を、独立して指定されたベースラインとして使用します。ORB 論文の複製では、14 セッションの定義を保持する必要があります。[2] 進行中のバーには暫定ボリュームがあり、バーが閉じるまで完了した合計ボリュームは利用できません。この機能で返されるタイムスタンプは出力の一部であり、オプションのチャート注釈ではありません。

累積RVOLは累積出来高の比であり、各バーのRVOLを平均した値ではありません。両式では一日の各時間帯に対する重みが異なります。まず各過去セッションについて同じ時刻のスロットまで出来高を合計し、そのセッション群から基準値を計算します。分母に使うセッションが無効なら、そのセッションを累積観測全体で一貫して扱います。

on_closed_bar(d, k):
    history = previous_valid_sessions(d, count=20)
    if len(history) != 20: return INSUFFICIENT_DATA
    if not complete_valid_slots(history + [d], through=k):
        return INSUFFICIENT_DATA
    assert same_session_slot(history, k)
    base = mean(V[j,k] for j in history)
    cum_base = mean(sum(V[j,0:k+1]) for j in history)
    if base <= 0 or cum_base <= 0: return INSUFFICIENT_DATA
    rvol_bar = V[d,k] / base
    rvol_cum = sum(V[d,0:k+1]) / cum_base
    signal_at = bar_close_time(d,k)
    return rvol_bar, rvol_cum, signal_at

数値例と誤解を招く基準

09:30–09:35 の過去の出来高が平均 100,000 株で、今日 250,000 に達したとします。バー RVOL は 2.5 です。10:00 時点で、現在の累積出来高は 600,000 であり、過去の累積基準値は 500,000 であるため、累積 RVOL は 1.2 となります。絶対的な累積出来高は増加し続けていますが、活動は通常の経路に比べて鈍化しています。

一日平均出来高が5百万株なら、600,000を5百万で割った値は0.12です。つまり、その銘柄では平均的な一日全体の出来高の12%が取引されたことになります。これは、時刻をそろえたRVOLが1.2であるという指標とは異なります。市場全体に影響するイベントの日に、銘柄のRVOLが2、ベンチマークのRVOLが3なら、差は−1ですが、比は約0.667です。引き算と割り算の版では、意味と尺度が異なります。

過去の寄り付き区間の出来高を半分欠落させた配信は失敗例です。分母が100,000から50,000へ下がり、同じ現在データがRVOL5と報告されます。スキャナーが選んだのは強い機会ではなくデータ欠陥です。図は価格系列ではなく合成RVOL系列を示します。

RVOLを価格候補と注文ルールに関連付ける

提案された実験では、まず、直前の完了した 20 本のバーの最高値を上回るブレイクアウトを定義します。終値が凍結レベルを超えたら、時間一致のRVOL ≥1.5を適用します。この閾値は調査パラメータです。確認終値後の次の実行可能なイベントで注文を発注します。最終バーボリュームがまだ不明な場合は、以前のブレイクアウトタッチに約定を割り当てないでください。

RVOLはストップ注文を定義していません。分析ツールは、以前に特定された再テスト安値の下にストップ注文を設定したり、ポートフォリオのリスク制限を課したり、スプレッドがストップ距離に対して大きすぎる場合に新規注文を拒否したりすることができます。ただし、ギャップが発生する前にストップマーケット注文が既に存在していた場合は、実行可能なトリガー約定を受け取る必要があります。最終出来高では、損失を出した取引を遡って削除することはできません。

銘柄の選択とタイミングを区別してください。09:35 の時点で、その銘柄の始値レンジに基づいて銘柄を選択することは、その後のイベントに対して有効です。しかし、最終的な五分間の合計値に基づいて、09:31 の時点でその銘柄を高 RVOL 銘柄と分類することは有効ではありません。意図したシステムが始値レンジ内で取引を行う場合は、経過時間に関する別の特徴量を構築し、それを再現できるバー内履歴を取得してください。

出来高が加える価値を測る

価格候補のセットを1つ固定し、価格のみ、バーRVOL、累積RVOL、ベンチマーク相対RVOLの4つのブランチを比較します。選択をテストする際は、エントリー、エグジット、およびサイジングを同一に保ちます。実行された取引だけでなく、拒否された機会もカウントします。そうしないと、レポートにフィルターの機会費用が表示されなくなります。

期間・流動性群・時間帯を分けて評価し、リスク単位の純期待値、取引数、日あたりリターン、ドローダウン、執行コストを報告します。大半の取引を除いて勝率が上がっても総成績は下がり得ます。最終テスト前に閾値を固定し、実際の受信時刻で同じ規則を監視します。

実装チェックとして有用なのは、一定の履歴ベースライン、ゼロボリュームの分母、不完全な短縮セッション、および夏時間への移行です。将来のセッションは固定の履歴プレフィックスに付加します。以前に発信された特徴値と信号は変更されない必要があります。また、意図的に極端な過去のセッションで平均バージョンと中央値バージョンを比較することで、推定器の意図しない置換が可視化されます。

横断的なランキングでは、決定時点における銘柄群と、RVOL が等しい場合のタイブレークルールを維持してください。過去の市場を代表する銘柄として、現在流動性の高い銘柄の固定リストを選択しないでください。有効な履歴を持つ銘柄数が希望する数より少ない場合は、その少ない銘柄群を保持するか、あらかじめ定められた配分ルールを適用してください。欠落した履歴を捏造すると、実際の実施上の制約が隠蔽されてしまいます。

よくある落とし穴

ローリングバーの時刻が時計の時刻と一致していません

78本の五分足の移動平均は寄り付きと昼間の活動を混ぜます。同時刻比較とは別の特徴量として扱います。

大出来高を買い指示とみなす

RVOLには方向性を示す符号がありません。価格トリガー、無効化、および決済が必要です。

利益結果を使用してサンプルを洗浄します

データ除外は評価前に明記する必要があり、取引の勝敗に左右されてはならない。

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

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

0/8 項目

よくある質問

RVOLの値はいくつが適切ですか?

普遍的な閾値は存在しません。1.5のような値は、セッション、市場、推定器、コストによって意味が異なる候補となる調査パラメータです。

まだ確定していない足も使えますか?

はい、別途定義された経過時間機能を用いて、一致する過去の経過時間と比較します。バックテストには、十分なイントラバーデータが必要です。

研究資料

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

  1. Relative Volume at TimeTradingView. 対応する過去の同時刻に対する通常出来高・累積出来高の定義。 確認日: .
  2. A Profitable Day Trading Strategy For The U.S. Equity MarketZarattini, Barbon, Aziz. ORB研究の五分間・14セッションのRVOLによる選別を記述した一次資料です。この記事で提案する派生版を検証したものではありません。 確認日: .
  3. Crypto Wash TradingNBER. 過去の取引所サンプルで報告された出来高の品質に関する研究。現在の全取引所への一般化はしません。 確認日: .

関連する手法

リスクについて

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

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

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

App StoreでBacktestをダウンロード