Do expert advisors or Forex robots really work? Part 1
Posted by Pieter Joubert on Wednesday, September 1, 2010
Under: Forex Robots or Expert advisors
I thought of writing one post on this subject but it soon became evident that the post will just be too big, so I decided I will split the post into parts. This is the first part in a series of three. I will try and make this as informative and interesting as possible.
Right, so lets get started. 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! Yes, my dear readers, they are all different names for 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 my next post with examples what I mean. I think then it may become more clear.
I hope you enjoyed this first part of the post. I do apologize if it was a bit technical. I will try my best to make it less technical in the next post. I'm going on here, I'm sorry I will stop.
Till next post
May the force be with you
Pieter
Right, so lets get started. 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! Yes, my dear readers, they are all different names for 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 my next post with examples what I mean. I think then it may become more clear.
I hope you enjoyed this first part of the post. I do apologize if it was a bit technical. I will try my best to make it less technical in the next post. I'm going on here, I'm sorry I will stop.
Till next post
May the force be with you
Pieter
In : Forex Robots or Expert advisors
Tags: "expert adviser" profitable "forex robot" "back tests" variables "london session"
