Besides efficiency, MqlRates also provides historical Spreads. This should allow Zorro to save all MT4 price data as Ask, be consistent and actually make historical MT4 data usable.
Historical spread values are only used in MT5 and not MT4. (Just tested it... they read zero.) The Mqlrates struct was implemented for MQL5/MQL4 forwards(!) compatibility only.
I believe MqlTick structs are not available on a historical basis but only on a live-stream basis.
I downloaded history into MT4's History Center on two servers - one in UTC (Alpari) and another in ET(Gain). Both had UTC timestamps.
Your server hosts were kind enough to enforce UTC timestamping.
But to write a Zorro plugin that accounts for all servers (including the one in my screenshot, look closely...), it must enforce an offset based on time difference between reported server time and UTC.
Your server hosts were kind enough to enforce UTC timestamping.
What will be the timestamps of data downloaded into Oanda's MT4 terminal database?
Quote:
it must enforce an offset based on time difference between reported server time and UTC.
It just requires a more sophisticated logic; roughly, compare the last knownreported MT4 server time on Friday to 21:00/22:00 UTC on Friday (rather than to UTC at request).
In the example I show, Oanda MT4 is 14:19 at 19:19 UTC, so it is off by five hours. The script output is in the log at the bottom.
I can hop to a UTC enforced MT4 server and the numbers will match.
MT5: You’re asking if historical spread is available? Very likely implemented in MT5 and not difficult to implement in the MT5 plugin. Ask nicely, and they might implement it.