MQL4インジケーターのサインが1分から5分に変えてまた1分に戻した時に
サインが消えてる場合があります。
ソースコードで自分なりにリペイントしないようにしたつもりなのですが
リペイントします。

ソースコードでどこを変更すればリペイントしないようになりますか?
よろしくお願いします。

bool Gi_100 = FALSE;
bool Gi_104 = FALSE;
bool Gi_108 = FALSE;
bool Gi_112 = FALSE;
int Gi_116 = 0;
bool Gi_120 = FALSE;
bool Gi_124 = FALSE;

// E37F0136AA3FFAF149B351F6A4C948E9
int init() {
SetIndexStyle(0, DRAW_ARROW, EMPTY, 1);
SetIndexArrow(0, 241);
SetIndexBuffer(0, G_ibuf_76); 
SetIndexStyle(1, DRAW_ARROW, EMPTY, 1);
SetIndexArrow(1, 242);
SetIndexBuffer(1, G_ibuf_80); 
return (0);
}

// 52D46093050F38C27267BCE42543EF60
int deinit() {
return (0);
}

// EA2B2676C28C0DB26D39331A336C6B92
int start() {
int Li_8;
double ima_12;
double ima_20;
double ima_28;
double ima_36;
double ima_44;
double ima_52;
double irsi_60;
double irsi_68;
double irsi_76;
double Ld_84;
double Ld_92;
int Li_100 = IndicatorCounted();
if (Li_100 < 0) return (-1);
if (Li_100 > 0) Li_100--;
int Li_0 = Bars - Li_100;
for (int Li_4 = 0; Li_4 <= Li_0; Li_4++) {
Li_8 = Li_4;
Ld_84 = 0;
Ld_92 = 0;
for (Li_8 = Li_4; Li_8 <= Li_4 + 9; Li_8++) Ld_92 += MathAbs(High[Li_8] - Low[Li_8]);
Ld_84 = Ld_92 / 10.0;
ima_12 = iMA(NULL, 0, FasterEMA, 0, MODE_EMA, PRICE_CLOSE, Li_4);
ima_28 = iMA(NULL, 0, FasterEMA, 0, MODE_EMA, PRICE_CLOSE, Li_4 + 1);
ima_44 = iMA(NULL, 0, FasterEMA, 0, MODE_EMA, PRICE_CLOSE, Li_4 - 1);
ima_20 = iMA(NULL, 0, SlowerEMA, 0, MODE_EMA, PRICE_CLOSE, Li_4);
ima_36 = iMA(NULL, 0, SlowerEMA, 0, MODE_EMA, PRICE_CLOSE, Li_4 + 1);
ima_52 = iMA(NULL, 0, SlowerEMA, 0, MODE_EMA, PRICE_CLOSE, Li_4 - 1);
irsi_60 = iRSI(NULL, 0, RSIPeriod, PRICE_CLOSE, Li_4);
irsi_68 = iRSI(NULL, 0, RSIPeriod, PRICE_CLOSE, Li_4 + 1);
irsi_76 = iRSI(NULL, 0, RSIPeriod, PRICE_CLOSE, Li_4 - 1);
if (irsi_60 > 45.0 && irsi_68 < 45.0 && irsi_76 > 45.0) {
Gi_104 = TRUE;
Gi_112 = FALSE;
}
if (irsi_60 < 55.0 && irsi_68 > 55.0 && irsi_76 < 55.0) {
Gi_104 = FALSE;
Gi_112 = TRUE;
}
if (ima_12 > ima_20 && ima_28 < ima_36 && ima_44 > ima_52) {
Gi_100 = TRUE;
Gi_108 = FALSE;
}
if (ima_12 < ima_20 && ima_28 > ima_36 && ima_44 < ima_52) {
Gi_100 = FALSE;
Gi_108 = TRUE;
}
if (Gi_100 == TRUE && Gi_104 == TRUE && Gi_116 != 1) {
G_ibuf_76[Li_4] = Low[Li_4] - 0.8 * Ld_84;
if (Li_4 <= 2 && Alerts && (!Gi_120)) {
Alert(Symbol(), " ", Period(), " Signal:BUY! ");
PlaySound(Symbol()+".wav");
Gi_120 = TRUE;
Gi_124 = FALSE;
}
Gi_116 = 1;
} else {
if (Gi_108 == TRUE && Gi_112 == TRUE && Gi_116 != 2) {
G_ibuf_80[Li_4] = High[Li_4] + 0.8 * Ld_84;
if (Li_4 <= 2 && Alerts && (!Gi_124)) {
Alert(Symbol(), " ", Period(), " Signal:SELL! ");
PlaySound(Symbol()+".wav");
Gi_124 = TRUE;
Gi_120 = FALSE;
}
Gi_116 = 2;
}
}
}
return (0);
}