How to Order an Expert Advisor Based on Your Strategy

image thumb Good day, fellow Forex traders!

It is no secret that if a trader works for some time according to the rules of their trading system day after day, week after week, month after month, then they get to know the operating procedure, the specifics of the trading instrument, and gain experience from each completed trade quite well. Over time, this routine begins to become a little boring, since all actions are constantly repeated and there is nothing new. This is where the idea comes in: why not automate your strategy and shift all the operating algorithms, or at least part of them, onto an expert advisor? But what if you do not know any programming languages? From today’s material you will learn where to find a programmer to automate a strategy, how to properly write a technical specification, how much and how to pay for the work, and what deserves special attention.

Where to Look for Programmers?

MetaTrader is truly the flagship terminal in its class in terms of extensibility and available functionality. This is confirmed by the huge library of indicators, experts, and scripts that let you do with the terminal anything you could wish for. All of this prosperity is entirely the merit of MetaQuotes, whose team regularly implements thoughtful and easy-to-use services that make life easier for both ordinary traders and programmers using this platform.

Of course, everyone has their own unique idea of how the extensive capabilities of a trading terminal should be used. Your own trading expert, trading panel, indicator, or script all require the work of a qualified programmer. But what if you do not know a single programming language? The answer is obvious: order development on a freelance exchange. The best place for this is the MQL5 Jobs service, created by MetaQuotes specifically for developing applications for the MT4/MT5 terminals.

Testing the Idea

daily_picdump_1317_640_42

First, you should decide what exactly you need. That is, whether you want to make a trading robot, an indicator, or an auxiliary script. If you are not yet sure what the final solution should look like specifically, you should describe the task in detail, and you will certainly be offered one of its possible solutions.

If we are talking about developing a full-fledged automated expert advisor, then the most frequent reason for customer disappointment is the unprofitability of their strategy. You should understand that the contractor is in no way responsible for the profitability of the expert advisor they develop. Their task is to follow the agreed technical specification precisely, without deviating from it by a single millimeter. Therefore, if you received a finished expert advisor and, after testing it, realized that it does not make money, then the problem lies in the algorithm of the expert advisor, not in how the developer implemented it.

Often the problem is explained by the fact that customers do not treat testing the idea on historical data very carefully, or even take the technical specification from some article on the internet. If you test a strategy manually, use different sections of history. Often beginner traders test only one section, or knowingly skip losing trades, convincing themselves that they could easily have filtered them out “by eye.” Because of this, the customer ultimately gets a result that is completely unexpected for them.

A typical cause of quarrels on this basis is the customer’s desire to refine the idea “real quick” while the contractor is still “hot.” Often the amount of work grows into a new order in size, and the matter ends with an appeal to arbitration. Therefore, always value your time and the time of the person carrying out your order, and spare yourself the urge to make several “small free changes” at the final stages of the work.

Do not be afraid to ask developers clarifying technical questions. For example, whether it is possible to use an indicator without source code in the strategy, what repainting is, whether an expert advisor can trade on different timeframes and symbols; all these are the most common questions among beginners.

Writing the Technical Specification

daily_picdump_1887_640_85

The most difficult stage for beginners is writing the correct technical specification. Many do not even know where to start. The main rule is that the specification must be completely self-sufficient and as detailed as possible. Without observing these two points, you risk getting misunderstanding from the person executing your order. In such a case, always try to refine the specification during the discussion of the order with the contractor so that you can be as confident as possible in the correct and, most importantly, identical interpretation on both sides.

Of course, you should start with the general idea. If this is a trading expert advisor, try to describe which indicators are used in it and by what principle, or what the decision to enter a trade is based on. Next, how the position lot is set, by what principle positions are closed, whether stop loss, take profit, or a trailing stop is needed. Further, what input parameters are required, what this will affect, and what additional functions you want to implement in your idea.

At the same time, you absolutely should not give the programmer a link to a strategy discussion on a forum or a long webinar video. You should understand that the contractor has no time to figure out the details of your assignment. Everything should be detailed, but without unnecessary repetition, and should have only one possible interpretation.

