Taken 2 years and probably about a thousand + different strategies and literally millions and millions of back testing / optimising runs but finally I may have found it :)
backtest.png results uploaded
I have been really disappointed with the every tick (Most Precise) method as well as the control points method. If I understand correctly the back tester generates it's own set of tick data which is designed to represent the truth by referring to this fiction. control points uses 12 ticks for control points where it has only OHLC (4 point) data to begin with. The backtester should be running only with OHLC data and should have the option for the user to select to open and close trades on the next tick or on the current tick.
Regarding your EA. if you test 2 years data with 100,000 different scenarios you will likely find one that just happens to be really successful just because of how the data falls and not due to real market behavior. Be cautious.
It looks like you are using a Martingale strategy. Martingale strategies can be very successful in the short run and even for a few years possibly. Over time they tend to fail catastrophically unless they include provisions for the account to take a beating before it is hopelessly crippled.
Firstly in so far as you are defining Martingale as "a gambling system of continually doubling the stakes in the hope of an eventual win that must yield a net profit." This is not a MArtingale system. I open each trade with only 1 lot for testing as it gives a truer view of the strategy's success un-muddied by money management issues.
I do agree with the limitations of backtesting none the least of which is that there is built into the process an assumption that one should expect a repeat of history, which when you look at price histories you tend to find that repeating patterns are very allusive. My research also suggests that Metatrader "creates" ticks within bars that may not replicate actual rise and fall patterns within historical price tables / charts.
My position today however about Forex price movement, at least at the 1 Min time period where I prefer to work, is that it may as well be a random data stream for its usefulness in trying to predict the next price tick or even bar. So that Metatrader "creates" ticks to make up the price movement intra 1 Min Bar for me is of no particular consequence because I tend to think of the tick stream in real life as being a random data generated event anyway and so I code and develop trading strategies from that viewpoint.
Having reconciled the few Metatrader deficiencies because frankly there is little else that on balance provides a retail Forex trader like me with such easy access to this HUGE and once exclusive marketplace, and mindful of those limitations when designing and assessing an EA and or the strategy behind it, I think the backtest offers a degree of verification which is better than having nothing at all. It also assists sharpen EA coding, it assists identify strategy variable(s) ranges and helps understand why strategies [more often] fail by giving you a visual history of how your strategy unfolded with what was once [close to] real time trading.
And yes while "every tick" backtest option is slow at least it allows the coder to realise the advantages and pitfalls of trading strategies within the wick part of a bar, whereas the quicker testing based on just price bar Open (and Closes) could miss some important moments during the price travel in these wicks.
And about the apparent randomness of the 1 Min price tick and bar movements there are however couple to a few basic consistencies to be observed, and it is these basic consistencies that I suspect the nirvana trading strategies will exploit.
1. The next price movement is going to be limited within a fairly predictable tight range. You can build an quick little EA to capture the price movement change (be it a rise or fall in price) to see how that bar to bar change size. It is, as expected, a pretty neat distribution bell curve telling us that more often it falls within a "predictable" range.
2. Another consistency is that the next bar will almost always (and it is in the range of 90-99% of the time depending of the time period or Bar size) be below or above the current bar at each measure point in the bar ie any of the OHCL data points. I have read it being described by others as the price is ALWAYS trending.
These consistencies give rise to predictability which intern should give rise to a successful EA trading system
Simply based on the fact that to date having created and then tested thousands of them and failed every time.
This is called trial and error and it is indeed how new (or working) things are discovered.
But has it ever occurred to you that your method of testing itself could be wrong?
Because in that case, you would have run thousands of the same test.
That would be the ultimate waste of time.
So I am not sure how you define "same test" or "Testing Method" My broker sourced 1 Min history has some holes in it so I have set my back testing dates to avoid the holes. Each time that I run a different strategy while I tend to use the same dates - it is a pretty wide stretch of time - particularly for 1 Min bars - and includes a pretty diverse range of trading circumstances so allows a reasonable test of the varying strategies that I have tried over time.
I have a belief also that every failure should present some new learning and or insights so I can't agree entirely with the Waste of time comment.
A little like all of those species that developed, morphed gradually into new species and then eventually died out but were, unknowing to them at the time, on a trajectory to the Human species. While they failed in evolutionary terms and so were a waste of time, ultimately they were key links to a destination (humans) which is a success of sorts.
Let me give you an example.
Suppose that your way of testing does not reveal anything about future performance on real markets.
This would mean that it was not a thousand failures but just one failure repeated a thousand times.
What could you possibly gain by repeating the same failure a thousand times ?
I would say you would gain the knowledge that you have wasted a lot of time,
And finally, hopefully, but not even certainly became aware that there might be a problem with the way you test these things.
I have seen it all, and i learned this, if one is destined to crash and burn, then nothing or nobody can or will change the outcome for this person.
You can tell them a hundred times here is your error don't you see it? you can even show them more promising ways of doing things.
I have taken many people by the hand and guided them step by step.
But as soon as you are out of sight, they will put aside, and discard everything you said, or showed them, and just continue on their path towards destruction.
Nothing or nobody will or can save them, call it faith, or destiny if you want.
So here's what I'll do, im simply gonna tell you, hey , listen you can also test those thousand robots on a demo account.
Not as fast as the backtester, but certainly a lot closer to the fire, and these results just might be a lot different... then what you are used to get from running that thousand in one test.
Or even better jump in with some real capital it does not have to be much if you keep position sizes low, this way you will also deal with the emotional aspect at the same time.
Thats like catching two birds with one stone, because else you would have to deal with that after you found your best robot and this will spoil the fun after that, it will only cost more time.
When you money is at stake you will be forced to concentrate and you will learn fast, accelerating the process many fold !