I've been experimenting with this system with some backtesting, and I wanted to report what I found.
My synopsis is that the system, as it stands, is barely profitable on M15. You need to go up to D1 before the average return on a trade seems robust.
But there is room for improvement, as jf said, with the exit. I haven't done this work, and I am debating whether it is worth doing it or not.
I wrote some code that combines the three entry signals into one. And then some code that added the NonLagMA as the exit. The NLMA was a real pain because it uses all the indicator buffers. I ended up writing some shoddy code that wrote all the NLMA colour change points into a database that another indicator could query. This indicator pulls it all together and draws a line from the entry time/price to the exit time/price.
Goosey_visual_test.png
Next all the trades got written to a databse, recording the pair, timeframe, entry time and price, exit time and price, and the number of points (a point being 0.1 of a pip).
I could then plot the profitability of, say, GBPUSD, M15:
GBPUSD-M15-cumulative-points.png
Not looking so crash hot for this pair. Since the beginning of November, we were up about 150 pips, twice, and more than 200 pips in the hole. Currently clawing its way out of the drawdown.
There were 228 trades on that plot, and the average profit was -2.4 pips. Add in spread + commission and you're losing 4 pips per trade.
OK so let's add in lots more pairs.
M15_cumulative_points.png
The lower plots show the cumulative points (points, not pips, remember) for the following pairs:
AUDCAD, AUDCHF, AUDJPY, AUDNZD, AUDUSD, EURUSD, GBPUSD, USDCAD, USDCHF, USDJPY. I picked these because they were the first in the list of what was offered by my broker.
The higher plot is the overlaid cumulative total of all the currencies.
At first glance, pulling in 2500 pips across 10 pairs in 5 weeks, sounds pretty damn good. But this is across 1565 trades. So there's a mean value of 15 points (1.5 pips), without considering spread and commission. With spread and commission, we're got a net losing system.
Here's the breakdown of currency against mean points per trade:
Code: Select all
AUDCAD 31.66875
AUDCHF 15.3
AUDJPY 18.6685714286
AUDNZD 5.9018404908
AUDUSD 26.2388059701
EURUSD 26.9937106918
GBPUSD -7.92993630573
USDCAD -1.90540540541
USDCHF 18.74375
USDJPY 23.1275167785
We can see that none of the pairs are particularly profitable enough to overcome spread and commission, let alone slippage.
So let's consider higher timeframes. For the data I collected, here is the timeframe vs average points:
Code: Select all
1 3.41844542892
5 10.2164268585
15 15.1305876444
240 69.9966468919
1440 190.481132075
For H4 (240min) we are still only clearing 7 pips per trade. If we allow 1.5-3 pips per trade, then that seems pretty expensive - around half our profit goes to spread + commission + slippage.
For D1, we are getting better. At 19 pips (190 points) per trade, we are at least not losing so much in every trade.
Here is the cumulative points since 2010.
D1_cumulative_points.png
16,000 pips over 947 trades. But for periods of up to a year at a time (like 2015), the strategy goes nowhere.
Shortcomings of the testing
There is no consideration for currently open trades. So quite often it will enter a second trade with one trade still open. I observe that the second trade is often less profitable.
Shortcomings of the strategy
We exit only on the close of a bar where the NLMA changes trend. This means the strategy blindly holds onto massive losing trades like the SNB fiasco. If there was some optimised ATR-based stop, that might greatly reduce the impact of losing trades, and improve the profitability.
Exiting in profit when the NLMA changes means we have already given back some profit. Perhaps a trailing stop might be better.
In this testing all pips are treated the same, which is patently not true. If the profitability of a trade was based on something scaled to ADR, that might make it easier to compare profitability of different currencies.
Where to from here
I'm debating whether this is worth more of my time. At this point, coding the ADR-based stop would take some hours.
Feedback welcome.
You do not have the required permissions to view the files attached to this post.