A few sentences in advance before I come to my question: unlike in live trading, I usually don’t give much attention to the “official” balance that I get in the strategy tester via AccountInfoDouble(ACCOUNT_BALANCE).
The reason behind this is that - with a low spread ECN broker - I need to emulate commissions and swap in order to get more realistic results (and also for future position sizing the remaining balance/equity AFTER the sum of all commissions is much more interesting than a phantasy number as result of almost “free” trades). These commissions are calculated in USD, but my account currency is EUR. Apart from that, with most currency pairs that I trade the ‘quote’ currency or ‘profit’ currency also often is USD or JPY, so in order to keep my “real” net balance updated, I always need to convert from profit currency to account currency myself via substraction of the execution prices of exit and entry, multiplying with the contract size (lots*size of the standard lot) and dividing by the current exchange rate of that day, so e.g. EURUSD or EURJPY. In order to achieve this, I use SymbolInfoDouble for the real time exchange rate. All this only matters in the strategy tester, cause in real trading balance is balance and I don’t need to emulate commissions cause their automatically withdrawn.
And here comes the interesting thing with the strategy tester: if I ignored commissions and swap, I should get the same net result for an individual trade as the difference between the current “official” balance and the last balance before this trade. But the result is often different by several percent. I can only imagine that the problem is a wrong exchange rate used by the strategy tester. If the testing periods is several years in the past, the exchange rate for profit currency–>account currency could have been much different at that time than today.
So here is the question: does anybody know if the strategy tester simply uses the exchange rate of today, even if the test period is several years in the past? This would lead to significantly wrong results! I mean: if the tester did otherwise and actually used up-to-date rates, I should see the download of all the historical data e.g. for EURUSD (=in addition to the rates of the traded symbol on the chart) in the journal when the test starts - but I don’t as long as these data are not requested for my own emulations.
Any ideas?