Trading Gurus Random Robot Enters the Dukascopy JForex Strategy Contest


As anticipated I received an email from FXCM last night, but it did seem just a touch impersonal. It started out by saying:

Dear Trader:

Code and Compete for a chance to win cash prizes in the FXCM Automated Trading Challenge. Sign up for a contest demo and put your automated strategy to the test with zero risk to your own money.

A bit further on it posed this rhetorical question:

If you prefer not to recode your current EA, you can contact the FXCM Programming Services team who are standing by to convert existing EAs.

As luck would have it here at the Trading Gurus we have already coded quite a few MetaTrader 4 Expert Advisors, but for a variety of reasons we have no interest in contacting the FXCM Programming Services team about them.  Where recoding is necessary we prefer to do it ourselves. As we reported yesterday, the object-oriented "robot wars" are starting soon, and we figured we'd better get involved and try and find out what all the fuss is about. As more luck would have it the deadline for Dukascopy's September JForex Strategy Contest is today. As you might well imagine, that doesn't leave us with an awful lot of time to produce a new robot or to do much recoding of an existing one, so we aren't going to bother. We'll just enter one of our existing MT4 EAs!

Dukascopy's MQL4 to Java converter has gradually been improving over the last few months and now seems as good a time as any to test whether it's up to the job of converting and running at least a basic MetaTrader 4 expert advisor. The one we've chosen to use is "Ray the Random Robot™" incorporating Martingale money management.  This robot is extremely dumb, since it stays in the market 100% of the time, enters almost at random, and uses very scary position sizing. However it does have the advantage that it's already sat on our virtual shelf, and since we've already published the source code we're not awfully worried about Dukascopy's rule that:

The winners must disclose the code of the strategy to Dukascopy Bank SA for verification purposes no longer than 10 days after the end of the Contest.

In fact to be honest we're not awfully worried about whether we win or not either, although we are very interested to learn whether the associated technology is up to the job or not! One of the other rules for the JForex contest stipulates that all the input settings have to be hard coded into the strategy so we'll have to make that simple change, but apart from that we'll leave everything else just as it is.  Pkotak, a member of our community forum, reckons that setting both stop loss and take profit levels to 50 pips works well with our random entries, so we'll go with those numbers.  That leaves just the position size to be determined.  Martingale position sizing is fraught with difficulties, and definitely not recommended on a live account! However this is a contest, and the initial (and thankfully virtual!) $100,000 account only has to survive 2 weeks, so maybe we can afford to be quite aggressive? $1,000,000 is a nice round number, and it corresponds to one lot on Dukascopy's platform so we'll go with that. Will our virtual account be bankrupt by the end of the day? Time will tell, but I can however already let you know that Ray our Random Robot translated into Java OK, it compiled OK, it started running OK, it's long Cable, and it's currently made sufficient profit to get us up to number 21 on the leader board out of a total of 128 entrants. So far so good!

The state of our Random Robot just after we let it loose in the Dukascopy JForex  automated trading contest for September 2010

The state of our Random Robot just after we let it loose in the Dukascopy JForex automated trading contest

If you want to keep track of further developments in our little experiment then please subscribe to the JForex contest thread on our forum and/or keep watch on our progress on the Dukascopy JForex contest page.

Filed under Trading Contests by  #

Leave a Comment

Fields marked by an asterisk (*) are required.