記事の目次

根拠と適用範囲

FidelityとTradingViewはRSIとダイバージェンスについて解説しており、TA-Libは数値比較のための実装を提供しています。これらの資料は、ここで提案する設定の勝率や収益性を保証するものではありません。

データと市場同じ銘柄と価格調整方式による終値とピボットを使います。RSI自体は出来高を入力に使いません。出来高は追加の特徴量であり、そのデータ出所も確認する必要があります。
研究対象の時間足H=1と日足データは調査例です。RSI14は、異なる時間軸で異なるリターンシーケンス、保有機会、および執行コストを示します。
価格は98で100よりも低い安値をつけ、一方、図解ラベルRSIは25から33へと上昇し、その後価格は103.2を上回ります。図解を原寸で開く
価格、出来高、およびRSIのラベルは、いずれも合成的な仮定値です。RSIは、短縮された価格系列から再計算されたものではありません。

実践の流れ

実践手順: 通常型と隠れ型のRSIダイバージェンス:未来の情報を使わないピボット対応付けと価格確認
詳しい手順を以下に示します。各段階でデータ不足や条件不成立があれば、除外理由を記録します。
  1. RSIを計算します初期値・平滑化・ウォームアップの仕様を固定する。
  2. 2つのピボットを待つ確認済みの同種の極値を対応付ける。
  3. 関係性を分類する価格、RSI、および以前のコンテキストを比較してください。
  4. 価格確認をお待ちくださいその間のスイングとTTLを固定します。
  5. コスト控除後の有用性を測る構造的な価格のみに基づく基準値と比較してください。

勢いが弱まることは、反転と同じではない

フィデリティは、RSIが強いトレンド[1]の間、極端な状態を維持する可能性があると指摘しています。したがって、RSIが70を上回っていることは、自動的な売り指示ではありません。RSIが低い状態で高値が高くなると、さらなる上昇につながる可能性もあります。持続的な反転の前に、いくつかのダイバージェンス候補が現れる可能性があり、戦略の期間内に反転しないトレンドもあります。

RSI は、平滑化されたプラスとマイナスの終値の変化を比較します。TradingView は、RMA ベースの計算 [2] を文書化しています。提案された実装では、gain=max(C[t]−C[t−1],0) と loss=max(C[t−1]−C[t],0) を設定し、14 の変化の平均をシードとして、L に対して同じ再帰で G=(13G+gain)/14 を更新します。G+L>0 の場合、RSI=100G/(G+L) が実行されます。

価格とRSIは独立した証拠ではありません。RSIは価格から計算されます。ダイバージェンスは極値とそこに至る経路の有用な差を表す可能性がありますが、価格パターンと一致する別のラベルが付いても、証拠が自動的に倍になるわけではありません。

4つのバリアントには、明示的なアンカーとコンテキストが必要です。

ベースラインは、同じタイプの連続する確定価格ピボットをペアにし、各ピボットの occurred_at で RSI をサンプリングします。2 番目のピボットが確定した後でのみペアを評価します。RSI アンカーを最も魅力的なオシレーターの極値まで数バースライドさせないでください。別の RSI ピボット検出器では、一致するウィンドウと両方の検出器からの可用性が必要になります。

提案する許容幅は、第2ピボットの前のATRから求めるepsilon=0.1×ATRと、RSIポイント単位のd=5です。通常型の強気ダイバージェンスは安値切り下げとRSI上昇、隠れ型の強気は事前に確立した上昇トレンド内の安値切り上げとRSI低下を必要とします。弱気は対応する関係を逆にします。文脈は最初のアンカーより前に分かっていなければなりません。

差の大きさの条件は微小な数値差をダイバージェンスと呼ぶことを防ぎますが、有用性は検証が必要です。価格差、RSI差、両点の間隔をバー数で保存し、過去の選択をやり直さずに棄却候補を分析できるようにします。

