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

7 September 2011, 17:37
4 045

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:

Last comments | Go to discussion (1)
Arvind Shah
Arvind Shah | 12 Oct 2016 at 10:14


I have some Strategies for  Trading. Can you develop it in Expert Automate trading  and Indicators. If you can please let me mail on so, I can send you to your mail.


Arvind Shah 

Andrey Bolkonsky (abolk): "Any programmer knows that there is no software without bugs" Andrey Bolkonsky (abolk): "Any programmer knows that there is no software without bugs"
Andrey Bolkonsky (abolk) has been participating in the Jobs service since its opening. He has developed dozens of indicators and Expert Advisors for the MetaTrader 4 and MetaTrader 5 platforms. We will talk with Andrey about what a server is from the perspective of a programmer.
Creating Custom Criteria of Optimization of Expert Advisors Creating Custom Criteria of Optimization of Expert Advisors
The MetaTrader 5 Client Terminal offers a wide range of opportunities for optimization of Expert Advisor parameters. In addition to the optimization criteria included in the strategy tester, developers are given the opportunity of creating their own criteria. This leads to an almost limitless number of possibilities of testing and optimizing of Expert Advisors. The article describes practical ways of creating such criteria - both complex and simple ones.
Nikolay Ivanov (Techno): "What is important for programs is the accuracy of their algorithms" Nikolay Ivanov (Techno): "What is important for programs is the accuracy of their algorithms"
A programmer from Krasnoyarsk Nikolay Ivanov (Techno) is a leader among the developers in terms of the number of completed orders - he has implemented already more than 200 applications in the Jobs service. In this interview, he is talking about the Jobs service, its specific features and challengers faced by programmers.
Applying The Fisher Transform and Inverse Fisher Transform to Markets Analysis in MetaTrader 5 Applying The Fisher Transform and Inverse Fisher Transform to Markets Analysis in MetaTrader 5
We now know that probability density function (PDF) of a market cycle does not remind a Gaussian but rather a PDF of a sine wave and most of the indicators assume that the market cycle PDF is Gaussian we need a way to "correct" that. The solution is to use Fisher Transform. The Fisher transform changes PDF of any waveform to approximately Gaussian. This article describes the mathematics behind the Fisher Transform and the Inverse Fisher Transform and their application to trading. A proprietary trading signal module based on the Inverse Fisher Transform is presented and evaluated.