With this strategy, in GBPJPY and GBPUSD makes loses on actual market channel conditions, even reducing the time frame from H1 to M15. I believe that on a breakout, the bunch of positions than happen to be on the correct side will gain, while the inverse positions will hit stop loss, and then I will see the huge gains. Like the behavior seen on simulation.
Last edited by Forexpal; 04-10-2009 at 13:44. Reason: Typo
The EA is nice, and I tried to understand how it works...
(Original EA, without martingale).
- for backtesting, I copied the two .dat files in the "...\tester\files" folder
- for 1-28 feb. I setted the parameter "basic" on true (the .dat files are filled with data). Then I compared the "trained" results with the filtered signals (base = false) for feb., and started the trading for mar.
- for 1-31 mar. I setted the parameter "basic" on true (the .dat files are filled with data). Then I compared the "trained" results with the filtered signals (base = false) for mar., and started the trading for april.
For the parameter "close_orders=true or false" I obtained different results, but not better...
- The saving of the win and loss trades, with the relations of the MAs is not necessary, it is possible to simulate the trades for a last period and calculate online the metric.
- The metric calculation is very nice, and can be also used as filter for many other indicators.
Trailing stop feature added huge potential to this EA.
To obtain similar results, it is first needed to set the “base” to “true”, run a simulation, and then set to false again.
On live demo account, when other bots loose, I put the Eucledian and it recovers the loses.
Have not the time to evaluate it deeply as I would. Anyone helping, welcome.
Externalized the trailing step in order to have less trailing modifications.
Thanks to all.
Here is a modified version with a ADX-60M and 15M filter. Should keep us out of a consolidating market. Forexpal, I think we have it now!
Think of adversity as that tiny piece of sand that gets trapped in the oyster's shell. Although it's a pain in the oyster's arse, he eventually makes a pearl out of it.
http://hft.serialcoder.com/ -- Quantitative Market Reversal Levels --- The only indicator you'll ever need.
A problem with the expert advisor as it stands (and quite possibly why we are seeing such stellar performances) is that it is curve fitting.
During the "training" cycle we are storing all trade examples.
On "test" we are accepting the trade when a majority of examples agree
with what we are seeing. However as we are including the initial trading
example in this (which will always be correct) we will see an (incorrect)
Cutting a long story short, to remove the curve fitting component, we
must remove all samples with a 0 euclidan distance from evaluation.
[change 'Euclidean_Metric' function]
dist = 1000000000; // remove curve fit samples
Metric[i] = dist;
You'll now start seeing more trustworthy results.
The best way of finding out if "it is" or "it is not", is to let it trade live for a period, afterwards run a backtest for the selected period, and see what you get.
Will let you know the results. Thanks Mick.
Thanks ForexPal, what you say is quite true.
I think the effect I was seeing was exasperated by my settings, as the ratio of wins to losses in the "training" section should have also be reflected in the "buy_threshold" and "sell_threshold". (ie i had set my take profit to less than my stoploss so in the training section my probability of winning was pretty much on 0.6, whereas I should have increased the thresholds to be more meaningful)
Nice coding, whoever made the EA....