This article is obsolete and no longer maintained.
About a month ago, several readers contacted me and pointed out Kangaroo EA. I must admit it stirred my curiosity at the time, even though it only had a forward test and some general info, so I followed it kind of closely and contacted the author about it. As it turns out, the developer extensively used the methods detailed in my tick data article, so he was already familiar with my work and he was kind enough to promise (and deliver) a review copy as soon as the EA was released. To my utter delight, my tick data page is even mentioned in the manual. At the time when I started following it, tulipfx.com, the Kangaroo home page that is configured more or less in a blog-style, already contained a bunch of very interesting articles that I read from top to bottom and I kept an eye on it since then, reading the articles that popped up in the meantime. I strongly recommend reading these write-ups; they touch some old & new topics, present some problems in a new light and TulipFX seems to have a higher posting frequency than I do.
Back to the EA, we’re dealing with a system that trades exclusively on AUDUSD M5, using a peculiar strategy that seems to incorporate elements from the grid, scalping, trend and retracement trading styles, according to the author. I must admit I tried to look inside to confirm it, but without much success – the EA fails to decompile even with the latest version of the Purebeam software and on top of that it comes with a rather big DLL which seems to be encrypted, so I guess TulipFX went the extra mile on the topic of security. Sorry Mr. Developer, I had to try to peek inside and I hope you will understand it wasn’t with malicious intent.
While I am on this topic, I’ve been refused a review copy by a developer on account of me being a “professional cracker”. Even though I appreciate the compliment, it’s not quite true and any EA author reading this should be aware that I’m not out to get their products spread on random forums. Any EA that is given to me for review purposes is only going to be used for that and is not leaving my hands. Which brings me to yet another aspect of the same topic: please stop writing me to ask for copies of miscellaneous EAs, I don’t do that even if you offer to pay. I’ve succeeded in putting a lot of distance between me and the EA “educating scene” in the past months and I want to keep it that way.
I drifted from the subject once again, so heading back to the Kangaroo EA, what’s really interesting is the way it deals with news. I don’t believe I’ve seen any EA as well equipped to handle news as this one. The developer went as far as providing a news file with historical news for backtesting… That’s an achievement in itself: I haven’t seen any EA that could be backtested with news before Kangaroo. But I’m already getting ahead of myself; even though I have seen the EA whitepaper a couple of weeks ago, I’m dying of curiosity to see the impact of news avoidance on my own backtests.
Strategy
Kangaroo EA combines several strategies in its trading. First and foremost, the visible operation of the EA consists of a down-averaging grid of up to 6 trades (as per the default settings). To put it in plain words, the EA opens a trade and as the market goes against the position (if it does), it keeps opening trades until it reaches its maximum of 6. It always closes all the trades that share the same direction together and this is accomplished by moving the take profit target of the existing orders as new ones are opened.
Its entry signals are supposedly based on retracements of the underlying AUDUSD trend, at which point the EA attempts to open a scalping trade with a take profit target of 20 pips and a stop loss of 60 pips. As the market starts heading toward the SL of the position, new trades are opened at different levels while the TP is moved closer to the market. In the end, if TP is hit, it still brings about 20 pips worth of profit at the initial lot size. This begs the question: what happens when it hits SL? The answer to that is not easy because of the distance between orders, but in a nutshell you get a drawdown. The EA manual has a rule of the thumb to calculate it: multiply the configured risk by 4 to calculate the potential drawdown (in percent) resulted from such a situation. From what we will see in the backtests below, this seems to hold true.
Edit: the profit target is adjusted by the spread so I initially thought it was lower. In fact, it’s 20 minus your spread.
It should be noted that the EA takes spread into account when setting its SL & TP, so the lower your AUDUSD spread, the better the EA will perform. This will probably lead to quite a lot of differences from broker to broker, but as can be seen from my backtests below, it seems to work with spread 3 about as well as with spread 2. Bottom line is that the better your spread, the faster the trades are closed and the lower the chance of the EA hitting a stop loss.
I’ve witnessed several occasions where the EA took hedged trades, so it doesn’t look very friendly to the NFA rules. Then again, I’m not very friendly to the NFA rules either and I don’t know any trader or broker who is. You can probably run it on a broker that enforces the NFA rules in their MT4 terminal, but you will likely miss trades now and then.
It should be noted that the EA does not trade very often. While there are usually around 2 trades per week (by “trade” I mean position, each such position having up to 6 trades), I’ve seen weeks without a trade. Most positions are typically closed within 24 hours, but I encountered quite a few situations where the trades were held open for 2-3 days. There is no concept of a “trading session”: positions are opened around the clock, with the notable exceptions of Fridays and early Mondays.
The EA runs exclusively on AUDUSD, at least for now. It’s unclear whether it will run on other pairs, but an article on the developer’s website seems to indicate a future competition for that.
Website
tulipfx.com contains several interesting articles not necessarily related to the EA. Most of them are totally worth reading, some even providing insight into the EA development process. Judging by the articles and by the size of the ex4 file, clearly this is not the typical EA that was put together overnight, but rather a solid effort was put into it. The page dedicated to Kangaroo EA is totally awesome: it features a very noticeable lack of marketing bullshit and it also manages to be funny in places. I’m quite pleased that I found someone like-minded, who doesn’t appreciate the aggressive marketing websites.
Most notably, there’s a link to the whitepaper that contains detailed backtests, chart details and EA info; not sure if it’s available unless you’re registered, but registration is free. There’s also a Myfxbook widget for a forward test demo account that I am also going to post here:
Edit 08.12.2010: There’s also a live account on the website now, which was started on 05.11.2010. For convenience, I’m also posting its myfxbook widget here:
Edit 20.12.2010: I received an updated whitepaper from the author that is actualized with v4.1 info. All the whitepaper links in the article have been updated to point to the new one.
Apparently, TulipFX intends to be around for a while: I am led to believe that Kangaroo EA is only the first from a series of EAs intended to be released.
You should really take a look at the whitepaper I mentioned. Unlike most similar documents, this one doesn’t depict only winning scenarios, but also what happens when things go wrong. It goes into a lot of detail about the inner workings of the EA and it has some good result analyzes that complement this article.
Parameters
In addition to the manual, the delivery package (that consists in a zip archive) also contains a setup file, which installs a bunch of files into an existing MT4 folder: the EA itself, a DLL, some indicators, some set files and the above mentioned news archive that is installed precisely in the tester/files directory, ready for backtesting. In regular (forward) operation, an updated news file is downloaded hourly.
Leaving these files aside, the manual is quite descriptive on the topic of the parameters of the EA. There are three preconfigured set files with different risk values and I don’t think anyone actually needs to touch any of the EA parameters once one of these files is loaded. However, I’m sure that some of you will want to play with the EA a bit in backtests and there are several parameters that will allow that, such as the maximum number of orders that can be open at a time or the stop loss value. If you do backtest it, you should use tick data and you should keep in mind that you have to have a chart open with the EA running, otherwise the backtest won’t trade. I almost made a fool of myself by mailing the author when I ran into this issue, even though it’s specified in the manual.
Of course, there is also a risk setting as well as a fixed lot setting, a slippage parameter and manual/auto GMT configuration, but the really interesting part is the one with the news options. The trade blocking period before and after the news can be configured in minutes and there is also a nifty setup for the news that should be avoided. Some of the general big news events (such as unemployment data announcements) are pre-configured, but the user can further select which news should the EA dodge, by currency or impact.
If VisualMode is selected (and it is by default), once Kangaroo EA is attached to the chart a cute display shows up in the lower left side of the chart and informs us about the number of upcoming and passed news events, with a green header bar. The latter has a nice habit of turning red when there’s approaching news that will halt the EA trading. There’s also a colorful status display on the chart that details some of the EA configuration options, authentication info and other stuff such as the next lot, the configured risk and the account equity. I think the color choice for the status area is quite uninspired, dangerously bordering on ugly, but then again that’s not what one usually buys an EA for.
While talking about this display, I noticed a small bug and already informed the author about it: the “next lot” display is incorrect when the EA is attached to the chart and it only updates at the end of the first 5 minute bar. I’ve been assured that it’s only a visual issue and that it will be corrected in a new version soon.
Since we’re around the holiday season, it’s worth noting that the documentation mentions the EA will not trade between 22.12 and 05.01.
Backtesting
The manual clearly states that results obtained with Metaquotes data from the history center are no good, but I proceeded to backtest using the 1999-2010 data anyway. Many brokers seem to have the AUDUSD spread below 2 pips most of the time, but there are also some who have above 2, so I decided to make all the tests with spread 2 unless otherwise noted.
For some reason (probably because I thought I know better and because EAs are typically overleveraged), it seemed to me that the risk setting of 5 – the EA default – was slightly too high, so I used 3 in most of my tests. As it turns out, I was wrong: a risk of 3 doesn’t really provide much of a bang, so 5 is likely a better setting. After finishing all the backtests, I decided to configure risk to 5 on my live account (posted below).
Other than the above changes in the parameters, everything was set to its default value, with the exception of VisualMode (which I disabled for some of my tests when I remembered that chart objects decrease the backtesting speed) and the news filter, which was being constantly enabled and disabled. I used a GoMarkets terminal for the backtests and the GMT offset was set to 2 for all the Metaquotes data tests and to 0 for the Dukascopy tick data tests.
Errata: after I finalized the tests, I noticed that the spread used for all Metaquotes data tests was accidentally set to 2.2 pips instead of 2.0, so quite a bit above the average I intended. Since the EA performed good enough, I decided not to remake the tests because the difference would probably be minor. Later edit: I also noticed that somehow my tests were done with the fridayendhour parameter set to 6. I have no clue how it got set to that value, but the default of the release version used to be 1 and a hotfix was released with this value defaulting to 0. In the meantime, I received a beta version that is in testing right now and that is supposed to be released to the customers in a couple of days. In addition to the two issues that I mentioned above (news log entries with the news filter disabled and the initial lot calculation) and to the fridayendhour change, this version also adds OrderReliable for those with broker issues. As it turns out, the fridayendhour setting has a rather large impact on the backtests, so, seeing that it was my mistake, I felt compelled to retest all scenarios and update the review accordingly, also using spread 2.0 in the Metaquotes data backtests. I will still link the older backtests next to each new backtest.
The first test I did was with fixed lots (0.1) and the news filter disabled, on Metaquotes data. The initial backtest (with 2.2 spread and incorrect fridayendhour setting) is still available here.
While it looks good, it’s not particularly breathtaking. It can be observed that Kangaroo EA starts performing very well somewhere around 2007. I noticed another small problem here: even though I disabled the news filter, the backtest journal displays messages about the news. A rather long search reveals that even though the news events are displayed, they are ignored. The author has also been notified about this issue. Edit: this issue as well as the one I mentioned a few paragraphs above were hotfixed the same day I reported them. Now that was quick.
To get some realistic drawdown figures, I attempt the same backtest with risk 3. The initial backtest (with 2.2 spread and incorrect fridayendhour setting) is still available here.
It now becomes easily visible that the EA really starts to shine after 2007. The resulted drawdown of 21.4% and I suspect it’s in the 1999-2006 segment, so I proceed to retest, by splitting the period in two segments: before 2007 and after 2007. As a side note, the drawdown for this backtest used to be over 33% before I fixed the spread and fridayendhour parameter, which prompted me to split the backtest in two. Given the resulting 21.4% drawdown after these were corrected, I probably wouldn’t have done it.
The initial 1999-2007 backtest (with 2.2 spread and incorrect fridayendhour setting) is still available here.
As it can be seen, before 2007 Kangaroo EA wouldn’t have been impressive at all. All the bouncing up and down of the balance curve surely earns the EA its Kangaroo name. I was right, though: this is where the 21% drawdown was lurking.
The initial 2007-2010 backtest (with 2.2 spread and incorrect fridayendhour setting) is still available here.
Post 2007, things take a drastic turn for the better. The EA has a nice balance curve, with a drawdown of 18%. On the initial test, the drawdown was 13%, almost in line with the rule mentioned in the manual (4 times the risk would be 12% but the difference is acceptable) and I have no idea how come it went up when correcting the test parameters. In any case, I’m sure some people will jump the gun and claim Kangaroo is curve fit, but somehow I highly doubt it given their 2.5 month forward test and their no-bullshit marketing approach. I guess it’s designed for the current behavior of the market, although there’s no telling how, when or if that will change.
Since by coincidence the news archive data begins from 2007, once again I ignore the manual warnings about the DST changes in the Metaquotes data and enable the news filter anyway to see the difference.
The initial 2007-2010 backtest (with 2.2 spread and incorrect fridayendhour setting) is still available here.
While it still hits a few stop losses, the visible hiccup in the middle of the previous backtest is gone and the resulting balance curve looks much smoother. Given the remaining SL hits, I guess the author probably knew what he was talking about when warning about Metaquotes data and DST.
So, I proceed to finally follow the manual indications and use tick data for testing. The AUDUSD tick data file is around 4 GB and due to the MT4 limitation of 2GB per file I have to split it in two. Naturally, just to piss me off, 2007-2009 does not fit in 2GB, so I have to make the “cut” at the end of November 2008. I decide to test with and without the news filter enabled to satisfy my curiosity.
The initial backtest with the same settings as the one below but with an incorrect fridayendhour setting is still available here.
The first test above is with the news filter disabled. It hit SL three times and the relative drawdown ended up around 17.8% because two of the SL hits were quite close to each other. Overall, I’d classify it as a decent performance, but nothing to write home about.
The initial backtest with the same settings as the one below but with an incorrect fridayendhour setting is still available here.
Now, when enabling the news filter, the change is impressive. None of the three SLs above were hit and the balance chart is perfectly smooth. Finally, this not only meets my expectations, but even exceeds them.
It’s only less than a couple of years, though, so let’s try the same stunt for 2008.11-2010.12.
The initial backtest with the same settings as the one below but with an incorrect fridayendhour setting is still available here.
The backtest with the news filter disabled yields nice results once again, with one SL hit and about 12.7% drawdown, perfectly in line with the drawdown estimation in the manual. Nice performance, but let’s see what happens with news avoidance enabled. Note: on the initial version, this backtest had 2 SL hits but correcting the fridayendhour fixed it.
The initial backtest with the same settings as the one below but with an incorrect fridayendhour setting is still available here.
And the SL goes away (initially, one SL remained due to the trade being opened on a Friday). Man, I wish more EAs would implement a similar news filter; I’m quite psyched about this, especially about the ability to backtest with news avoidance. Come to think of it, what I would like is a DST feature to make it actually work with Metaquotes data. Plus a news database that stretches past 2007, but I guess that’s just wishful thinking.
Edit: merely a few hours have passed after posting the review and I already got contacted by the author. I’ve been informed that the remaining SL you’re seeing in the backtest just above this paragraph is caused by the fact that the first trade was opened on a Friday at 1AM and for some reason, the release version had 1 instead of 0 for the Friday end hour. Basically, the EA isn’t supposed to be trading on Friday. And it’s quite true, if it were correctly avoiding Fridays, that SL hit wouldn’t be there. A hotfix is already being released for this issue but it doesn’t warrant remaking all the backtests. I’ve also been informed that the color I was dissing above is meant to be a “kangaroo brown”, which obviously escaped me. Anyway, sure, it might be, but it’s so close to ugly they could spit at each other, sorry 🙂 Update: while it’s outdated in light of the retesting, this paragraph will remain here for the sake of complete disclosure.
To get an idea of how it performs on a higher spread, I performed the two tick data backtests using spread 3 with the news filter enabled. I chose 3 because that’s likely the highest you’d get and because that’s what I get on the live account listed below.
The initial backtest with the same settings as the one below but with an incorrect fridayendhour setting is still available here.
The initial backtest with the same settings as the one below but with an incorrect fridayendhour setting is still available here.
As expected, the returns were a bit lower, but the balance curve looks as good as it did when using spread 2. I was bracing myself for a couple more SL hits, but they never occurred.
At this point, while looking at the returns, I noticed that a risk of 3 doesn’t exactly produce spectacular results, so I decided to use a risk 5 on my live account and also to run some tick data backtests with the same risk configuration, which I am posting below just to give you an idea.
The initial backtest with the same settings as the one below but with an incorrect fridayendhour setting is still available here.
The initial backtest with the same settings as the one below but with an incorrect fridayendhour setting is still available here.
Basically, the potential drawdown per position SL is slightly increased, as expected: according to TulipFX, it should be around 20% with risk 5 but from what we can see in the backtest, it only reached 17%. I guess it could’ve probably gone lower, but it’s hard to say. Nonetheless, I kind of like it that the developer provides a formula that easily lets the user calculate the potential drawdown as a function of risk. It’s not entirely accurate as in theory there can be SL hits at a short distance from each other, but from what can be seen in the backtests, it’s fairly good.
Edit: the post by Dennis on the forward tests page raises a valid issue. What are the expected returns for Kangaroo EA? What’s the minimum funding you need to be able to pay the monthly fee from its average earnings? So, I decided to look into it a bit more by merging the two news filter enabled tick data backtests. For the purpose of an easy calculation, I used MT Intelligence for the merge and I proceeded to use a standard 0.5 lot size for all trades (the target was a setup using risk 5 and an initial balance of 10000). I proceeded to chart the gross banked profit/loss and below you can see the resulted chart for lotsize 0.5.
Exporting the data to a CSV file I was able to determine an average return of 623 per month using 0.5 lots (0.5 is the result of running risk 5 on a balance of 10000), which means an average return of 6.23% per month, WITHOUT considering compounding. After performing the same calculations for risk 3 (the csv is in the same archive linked above), it seems that the average return in this case would be 3.74% per month.
To sum up, assuming a subscription cost of USD 40.5 (30 EUR * 1.35):
- Average return for risk 5: 6.23% per month.
Balance required to cover the subscription cost for risk 5: around USD 650. - Average return for risk 3: 3.74% per month.
Balance required to cover the subscription cost for risk 3: around USD 1100.
Version 5
…was released on 31.01.2011, but I’ve been quite busy so I only started writing this update about a week later. The authors delivered on their promise to launch it in January, but it has been a slightly problematic release, as admitted in their “Bite off too much…” blog post. Long story short, I believe it was a bit rushed and there were a couple of patches right after the release. On the bright side, they solved the issues that slipped through their testing in a record time – 5.11 was released a couple of days after 5.0, fixing all the problems reported by the users and there was even a 5.1 and an intermediate hotfix in between the two versions. However, as I was able to point out to the authors via a couple of backtests, the EURUSD version still had some quirks that took a while longer to fix, namely some problems with limit orders. In the meantime, the developer recommended not running the EURUSD EA live but, as of 01.03.2011, v5.9 is out and the issues are addressed so it should now be fit for improving the balance of live accounts. Given the fact that v5.11 was before v5.9 I imagine the latter should have actually been v5.90, but that’s merely a minor versioning issue. From what the authors are saying, I gather that v6.0 is going to be very much like v5.9 but with a couple of minor improvements, which is probably what prompted them to set this version number for now.
So, what’s new? Mainly the fact that now there’s an additional EA that works on EURUSD, quite different from the first, with its own DLL and indicators. Other than that, some checks were added to prevent some problems the EA was having with brokers that didn’t honor the pending order expiration date, a change that allows entering risk as a double value and improvements to the newsfilter, the most recognizable one being that its chart display is a bit more sexy. Speaking of chart displays, the EURUSD HUD is a pleasant looking blue, although the AUDUSD chart display is still mexican-food-diet-kangaroo-poo-brown. Version 5.9 also introduces a couple of parameters that deal with situations where trades might open on both pairs and allow limiting the risk in such cases.
The EURUSD EA works on roughly the same logic as its AUDUSD sister, but instead of a 60 pip stop loss it has 120 pips and instead of max 6 trades it only opens up to 3, leading to a rather similar scenario overall. Its take profit is 18 pips and unlike its AUDUSD sibling, it only trades during certain hours: 6 GMT – 23 GMT, so mostly during the Europe & US sessions.
You may have noticed that I developed the tick data procedures a bit further after the original Kangaroo EA article was written, so I decided to also provide some new backtests for AUDUSD in addition to those for EURUSD. In addition to that, there were also some updates on AUDUSD so I was quite eager to see the backtest of the new version, this time in one piece instead of many. The version tested was of course 5.9 and the two following backtests have been performed using tick data and a fixed spread of 2.0 for both pairs, on a GOMarkets terminal.
By now we’ve come to have high expectations from Kangaroo EA and it surely doesn’t fail to meet them: the resulting charts show a very smooth balance curve and there was no single SL hit in the backtests.
Looking under the hood a bit, we notice a maximal relative drawdown of slightly over 16% for both tests. Several people emailed me in the past and asked how can this be possible since the balance chart does not show any drawdown at all. The answer is simple: MT4 also calculates the floating drawdown – the highest percentile drawdown that was exhibited during the backtest on a set of open positions, even if the positions were not closed with negative profit. It’s worth mentioning that as per the author’s specifications, in theory, running it with a risk of 5 as I did in these backtests would result in a 20% drawdown in case of a full SL; 16% is not far from 20%, meaning that at least once in each backtest it must have been slightly at risk, but it seems to have been able to close without hitting SL nonetheless.
Speaking of SLs, I’ve discussed this with a few people via mail and also in the article comments if I recall correctly: the fact that it doesn’t hit any SL in backtests offers no certitude that it will not hit a SL in the future; sure, it’s a good indication of its behavior and its news filter is extremely helpful, but there’s no such thing as an EA that never loses, so at some point in the more or less distant future it will eventually hit a SL and you should brace for it: use the TulipFX specifications (drawdown potential = 4 * risk) to configure your risk in such a way that should it hit a SL, it won’t make you bang your head against a wall.
Getting back to the backtests, to me it looks like AUDUSD kept the same consistent performance we’ve seen in the older backtests, which by now it has also confirmed in forward testing.
As for EURUSD, it looks fit to run live. I must admit I added it to the forward test account on 01.03.2011 (this edit is dated 09.03.2011), before actually backtesting v5.9, but I’ve seen the backtests of v5.11 and they were also looking good so as soon as they gave the ‘go’ for live, I added the pair back to the live account and soon enough after that, it already started trading and having positive results.
I’ve merged the results and charted the return distribution in a similar fashion to how I did it for the original backtest, but I won’t bore you with the picture and I’ll just tell you the result: when running with a risk of 5, the average monthly return is 12.52%, pretty much double what it was for AUDUSD alone. Considering the aforementioned 20% drawdown (using the same risk 5) in the unlikely event of a stop loss hit, this means that the EA would need about two months to recover.
This makes me randomly rant about a common misconception in the world of trading. Many people believe that if your account suffers a 20% drawdown (booked), it has to make 20% to get back to what it was, which is completely false. Think about it – let’s assume you have a $100 account and it suffers a 20% drawdown, thus getting to $80. To get back to $100, the account would naturally have to make $20. However, since it’s now at $80, the $20 it has to make back is now 20 * 100 / 80 = 25% percent of the account. As a bottom line, what I am saying is that the bigger the drawdown, the harder to get out from it, which is why I always recommend using lower risk if possible.
Conclusion
Judging by the tick data backtests above and the TulipFX forward test, I like Kangaroo EA. A lot. It gives a certain feeling that a lot of thought went into it. The content of the TulipFX website is refreshing, it’s definitely not a flytrap for the average Forex newbie and this goes to show they cater to the seasoned Forex trader, they’re serious and they mean business.
Going through the few mails I exchanged with the author, I can say I haven’t met any other developer so confident in their product. Unfortunately, since 01.12.2012, the developer has closed the gates for new users and the EA is no longer available for sale.
The EA is licensed to run on two demo accounts and a single live account, but these can be easily changed using a webpage. The manual says you can change them once every three days.
Forward test
Running since 01.12.2010 on a LiteForex real account, with all the settings set to their default values, including the risk (which is set to 5 by default):
Edit 01.03.2012: as the vendor has advised, running Kangaroo on cent accounts does not seem to be a very good idea. My account has taken quite a bunch of SL hits that the vendor’s live account wasn’t even close to. Since the performance of the EA was very good lately, earlier this year (12.01.2012) I decided to start another account for it, this time on PrivateFX and running only the AUDUSD EA, with the default settings:
Details and links
Versions used in backtesting: various (4.0 up to 5.9)
Version in forward testing: 6.4 (went through all since 4.0)
Currency pairs & timeframes: AUDUSD M5, EURUSD M5
Kangaroo EA home
Buy Kangaroo EA
The TulipFX whitepaper
Comments are closed.