iBarShift – library MetaTrader 5

There are a lot of users who searched for iBarShift function like in MQL4.

But this function is not included in MQL5, mainly because MQL5 provides all necessary basic, low-level, functions to process such operation in a library.

As an alternative, several programmers provided their MQL5 version. I found 4 different versions from circlesquares, komposter (from Codebase), dc2008 (from famous article Migrating from mql4 to mql5) or marketeer (Russian forum).

What I discovered, remarkably, is that all four versions are bugged, in the sense they don’t reproduce exactly the MQL4 iBarShift(). Indeed, when the datetime given as input parameter, don’t match with the opening of a candle, all versions return a wrong value.

So I decided to make some tests about accuracy and speed of these various functions, and of course to develop my version. You can find attached both the library with this new version, and a little script used to benchmark the functions.

Alternative:  Check if there are any new bar - library MetaTrader 5

Results of the iBarShift benchmark for the 5 versions.

As a side note, iBarShift() isn’t always the best way to realize some task in MQL5. Depending of your algorithm, there can be better method.

Edit: 2014.10.03. Version 1.02 posted (fixed a bug if requested time is superior to last bar start time).

📈 ROBOTFX MetaTrader Expert Advisors and Indicators to maximize profits and minimize the risks