Can Identical Settings Provide Different Backtesting Results? - page 2

 
Fernando Morales: When I do backtests with no internet connection I get strange results. I always thought the reason is MT4 does not know some of the symbol properties like tick value, tick size, stop level

Yes, that can happen! That is why you should first run one back-test while still connected in order to collect all the necessary data, then you can disconnect and run all the subsequent back-tests and optimisations using the constant values that were collected. So, even if you use "custom" for spread it will remain constant no matter what value it collected.

EDIT: In my case I don't need to disconnect because I produce my own FXT files with real tick data and all the constants such as stops level, swaps, etc. are all coded into the FXT file which I protect by setting them to read-only so they do not get overwritten.

 
Here are the logs from the first trade taken on either system:


1

2003.08.29 00:00

  

sell

  

1

  

0.14

  

0.68970

  

0.00000

  

0.00000

  
  

2

2003.09.01 00:00

  

modify

  

1

  

0.14

  

0.68970

  

0.69850

  

0.00000

  
  

3

2003.09.02 00:00

  

s/l

  

1

  

0.14

  

0.69850

  

0.69850

  

0.00000

  

-161.95

  

9838.05




1

2003.08.29 00:00

  

sell

  

1

  

0.14

  

0.68970

  

0.00000

  

0.00000

  
  

2

2003.09.01 00:00

  

modify

  

1

  

0.14

  

0.68970

  

0.69850

  

0.00000

  
  

3

2003.09.02 00:00

  

s/l

  

1

  

0.14

  

0.69850

  

0.69850

  

0.00000

  

-161.94

  

9838.06


How is the above possible?


Note: I was connected to the internet when running the above test, but the tests are on EURGBP (my account is denominated is GBP, so no conversion rate issue should apply), the spread is still fixed and everything else identical. The tests are run within 10 seconds of each other (on the same PC).

 
Fernando Carreiro:

EDIT: What build of MetaTrader v4 are you using?

Build 1090.

Fernando Carreiro:

Are these normal single back-tests or multiple Optimisation runs?

Single back tests.

 

koranged: Here are the logs from the first trade taken on either system:

1

2003.08.29 00:00

  

sell

  

1

  

0.14

  

0.68970

  

0.00000

  

0.00000

  
  

2

2003.09.01 00:00

  

modify

  

1

  

0.14

  

0.68970

  

0.69850

  

0.00000

  
  

3

2003.09.02 00:00

  

s/l

  

1

  

0.14

  

0.69850

  

0.69850

  

0.00000

  

-161.95

  

9838.05


1

2003.08.29 00:00

  

sell

  

1

  

0.14

  

0.68970

  

0.00000

  

0.00000

  
  

2

2003.09.01 00:00

  

modify

  

1

  

0.14

  

0.68970

  

0.69850

  

0.00000

  
  

3

2003.09.02 00:00

  

s/l

  

1

  

0.14

  

0.69850

  

0.69850

  

0.00000

  

-161.94

  

9838.06

How is the above possible?

Note: I was connected to the internet when running the above test, but the tests are on EURGBP (my account is denominated is GBP, so no conversion rate issue should apply), the spread is still fixed and everything else identical. The tests are run within 10 seconds of each other (on the same PC).

Your account balance may be GBP, but your test balance does not seem to be set to GBP as the values do not match, because that was a 88 pip loss and at £10 per ppip-lot, it should have been a loss of £123.20, not 161.94 as is shown.

So you are in fact suffering from a conversion rate difference, because you are probably using USD as the back-test balance deposit currency because £123.20 is approximately equivalent to $161.94 according to the current exchange rate.

 
Fernando Carreiro:

Your account balance may be GBP, but your test balance does not seem to be set to GBP as the values do not match, because that was a 88 pip loss and at £10 per ppip-lot, it should have been a loss of £123.20, not 161.94 as is shown.

So you are in fact suffering from a conversion rate difference, because you are probably using USD as the back-test balance deposit currency because £123.20 is approximately equivalent to $161.94 according to the current exchange rate.


You're right, that is the problem, I didn't notice that. 

Thanks again Fernando.

Reason: