How to Order a Trading Robot in MQL5 and MQL4

MetaQuotes | 14 July, 2010

The MetaTrader platform enables round-the-clock trading by using trading robots. Even if you do not have required programming skills, you can utilize extensive algo-trading capabilities and automate trading operations, as well as perform real-time technical analysis of any complexity level. All these advanced options can be obtained by ordering a required application from the Freelance service!


MQL5.com Freelance Advantages

The main advantage of Freelance, which distinguishes it from similar services, is its high financial security: at the beginning of the development, the entire order amount is frozen on the Customer's account. Thus, the Developer will receive a guaranteed payment for the work, while the Customer can be sure that the payment will only be made after order completion.

A Freelance order is divided into steps, each of which is registered in the system. The Developer agrees to perform an order, receives required specifications, provides a prototype and demonstrates the final version: all the relevant actions are recorded in the system journal. After implementing all the specified requirements, the Developer receives the appropriate payment automatically — the system transfers the amount which has earlier been frozen on the Customer's account.

Any dispute can be resolved through arbitration. In any case, the parties can resolve a conflict without contacting the service administration, by selecting one of the three available options.

When creating an order, you can choose ready-made quick options:

The Customer may increase order development period or cost, if such a need arises in the order development process.

Click on the relevant link to increase the budget and/or deadline

Click on the relevant link to increase the budget and/or deadline


To assist Customers with their first orders, we have prepared Freelance tips which provide answers to frequently asked questions. All these tips can be used straight from the order section. Start typing a word in Questions to sort the list and select the most suitable issue. Click on the selected question to insert it into the chat.

How to use tips in the Freelance


In this article, we will show how to use the Freelance service to order applications or to develop custom orders.

 

1. Creating an Order

The Freelance section can be opened directly from the MetaTrader 4/5 terminal, which redirects you to the MQL5.com website. Click "Create an order"

Creating a Freelance order


Figure 1. Creating a New Order

Select order options and specify the main parameters:

Order description

Figure 2. Basic order parameters — description, desired budget and terms

Be realistic. If you specify a very low cost, you may not be able to find Developer or the resulting application quality may not be satisfactory. If you are not sure about the order complexity and cost, you can leave this field blank. Potential developers will offer their implementation terms and cost.

The first stage is completed. Now you should wait for someone to take the order and prepare for order-related questions.

 

2. Selecting a Developer

Developers willing to take up your order will apply for implementation. Current applications can be seen by all users of the MQL5.community, although all applicants are anonymous at this stage. However, the number, rating, statistics on executed orders and current workload are displayed for each applicant.

Applying for order development

Figure 3. Applying for order development

Although the correspondence between the customer and the applicant is not publicly available, Service Rules prohibit the exchange of any personal information before concluding an agreement.

Fulfilling Orders outside of the Freelance service

  1. You can use the Freelance service only for its intended purpose, that is to execute order-related works and to make relevant payments. Searching for customers and developers in the Freelance service in order to perform a work outside of the service is forbidden.
  2. Customers and applicants cannot exchange contact data in any form before concluding a work agreement. Violators are banned from participating in the Freelance.
  3. Performing works and making payments for Freelance Orders outside of the service is forbidden. Violators will be banned from all MQL5.com website services.
  4. The Administration can ban violators from participating in the Freelance service after an internal investigation, without any explanation.

When new messages are added to your order, a briefcase icon appears at the top of the page — this is a notification about updates in your order:

Updates in orders

Figure 4. Updates in orders

Double click on this icon to view messages.

On the next step, the Customer should process all received applications. This includes moving applications into appropriate categories: "Selected", "Candidates", or "Rejected":

Select a Developer to execute the order

Figure 5. The list of applications from Applicants

Suitable applicants are moved into the "Candidates" group where further order details can be discussed.

When applicants are moved into the "Candidates" group, they receive a notification, and appropriate messages are added to the respective orders

Important! Try to communicate with each other as much as possible in order comments, not only at this step, but also at all further steps. People often interpret the same terms in different ways. So, the more details you discuss during the order process, the better can be the final result.

