How to detect a new bar ?

you can use this code:

static datetime Old_Time;

datetime New_Time[1];

bool IsNewBar=false;

// copying the last bar time to the element New_Time[0]

int copied=CopyTime(_Symbol,_Period,0,1,New_Time);

if(copied>0) // ok, the data has been copied successfully

{

if(Old_Time!=New_Time[0]) // if old time isn't equal to new bar time

{

IsNewBar=true;   // if it isn't a first call, the new bar has appeared

if(MQL5InfoInteger(MQL5_DEBUGGING)) Print("We have new bar here ",New_Time[0]," old time was ",Old_Time);

Old_Time=New_Time[0];            // saving bar time

}

}

else

{

Alert("Error in copying historical times data, error =",GetLastError());

ResetLastError();

return;

}