【MQL4テクニック】ローソク足ごとに一回のみアラートを鳴らす方法。アラートが鳴り止まない方必見!!

MQL4テクニック

インジケータにアラート機能を付けた際、「条件を満たし続けていると、アラートが鳴り止まない!」という悩みを抱えたことのある方も多いのではないでしょうか?

こちらの問題の、最も簡単な解決方法をご紹介いたします。

サンプルコード

datetime lastAlertTime;

グローバル変数として、lastAlertTimeを定義します。

if(lastAlertTime != Time[0]) { 
   Alert("Alert!!"); 
   lastAlertTime = Time[0]; 
}

Alert関数の前後をこのように変更しましょう。

アラートが一度でもなると、lastAlertTime変数に今足のオープン時間を格納します。

if文は、今足のオープン時間とlastAlertTime変数の値が一致しない場合に通ります。
これにより二回目以降のアラートはif文で弾かれるので、ローソク足ごとに一回のみアラートが鳴るようになります。

まとめ

条件を満たし続けていると、「アラートが鳴り止まない」「メールが何通も届いてしまう」こんなインジケータやEAは不便ですよね。

  • Alert関数(アラート)
  • SendMail関数(メール通知)
  • SendNotification関数(スマホプッシュ通知)

これらの機能をインジケータやEAに組み込む方は、超重要&必須テクニックです。
今すぐにマスターしましょう!

POINT

こちらの記事で悩みが解決されない場合は、
MQL4 User Community に参加してお気軽にご質問ください。

MQL4初心者の方や開発に行き詰った方の悩みを、 様々なソフトウェアやツールを開発してきた経験豊富なエンジニアたちが解決いたします。