コンテンツにスキップ

【移植#09】OnChartオシレータ — メインチャートにRSIを重ねて表示する

OnChartオシレータ実行画面

この記事の3行まとめ

  • RSIなどのオシレータをメインチャート上に重ねて表示するインジケータです。
  • メインチャートの「移動平均(MA)」を基準とし、日足等の「ATR」から算出したバンド幅内に値をスケーリングします。
  • 視覚的に価格変動とオシレータの過熱感を同時に確認しやすく、マルチタイムフレーム分析にも役立ちます。

背景と目的:なぜメインチャートにオシレータを重ねるのか?

通常、RSIやStochasticなどのオシレータは、メインチャートの下にあるサブウィンドウに表示されます。しかし、この表示方法だと常に「メインチャートの価格」と「サブウィンドウのオシレータ」を上下に視線移動させながら確認することになり、視覚的な直感性を欠く場合があります。

また、サブウィンドウの固定された高さを無意識に価格の変動幅と結びつけて誤認してしまうことも少なくありません。

元記事(2009-12-07 OnChartオシレータ)でFAI氏が紹介したアイデアは、こうした問題を解決するためにオシレータをメインチャートの「ある値幅の中で動くように正規化(マッピング)する」というものでした。

動作原理:ATRバンド内へのスケーリング

オシレータの値(例えばRSIの0〜100)そのままではメインチャートの価格帯(例:150.00円付近など)には描画できません。そこで以下のステップで描画を行います。

  1. 基準線(Center Line)の算出: チャートの価格に沿うように移動平均線(MA)を引きます。
  2. 描画範囲(ATR Bands)の決定: MA を中心として、上位足(デフォルトは日足)のATR値に一定の倍率(Band_Multiplier)を掛けた範囲を「上限」と「下限」に設定します。
  3. マッピング:算出したオシレータの値(0〜100)を比率に変換(例: 70なら0.7)し、ステップ2の下限から上限までの幅の中で、その比率に対応する価格帯に点をプロットします。

MQL5ソースコードとダウンロード

以下からインジケータをダウンロードし、ご自身の環境でお試しいただけます。

09_OnChart_Oscillator.mq5 をダウンロード

パラメータの解説

  • General Settings
    • Oscillator Type: 使用するオシレータを選択します(RSI または Stochastic)。
  • MA Settings (基準線)
    • MA Period: 基準となる移動平均線の期間。
    • MA Method: 移動平均線の計算方法。
    • MA Applied Price: 移動平均線の適用価格。
  • ATR Band Settings (描画範囲)
    • ATR Timeframe: バンド幅の基準とするタイムフレーム(日足推奨)。
    • ATR Period: ATRの期間。
    • Band Multiplier: 上下のバンド幅を広げるための倍率(例: 1.0=ATRの1倍)。1分足などでバンド幅が広すぎる場合は、値を小さく(0.1等)して調整できます。
  • Oscillator Settings
    • RSIおよびStochasticの各計算期間等の一般的なパラメータです。

使用上のポイントと注意点

メリット

メインチャートから一切視線を逸らさずに、トレンドの方向(MAの傾き)とボラティリティの範囲(ATRバンドの広がり)、そしてオシレータとしての過熱度合い(RSIの上限・下限への到達)を1つの視界で確認することができます。

Timeframeの使い分け

元記事でも指摘されている通り、基準となるATRを現在のチャート足(例:1分足)として設定すると、変動幅(ボラティリティ)が極端に縮小した際にバンドも非常に狭くなり、結果としてオシレータの値動きが「極端に増幅して見える」という弊害が生まれます。「日足(D1)」などの上位足をATRの基準とし、Band Multiplier を使って現在足に合う幅へスケーリングするのが正しいアプローチです。