実現したいこと
MT4にてサインツールを作成しています。
条件を満たすと矢印サインをチャート上に出現させ、同時にアラートを鳴らす。
サインが表示されたのち、一度消えて再度出現したときにもアラートを鳴らす。
といったものを作成しようとしています。
発生している問題
以下のソースを書きました。
コンパイルは正常に完了し、狙ったところで矢印サインを表示させることはできたのですが、実行した瞬間からアラートがなり続けてスピーカーが壊れました。。。
いろいろ調べてみましたが、原因がわからず困り果ててます。
どなたか、ご教授のほどよろしくお願いいたします。
bool AlertFlag = false; int OnCalculate(const int rates_total, const int prev_calculated, const datetime &time[], const double &open[], const double &high[], const double &low[], const double &close[], const long &tick_volume[], const long &volume[], const int &spread[]) { int i; int limit; if (prev_calculated == 0) { limit = rates_total - 1; } else { limit = rates_total - prev_calculated; } for (i=limit; i>=0; i--) { double XXXXXX; double XXXXXX; double XXXXXX; double XXXXXX; double XXXXXX; string msg1 = Symbol(); string msg2 = "M"+IntegerToString(Period()); string msg3 = "High sign"; string msg4 = "Low sign"; if (i + Bands_Period <= Bars) { up[i] = EMPTY_VALUE; down[i] = EMPTY_VALUE; if(条件) { down[i] = High[i] + ArrowOffset * Point; if(AlertFlag == false) { Alert(msg1,",",msg2,":",msg4); AlertFlag = true; } } else if(条件) { up[i] = Low[i] - ArrowOffset * Point; if(AlertFlag == false) { Alert(msg1,",",msg2,":",msg3); AlertFlag = true; } } else { AlertFlag=false; } } } return(rates_total); }
試したこと
upとdownをEMPTYにする処理を、AlertFlagをファルスにするelse関数の中に入れてみましたが、減少は変わりませんでした。
あなたの回答
tips
プレビュー