The Customer select the most suitable developer and move the appropriate Applicant to the "Selected" category. This category can only contain one developer. If you try to add another Applicant to this group, the previously selected one will be removed from the Selected category.

Make sure you have clarified all the order details. We recommend carefully reading all messages, before proceeding to the next step.

 

3. Freelance Order Execution

The order execution process consists of three steps. Each step requires confirmation by both Customer and Developer. Whenever one of the parties completes a step, the other party receives an appropriate push notification.

To enable Push notifications, you should specify your Metaquotes ID in your MQL5.community profile. For further details about Push notifications please read the article MetaQuotes ID in MetaTrader Mobile Terminal.

As soon as the Customer confirms the last Handover and Payment step, the previously frozen amount is automatically transferred to the developer.

The following table shows a brief description of Customer and Developer actions at each step.

Step Name Customer Developer
1
Requirements Negotiation Provides the Requirements Specification to the Developer
Confirms the final cost and implementation time
Checks the "Requirements Negotiation" box






Confirms Requirements specification and accepts the specified final development cost and time.
Checks the "Requirements Negotiation" box

2
Demonstration





Upon receiving the materials, the Customer must either confirm that the submitted materials correspond to the Order, or refuse it, providing a list of unimplemented parts of the Requirements Specification.
Checks the "Demonstration" checkbox

When all the features specified in the Requirements Specification have been implemented, the Developer demonstrates the results and confirms the demonstration step.
Checks the "Demonstration" checkbox

3
Handover and Payment




The Customer verifies the submitted materials and accepts the work.

As soon as the Customer accepts the result, the system will automatically transfer the appropriate amount to the Developer's account.
Checks the "Handover and Payment" checkbox

The Developer delivers the work to the Customer and confirms that the work has been submitted.
Checks the "Handover and Payment" box


All these steps are performed within the Order.

Important! Do not forget to leave all important messages in the form of comments, even if you have already discussed these issues through other channels of communication, such as chat, personal messages, or oral discourse. Always secure all of the agreements you have reached in the form of messages directly in the comments.

To start working with a selected Developer, the Customer should move the appropriate application to the "Selected" category and confirm his choice:

The Customer and the Developer discuss preliminary conditions

Figure 6. The Customer and the Developer discuss preliminary conditions



Once a Developer is moved to the Selected group, the parties can proceed to discussing the Requirements Specification details, the final development cost and deadline.

The Customer selects the Developer

Figure 7. The Customer selects the Developer


Step 1. Requirements Negotiation

The Requirements Specification is one of the most important parts of the Freelance order. Discuss all the details of the desired solution and ask questions, even if the answers to them seem obvious. The most common problems are related to misunderstanding, when each party considers some points to be clear and not requiring discussion. Later, in the process of development, it may turn out that the Developer has implemented the required functionality in a completely different way. After a couple of such moments the parties may start accusing each other of non-compliance with the previous agreement.

Make sure to view the example of the Requirements Specification required for ordering a trading robot or an indicator

According to the standard MQL4/MQL5 application ordering procedure (as well as applications in other programming languages), the Developer usually provides to the Customer the source code created during the development process. Nevertheless, the Customer must explicitly specify this requirement in the Requirements Specification.

We also recommend specifying in the Requirements Specification whether the Developer is allowed to use parts of this development in other commercial projects or in their own products published in the Market.

Important! The Freelance service administration does not deal with order-related legal disputes. For legal protection, the parties can enter into an additional agreement outside the Freelance service.

The final version of the Requirements Specification is provided by the Customer as a separate attachment, just before confirming the Requirements Negotiation step. All details of the order must be covered by the Requirements Specification. Use screenshots or images where applicable.

Loading Requirements Specification

The Customer must provide the final version of the Requirements Specification along with the cost and deadline.

The Developer must agree with the Requirements Specification terms and the final cost. If any changes should be made to the order, send new messages with the details of these changes.

The Customer and the Developer have agreed on the Requirements, cost and deadline

Figure 8. The Customer and the Developer have agreed on the Requirements, cost and deadline

