【MQL4】アラートが五月蠅い!

シグナルツールを作る際にアラートを出せるようにしますが、
適当に作るとめちゃくちゃ鳴りまくってウルサイですよね?


まず、アラートを1回鳴らしたら、次の足まで鳴らないようにしてみましょう。

void alert(string aMsg)
{
    static datetime s_dt = 0;
    if(s_dt != iTime(NULL,PERIOD_CURRENT,0))
    {
        s_dt = iTime(NULL,PERIOD_CURRENT,0);
        Alert(aMsg);
    }
}

PERIOD_CURRENTが現在の時間軸ですので、次に足までアラートが鳴らないようになります。
15分に1回だけでいいなら、PERIOD_M15に変えれば、15分足で次足が出るまでは、鳴りません。

もし何分間と固定の時間で、アラートを鳴らしたくない場合は、このように書くと良いです。

void alert2(string aMsg, int aMinute)
{
    static datetime s_dt = 0;
    if(iTime(NULL,PERIOD_CURRENT,0) - s_dt >= 60 * aMinute)
    {
        s_dt = iTime(NULL,PERIOD_CURRENT,0);
        Alert(aMsg);
    }
}

引数aMinuteで何分間を指定できます。
毎分指定時間を超えているかチェックするには、PERIOD_CURRENTをPERIOD_M1に変更すると、
今の時間軸に関係なく毎分チェックできます。

秒数まで気にする場合は、iTime()を使わずに、TimeCurrent()を使用してください。

では、まただお。

Twitterでフォローしよう

おすすめの記事