The same applies to any other types of work. If this is an indicator, you must provide the exact formula for its calculation. You also need to discuss in advance its appearance, the way additional data is displayed, the possibility of testing it in the tester, and so on. That is, looking at such an assignment, the contractor should fully understand the idea and be able to implement it exactly in that form.

How not to do it:

An expert advisor is required based on ATR and fractals. We open a trade when a large candle appears near a fractal level. The lot is progressive and depends on the money in the account. A dynamic stop loss and take profit are also needed.

Example of a proper technical specification:

It is required to write an expert advisor based on Bill Williams fractals and the ATR indicator. In the input parameters there must be an option to specify the risk coefficient, the ATR period, as well as the minimum stop loss and take profit values. We enter a buy position if a candle with a body equal to 200% of the current ATR value closes above the level of the last upper fractal. The margin for the position must correspond to the established risk coefficient from equity. The exit from the position is carried out by stop loss or take profit. The stop loss and take profit values are taken from the current ATR readings, but they must not be less than the values specified in the input parameters.

Creating an Order

daily_picdump_1946_640_09

First of all, you need to create a new order. To do this, go to the MQL5.com website, register if you have not done so yet, and go to the “Freelance” section. To create a new task, click the “New Job” link.

mql5-jobs-sozdanie-zakaza

Next, fill out the order form:

  1. Enter the title of the job. For example: “An expert advisor needs to be written” or “An indicator is needed”;
  2. Select the category and specify the platform version (MQL4 or MQL5);
  3. If you have previously ordered something and want to continue working with the same developer, you can create a personalized order by specifying the contractor’s name in this field;
  4. Specify the approximate cost of the work. If you have not yet decided on the budget, you can leave the field empty and clarify the cost during the discussion of the order with developers. At this stage you indicate only an approximate cost, but at the same time you should not set too low a price or overstate the threshold too much. In the first case you may receive no responses at all, while in the second case contractors may, on the contrary, demand too much;
  5. Here specify the approximate deadlines for completing the work. Always try to indicate in the assignment whether there is any urgency in completing the work. Developers do not always follow the stated deadlines, since a lot of unaccounted-for time can go into testing and fixing errors. Naturally, for an urgent assignment the contractor may request a higher price;
  6. The most important part. Here you should describe the task in detail. The final result largely depends on how correctly the assignment is drafted.

mql5-jobs-sozdanie-zakaza-2A little lower you can attach files if required. For example, these may be explanatory pictures or other files directly related to the execution of the work. After filling out the form, click “Add” to create a new order.

Communicating with Contractors

daily_picdump_1997_640_89

After creating a new application, contractors will begin responding to it. When a new message is received in jobs, a portfolio icon will appear in the top toolbar. Click the icon to go to the discussion. At the initial stage, you need to discuss all questions concerning the details of the task being performed, the cost, and the deadlines. To choose a contractor, hover over the application and click “Move to: Selected.”

mql5-jobs-obshhenie-s-ispolnitelyamiWhen choosing a contractor, try to pay attention to their work experience and the reviews of previous customers. It is worth paying attention to the cost of the orders they carry out: many $10 orders may indicate insufficient professionalism on the part of the developer. Also, good contractors always try to meet you halfway, explain things if something is unclear, or give a link to the necessary materials. Also, if possible, the presence of additional contact methods and, in general, the speed of response to messages will be a plus. This shows how interested the contractor is in the work.

Only one contractor can be selected to perform the work. If you changed your decision and chose another one, the first will be removed from the “Selected” group. Clicking the portfolio icon will open the order page. Contractor applications are divided into four groups: Selected, Candidates, Rejected, and New. mql5-jobs-obshhenie-s-ispolnitelyami-2The order execution process consists of six stages confirmed by both parties. Your main task is not to hesitate to discuss all the details of the work being performed both at the first stage and at the subsequent ones. It happens that people interpret the same concepts differently. Therefore, to avoid misunderstanding, try to make sure that the task has been understood correctly.

Step 1: Work Agreement

daily_picdump_2048_640_48 After moving the contractor to the selected group, on your side it is necessary to confirm the fact of providing the work and agree to the service rules. At this stage, the customer confirms agreement with the service rules, and the contractor confirms acceptance of the work. Check the indicated boxes and click “Next.” mql5-jobs-soglashenie-o-raboteAfter that, a corresponding message will appear in the log.