変種p2の価格とp1の価格の比較p2 の RSI と p1 の比較提案された事前の文脈
通常の強気前の点よりepsilonを超える差で低い前の点よりdを超える差で高い先行する下落
通常の弱気前の点よりepsilonを超える差で高い前の点よりdを超える差で低い先行する上昇
隠れた強気前の点よりepsilonを超える差で高い前の点よりdを超える差で低いすでに確認された上昇トレンド
隠れた弱気前の点よりepsilonを超える差で低い前の点よりdを超える差で高いすでに確認された下降トレンド
when p2 becomes confirmed:
    p1 = previous_confirmed_pivot_of_same_kind(p2)
    if p1 is None or RSI[p1.i] is missing or RSI[p2.i] is missing: return
    bull_regular = p2.price < p1.price-eps and RSI[p2.i] > RSI[p1.i]+d
    if bull_regular:
        trigger = highest_confirmed_swing_between(p1,p2)
        freeze_candidate(p1,p2,trigger,expires_in=10)
# Evaluate a close crossing only after activation.
# If the trigger was crossed before activation, reject or use a separate late-entry version.

ウォームアップと境界値は再現可能でなければならない。

TA-Lib のソースはシードと数値動作 [3] のチェックをサポートしていますが、比較なしにプラットフォーム出力が同一であると想定すべきではありません。提案されているフラットシリーズ規約では、G=L=0 の場合に RSI=50 にフラットフラグを設定します。L=0<G の場合は RSI=100、G=0<L の場合は RSI=0 です。これらの分岐を明示的にテストしてください。

調整前の高値と安値でピボットを検出する際は、分割調整後の終値からRSIを計算しないでください。欠落したバーがあると、平滑化とピボットの位置の両方が変わる可能性があります。インジケーターのバージョン、シード、ルックバック、ピボットの規則、許容範囲は、調査マニフェストに保存してください。

数値フィクスチャの場合、十分なウォームアップの後、単調上昇終値系列、単調下降系列、および完全に平坦な系列を入力します。次に、ゲインとロスをそれぞれ1つずつ挿入し、再帰値を段階的に比較します。初期化によって生じたRSIの差異は、発散ロジックの不一致として解釈される前に解決する必要があります。

確認済みのダイバージェンスでもエントリー条件が不利な場合がある

合成例: 安値 p1=100 には RSI=25 があり、安値 p2=98 には RSI=33 があります。ATR=2、epsilon=0.2、および 8 ポイント上昇した RSI は d=5 を超えます。p2 が確認されると、既に知られている中間スイング高値 103 が価格トリガーになります。その後、103.3 で終値をつけると、103.2 のバッファ付きトリガーを超えます。

次の実行可能エントリが103.4で、ストップが97.8の場合、初期価格リスクは5.6ポイントです。2Rのターゲットは114.6で、元の乖離構造からはかなり離れています。ストップ前に114.6に到達すれば、この合成ターゲットは満たされますが、これは過去の成功率の推定値ではありません。

エントリーなしで失敗:p2=98の後、価格は97→94へと推移し、103を決して超えません。候補は無効または期限切れとなります。98付近で即座に買いを入れる代替戦略は、損失をそのまま保持しなければなりません。構造的なトリガーを待つバージョンの結果を借りることはできません。

エントリー後の失敗もあります。ブレイクアウトで注文が約定してから、価格が構造上の安値を下抜ける場合です。検出器が二つのアンカーの関係を正しく識別しても、取引仮説は損失になり得ます。検出・トリガーの妥当性と実現結果を別々に報告します。

活性化、無効化、および重複候補

提案されたTTLは、確認後10バーです。エントリー前に、p2−bufferを下回る新たな安値が発生した場合、強気の通常の候補は無効になります。エントリー後は、登録済みのストップマーケットルールとタイムエグジットルールを使用してください。セットアップを非経済的にするギャップは、事前提出拒否の正当な理由となりますが、既に約定した注文を消去することはできません。

複数のアンカーの組み合わせで、同じ基本的な考え方を表現できます。ベースラインは、隣接する同じタイプのピボットをペアにし、それらのIDからイベントIDを作成します。3つのローのダイバージェンスは、より多くの選択肢を持つ別のモデルであり、単に3本の線を引くことができるからといって、3つの独立した取引を意味するものではありません。

