MQL4 Reference Working with Events EventSetMillisecondTimer


The function indicates to the client terminal that timer events should be generated at intervals less than one second for this Expert Advisor or indicator.

bool  EventSetMillisecondTimer(
   int  milliseconds      // number of milliseconds



[in]  Number of milliseconds defining the frequency of timer events.

Returned value

In case of successful execution, returns true, otherwise - false. To receive an error code, GetLastError() function should be called.


This feature is designed for the cases when high-resolution timer is required. In other words, timer events should be received more frequently than once per second. If a conventional timer with the period of several seconds is enough for you, use EventSetTimer().

Usually, this function should be called from OnInit() function or in class constructor. To handle events coming from the timer, an Expert Advisor or an indicator should have OnTimer() function.

Each Expert Advisor and each indicator work with its own timer receiving events solely from this timer. During mql4 application shutdown, the timer is forcibly destroyed in case it has been created but has not been disabled by EventKillTimer() function.

Only one timer can be launched for each program. Each mql4 application and chart have their own queue of events where all newly arrived events are placed. If the queue already contains Timer event or this event is in the processing stage, then the new Timer event is not added to mql4 application queue.