Note that the parties should proceed to the next stage only after the final version of the Requirements Specification has been approved. 

This means that the Developer should start working only after both parties have checked the "Requirements Negotiation" checkbox.

Step 2. Demonstration

On the second step, the Developer can start implementing the order. All further questions which may arise during the development process should be discussed directly in comments.

Once all of the requirements specified in the Requirements Specification have been implemented, it is time to demonstrate the finished work to the Customer. The result demonstration depends on the order. For Expert Advisors it can be as follows:

The purpose of demonstration is to assist the Customer in evaluating the resulting application.

After the demonstration, the Customer must either confirm the compliance of the submitted solution with the Requirements, or reject it, providing a list of unfulfilled requirements or deviations. If necessary, the Developer can take additional time to correct the identified flaws and produce a new demonstration.

The confirmation of the Demonstration step is also automatically recorded by the Freelance service:

Confirmation of the Demonstration step

Figure 9. Confirmation of the Demonstration step

Only after successful completion of the Demonstration step, the Developer must submit the final version, unless otherwise agreed by the agreement.

If the resulting product does not meet the previously agreed Requirements, then the Customer or the Developer may request Arbitration.

Even after applying for Arbitration, the parties can complete the order in a regular way or select one of the available options:

  1. Cancel the Orders: 10% of the amount frozen for order is deducted from the Customer's account, while the remaining 90% is released; nothing is transferred to the Developer's account, while the service commission is 10%. The Order is classified as "New" and becomes available to new Developers; the feedback can only be added by the Customer.
  2. Divide the money in half less the Freelance service commission:
    • 10% of the previously frozen amount is deducted as the Freelance service commission,
    • the remaining 90% is divided into two halves: the first half (45% of the Order cost) is returned to the Customer's account, while the second half (45% of the Order cost) is transferred to the Developer, which is equal to 50% of the original cost,
    • the Order is classified as "New" and becomes available to new Developers; the feedback can be added by both parties, the Developer and the Customer.

 

Step 3. Handover and Payment

The Developer sends to the Customer all the materials relating to the implemented order, in the specified volume. As a rule, the solution is submitted as source code, because the compiler version may change in the future in which case the recompilation of the solution may be required. If only the executable file is to be provided by agreement, further updates should be covered by the Requirements Specification.

Further usage of the obtained results in other developments, by the Customer or the Developer, as well as the authorization of passing the solutions to third parties on paid or free bases, should also be discussed in the Requirements Specification. Parties can additionally specify these obligations in a separate agreement, outside the Freelance service. The Freelance administration does not deal with such issues.

The Developer transfers the required materials, checks the "Handover and Payment" checkbox, and waits for the same step to be confirmed by the Customer. As soon as the Customer confirms this step, the order is considered completed, and payment for it is automatically transferred from the Customer's account to the Developer's account. No actions from the Customer are required for the payment.

Work Acceptance and Payment confirmation

Figure 10. Handover and Payment confirmation

As soon as the Customer confirms this step, the order is considered completed, and payment for it is automatically transferred from the Customer's account to the Developer's account. By this time, the Customer should have all the results of the work, in accordance with the Requirements Specification.


Payment for the order on the Developer's account

Figure 11. Payment


 

4. Order feedback

After the completion of the order, the Customer and the Developer can add a feedback about the cooperation and rate the order.

The list of works, completed by the Customer or the Developer, is available in the "Freelance" section of the user's profile.


Customer reviews in the Developer's profile

Figure 12. Freelance section with customer reviews

The Developer can also leave feedback about the Customer.

 

Order algo trading solutions from Freelance!

Freelance is an ideal place to order indicators, trading robots and visual technical analysis systems of any complexity level. Thousands of traders and developers meet on the world's largest freelance service for algorithmic trading on the most popular trading platform MetaTrader.

If you are a trader with a ready-made trading strategy, but you do not have MQL5/MQL4 programming skills, then Freelance is the best solution for you. With this service, you can find a developer who will create an Expert Advisor or an indicator for you.


Order a robot or an indicator from Freelance


Related articles: