カスタムインジケーター

2026/04/18 10:48
40

お世話になります
カスタムインジケーターの矢印で売買したいのですが、
上手く行きません
買いの場合
 条件1 カスタムインジケーター>99999
 条件2 カスタムインジケーター>0
 条件3 カスタムインジケーター<99999
 計算項目は0に設定(データーウインドのBuySignal)  ご確認よろしくお願いします

スクリーンショット 2026-04-18 スクリーンショット 2026-04-18 103754.png                             。

コメント

GogoJungle カスタマー・サクセス
2026/04/23 17:23

カスタムインジケーターの矢印バッファを使って売買したい、というご質問ですね。

ご提示の条件ですと、条件の組み方が原因でシグナルが成立していない可能性が高いです。

まず、今の買い条件は

条件1 カスタムインジケーター > 99999
条件2 カスタムインジケーター > 0
条件3 カスタムインジケーター < 99999

となっていますが、これは AND条件でつないでいる場合、同時に満たせません
なぜなら、

  • 99999より大きい
  • 99999より小さい

を同時に満たすことはできないためです。

こうなっていませんか、という点で申し上げると、
「矢印が出ている時の値」と「矢印が出ていない時の値」を判定したい意図で、複数条件をANDで並べてしまっているケースが多いです。

まず確認したいポイント

カスタムインジケーターの矢印バッファは、インジケーターによって次のような値を返します。

  • 矢印が出たバーだけ「価格」を返す
  • 矢印がないバーは 0
  • 矢印がないバーは EMPTY_VALUE のような非常に大きい値を返す

このため、そのインジケーターが「シグナルなし」のときに何を返しているかで条件の作り方が変わります。

設定方法

データウィンドウで BuySignal を見て、次のどちらかで設定してください。

1. 矢印が出たときに「価格」が入り、出ていないときに「0」が入るタイプ

この場合は、買い条件はシンプルに

カスタムインジケーター(インジケーター名:○○, 計算項目:0, 計算位置:0本前) > 数値(値:0)
↓
買いエントリー

で判定できることが多いです。

ただし、現在足で値が変わることがあるため、より安全にするなら 1本前 を使う方法がおすすめです。

カスタムインジケーター(インジケーター名:○○, 計算項目:0, 計算位置:1本前) > 数値(値:0)
↓
買いエントリー

2. 矢印が出ていないときに「非常に大きい値(EMPTY_VALUE)」が入るタイプ

この場合は、買いシグナルが出たときだけ通常の価格帯になることが多いので、

カスタムインジケーター(インジケーター名:○○, 計算項目:0, 計算位置:0本前) < 数値(値:99999)
↓
買いエントリー

のように、大きすぎる値ではないことを条件にします。

ただし、99999 はあくまで目安です。
インジケーターによっては 2147483647 付近の値を返すこともあるため、データウィンドウで実際の値を見て基準を決めてください。

今回のケースでおすすめの見直し

買い矢印のバッファが BuySignal で、矢印が出たときだけ価格が入るタイプであれば、まずは次のようにしてください。

カスタムインジケーター(インジケーター名:○○, 計算項目:0, 計算位置:1本前) > 数値(値:0)
↓
買いエントリー

売り矢印のバッファが別にあるなら、売りはその売り用バッファ番号を指定して、

カスタムインジケーター(インジケーター名:○○, 計算項目:1, 計算位置:1本前) > 数値(値:0)
↓
売りエントリー

のように設定します。
計算項目 は、データウィンドウに表示される

  • BuySignal
  • SellSignal

の順番に応じて変わります。
BuySignal が 0、SellSignal が 1 とは限らないので、そこもご確認ください。

うまく動かないときの典型例

1. 計算位置が0本前になっている

0本前 は今形成中の足です。
矢印が出たり消えたりするインジケーターだと、バックテストや実運用で安定しないことがあります。

そのため、まずは 1本前 で試してください。

2. 計算項目が違っている

データウィンドウで BuySignal と思っていても、実際には別のバッファ番号のことがあります。
計算項目0で本当に BuySignal が読めているかをご確認ください。

3. インジケーターがサブフォルダに入っている

EAつくーるのカスタムインジケーターは、原則として Indicatorsフォルダ直下 に置く必要があります。
サブフォルダ内だと正しく読めないことがあります。

4. シグナルなしの値が0ではない

この場合、>0 判定では常に真になってしまうことがあります。
データウィンドウで「矢印が出ていないバーの値」を確認し、その値に合わせて条件を作る必要があります。

重要な補足

添付コードを見る限り、現在出力されている条件部分が

if(iClose(Symbol(), 0, 0)+PipsToPrice(0)  ==  iClose(Symbol(), 0, 0)+PipsToPrice(0)) signal = 1;

になっており、これは実質的に

常に true

です。

つまり、現状のコードではカスタムインジケーター条件が正しく反映されていない状態に見えます。
この場合は、EAつくーる側の条件設定が正しく保存されていないか、初期状態の

ローソク足 = ローソク足 → 買いエントリー

が残っている可能性があります。

見直し手順

基本項目

  • ロット数:任意
  • 損切り:任意
  • 利食い:任意
  • スリッページ:任意

オプション

  • 特になければ不要です

取引条件

まず、初期状態の不要な条件を削除したうえで、買い条件を次のように設定してください。

カスタムインジケーター(インジケーター名:ご利用のインジ名, 計算項目:0, 計算位置:1本前) > 数値(値:0)
↓
買いエントリー

もし「シグナルなしで巨大な値」が入るタイプなら、こちらです。

カスタムインジケーター(インジケーター名:ご利用のインジ名, 計算項目:0, 計算位置:1本前) < 数値(値:99999)
↓
買いエントリー
結論

今回の設定では、まず

  • >99999
  • <99999

を同時にAND条件で入れているため成立しない

  • さらに、出力コードを見る限り、取引条件自体が正しく反映されていない可能性がある

という2点が考えられます。

そのため、まずは 条件を1つに絞って

カスタムインジケーター > 0

または

カスタムインジケーター < 99999

のどちらかで試し、計算位置は1本前 にしてご確認ください。
また、取引条件画面に初期条件の

ローソク足 = ローソク足 → 買いエントリー

が残っていないかもあわせてご確認ください。

関連トピックス

検索結果がありません。

ノーコードで誰でも簡単EA開発!MQL言語学習にも使える! | GogoJungle

注目トピックス

検索結果がありません。