An Expert Advisor Made to Order. Manual for a Trader [ ru ]
Not all traders are programmers. And not all of the programmers are really good ones. So, what should be done, if you need to automate your system by do not have time and desire to study MQL4? Usually one visits the forum and creates a topic named something like "I need a programmer":
This article is written specially for those who need help in writing an Expert Advisor. You will find here the contact information of EA-writers, recommendations on contacting them and descriptions of the most frequent problems.
What Should Be Done Before Ordering an Expert Advisor?
Before starting to look for a programmer, make sure that your strategy is profitable. Do not pay for an EA that will not bring profit. You can make it manually by looking through historic data or by trading mentally, which in fact is quite difficult. It can also be done using a manual tester described in the article Testing Visualization: Manual Trading. The most true results can be acquired by trading on a demo account or a mini-real account, but this requires more time and, probably, money. While testing a strategy, note that:
Many errors of this kind can be detected by way of testing a strategy in real-time mode on a demo-account. But this seemingly reliable check cannot guarantee a total coincidence with real trading, because demo and live accounts have some differences:
And do not forget that real money are real money and attitude to them differs from that to a demo account. An Expert Advisor can eliminate a large part of emotions from a trading process, but it cannot fully eliminate your possible errors. Trading on a demo account, stick to one strategy, do not change your plans and do not make emotional decisions. Your future EA is only a program and it will work according to strict rules. If you want to know what results your EA can achieve, you trading style must be the same as that of an EA - concise and disciplined.
If you have been trading using your strategy long enough, it will be easy for you to formalize an algorithm. All you need is to list rules, according to which your EA should trade.
Note that the program will be written by a person that does not have the faintest idea of your strategy. You should specify all the smallest details: parameters of indicators, distance to stop-orders, maximal number of opened positions, trailing stop algorithm, etc. Your requirements specification must contain the description of the reaction on each significant event: activation of a stop-order, appearance of a repeated signal when a position exists, start of an EA after disconnection etc.
You should understand that your PC cannot guess, assume or make independent decisions, - it simply trades according to our rules. If a situation occurs, the reaction on which is not provided by the algorithm, your EA will do nothing.
Let us see on an example what can happen if a requirements specification is not very concise or detailed. The following dialog demonstrates the process of EA development by a Programmer according to the algorithm by a Trader. I intentionally displayed absurdly silly characters. This will emphasize the attention on errors. For a better understanding you can download examples of all EAs and test them together with the Trader.
Hello! I want to order an Expert Advisor.
To define the cost I need a concise and detailed requirements specification.
I have written everything in the previous letter!
Ok, clear. Here is your Expert Advisor - Sample_1.mq4.Trader:
What have you written?! This is not an EA!
The number of positions is equal to the number of crossings. Test your EA in the visual mode, you will see everything - a position is opened at each crossing.
I forgot to tell you: if there is an open position, it should be closed at a contrary crossing - only one position can be opened in the market at a moment. And for each opened position a Stop Loss should be placed at a distance of 50 points.
See the second version - Sample_2.mq4.
Why is here an open Buy-position? Here is no crossing!
There was crossing, but it has disappeared. The chart reflects indicator values on already formed bars and you can see their changes in a bar development process only using a visual testing mode or in real operation. Believe me, there was an intersection at the moment of position opening.
Here is the third version - Sample_3.mq4:
Now it resembles what I really wanted.
In the fourth version (Sample_4.mq4) I added division of orders according to the magic number. If you start several EAs on a chart of one symbol, set different values of the variable MagicNumber for each of them.
Now it is really ok!So what must be the requirements specification, according to which a Programmer could create the fourth version of the EA at the first time? Let us try to formulate requirements to an Expert Advisor:
This is the simplest task. Such simple systems are very rare in real life, so pay attention to all the details when creating the list of requirements.
Undoubtedly, such silly Traders and Programmers are very rare. But, believe me, they exist. It is better to indicate even seemingly obvious details, than later argue with a programmer.
The last thing that can be done before searching for a programmer is trading according to a "list of rules" - when trading do only what is written in this list. Thus you will see all the details that could be omitted when formalizing the algorithm. This may prevent you from possible payments for the improvement of the EA.
Choosing a Programmer
For several years of the existence of the programming language mql4, there appeared quite a lot of Expert developers. Many of them are constant visitors of the website mql4.com. They post here their own developments in CodeBase, write articles and communicate in the forum helping newbies and improving their own skills. Many of them have live accounts and trade both using an Expert Advisor and manually.
There are no (at least I haven't seen any) data bases of EA developers where one could get all the necessary information about a professional MQL4 programmer. And one can hardly create such a data base, because many of EA writers stay in this business not so long.
This article is aimed at helping you to find a programmer. In Appendix 1, Contact Information of EA Writers from mql4.com, you may find all the available information.
When choosing a programmer for the implementation of your Expert Advisor:
Communicate, negotiate. There are a lot of variants, choose the right one.
Testing an Expert Advisor
|Mike||Michael Bernardovich||mikemb [@] ittportal [.] net|
|michal||Michal Rutka||mqlservice.com [@] gmail [.] com||
|Jan Klimo||jan.klimo [@] gmail [.] com||Tel.: +420777288782|
|fuzzbomb||Andrew Young||advisor [@] easyexpertforex [.] com||www.easyexpertforex.com|
|giaras||Giampiero Raschetti||giampiero.raschetti [@] gmail [.] com||
|5leepless||Damian Burrowes||sleepless.damian [@] gmail [.] com|
|Vitovd||Witold Wozniak||contact [@] mqlsoft [.] com||www.mqlsoft.com|
|vasya_vasya ||Vasiliy Orlov||pr0baproba [@] mail [.] ru|
|linx||Lin Xie||linx_mt [@] hotmail [.] com|
MetaQuotes Software Corp. is not responsible for the violation of agreements between a trader and a programmer.
MQL4 Language for Newbies. Custom Indicators (Part 2)
This is the fifth article from the series "MQL4 Languages for Newbies". Today we will learn to use graphical objects - a very powerful development tool that allows to widen substantially possibilities of using indicators. Besides, they can be used in scripts and Expert Advisors. We will learn to create objects, change their parameters, check errors. Of course, I cannot describe in details all objects - there are a lot of them. But you will get all necessary knowledge to be able to study them yourself. This article also contains a step-by-step guide-example of creating a complex signal indicator. At that, many parameters will be adjustable which will make it possible to change easily the appearance of the indicator.
Easy Way to Publish a Video at MQL4.Community
It is usually easier to show, than to explain. We offer a simple and free way to create a video clip using CamStudio for publishing it in MQL.community forums.