Download MetaTrader 5

Andrey Voitenko (avoitenko): "Developers benefit from the ideas that they code? Nonsense!"

7 September 2011, 17:37
MetaQuotes Software Corp.
2 474

A Ukrainian developer Andrey Voitenko (avoitenko) is an active participant of the "Jobs" service at, helping traders from all over the world to implement their ideas. Last year Andrey's Expert Advisor was on the fourth place in the Automated Trading Championship 2010, being slightly behind the bronze winner. This time we are discussing the Jobs service with Andrey.

Andrey, you are actively involved in developing programs for MetaTrader. Please tell us about yourself.

In order not to tell my life story from the moment of conception, I will tell you only about what is connected with trading. I have opened my first real account in 2008. I started to trade manually, but not very successfully. Then I gradually switched to automated trading. The latter one suits me better from the point of view of psychology. I quickly learned the MQL4 language, and then with the beta release of the MetaTrader 5 terminal I started to learn MQL5. I've been participating in the Jobs service since its opening.

Why is the Jobs service interesting to you?

This service helped me to work from home. It also helped to broaden my horizons and gain experience stemming from the variety of tasks, as well as to develop my own style of code writing, since I have to write codes almost every day.

Do you think the service can be a major source of income?

On the one hand, there are almost always new applications in the service. On the other hand, the cost of the work specified by the customer is often inadequate in terms of required labor. Because the service provides conditions for a free competition among programmers, it is not possible to restrain the price at a level high enough for using the Service as my main job. For example, I calculated that for one year I've earned no more than $3,000 or $250 a month performing orders in the Jobs service. You should decide for yourself if you can live with this amount of money.

Andrey Voitenko

What are the disadvantages of the Jobs service? How can it be improved?

In my opinion, the main concept of the service is implemented correctly. Improvement may be applied just to minor details, rather than something fundamental.

Many people believe that the cost of jobs is low, accusing some programmers of dumping. What do you think about it and what solution do you think would be effective?

While I have enough orders, the problem of dumping for me is not so serious. Although I think that if the price of orders falls, eventually I will have to seek employment outside the service. From my point of view it would be reasonable to raise the minimum cost of an application from $10 to $25-$30. I appeal to professional programmers - please fill in the field of price and terms to give an idea of ​​the real cost and complexity of the work. Both customers and novice programmers can be guided by these data.

How do you manage to cope with a large number of orders? Do you have ready-to-use libraries?

Often I have to perform several orders at a time - therefore it is important to learn to do everything quickly. To increase the quality and speed, I use some universal functions for MQL4. In this case, the process of programming implies an accurate combination of such functions. Nothing of that kind is necessary for MQL5, since it already has a library of functions - this reduces the development time.

What do customers order? In what language?

Most often customers order Expert Advisors in MQL4 based on one or two indicators, as well as translation of indicators from MQL4 into MQL5.

What was your most interesting order?

The most interesting was a multicurrency collector of ticks from MetaTrader 5 to the mySQL database. Probably this is because my favorite development subject is integration, i.e. joining MetaTrader 5 with third-party applications.

Has anyone ordered an Expert Advisor for the Automated Trading Championship?

Yes. Currently I'm developing such EAs.

Were there any orders that you couldn't perform and why?

Of course there were. I am not able to perform absolutely all jobs. When developing applications, I can encounter pitfalls which are imperceptible but which I cannot overcome in the end. Once I had to translate an EAcode from MQL4 into MQL5, fully preserving its operation logic. That Expert Advisor used locking of orders (i.e. the Buy and Sell position can co-exist). Finally I had to reject this job, because this task cannot be easily implemented in MetaTrader 5.

What was your most difficult and long order? What was its peculiarity?

For me, poorly documented orders are most complex from the psychological point of view. Sometimes customers mean absolutely different thing, not what they write in the requirements specification. Another problem for me is the language barrier when working with foreign clients. Technically the most difficult implementation was a semi-automated system, as it had to consider the manual manipulation of the trader in addition to other functions.

Maybe some customers do not want to disclose all the details of their trading systems, fearing that a developer can use their ideas?