候補がアクティブになった時点で、中間構造トリガーを固定します。ピボット確認の遅延中にそのレベルが突破された場合は、古い設定を明示的に拒否するか、後からエントリーするバージョンを登録します。トリガーを、より良い約定をもたらす後のスイングに更新すると、仮説が変わり、遡及的な選択が生じる可能性があります。

ボリュームに独立して検証可能な役割を与える

一つの仮説として、p2への下落局面では活動が低下し、その後価格ブレイクアウト時に活動が活発化するというものがある。期間の異なる局面における生の合計値ではなく、バーあたりの平均出来高または同時刻のRVOLを比較する。出来高が多いにもかかわらず価格変動が小さいだけでは、吸収を証明するものではない。

3つの分岐を使用します。構造的な価格トリガーのみ、同じトリガーにダイバージェンスを加えたもの、そしてダイバージェンスに出来高を加えたものです。ストップロス、サイズ、執行はすべて同じにしてください。これにより、オシレーターの関係性の価値と活動の価値を区別し、すべての改善を最後に追加したインジケーターに帰属させることを回避できます。

取引量の多いサブセットにおける取引コストを検査します。フィルターを使用すると、スプレッドが広い、または不利なギャップが大きいニュース主導のブレイクアウトを選択できます。残りの約定における勝率だけでなく、却下された候補と機会の数も報告します。

ダイバージェンスの各種類を別々に検証する

通常と隠れた、強気と弱気のバリエーションを別々に報告します。RSI の長さ、ピボット ウィンドウ、または d を選択するために使用しない最終期間を保持します。多くの構成を試して魅力的なチャートのみを公開しても、再現可能な選択プロセスは確立されません。

フィクスチャでは、確認前にシグナルが出現しない状態で、p2が前のバーで描画できること、およびRSIが一致する価格タイムスタンプで正確にサンプリングされていることを確認する必要があります。フラットなシーケンス、不十分なウォームアップ、重複する候補、およびミラーリングされた弱気データを含めます。

候補数、トリガー率、キャンセル率、待機時間、イベントごとの純収益、およびポートフォリオのエクスポージャーを測定します。ブレイクアウト後のエントリーはシグナル終値よりも大幅に悪化する可能性があるため、スプレッドとストップギャップにストレスをかけます。乖離が開発外で登録された結果を改善せずに複雑さを増す場合、構造的ベースラインは有用な結果のままです。

よくある落とし穴

目視によるポイントのマッチング

固定された期間なしに、各価格安値付近で最も都合の良いRSIの安値を選択することは再現性がありません。

トレンド中の繰り返しの乖離

勢いは減速する可能性があるが、価格は依然として同じ方向に急激に動き続けることがある。

隠しバリアントと通常バリアントの混合

彼らの文脈に関する仮説は異なり、集計された統計データは正反対の行動を隠蔽する可能性がある。

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

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

0/8 項目

よくある質問

ダイバージェンスは、ピボットポイントが確定する前に底値を特定できるのか?

これは、消滅する可能性のある暫定的な候補を使用する場合にのみ適用されます。この基準は、公開履歴が安定するように確認を待つ必要があります。

RSIをMACDに置き換えるべきでしょうか?

同じ価格トリガーと執行ポリシーを用いて、増分情報を比較してください。魅力的な事例ごとにオシレーターを切り替えることは、テスト可能なシステムを定義するものではありません。

研究資料

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

  1. Relative Strength IndexFidelity. ダイバージェンスと買われすぎ・売られすぎ解釈の限界を参照。 確認日: .
  2. Relative Strength IndexTradingView. RMAの計算式とRSIの解釈を参照。 確認日: .
  3. TA-Lib RSI implementationTA-Lib. 計算のソースコードを参照。収益性のある取引戦略を示す資料ではありません。 確認日: .

関連する手法

リスクについて

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

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

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

App StoreでBacktestをダウンロード