Unless you’ve been living in a gap (for lack of a better Forex equivalent of a cave), you already know about the MQL Championship. Nevertheless, I’m going to go ahead and write a few words about it just in case – I bet there will be an occasional reader who has no idea what I’m talking about.
There are a lot of Forex contests out there, but they’re pretty far from matching the hype & prizes of the annual championship organized by none other than MetaQuotes, the parent of all things MetaTrader, including the MQL language. The first time the contest was organized was in 2006 and it was repeated every year since, with the exception of 2009. The official excuse was that 2009 was skipped due to the development of MetaTrader 5 & MQL 5, but I believe the crisis hit them, too. The prizes sum a total of 80000 US dollars (yeah, you didn’t misread that, it’s 80k USD) so it would make sense that they would want to skip it. Sure, they always had partners: notable brokers have always graced the sponsors list with their name, but I guess 2009 was a hard year for them as well. This year, the other companies that are involved with the event organization are Interbank, MIG Bank, FXCM, Traders’ magazine and Dow Jones. Given the companies mentioned in the list above, I figure the prizes should have been higher 😉
The whole thing is about who can make the most demo money in the allotted period of time by using an expert advisor of their creation, running on the machines of the organizers. There’s of course a well defined set of rules that every participant has to abide to, but none of the stipulations is out of the ordinary. Pretty much anyone above 16 may join if they have an EA that plays along. Well “may join” is actually “may have joined”, seeing that the contest started on October 4th and will end on December 24th, meaning that the sign up period is over for some time already. The prizes are not too shabby: $40k for the first place, $25k for the second place and $15k for the third place. Naturally, the temptation is high and a lot of people are joining – this year, there are 314 participants and these are only those whose EAs passed the initial testing stage.
Sure, most of the participants are not going to do very well. To be honest, I don’t even know why some people bother. However, there are many others that made it to the top 10 in the previous years: Rich (Ukraine, 2006 winner), GODZILLA (Russia, 2006 #3), Flame (Russia, 2006 #7), vgc (Bulgaria, 2006 #9), RobinHood (US, 2006 #10), Better (Ukraine, 2007 winner, quite awesome), Wackena (US, 2007 #2), Draz (Croatia, 2007 #4), zyx40 (Russia, 2007 #5), YuraZ (Russia, 2007 #6), abeiks (Latvia, 2008 #3), Gorez (Russia, 2008 #4), Cronex (Russia, 2008 #5), Fireflies (Indonesia, 2008 #6), arnautov (Russia, 2009 #9). Guess the championship is very popular among the Slavic nations 🙂
I figure it’s about time I tell you what you came here to read. About a month ago, a friend of mine needed some help porting some MT4 code to MT5 for a very nice idea: copying the trades from the Automated Trading Championship participants to his account. That’s precisely why I listed the most notable “figures” above. Sure, there are new guys who are already doing great in the contest, but it’s too early to tell which of the new ones are going to be successful, so if you do plan to take advantage of this opportunity, I recommend looking at the experienced participants.
Of course, when seizing the opportunity, one has to carefully consider the risks. Due to the limited time nature of the championship, the winner is always someone who not only has a solid strategy, but also properly exploits the leverage granted (1:100). This usually involves trading much, much higher lot sizes than it would be safe to trade on an account of the same size. For example, DEDMOROZ (3rd place at the time of this writing) is trading 5 full lots for each deal, which is huge given the 10k starting account size. One can easily get around this problem by copying the trades with a lot size modifier or even with a fixed lot size.
However, there are other pitfalls that you would want to avoid. First of all, I recommend staying clear of the open-and-pray strategies that trade without a stoploss. Some of them might actually be valid strategies, but trading without a stoploss is a really bad practice and it’s simply dangerous. Second, you’re probably better off avoiding scalping (trades taking profits below 10-15 pips) because the contest is run on demo accounts and even though the rules state that they are trying to reproduce real trading conditions by adding trade delays, slippage and requotes, the copied trades might end up with different opening prices on your live server. Third and last, take a good look at the evolution chart of the account you want to copy and picture what would’ve happened to your account if you were copying those trades from the start; if it has large drawdowns that you wouldn’t have liked, then it might be wise to start looking elsewhere.
I’m not going to analyze the strategies of each participant, I’ll leave that to you as an exercise. The contest has barely started a week ago and the analysis that I would do today would likely be worthless by the end of the next week. Some of the EAs of the participants that I would give good odds to haven’t even traded yet and at this time, most of the top 10 consists of names I’ve never even heard of. Keep in mind that you can copy trades from more than one account, but whatever the number of accounts you end up copying, do your best to copy those that are unlikely to offer unpleasant surprises. I stress this once again, be very very careful with the order sizes and do the math to make it safe for your account.
How to actually copy the trades
First thing that you should know is that you can login with investor access to each of the participant’s accounts. MetaQuotes always had this feature enabled for full transparency of the contest. The server address is access.metatrader5.com:443 and the investor password for all the accounts is MetaTrader (case sensitive). The login for each participant is the account number displayed next to the name in the MQL Championship Users list
The only problem is that the current live platform for most brokers is not MetaTrader 5; it’s MetaTrader 4 which is totally different from 5 when it comes to handling trades. I will try to write a short introduction into how this works, but you’re probably better off downloading the MetaTrader 5 beta and reading the documentation. Soon enough many brokers will move on to MT5 and you’re going to have to do it anyway. You don’t have to understand the way it works, but if you plan to copy trades I recommend you make an attempt.
Basic MetaTrader 5 concepts
There are three concepts in MT5: positions, deals and orders. I’ll try to go through each of them and attempt to offer a layman’s explanation, starting with the orders and ending with the positions. Consider skipping this short chapter if you already know what it’s about.
If you’re not familiar with orders you should probably stop reading at this point. Just like orders on any other platform, an MT5 order is a command sent by the user to the broker, a command that the broker can accept or reject (but accepts in most cases). There are several types of orders in MT5:
- Market orders are simply instant orders. They’re either executed if the conditions are met (market price, slippage) or otherwise immediately canceled.
- Limit orders are orders that are executed at the desired price or better. To illustrate this, I will use a buy limit order as an example. First thing you should know is that you can only place a buy limit order below the current market price. Why? Because if it was above, the price would already be better and it would be the same as a market order. Second thing that you should know is that, in theory, you can get slippage on it and it can get filled at a better (lower) price than you requested, but that’s extremely unlikely to happen due to a bunch of reasons, chief amongst which being the fact that the broker would likely make a few pips for them instead. To sum up, buy limit orders are placed below the market price and sell limit orders are placed above the market price; you can be pretty sure that if they’re getting filled, the price will be the one you requested.
- Stop orders are more or less the opposite of limit orders. They’re orders that get executed at the desired price or worse. They’re basically shit-hit-the-fan orders. For convenience, I’ll use a buy order again as an example. Naturally, you can only place a buy stop order above the market price. If the market gets there, since the order gets executed at the target price or worse, there’s no guarantee that the price you selected will actually be the execution price (unless your broker guarantees stop orders which not many do; if they do it, something else might be wrong with them), so it might be that your buy stop order has a slightly higher entry price than you expected it to have. Quick reference: buy stop orders need to be placed above the market, sell stop orders below the market and stop orders in general are not guaranteed to get filled at your target price.
- Stop limit orders are a gimmick of MetaTrader 5. I call them meh orders, market price ping-pong orders or headache orders. They’re actually stop orders that place a limit order when triggered. You can’t copy these to MetaTrader 4 directly anyway so don’t even try to comprehend them. You can however copy the resulted limit order.
I find that if you’re having trouble remembering which side of the market price do limit orders go and which side belongs to the stop orders, it always helps to think of stop orders as stop loss orders. If you have a buy position with a stop loss, your stop loss is actually a sell stop order (since your position is long, you have to sell to close it), thus it’s easy to figure out that sell stop orders go below the market.
Bottom line is that orders, just like in regular commerce, are what you have before the product actually arrives; in this case the product is a currency transaction in form of a deal.
In MetaTrader 5, orders are just orders and they can be filled or not. If an order is filled, it always, always results in a deal. The easiest way to define a deal is “the result of an executed order”. As soon as an order is executed, a deal record is created. Each deal has a few attributes: currency pair, type (buy/sell) and volume. MetaTrader 5 has an extra attribute named direction which is related to the positions.
Deals are merely records of transactions. They cannot have a stop loss or a take profit and they have no reason to.
The equivalent of the MetaTrader4 trades are positions. They’re similar to the old trades with one exception: at any one time you can have a single position for any currency pair. You can have at most as many positions as there are symbols in your market watch window.
Each position is an amalgamation of the deals for a symbol. As a side note, it’s the MetaQuotes way of dealing with the FIFO & hedging rules. A position is opened as soon as you have a deal for a particular symbol and it’s closed when its volume reaches 0. Positions act very much like MT4 trades – they can have a stop loss or a take profit and even a client-side trailing stop (client-side meaning that if your MT5 client closes, your trailing stop no longer gets updates).
To explain how positions work, I’ll present a short example:
First, you send a market order to buy 2 lots EURUSD at 1.3500, which gets filled at that price and results in a deal (which, again, is only a record of the transaction). At this point, you will have a long position of 2 lots EURUSD with an entry price of 1.3500.
Second, the market goes to 1.3600 and you send a market order to sell 1 lot EURUSD, that (for the sake of an easy reading) gets filled at the requested price. By doing this, you in fact take a 100 pip profit on half of your position (just like a MT4 partial close). Your position gets updated and it now is a long position of 1 lot EURUSD with an entry price of 1.3500.
Third, the market moves to 1.3550 and you send yet another market order to buy 1 lot EURUSD in the hope that it goes back to 1.3600. This order also gets filled at the requested price and your position gets updated with the new volume and entry price, averaging the latter. So, after this order, your position will consist of 2 lots long EURUSD with an entry price of 1.3525. The average entry price is calculated as follows: (1.3500 * 1 lot + 1.3550 * 1 lot) / (1 lot + 1 lot) = 1.3525.
Quick sum up:
– deals that are in the same direction as a position will add to the position volume AND update its entry price
– deals that are in the opposite direction will subtract from the position volume
– a special case is encountered with the deals that are in the opposite direction but have a volume higher than the position, in which case the position becomes a position in the opposite direction, with a volume consisting of the difference between the two volumes and with an entry price of the deal that caused this
In conclusion, copying MT5 trades to MT4 is not as simple as it might sound.
The rich man’s solution
In the first paragraphs, I mentioned my friend who wanted to port some MT4 code to MT5. The code was actually a trade copier, but it was so poorly suited that I decided to help him by writing a full featured MT5 to MT4 trade copier from scratch. About half way through it, given the huge amount of work involved, I figured I should make it a commercial product. It was all going rather slow (had a few long nights at my day job) and I was expecting about 1 more month of work and beta testing. In the meantime it looks like others were faster than me, so I ended up dropping the project, but I figure there’s no harm in sharing the idea and affiliating with the guys that completed their copier faster than I did.
So, head over to the BJF Trading Group site where you will find CopyToolPro MT5 –> MT4. The thing costs $595 which is a very spicy price in my opinion – I guess now you see why I included the word “rich” in the title of this section. It’s only suited for people who are sitting on accounts with a large balance. I was thinking to price mine quite a bit lower, but now that there is already a copier out it no longer makes sense even if my feature list was probably bigger.
Edit 17.12.2010: There’s a seasonal 25% discount on all Itic Software products including the programming services.
Unfortunately, so far I haven’t been able to find out any info at all about the copier or its features and the description on the developer’s page is very brief. I requested a review copy to also be able to tell you a few words about its features, but I was informed that there is no demo version at this time. I requested a manual a few days ago but I didn’t receive it yet. If you buy it, I’m quite eager to hear your experience with it so that I can update the article, so please share with us in the article comments. Naturally, I will edit the writeup as soon as I receive a manual, a demo copy or some kind of info, but at the moment I’m afraid I don’t have squat about its features or mode of operation. I was planning to tell you in detail what it can and what it cannot do but it’s going to have to wait.
The not-so-rich man’s solution
Since I already finished writing the master part of the copier, I figured it wouldn’t be too hard to change it a bit and it would be nice to offer you a free alternative. There’s one catch, though: you have to manually copy the trades, which is possibly a rather serious pain in the behind and I would be inclined to say it’s not worth the trouble.
Anyway, if you’re looking for some sleepless nights waiting for the sound and passionately searching for the MT5 it came from, you can download the trade alert script. All it does is popping up an alert message when there’s a new position or when a position has changed in some way. You can choose to enable or disable the stop loss & take profit change alert. What you have to do is take a look at the deal log when you get an alert and manually reproduce it on your MT4 client. This requires a good understanding of the orders, deals and positions system implemented in MT5 and briefly described above.
Should you choose to use this method, I recommend copying systems that attempt to capture a large number of pips. Once a trade is open, you could use a limit order to enter at the same price as the original trade because there’s a very high likelihood that the market price will cross that point before the trade comes to an end. Sure, you could also go with market orders, in which case your entry might be a few pips away (either to your advantage or to your disadvantage) from the original entry. You can even be more creative and use limit orders with a few pips in your advantage. One thing is certain: if you’re serious about doing this manually, you’re going to spend quite a lot of time doing it.
Please feel free to discuss using the comments below and brag about who’s copying which participant and to what degree of success, but don’t come crying to me if you happen to copy the wrong account or use the wrong lot size because there’s nothing I can do about it. Remember, this is extremely risky since you don’t know much about the strategy that you’re copying and it’s up to you to do the choosing. Sure, some of the strategies are described in the comments on the championship site, but many are not and it’s very much like trading an EA that you haven’t seen a backtest for. Also, don’t ask me whose trades am I copying: I am not copying any trades at all. As I said in a different article, I no longer trade at all, the only funded live accounts I hold being those involved with forward testing EAs. It is your sole responsibility to pick and choose. That is, of course, assuming you choose to copy trades to begin with. I am merely offering you an idea; by no means am I recommending you to act on it.
MetaTrader MT5 to MT4 account copier
My position alert script
Automated Trading Championship 2010