I had to deal with the customers who were not willing or able to describe how their trading system should operate. The description of the job was limited only to generalities. In addition, after they gave me the source code for modification, they got a moral right to accuse me that I would use these codes. Recently, several people with whom I started to work accused me of stealing their ideas.

Those who want to protect themselves from such an attitude should better work with the orders through the Jobs service, pre-negotiating copyright issues, and never start work without a clearly written specification. Also it is better to avoid working with other developers' source codes, since often it is easier to develop a code from scratch in a clear style.

So customers needn't fear that their ideas can be used?

I am sure that the customer should only be afraid of the fact that his idea will be ineffective when the nature of the market changes. Such an idea is instantly devalued entailing losses, including for those who use it illegally.

I never distribute other people's ideas and codes, because I risk losing my reputation. The idea that developers benefit from the ideas that they code is absurd. Almost all the ideas that I have been asked to implement, needed further elaboration and testing, and in most cases as a result did not satisfy the authors.

Dimitar Manov and Andrey Voitenko, Kiev, 2011

Dimitar Manov and Andrey Voitenko, Kiev, 2011

In the photo you are with Dimitar Manov. Please tell us more about this building.

I met Dimitar in Kiev conference on automated trading. It was an unexpected meeting, and we quickly found common ground, since we both had participated in the Automated Trading Championship 2010. It was interesting for me to share my new ideas about trading strategy development with Dimitar.

The Jobs service provides Arbitration for solving disputes. Have you ever used it?

Yes, many times. Sometimes customers forget to pay for a completed job, some of them changed their plans during the job and then we had to go to Arbitration. For my part, too, there were delays and a customer canceled his order. I believe that involvement of a third party for resolving contentious issues is essential.

What can you say about the decisions of the Arbitration?

I like the fact that in Arbitration decisions are not taken hastily. All the decisions (no matter in my favor or not) were reasonable and fair. I have no complaints in this matter.

You have many regular customers. Why do you think they prefer to work with you?

Thanks to the Jobs service and the 2010 Championship I've got a lot of regular customers, who saw my success and offered a job on a permanent basis. I'm a pretty open person, my avatar is my photo, all my contact details, including address are publicly available.

Besides, I'm in the top ten of the developers on Those who come to me from the Ukraine, see me as a fellow countryman, and that in itself helps establish good relations. All this together leads to the fact that at the moment I receive more job offers than I can perform.

Thank you for the interview. Good luck.

Translated from Russian by MetaQuotes Software Corp.
Original article:

Step on New Rails: Custom Indicators in MQL5 Step on New Rails: Custom Indicators in MQL5

I will not list all of the new possibilities and features of the new terminal and language. They are numerous, and some novelties are worth the discussion in a separate article. Also there is no code here, written with object-oriented programming, it is a too serous topic to be simply mentioned in a context as additional advantages for developers. In this article we will consider the indicators, their structure, drawing, types and their programming details, as compared to MQL4. I hope that this article will be useful both for beginners and experienced developers, maybe some of them will find something new.

Here Comes the New MetaTrader 5 and MQL5 Here Comes the New MetaTrader 5 and MQL5

This is just a brief review of MetaTrader 5. I can't describe all the system's new features for such a short time period - the testing started on 2009.09.09. This is a symbolical date, and I am sure it will be a lucky number. A few days have passed since I got the beta version of the MetaTrader 5 terminal and MQL5. I haven't managed to try all its features, but I am already impressed.

Using text files for storing input parameters of Expert Advisors, indicators and scripts Using text files for storing input parameters of Expert Advisors, indicators and scripts

The article describes the application of text files for storing dynamic objects, arrays and other variables used as properties of Expert Advisors, indicators and scripts. The files serve as a convenient addition to the functionality of standard tools offered by MQL languages.

How to create an indicator of non-standard charts for MetaTrader Market How to create an indicator of non-standard charts for MetaTrader Market

Through offline charts, programming in MQL4, and reasonable willingness, you can get a variety of chart types: "Point & Figure", "Renko", "Kagi", "Range bars", equivolume charts, etc. In this article, we will show how this can be achieved without using DLL, and therefore such "two-for-one" indicators can be published and purchased from the Market.