Some of that is down to good fortune in timing, of course, as I also have EAs in forward test which started badly and are only now showing their true potential after several months of sub-standard performance. Likewise, it's only fair to say that I also have EAs which have started well before going into terminal decline. In the case of Forex Cleaner, it's been in forward test for little more than a month at the time of writing this review and, in that time, it has zoomed up towards the top of my leaderboard where it currently sits proudly in third place.
In terms of its modus operandi, I suppose Forex Cleaner could be described as a 'part-time swinger'.
Before my lusty male readers jump to false impressions that this article is all about wife-swap parties, it's probably best if a describe my term of 'swinger' in greater detail. For a start, swing trading is the process of identifying short-term tops and bottoms in the market, and trading the move between those tops and bottoms. As soon as a trade in one direction is exited, the trader generally hops back on board in the opposite direction in the hope that he can profit from the price reversal. Using this approach, trades generally follow a buy-sell-buy-sell pattern.
Forex Cleaner attempts to identify market tops and bottoms for its trade exits, but also applies some additional filtering which means that it won't take every entry unless those additional criteria are met. In other words, Forex Cleaner only swings part-time. What did you think I meant?
About the EA
Forex Cleaner trades without time restriction 24/5 on the 30-minute charts of the EURUSD pair, and determines its trade entries and exits in a manner such that it only trades at the very start of a new 30-minute price bar.
Initially, I think there was a bit of confusion over this behaviour because a forward test on the developer's own website clearly showed trades being closed mid-bar, which I referred to within my earlier Forex Cleaner introductory article on MellyForex here. Having watched Forex Cleaner trade in the MellyForex forward test for over a month now, and having conducted my own strategy tests for this review using an 'every tick' model, I'm now satisfied that my copy of Forex Cleaner is behaving as intended and I'm going to put the anomalies of the developer's own forward test down as being one of life's great unsolved mysteries, ranking alongside that other great mystery in life of why it is that wearing red makes my bottom look big. :?
As might be expected of any EA trading on the 30-minute chart timeframe, the moves between the swing highs and lows can be reasonably substantial, and my strategy tests will show that Forex Cleaner looks to win around 70% of all its trades with an average winning trade size of just over 40 pips and an average losing trade size of about 70 pips. Trade expectancy is around 7 pips per trade, which is markedly higher than the majority of EAs that I have in test at the moment.
Finally, Forex Cleaner only ever has one trade open at a time and is fully NFA hedging and FIFO compliant.
Setting Forex Cleaner Up
In common with many EAs of this day and age, Forex Cleaner is delivered wrapped in its own installer which extracts the relevant files to the necessary MetaTrader folders. The developer tells me that each Forex Cleaner licence permits use on up to three demo and two live MetaTrader accounts.
Regular MellyForex readers will know by now that I like the user interface of my EAs to be simple and easy to use, with only the minimal number of external parameters to adjust. In the case of Forex Cleaner, I'm happy to report that the EA only contains eight external parameters, the main ones being to do with the EA's trade position sizing.
There is also an option within the external parameters which enables users to decide whether to set a stop-loss on each trade. By default, Forex Cleaner sets neither a stop-loss nor a take-profit on its trades and, instead, it uses some dynamic internal hocus-pocus to exit its trades. Obviously some users will be unhappy about the idea of trading without a stop-loss being declared, so the EA also contains an option to set a fixed 135 pip SL on its trades. Use of the fixed stop-loss does not affect the dynamic closing of trades in any way and, if users choose to use the stop-loss function, those stop-losses aren't entered until after an order has been opened, making the EA fully ECN/STP broker compliant.
Because Forex Cleaner is supposed to only open and close its trades at the start of a new 30-minute price bar, it should be possible to use the 'Open Prices Only' model for strategy tests, and these should produce identical results to if the 'Every Tick' model were used. Having noticed anomalies in the developer's own forward test, with some trades being closed mid-bar as explained above, I decided to use the 'Every Tick' model for my strategy tests. I wanted to examine the results in detail to ensure that trades were only being opened and closed on the new price bar.
In truth, however, the Forex Cleaner strategy tests run very quickly and it really doesn't matter which model is used.
Ordinarily, I would conduct a first round of strategy tests using Tadawul who are an older style 4-digit broker with a fixed 2.0 pip EURUSD spread. As I've explained previously, these results will never be the best, but I do think they are fairly representative of what the average user should be able to achieve. When I started to run some Tadawul tests, however, the first thing I noticed was that countless order send price and volume errors were being reported to the logs, which resulted in only around 6% or 7% of all trades getting away as intended. Anyway, to cut a long story short, the developer is aware of the bug, it only relates to 4-digit brokers, it's very easy to rectify, and it will have hopefully already been fixed with an update issued by the time you read this article. In the meantime, if your Forex broker uses older style 4-digit pricing, you're going to have a problem running Forex Cleaner and will need to switch to a modern 5-digit broker.
Unable to use Tadawul for my strategy tests, I opted to use Pepperstone instead, and I fixed the spread at 1.5 pips which is a fairly typical EURUSD spread nowadays.
For my first strategy test, I used fixed 0.1 lots without a stop-loss, instead allowing the EA to control its stop-losses internally.
Pepperstone - EURUSD - 1.5 pip spread - Fixed 0.1 lots without stop-loss
For my second test, I used a variable risk setting of 3.0, again without a stop-loss.
Pepperstone - EURUSD - 1.5 pip spread - Variable risk, setting = 3.0 without stop-loss
Although I haven't mentioned it previously within this article, using Forex Cleaner without a stop-loss means that the risk setting doesn't actual relate to anything. Ordinarily, I would expect it to mean that I was risking a fixed percentage of my account on each trade, be it a percentage of account balance, equity or margin. However, Forex Cleaner doesn't close its trades once the stop-loss value is reached and, instead, holds onto the trade until the start of the next price bar. The market could obviously move much further against the trade while the EA is waiting for a new bar to start!
An examination of my two strategy test results above show that, although the stealth stop-loss is 135 pips, there were 37 losses in a total of 1,576 trades which were between 150 and 200 pips, and 5 losses of 200 pips or more, with the largest of those losses being 250 pips. Obviously, this doesn't tell the full story, as there were also numerous trades which were successfully closed for considerably less than 135 pips. So, for those traders with a nervous disposition, I also ran the strategy tests allowing the EA to set a fixed 135 pip stop-loss so that I could compare results.
Pepperstone - EURUSD - 1.5 pip spread - Variable risk, setting = 3.0 with 135 pip stop-loss
Having carried out these tests, I did look closer at those trades which had run to a full 135 pip stop-loss, and noticed that, with the risk setting that I had used of 3.0, the losses seemed to vary randomly between 3.6% and 8.1% of the account balance. This suggests to me that Forex Cleaner calculates its lot sizes based upon something other than the distance away of the stop-loss.
Finally, and mainly because the strategy tests do run very fast, I carried out some optimisation of the risk parameter setting. Obviously the net profit increases with greater risk but, of equal (if not greater) importance, the drawdown also increases with that extra risk. Readers may use my optimisation results to select a risk level to suit their personal needs.
Walk Forward Tests
One of the benefits of reviewing an EA once it has been in forward test for a month or more, is that I can include a minimal amount of walk forward testing within my review. To explain a little bit more, longer term 10-year backtests within my reviews are carried out using data from the MetaQuotes History Centre. I personally use the data for my reviews because it's easy to obtain, but EA developers also generally use it when they optimise the settings of their EAs. In reality, however, different brokers use the price feeds of different liquidity providers and these feeds will not only differ from the MetaQuotes feed but, because there's no such thing as a central regulated Forex exchange, the price feeds will also vary from one broker's liquidity provider to the next. This raises obvious questions as to the reliability of strategy test results and, as a result, we can never be sure if an EA is going to perform live in the manner that the strategy tests suggest.
By having some live results from the MellyForex forward test over the last few weeks, I can compare the trades taken in my forward test against some backtests for the corresponding period to see if the same set of trades would have been taken. Firstly, this comparison gives me some sort of an idea of just how reliable the MetaQuotes backtest results actually are and whether or not an EA has been curve fitted towards the MetaQuotes data. Secondly, by downloading the small amount of recent history data which is available directly from different individual brokers' own servers for the period in question, it's also possible to compare performance with those different brokers to get an idea of how broker dependent an EA might be.
In the case of Forex Cleaner, I compared the MellyForex live forward test with FXCC against a strategy test using MetaQuotes History Centre data for the identical period. I also compared those results against backtests for the same period using broker's own data obtained from both Pepperstone's and GoMarkets' own servers.
It's quite evident from the equity curves below that there are differences in the number of Forex Cleaner trades taken between different brokers during the same six week period between 12th October and 23rd November 2011, and users should therefore be prepared to accept that they are likely to witness different levels in performance with Forex Cleaner from one broker to the next. From my understanding of how the EA works, I can see there is an important reason for these trade differences, but I don't feel that it would be appropriate to explain the inner workings of the EA within this article.
I should also say that, just because Forex Cleaner's performance from my FXCC forward test is clearly better than the suggested performance with other brokers, there's no evidence to suggest this trend will continue into the future. I'm an IB for FXCC, so I'd obviously like you to click on my link and open an account, but please don't do it just because one EA has performed well with them for a few weeks. FXCC are, in my opinion, a good honest Forex broker who don't trade against their clients, but I do need to be fair about these things.
In keeping with my normal practice, my final piece of analysis involves some risk simulation tests on the 10-year strategy test results. I felt it best to analyse the results both without and without the fixed 135 pip stop-loss being applied.
Not surprisingly, use of the fixed SL results in a marginally lower risk/reward ratio together with a lower drawdown. More important than this, in my opinion, is the Monte Carlo simulation which suggests that only around 20% of users are likely to not see their account balance drop below their initial deposit. Conversely, around 80% of users will be out of the money at some stage, which is a relatively high figure when compared to most profitable EAs. Similarly, the likely minimum number of trades necessary before the Forex Cleaner's return exceed its drawdown which has occurred in the meantime is also relatively high. Given that the EA typically trades around 3 times each week (albeit my walk forward tests suggest that figure is likely to vary between brokers), it may take around 11 weeks to achieve this if the fixed SL is being applied, and around 14 weeks if it's not being used.
Notwithstanding its level of broker dependency, Forex Cleaner certainly looks like it will be profitable over a sustained period of time. In keeping with most profitable EAs, it is likely to endure periods of weeks or months where it merely breaks even, but users should accept these periods for what they are as an occupational hazard of trading.
Forex Cleaner is currently in forward test running on a $5k demo FXCC raw spread ECN account.
My initial settings were such that I thought that I was risking a maximum of 3.5% of the account on each trade and I had been using the EA without a stop-loss.
Having carried out my analysis of the EA, however, I'm now of the opinion that my initial risk setting was almost certainly too high.
I have therefore lowered the risk setting to 2.5, and also set the 'stealth mode' parameter such that the EA will now start setting 135 pip stop-losses on its trades.
Forex Cleaner's performance can be monitored on MellyForex by clicking here, and there is a thread on the MellyForex forum here where readers are welcome to ask questions and discuss their experiences with Forex Cleaner.