SymbolInfoTick and ArrayCopyRates data compatibility

 
Hello everybody!

I ran into some problem of compatibility of tick data and rates.
This simple expert (in attachment) compares rates_bar.high(low) with the maximal(minimal) value of tick.bid for same period, and catches situations when rates_bar.high < tick.bid.max or rates_bar.low > tick.bid.min.
Depending on server(account), results differ.

FXCM-EURDemo01 - incompatibility:
2015.12.09 02:17:05.135    TicksAndRatesCompatibility EURUSD,M1: Alert: 2015.12.09 00:16: RatesOHLCV[1.08887 1.08888 1.08883 1.08885  34] TickOHLCV[1.08876 1.08877 1.08872 1.08874  32]
2015.12.09 02:16:04.574    TicksAndRatesCompatibility EURUSD,M1: Alert: 2015.12.09 00:15: RatesOHLCV[1.08894 1.08894 1.08883 1.08886  76] TickOHLCV[1.08883 1.08883 1.08872 1.08875  65]
2015.12.09 02:15:12.344    TicksAndRatesCompatibility EURUSD,M1: Alert: 2015.12.09 00:14: RatesOHLCV[1.08893 1.08895 1.08892 1.08893  20] TickOHLCV[1.08882 1.08884 1.08881 1.08882  19]

FXCM-USDDemo02 - OK:
2015.12.09 02:22:04.869    TicksAndRatesCompatibility EURUSD,M1: 2015.12.09 02:21: RatesOHLCV[1.08871 1.08873 1.08869 1.08873  27] TickOHLCV[1.08871 1.08873 1.08869 1.08873  21]
2015.12.09 02:21:04.886    TicksAndRatesCompatibility EURUSD,M1: 2015.12.09 02:20: RatesOHLCV[1.08871 1.08872 1.08871 1.08871  13] TickOHLCV[1.08871 1.08872 1.08871 1.08871  11]
2015.12.09 02:20:05.902    TicksAndRatesCompatibility EURUSD,M1: 2015.12.09 02:19: RatesOHLCV[1.08871 1.08872 1.08871 1.08871  16] TickOHLCV[1.08871 1.08872 1.08871 1.08871  14]

FXCM-USDReal05 - incompatibility:
2015.12.09 02:26:30.103    TicksAndRatesCompatibility EURUSD,M1: Alert: 2015.12.09 02:25: RatesOHLCV[1.08875 1.08876 1.08874 1.08875  22] TickOHLCV[1.08886 1.08887 1.08885 1.08886  20]
2015.12.09 02:25:16.209    TicksAndRatesCompatibility EURUSD,M1: Alert: 2015.12.09 02:24: RatesOHLCV[1.08881 1.08881 1.08874 1.08875  28] TickOHLCV[1.08892 1.08892 1.08885 1.08886  25]
2015.12.09 02:24:04.956    TicksAndRatesCompatibility EURUSD,M1: Alert: 2015.12.09 02:23: RatesOHLCV[1.08881 1.08882 1.08871 1.08882  94] TickOHLCV[1.08892 1.08893 1.08882 1.08893  81]

Why does take place so?

Thanks in advance for an answer.

P.S. I am sorry for bad English :)
 

The differences are easy to explain: You don't get all the ticks!

In case there are either too many ticks per time or your program is 'off-line' while calculating you get the most recent tick after that and not all the other interim ticks.

So in your case rates[1] is correct.

 
gooly:

The differences are easy to explain: You don't get all the ticks!

I think that this abnormal situation "when rates_bar.high < tick.bid.max or rates_bar.low > tick.bid.min" is not depend on ticks quantity...
 

ETXCapital-Live2 - OK:

2015.12.09 14:00:00.169    TicksAndRatesCompatibility EURUSD,H1: 2015.12.09 13:59: RatesOHLCV[1.0923 1.09239 1.09228 1.09236  48] TickOHLCV[1.0923 1.09239 1.09228 1.09236  43]
2015.12.09 13:59:00.066    TicksAndRatesCompatibility EURUSD,H1: 2015.12.09 13:58: RatesOHLCV[1.09234 1.09234 1.09219 1.09231  15] TickOHLCV[1.0923 1.09231 1.09219 1.09231  14]
2015.12.09 13:58:00.029    TicksAndRatesCompatibility EURUSD,H1: 2015.12.09 13:57: RatesOHLCV[1.09227 1.0925 1.09225 1.09237  49] TickOHLCV[1.09227 1.0925 1.09225 1.09237  42]

Is it possible that something wrong with FXCM-EURDemo01 and FXCM-USDReal05 servers? Or something wrong with my code?

 

I have heard that some providers were able to send 'fake-ticks' to 'catch' stop-losses?

Is FXCM a market maker broker or ECN broker?

What about asking FXCM directly and let them explain it? Would be nice if you post their answer on that?

 
gooly:

What about asking FXCM directly and let them explain it? Would be nice if you post their answer on that?

So I will do, thank you very much!

P.S. sorry for bad English :)

 
gooly:

Would be nice if you post their answer on that?

Their answer (extract):

"A colleague noted that the discrepancies you sent are off consistently by 1.1 pips, which might be related to the fact that our chart prices and executable prices are not the same, which is an ongoing issue we have with MT4. (The chart data reflects a larger, marked-up spread than what you now have in your account settings/that you get in your live data feed - the historical bid/ask prices stored on the servers for charting does not match the actual spread/bidask pricing you get). If you would compare the chart pricing to your market watch data or to data from the Trading Station platform, you could also see the difference. Regarding this particular issue; we are planning to change/update the servers so that they (the charts and historical prices stored on the servers for charting) reflect the live pricing and lower spread setup that is now common compared to the old spread setup, but there is no ETA on when we'll be able to do that yet. There are a few servers that have this now, I believe they are for other currencies however (EUR and GBP based accounts) - if you are interested, let me know and I can find out exactly which MT4 servers have matching chart/historical/and live price feeds reflecting the same spread.

Reason: