Do Forex Robots work
or is it all smoke and mirrors?

NOTE: This is quite a long page. I would suggest that you bookmark this page. This will allow you to come back and continue where you left of. I tried to cram in as much info as I can.

One day you decided it's time you bought yourself a money making forex robot. You heard about this cool thing called an expert adviser that trades automatically and makes a bucket load of cash. 

Before we continue, let's just quickly discuss the difference between a forex robot, expert adviser and program. They all are, wait for it, the same thing! 

It's basically a program written in the Meta Quote Language 4 (MQL4) that you code to execute your trades automatically based on whatever strategy you might have. It's very similar to the C language. 

The nice thing about an expert adviser is the fact that it does all the trading for you. You don't need to sit in front of you terminal waiting for the right entry to trade. The EA does what you program it to do. 

I don't know why they call it a forex robot. It might just be a term used by marketers to sell their product. In my view it's not a robot, it's just a program. Like any other out there. 

Let's get back to the post. You search google and thousands of results are returned. You read through the endless landing pages, and believe me they are endless, and finally decided on an EA. You read the reviews you look at the great back tests form the landing pages. Man, you think, this thing is wicked. Just look at the graphs! They go up and up. I'll be quitting my job in no time. 

Let's stop for a while here. I know your heart is beating 5000 bpm's but lets think about this for a minute. 

First of all lets say that you are a programmer and you one day created this great expert adviser that doubles your money every month. So you start of with lets say $1000 and next month you have $2000 and next month $4000 and so on. A year later you are looking at over a million dollars. 

Now I know you sit there and think, this guy is wasting my time, where does he get those figures from. They don't promise those kind of returns. My friend, go back to those landing pages. Look at the returns they are promising.  Look at those percentages. 

They talk about 100% or more. Yes, I know not all of them promise those returns but a lot do and a lot of people will buy their product if the returns are big. The makers and sellers of these EA's know that so they try to sweeten the deal with these graphs and returns. 

What I'm getting to is this, if you write a EA that is very profitable, why on earth would you sell it for $97? I use $97 because when you click on the, buy now button, it's always $97. I don't know why, but it's $97 or $79 or somewhere around there. 

Anyway, to market the EA, you would have to open a clickbank account or something similar. You have to create landing pages with endless explanations of just how good your EA is. This can take weeks or even months. 

Then, because you sell the product, you would need to give your customers some kind of support. That means maybe employing someone to sit and go through emails to resolve installation issues and such. Of course you don't have to employ someone, you can do all of that. After all, you coded the EA. The thing is why would you want to go through all that trouble just to sell the EA. It's going to make you rich anyway! 

I also program EA's and to be honest with you, it's not that easy to program a profitable EA. The coding part is easy. It's the strategy that you have to program that's difficult. 

So how come the graphs and live videos they show on their landing pages, show such great results?, I hear you ask. Like I said, I also program EA's and they use a technique called curve fitting. 

Curve fitting is when you optimize the EA's parameters, or variables, for a specific date and time range. I can just see the frowns on you faces after you read the last sentence. If you are familiar with these terms you know exactly what I'm talking about, if you're not, I'm here to explain.  

When you code, or program, an expert adviser, you use variables. These are basically parameters that change while your code is running, hence the term variable. 

To give you an example, let's say you code the robot to start trading at a certain time during the day. You decide that 9am is a good time to start cause the London session is about to open. You run the program and everyday at 9am the program starts trading your strategy. 

But you see that it doesn't do so well and you would like to change the start time to 10am. So you stop the program you edit your program, recompile it and run it again. Again you see it's not really doing what you want it to do. You stop again, edit, recompile and so and so on. You get the picture. 

To automate this you create an external variable that you can change without the need to recompile. It's also called an input parameter. 

I use the metatrader4 platform with my broker and with metatrader4 you can actually optimize these parameters. In part2 of this post I'll have some screen shots to explain this in more detail. Just bare with me for now. So, you attach the EA to a chart, let's say the 15min GBP/USD chart. 

Then, using the strategy tester from metatrader4 platform, you can optimize your external parameters like the starting date by specifying a range. Say from 9am to 15pm. You specify the date range to trade, say from 1 January 2010 to 1 August 2010. Then you run the program. 

When the program execute, it's first going to trade starting at 9am. It will do this from 1 Jan to 1 Aug 2010. Then it will stop and AUTOMATICALLY restart from 1 Jan 2010 but this time the starting time for the trades will be 10am. 

When it's finished it will stop restart form 1 Jan 2010 and the start time will move on to 11am. Every time it does this, a optimization graph is drawn showing you how well the robot performed with the parameter change.  

It will run through the whole time range, 9a to 15pm, and show you with a graph when was the best starting time, or when it made the best profit for a specific starting time. This is just an example. 

There are really a lot of things that you can optimize using this method. When you buy an expert adviser have a look at the customizable parameters you can change. You will be amazed. Some coders will have a lot, some just a few. The more there are, the more customizable the EA is and the more you can curve fit it. 

So, curve fitting basically means that you curve the parameters to fit a specified date range. If it's still a bit confusing I will show in the next section with examples what I mean. I think then it may become more clear. 

The Setup
Let me take you through some real live examples of what I mean. 

I just want to make one thing very clear here, I'm not slamming or discrediting anyone in these posts. I'm just showing how some of these results are generated. I program EA's as well, so I know what it takes to create a profitable EA and it's not as easy as these programmers make it out to be.

Anyway, to get started, I will use one of my own robots I created to explain how optimization works. The robot I created is profitable without the need to optimize it, but it won't make you rich. 

You might get a return of $2000 dollars for a whole years trading with a starting balance of $1000. That's hardly getting excited over, but still you won't blow your account. I will also make this EA available for download later. I just need to make it more user friendly before I post it. 

So, I've created a robot that trades and I want to sell it. Like I said previously, it does OK, but no one will buy this for a $2000 return a year, so I need to sweeten the deal. I will make it look as if this EA is the best thing since they put flakes in ice creams.

 In metatrader4, if you click on "View" then select  "Strategy tester" you will get the strategy tester window. Here you can either just run a backtest on your EA or you can optimize you EA and run the backtest again. It all depends what you want to do. 

In the below image is a screen shot of how parameters are optimized.
mt4 strategy tester
(Click image to enlarge)

It usually opens at the bottom of the mt4 terminal. From here you can select things like the Expert adviser, currency pair, time frame, optimization tab and so on. 

The next image is the actual optimization window where you can select which of your parameters you want to optimize for the specified date range. You will see that I selected all parameters. 

Optimize window
Strategy tester optimize

So, lets run the optimizer with the date range set from 1 January 2010 to 8 September 2010. I've also selected automatic lots, which will increase my lot size automatically based on my account size. It's a feature I programmed into my EA and is not a mt4 setting. I will start with a balance of $1000. 

The following image is the graphical results of the optimization.
MT4 strategy tester base settings
(Click image to enlarge)

This image shows the actual values
MT4 strategy tester actual values
(Click image to enlarge)

Not too bad. A profit of $2875.11 with a profit factor of 1.83% and a draw down of 25%. A profit factor of anything above 1.5% is considered, good. So the first run was not too bad. I then select the most profitable run and ran a normal back test to see how the EA traded within this period. 

This graph shows the actual back test of the most profitable run
mt4 back test
(Click image to enlarge)

Does not look too bad. There are a couple of things on the previous chart that worries me a bit if I had to buy this EA, but more on that in my third post. I want to sell this thing so I'm going to sweeten the deal more. I'm going to firstly increase the starting balance to $10000 and move my end date to the 1st of August. August and September 2010 were not very good trading months for this robot so I took it out. Now let's look at the actual values.

Actual values run 2
Results for strategy tester
(Click to enlarge)

Wow, the best run turned my $10000 into $65267.65 with a profit factor of 2.41% and only 27% draw down. Let's look at the normal back test with the best run parameters selected.

Actual back test 2nd time around
back test results
(Click image to enlarge)

Now this is a EA I would buy, or will I. Now, remember that the parameters have been optimized for a specific period of time. Now lets see what would happen if I run this back test using a different date range. Let's say the same period but a different year. Let's select 2009. So, now I'm running the back test from 1 January 2009 to 1 August 2009 with the same parameters as I did for the year 2010.

Actual back test for year 2009
back test for 2009
(Click image to enlarge)

Not so good this time. In fact I lost  about $4725! I don't think I would even consider buying this EA.  Even worse, how will it perform in the future. The robot might have done well from 1 January to 1 August 2010 but what about until the end of the year! It might even blow my account. 

So, in the above examples, I showed you just how easy it is to manipulate an EA using the optimizer in mt4. There are still a lot of thing I could have done, but I hope you have a better understanding of how some of these robots achieve their great results. This is what is called curve fitting or optimizing parameters for a certain time frame.  

But there is good news. They are not all bad but there are a couple of things you should watch out for when buying a Forex robot. Even my little EA I wrote doesn't do badly and again I will use it to explain what to look out for.

What to look out for

So, what do you look out for when buying an EA? Previously I showed you how the variables of a forex robot can be manipulated to achieve great results. I talked about the concept of curve fitting. Here I will again show you screen shots of test results and how to read the MT4 reports displayed on the landing pages.

I just want to make something very clear.  I feel that the people buying these robots have the right to know what to look out for. This page might even help developers create better products that people will want to buy.

So, let's get started.

There are a couple of things that bothers me a bit about these robots that are sold. The first thing is why you would sell an expert adviser that is very profitable, and why for only $97 or $79? I still don't get it but maybe some day I'll understand why.

The next thing is, why is there not a trial version of the robot. If it's that good then give me a 1 week or 1 month trial version so I can test it. It's possible to program a temporary license in the EA so why not? They might argue that 1 week or 1 month is not enough time, and I agree, but at least I can run back tests on it to see how it would perform over a long period of time.

Well, there's not a lot I can do about the two points I talked about, but what I can do is look at the sales pages which would help me in deciding to buy the robot.
The marketers of these EA's usually have reports that show you the performance of the expert adviser. There are a lot of information on these reports and you can use this to check how good the robot really is. I will use some figures to explain this.

Previously I showed you some reports created by running the back test for a specified period of time. Now let me show you what to look out for.

Report 1 normal run
Strategy tester normal run
(Click image to enlarge)

The report looks pretty good doesn't it? Let me show you what to look out for. I marked all the important bits in red.

  • The first thing to check is the period. In the report above the period is from 1 January 2010 to 1 August 2010. If it's a back test, the period should be at least one year, or preferably, more than one year and the same parameters used for testing. Remember the EA is curve fitted for a period of time.

  • Check for the modeling quality. If you see "Open prices only" then it's not so good. Open prices only means the bar open and close prices are modeled and not the individual ticks. Look for "Every tick" this is the most precise method. In my report the modeling quality is "n/a", that's because I used open prices and not every tick. The reason why programmers sometimes use open prices is the optimization takes much less time cause only the open and close prices are used. If you use every tick the optimization can take hours, even days. This must be 90%.   Anything less is unreliable.
  • Check the "Initial deposit". I used $10000 in the example. I don't know about you, but I definitely don't have that kinda cash to invest in a piece of software I hardly know. This is debatable, but I think $1000 would be a more realistic starting deposit. It all depends. The developers might just want to show you what you could make if you invested $10000. Look for multiple reports with different start balances.
  • Look at the "Profit factor". Anything above 1,5% is considered good. Again, this is debatable. The example report below show a "Profit factor" of 1.31% and yet the EA has produced a profit. If it's too high or too low be careful. If it looks to good to be true, it probably is.  
  • Then check things like the "Draw down", "Gross loss" and "Gross profit". If the draw down is very high, let's say more than 50%, then it means you have lot's of losing trades and this might blow your account if you start with a small initial deposit. Make sure your "Total net profit" shows a decent profit. What's decent? Only you can decide that.

Now, look at the report below.
strategy tester what to look out for 
(Click to enlarge)

This is my EA I created. Now let's have a look the points circled in red.

  • The period is a full year from 1 May 2009 to 1 May 2010. So this is a full 1 year back test.
  • The modeling quality is 90%.
  • The initial deposit is $1000.
  • The profit factor is below 1.5% but it still made a good profit.
  • The draw down is also not too bad at 33%.

All in all, not too bad. Remember what I said, there should be more than one year back test with the same parameters used. If it isn't the same, then it was curve fitted. You can check the parameters if you look at the "Parameters" option in the report.

The next report will show you that my EA does not so well with a different date period.

Second report, different date period.
strategy tester report output
(Click image to enlarge)

Hmm, not too good for 2008-2009. The parameters are all the same, but the profit factor and draw down doesn't look good. I still manage to get a small profit from it, but $298 a year, is hardly getting excited over. If you look at the report there was a date period where the EA's profits just dropped and dropped, and then suddenly it picked up again.

I played around the EA and I had better results if I ran it with a 1 hour period, but I just wanted to show you what to look out for. There's so much I could have shown you but it's beyond the scope of this post. Use google if you are unfamiliar with the terms I used like, draw down, modeling quality and so on. It's just too much information to use in the post.

When you look at the sales pages, you might not see all this information I showed you. They might not use detailed reports like I did. Just try to look through all the information provided and use review websites to see what other people say about the product. I use a forex review website called forexpeacearmy. They have great reviews on trading systems and robots. Use the website and look at the reviews.

Last thing, if you look at the sales or landing page of the product there's usually a affiliate link. I have found lots of information about the EA on these links. Affiliate links are used if you are interested in marketing and selling the EA for a commission. You sometimes find information about upsells and other information about the product that you would not have seen on the actual sales page.

That's it!. I hope you found this info useful. Just remember to try and look at all the relevant information before you buy. 

There are some good EA's out there you just need to find them. If the programmer has a profitable EA, he will make all the information available for you to look at. One company I found that does just that is Diverse FX. You can download and try their EA for a month for free and then decide to buy it. You can also open an account at a broker and they will load the EA on your account and trade for you. This is nice if you do not have experience with EA's and trading. They also have advice on what brokers to use.