mql5-jobs-soglashenie-o-rabote-2Step 2: Confirmation of the Technical Specification

daily_picdump_2021_640_50 At this step, it is necessary to fully approve the technical specification. Try to discuss all the nuances of providing the prototype and the final result. For example, whether you need the source codes or by what means the assignment will be completed. mql5-jobs-shag-2-podtverzhdenie-tzBased on the results of discussing the final technical specification with the contractor, you have the opportunity to adjust the cost of the work and the deadline for its completion before confirming it finally. Also, you need to attach the technical specification as a separate file. This file will be used in the event that disputed situations are resolved through Arbitration. mql5-jobs-shag-2-podtverzhdenie-tz-2Enter the agreed cost and deadlines in the corresponding fields and click “Next.” After the contractor confirms the terms, the job will be redirected to the prototype submission step, and an amount equal to the cost of the work will be frozen in your account. The transfer of money to the contractor will be carried out only at the final step.

Step 3: Prototype Submission

daily_picdump_2068_640_53 A prototype or mock-up, as is known, should give an idea of how the finished application will work. At this step, you can approve the presence and number of input parameters, the appearance of the indicator, or confirm the interface design of the trading panel. The contractor sends the customer a prototype, which the latter must confirm, after which a corresponding message will be displayed in the log. If some point in the prototype does not suit you, or it differs greatly from the assignment agreed earlier, you can request revision of the prototype by specifying your comments regarding the revisions. Revisions are possible only if the prototype does not correspond to the agreed technical specification. If at this step you suddenly discover that you need something completely different, you need to discuss the cost of additional work with the developer, since some changes may result in a complete rewriting of the program’s source code. If the opposite happens, and the contractor claims to have provided a finished solution while in fact not having fulfilled all the points specified in the technical specification, you can turn to arbitration for help in resolving the dispute. In fact, if the assignment is simple and the contractor is immediately ready to provide a fully working solution, the stage of prototype submission can be skipped altogether.

Step 4: Demonstration

daily_picdump_2049_640_35 This is the final stage at which the contractor must provide a fully working solution. The solution must implement all the requirements specified in the technical specification, as well as additional conditions clarified during the discussion of the task. Specifically, in what form the solution is provided depends on the type of assignment. This may be an expert advisor test in the strategy tester, source codes, or logs in the journal. Also, the customer may request a demonstration of the application in videoconference mode or an explanation of how certain parts work. In any case, if you need any revisions at this stage, you will need to create a new order for this.

mql5-jobs-shag-4-demonstratsiyaIf for some reason the provided solution does not perform all the functions agreed in the technical specification, you always have the right to turn to arbitration to resolve the situation.

Step 5: Handover of Work

At this step, the work is considered completed. The customer has been given the finished solution, and the contractor has confirmed its readiness. Please note that the work may be transferred both as source code and as a compiled version. The exact method of transferring the work and its subsequent updating should be discussed at the first stages of the order. Without the source code, in the future there may be difficulties transferring the task to another developer, so this is something worth taking care of in advance.

If after this the customer does not get in touch, within 3 days the funds will automatically be transferred to the developer’s account. That is, the work automatically moves to the payment step.

Step 6: Payment

daily_picdump_2073_640_86

After both parties confirm the transfer of the work, the agreed payment amount minus the 10% service commission is automatically transferred to the developer’s account. You do not need to click anything else. The work will automatically be moved to the “Completed” section. You, as the customer, can now leave feedback for the contractor and describe how satisfied you are with the completed work. Also, the contractor can leave a return review. This is how the customer’s and contractor’s ratings are formed.

Conclusion

If you need to implement a unique trading idea and are disappointed with finding a suitable solution on the vast expanse of the internet, the MQL5 Jobs service is the ideal solution. If you have not dealt with freelance exchanges before this moment, remember that the main thing here is mutual respect. If you follow the instructions and provide all the necessary information, you will certainly get the result you want and may even find long-term partners.

Respectfully, Alexey Vergunov TradeLikeaPro.ru

Today you will learn where to find a programmer to automate a strategy, how to properly write a technical specification, how much and how to pay for the work, a