Download MetaTrader 5

Bypassing Backtesting (Strategy Tester) limitations

To add comments, please log in or register
iRick
95
iRick  

Hi

I'm new-ish to the MT4/EA coding world, although I'm capable enough already to code entry/exit expressions based on multiple indicators/timeframes, change SL/TP, pending orders etc

I'm wanting to outline my EA/Trading logic out here and have some more experienced coders/traders pick it apart...

My strategy is to develop multiple EAs that are fairly consistent across a large history (10yrs+), not to worried if there are extended down or flat periods but are looking for strategies that wouldn't vary too much from a positive trend line

My thinking here is that if I have multiple strategies with uptrends (and not massive drawdowns) then combining them should smooth out the equity curve (providing the Strategies/Pairs are not correlated)

I've got all Timeframes on a few FX Pairs loaded into MT4 from Tickstory but now I'm finding the limitations here are holding me back given I'm wanting to test over 10yrs+ (perhaps this is too long or unnecessary, although I'd prefer to trade a strategy that performed positively every year for previous 10yrs+ than one that performed negatively for early 5yrs then a better positively for the recent 5yrs%, open to input here???)

This in mind I've decided to only concentrate to 1hr+ timeframe strategies, I've also been coding a global variable into the EA to set the candle period (=60) and using this in the Entry/Exit expressions (that are always calculated from indicators with an offset and on the start of a new candle) and I've done this so I can run the Strategy Tester using Open Prices but with the M1 Period (And also including a condition of && Minute() = 0)

Which with the higher timeframes and still using M1 data I can quickly (or at least quicker) perform optimisations and I'm hoping this will create a "swings and roundabouts" situation

From here I could filter out the best performing configs and then run the Every Ticks method (which is obviously going to take a lot longer) I'm yet to connect to Tickstory to perform the Every Ticks (99.9%) level backtest, but this would be my next step if the strategy passes the Open Prices => Every Ticks (90%) tests, I then take the results data (clean it up) and insert it into a SQL database where I've written some SQL that will perform a Monte Carlo simulation to give me an idea of the best/worst outcomes and there likelihood, before testing in a demo account for 3-6months

My questions really is, am I wasting my time with my Open Prices Hack and 90% Every Tick back tests? (which so far seem to performing closely) or is it only worth developing with 99.9% quality data

Does using higher timeframes mellow the need for perfect accuracy data?

Any input would be greatly appreciated

Thanks

Alain Verleyen
Moderator
34434
Alain Verleyen  

It's not possible to answer in general. It depends of the inner details of your strategy.

Though,

  • A H1+ timeframe is for sure less sensible than a lower timeframe.
  • if you get same or similar results on a 10 years backtest on Open Prices and Every tick, that's already a good thing.
  • You should also perform a live test and compare with a backtest (1 month for example, just to check your backtest is worth it).
  • But you can always have serious difference when you will go to a real live account.

iRick
95
iRick  
Alain Verleyen:

It's not possible to answer in general. It depends of the inner details of your strategy.

Though,

  • A H1+ timeframe is for sure less sensible than a lower timeframe.
  • if you get same or similar results on a 10 years backtest on Open Prices and Every tick, that's already a good thing.
  • You should also perform a live test and compare with a backtest (1 month for example, just to check your backtest is worth it).
  • But you can always have serious difference when you will go to a real live account.


Useful input there Alain, Thanks

I'll be keeping an eye on your "MT4 Strategy Tester : good practices, know-how and howtos" thread, which I see there's already a good point regarding spread, reminding me of something I forgot to mention above, I'm backtesting with the bigger than normal spread, hoping that a strategy that works in testing with a higher spread should also work which the switch to live happens

To add comments, please log in or register