【EA化#06】OnChartオシレータの物理干渉EA — 価格とモメンタムの直接交差を狙う¶

この記事の3行まとめ
- メインチャート上にマッピングされた「オシレータ線(RSI等)」と「実際のローソク足」の物理的な位置関係(交差・反発)をトレード条件にした画期的なEAです。
- サブウィンドウの数値ではなく、「価格が自身のモメンタムによって作られた壁を実体でブレイクしたか」を監視します。
- トレンド中の「売られすぎからの急反発」や「一時的なレジスタンス突破」を視覚的かつ直感的に捉えることができます。
なぜ「価格」と「オシレータ」を直接交差させるのか?¶
前回移植した【移植#09】OnChartオシレータの最大の特徴は、「実際のチャート価格(Y軸)」と「オシレータの推移」が同じスケール上で共有されていることです。
通常のサブウィンドウ表示(RSIが30を下回ったら…等)では、価格帯とオシレータの値は完全に切り離されています。 しかし、これらを同じレイヤーに重ね合わせたことで、以下のような「通常ではあり得ない(少し変態的な)ロジック」が可能になりました。
「ローソク足の実体が、オシレータの線を下から上に突き抜けたら買い!」
これはつまり、「現在の価格上昇の勢いが、過去〇日間の『買われすぎ/売られすぎの限界水準(壁)』を物理的に凌駕した瞬間」を捉えることを意味します。単なる値ごろ感や数値のクロスではなく、プライスアクションとモメンタムの融合と言えます。
ロジックの全貌(融合型プライスアクション)¶
本EA 06_EA_OnChart_Osc_Cross.mq5 は、以下の「クロス」と「サポレジ反発」を融合させた条件でピンポイントなエントリーを行います。
買いエントリーの条件¶
以下のすべての条件が揃った(確定した)次の足の始値でエントリーします。
- 【環境認識】: 基準線(MA)が上を向いている(上昇トレンド中)。
- 【過熱感の到達】: 1本前の足の安値(Low)が、黄色のオシレータ線にタッチ、または下抜けしている。
- 【モメンタムの突破】: しかし、1本前の足の終値(Close)は、黄色のオシレータ線の上で確定している(実体で反発・ブレイクしている)。
- 【位置フィルター】: オシレータの現在位置が、上下のATRバンドに対して下から特定%以下(デフォルトは30%未満)に沈み込んでいる(極端な売られすぎ状態であること)。
※売りエントリーはこの真逆(MA下向き、高値が線にタッチし、終値が線の下で確定、位置が70%以上)になります。
この条件は、「一時的に売られすぎてオシレータの底にタッチしたが、終値にかけて強烈に買い戻された(下ヒゲで反発、または実体で上抜けした)」という、トレンド相場での極めて勝率の高い押し目買いの形をコードで表現したものです。
バックテスト結果(3年間)¶
このEAは「日足の分厚いATRバンド」という非常に厳格な壁をベースにしているため、15分足や1時間足で稼働させた場合、エントリー回数自体はかなり絞り込まれます。 例えば2025年の1年間だけでは相場付きによっては数回しかエントリーしない場合もあるため、今回は2022年からの3年間(USDJPY H1)でバックテストを行いました。

極端な過熱圏(デフォルト設定:買い=40%以下、売り=60%以上)でのみエントリーを許可するフィルター(Use Extreme Overbought/Oversold Filter)が強力に機能し、騙しを極限まで排除した精度の高いトレードが実現できています。
EAのダウンロード¶
以下からEAのソースコード(MQ5)をダウンロードし、MT5の Experts フォルダに配置してコンパイルしてください。
(※コンパイルと実行には、必ず元のインジケータ 09_OnChart_Oscillator.ex5 又は .mq5 が Indicators フォルダに必要です)
06_EA_OnChart_Osc_Cross_v1.03.mq5 をダウンロード
パラメータ設定¶
基本的なトレード設定(ロット、SL/TP、Trailing Stop)に加え、ベースとなるOnChartオシレータの全パラメータをEAのプロパティから直接変更できるようになっています。
- Trade Settings
Lots: 取引ロット数Stop Loss / Take Profit: 決済ポイント(0で無効化)Trailing Stop: トレール幅(ポイント)
- Filter Settings
Use MA Trend Filter: trueの場合、センターMAの向きによるトレンドフィルターを適用します。Use Extreme Overbought/Oversold Filter: trueの場合、オシレータがバンド内の極端な位置(過熱圏)にある時のみクロス判定を有効にします(推奨)。Overbought Threshold (%): 買われすぎと判定する閾値(デフォルト 60.0%)。Oversold Threshold (%): 売られすぎと判定する閾値(デフォルト 40.0%)。
- Indicator Settings
Oscillator Type,MA Period/Method,ATR Multiplierなど、ベースインジケータの設定を全てカスタマイズ可能です。
より変態的な活用法へのヒント¶
今回は「価格とオシレータのクロス・反発」を採用しましたが、このインジケータを使えばさらに奇抜なEAを作ることも可能です。 例えば、「ローソク足の終値とオシレータ線との『pips単位の距離(乖離幅)』を毎ティック計測し、ゴム紐が極限まで伸び切った(本来の勢いと価格が完全に乖離した)瞬間に逆張りする」といったロジックです。
「数値」ではなく「チャート上の見た目・距離・交差」をコード化することで、思わぬ優位性が見つかるかもしれません。ぜひ自由な発想でパラメータやロジックを弄ってみてください!