Why does Bars in my code freeze my mt4?
i is always greater than 0 . . you while loop never ends.
try
// i = 100; // while(i > 0) // { for(i=100; i>=0; i--){
WHRoeder:
try
List is an array of type string try
I tried that. now it freezes on numbers that it worked on a day before. Here is the code
i = 100; Print("Year: "+TimeYear(Time[i])+" Month: "+TimeMonth(Time[i])+" Day: "+TimeDay(Time[i])+"Hour: "+TimeMonth(Time[i])); while(i > 0) { string match = List[0]; m = 0; for(j = size - 1; j >= 0; j--) { if( (Close[i+j+1] - Open[i+j+1]) > 0)match = StringSetChar(match, m,'u'); else match = StringSetChar(match, m,'d'); //Print("Time of Hour "+TimeHour(Time[i+j]));for debugging m++; } // Print("pattern found is "+match+" at hour " +TimeHour(Time[i]) );//for debugging /*Data to check closing up/down for(j = 0; j<ArraySize(List); j++) { if( (List[j] == match)&&( (Close[i-1] - Open[i-1]) < 0) ) { Frequency[j]++; ListData[j][0]++; } else if( (List[j] == match)&&((Close[i-1] - Open[i-1]) >= 0) ) { Frequency[j]++; ListData[j][1]++; } } */ for(j = 0; j < ArraySize(List); j++) { if(List[j] == match) { m = (i+1)*60+TimeMinute(iTime(Symbol(),PERIOD_M1,(i+1)*60)); k=m+1; while(m>0) { if(iClose(Symbol(),PERIOD_M1,m) <= iOpen(Symbol(),PERIOD_M1,m) ) { if((iHigh(Symbol(),PERIOD_M1,m)>= (iClose(Symbol(),PERIOD_M1,k) + UsePoint*3))&&(iLow(Symbol(),PERIOD_M1,m)> (iClose(Symbol(),PERIOD_M1,k) - UsePoint*3))) { //Print("broke up at "+iHigh(Symbol(),PERIOD_M1,m)); Frequency[j]++; ListData[j][1]++; break; } else if((iLow(Symbol(),PERIOD_M1,m) <= (iClose(Symbol(),PERIOD_M1,k) - UsePoint*3))&&(iHigh(Symbol(),PERIOD_M1,m)< (iClose(Symbol(),PERIOD_M1,k) + UsePoint*3))) { //Print("broke dn at "+iLow(Symbol(),PERIOD_M1,m)); Frequency[j]++; ListData[j][0]++; break; } } else if(iClose(Symbol(),PERIOD_M1,m) >= iOpen(Symbol(),PERIOD_M1,m)) { if((iLow(Symbol(),PERIOD_M1,m) <= (iClose(Symbol(),PERIOD_M1,k) - UsePoint*3))&&(iHigh(Symbol(),PERIOD_M1,m)< (iClose(Symbol(),PERIOD_M1,k) + UsePoint*3))) { //Print("broke dn at "+iLow(Symbol(),PERIOD_M1,m)); Frequency[j]++; ListData[j][0]++; break; } else if((iHigh(Symbol(),PERIOD_M1,m)>= (iClose(Symbol(),PERIOD_M1,k) + UsePoint*3))&&(iLow(Symbol(),PERIOD_M1,m)> (iClose(Symbol(),PERIOD_M1,k) - UsePoint*3))) { //Print("broke up at "+iHigh(Symbol(),PERIOD_M1,m)); Frequency[j]++; ListData[j][1]++; break; } } m--; } } } i--; Print("i is: "+i); }
Here is the portion of my code in question
if I use the commented code to initialize i and compile, my mt4 freezes.
On the other hand if I initialize i to any other number as above it will work.
Pretty Please, How do I solve this problem?