Testing with Third-Party Data Offline

 

Hello all,

Hopefully someone more intelligent at coding/MT4 than I can help me.

I'm backtesting offline on MT4 with my own data. My broker's usual MINLOT and LOTSTEP = 0.01.

 

When offline,

Print(MarketInfo(Symbol(),MODE_MINLOT));

and

Print(MarketInfo(Symbol(),MODE_LOTSTEP));

both return 0.1.

This is resulting in an "OrderSend error 131" due to my position sizing being in the format of xx.xx00000000xx after normalizing the value.

What can I do to solve this?

Thanks and have a great day. 

 
Are you testing with tick data? How & when are you creating the tick file? Various account settings are embedded in the header of the fxt file.  including minlot, lotstep etc.
 

I'm testing with tick data converted to 1m data so it's usable by MT4.

All the tick and 1m data are csv files.

 
you may need to go online briefly, run a test then go offline again ? 
 

I believe going online will cause the history center to be filled with server data, which I don't want. Possible there's a way around that.

Does anyone know if there is a way to manually change MODE_MINLOT and MODE_LOTSTEP when not connected to any servers? 

 

I'm guessing: 

  • copy your ./history/BROKERSERVER/*.hst files somewhere safe. 
  • go online
  • run short backtest
  • go offline
  • copy back hst files. - also for good measure make them read only 

I suspect the info is in ./config/BROKERSERVER.srv if you can find the format, you can patch it


 
I don't see either of those files anywhere, I'm just going to alter my position sizes to a less accurate value for now.
Reason: