Complete Guide to Forex Algorithmic Trading

Looking through the articles on the pages of our forex blog, which, in one way or another, relate to algorithmic trading, I came to the conclusion that it is quite difficult to create a complete picture of this wonderful type of trading based on the information that is presented. There are many missing pieces, elements, without which it is impossible to understand the full picture and diversity of the world of algorithmic trading.
That’s why I set myself the task in a series of articles to organize all the material and fill those very information gaps. According to my plan, the result should be a complete guide for those who want to engage in such an exciting and diverse, but by no means simple matter, as trading using automatic trading systems. Much of what I would like to talk about has already been written on the pages of this blog. I will not duplicate the material, but I will leave links to the necessary articles in those places where the knowledge contained in them may be required. Also in some cases I will simply supplement what was previously written.
Shall we begin?
What is algorithmic trading?

So, let's start with the simplest thing. What is algorithmic trading? At the moment, there are a huge number of myths about algorithmic systems, including completely ridiculous and incredible ones. For example, some people who are completely far from trading believe that there is a huge computer the size of a five-story building, which is connected to the Internet, and, reading all the news of the world and simultaneously digesting it, makes bets on the markets. That he is so smart that he simply guesses the future.
Algorithmic trading is a certain style of trading in financial markets, in which a certain trading algorithm, which includes the rules for opening, closing and maintaining a position, calculating the volume of a position, and others, is implemented programmatically, connects to a data source and communicates with the server through trade requests (we will examine all this in more detail later). To put it simply, a trader formulates the rules of his trading system, tests and configures it, and then the automatic trading system operates on the market without the direct participation of the trader, who can only monitor the effectiveness of its work.
That is, the main task of algorithmic trading comes down to accurate execution of signals from your own system. Hence the second name for this approach - trading using mechanical trading systems (MTS). In Forex they are called advisors. I like the name algorithmic trading better, since it immediately indicates the essence of the approach - trading based on an algorithm. The term “mechanical” means the consistent execution of all trading system signals, regardless of one’s own judgment about the current situation on the market. It should also be noted that the term mechanical trading system does not mean an automatic trading system that itself makes transactions in the market without human intervention or with minimal participation. A mechanical trading system may well be manual.
What is this style of trading based on, what are its main ideas? Firstly, it is impossible to guess the future. It is hidden for mere mortals. Secondly, the market or prices for financial instruments appear to be a kind of random system, and each subsequent price may randomly be higher or lower than the previous one, and it is impossible to predict this. Thirdly, algorithmic traders or quantum traders (quants) work only with the probability of a future price falling into a particular range, based on certain rules or calculations made on the analysis of the previous price series of one or more financial instruments. Moreover, these rules may be constant, or they may themselves change over time along with market changes. That is, they look for constantly recurring dependencies on historical data, which with a certain degree of probability may be repeated in the future. Fourthly, the very essence of algorithmic trading and algorithmic research lies in the selection of these same rules or families of robots. The selection can be manual - using certain mathematical or physical models, it can be automatic - using brute force rules, or it can also be genetic, when the rules are invented by the computer itself.
Everything else you hear about algorithmic trading as prediction systems is fiction and fantasy: the future cannot be predicted.
For example, world leaders in algorithmic trading such as Citadel, Renaissance Technology, and Virtu use more than 100 different trading rules (families) across 1000-3000 financial instruments, which results in daily profitability. For example, some firms do not have a single losing day over fairly long periods.
How are trading rules or families of robots selected and tested? At the first stage, the trader creates his own mechanical trading strategy. Tests it on historical data to understand the level of profitability of this strategy. Here we come to another important point: robots can only be selected based on real historical market data. It is impossible to come up with virtual or artificially generated market data, since historical data contains all the conclusions and reactions of a huge number of market participants, characterizing the exact moment in time when traders and computers made bets. This is the same as, for example, the impossibility of creating an artificially generated weather forecast for 5 years, since the weather changes chaotically depending on various changing environmental conditions. Therefore, robots are selected only on historical data, and their work, again, can only be tested on historical data. At the same time, of course, there is no guarantee of the profitability of each individual robot in the future, but there is only the probability of its profitable operation. If the level of profitability is satisfactory, then the trader proceeds to testing in real time on a minimum capital or using a demo account.
What is also important to understand about the work of algorithms is that each of them has parameters that, in fact, distinguish one robot from another, even in the same family. Parameters are certain numerical characteristics of a trading rule - an indicator period or a certain volatility threshold, above which the robot starts or stops working. Selection of parameters is an integral part of the research process, and there are a huge number of options for how to do this. For simplicity, we can say that the main method is to simply try different numbers and evaluate the result of the robot’s work for each set of parameters at a certain interval in the past (called “in - sample” and checking its work at the next interval “out - of - sample”).
It should be noted that the level of profitability that the trading system provides is not the only criterion for assessing the effectiveness of this strategy, but this is a topic for another discussion. The criterion for assessing the quality of a robot is usually indicators of absolute profit or profitability, Sharpe ratio or profitability ratio for maximum drawdown, the number of transactions, as well as their combinations, and many other indicators that we will discuss later.
The trading strategy algorithm must be written in a special programming language in order to test the algorithm on historical data and then use it to generate signals for opening and closing positions in a specialized technical-analysis program. Unfortunately, there are not many alternatives for the foreign exchange market: either MetaTrader 4 or MetaTrader 5, which we will discuss in more detail later.
It’s safe to say that every algorithmic company working in this direction has been constantly improving all these approaches for many years, and like in a huge castle, when the next door opens, the researcher immediately sees the next one.
I would like to emphasize once again: as a conclusion from the above, algorithmic trading is neither a myth nor a miracle. This is the same scientific work as the invention of new materials or medicines; it is the same research and production process as other human activities. No matter how much people look for the grail or a way to turn metal into gold, they do not exist, just as there are no robots that predict the future.
Is it so easy to make money with the help of robots?

But since entire groups of programmers and scientists are working on the development of trading systems, what are the chances for an ordinary person, like you and me, to succeed in this business? The fact that there are chances is evidenced by live monitoring of automatic trading systems over a long period of time, for example:


However, many of the systems that I followed that were launched 4-5 years ago have ceased to exist. I'd say about 99% of them. Therefore, if you see good monitoring lasting 2-3 years, this, unfortunately, does not mean that tomorrow this monitoring will still exist, as for example here:

According to my observations, not a single system using martingale or grid trading has managed to end its life by simply letting the trader withdraw all the profit. Such systems always end the same way: with a blow-up. Strategies based on some temporary properties of the traded instrument also do not survive over the long term. Not everyone will remember it now, but in 2009-2012 bots that only bought gold were popular. There also seemed to be similar robots for the Canadian dollar.
What idea do I want to lead you to? To make money using robots, you will have to understand their structure and operating principle. At least in order to distinguish junk from a potentially good robot. In the meantime, I see how popular any robots that have been monitored for at least a couple of years are. Moreover, even if the very principle of operation of such a bot provides for the temporary nature of its effectiveness. It is very important to understand that there are strategies that show excellent results in a short period, but are doomed to failure in the long term. Such strategies are akin to gambling, where the end result is unknown. Like a roulette player who believes he can take his profits at any time, but comes back the next day and leaves all his winnings to the casino, this approach to trading does not make sense. Well, that is, it makes sense - the same as for that same roulette player.
Of course, creating a long-term profitable trading system is not easy. Foundations spend millions of dollars a year developing such systems. This requires a lot of effort and time, understanding and knowledge, endless searches for new algorithms and improving old ones.
And yet, we see monitoring systems that have been generating profits for their owners for more than five years. We want the same thing, so why not analyze the monitoring of these systems? What is quite interesting and instructive is that none of these systems are pipsing (systems with a profit per trade of less than 10 points). We also see that the average transaction duration of these systems is at least 5 hours and up to 6 days with an average profit of 30 points. And what’s interesting is that none of the long-lived systems use the classically imposed risk-to-profit ratio of 1:2 or 1:3 and higher. On average, risk to profit ranges from 1:1 to 2:1, and the number of profitable trades ranges from 65 to 85%. In addition, the annual profit to drawdown ratio of many of these systems rarely rises above 2:1. That is, almost all the main parameters of systems that have survived for five years or more violate the established “classical” rules. This does not mean that the classics do not work at all today - these rules were invented to evaluate the performance of systems in the stock markets. The forex market is a little different, so the classic standards for the stock market must be revised to evaluate robots trading currencies. Some of my conclusions listed above are also indirectly confirmed by this article:
Does the average algorithmic trader have an advantage over powerful behemoths such as funds?

To find the advantages of a trader, you need to find the disadvantages of funds. Due to the nature of the institutional regulatory framework, organizational structure and the need to maintain investor relations, funds suffer from several disadvantages that do not affect retail algorithmic traders. Funds are subject to important regulatory restrictions that result in certain predictable behaviors that can be exploited by retail traders. Big money moves markets, and many strategies can be devised to take advantage of this. But I would like to focus specifically on the relative advantages that algorithmic traders have compared to many large funds.
- Retail traders have greater freedom to trade in smaller markets. They can achieve significant returns there even when institutional funds cannot.
- Funds suffer from "technology sharing" because staff turnover can be high. Non-disclosure and non-compete agreements reduce the problem, but it still leads many quant funds to "hunt the same trade." Fickle investor sentiment and the "next hot topic" only make the problem worse. Retail traders have no such restrictions on the strategies they can follow, which means they may remain uncorrelated with larger funds.
- Because retail traders operate with small amounts of capital, their trades have virtually no impact on the market.
- Retail algorithmic traders often use a risk-management approach different from that of larger quant funds. In risk terms, it often pays to be "small and fast." The key point is that there is no risk-management budget imposed on the trader other than the one he imposes on himself, and there is no compliance department or risk-management department either. This allows retail traders to use specialized or preferred risk-modeling methods without having to follow "industry standards" (an implied investor requirement).
- In retail trading, the trader is concerned only with absolute returns. There is no external requirement to get out of a drawdown on someone else's schedule. Retail traders can also afford more volatile equity curves.
- Retail traders are not subject to mandatory reporting requirements. In addition, they do not need to provide monthly performance reports or "dress up" a portfolio before sending information to a client. This saves a great deal of time.
What is so bad about manual trading that many people think about advisors?

Hand trading has both its pros and cons. But the perspective of the material forces me now to talk only about the disadvantages. If you want to hear specifically about the advantages of manual trading compared to algorithmic trading, I personally don’t see them. But you can always go to our wonderful chat, where they will come up with a heel or two for you, or sign up for courses with some miracle broker like MMSIS. So, the disadvantages of manual trading:
Misunderstanding of the market.
This does not apply to experienced players; rather, it affects beginners. What are the reasons? There are several of them: non-scientific literature, guru-worship, lack of serious research and scientific base. Many works on trading are written by people who are far from exact disciplines and knowledge verification methodologies. Therefore, these books contain unscientific, or even anti-scientific knowledge. Knowledge that misleads the reader. Also, books designed to analyze stock markets cannot be applied to the foreign exchange market without some modification and careful testing of ideas. When starting their journey into this area, people become hostage to these fantasies - they trade based on false market paradigms. More than anywhere else in trading, idolatry, sectarianism, and even a cult of personality are widespread. After all, as in any business in which life itself often depends on the decisions made, the weak always strive to shift responsibility to another person. Very often this becomes the cause of misconceptions about the market. Once a person falls into a “circum-market sect,” he loses the ability to think soberly. The crowd of “believers” overwhelms the mind, after which the person begins to enter positions based on the knowledge and forecasts of the guru. If you understand how the forums of “Elliot people”, “Candlestick analysts” or “following the doll” function, then it becomes sad. Because there are very, very many such people. The vast majority of sources (literature, training courses, video guides) that claim to teach a person trading , he is not taught to look for market inefficiencies. A person is not offered a universal way of working with information. In general, training comes down to memorizing certain trading rules, knowing which a person will always be “on the right side.” This approach to teaching beginners produces people who are unable to respond to new circumstances and learn the subject on their own.As a result of all of the above, we have Most traders have problems with the perception of reality. It’s as if drivers on the roads drive blindfolded or can only turn left.
Psychology
Many people very often cannot follow their own rules. In other words, even when you have a ready-made and proven market anomaly, or inefficiency, you will still not be able to use it correctly. Human psychology creates many risks here. Mistakes are inevitable and significant. The human factor is huge.
Physical limitations of the body
The process of creating a trading system with statistically significant results requires a huge amount of energy, time, and effort from a person. They spend weeks and even months testing their trading systems.
Yes, at the moment there are several different solutions that reduce the time spent testing a trading system. You can read about this in these articles:
However, even the use of such software does not relieve the trader from the following drawback.
Dependence of the system testing result on the trader’s personality.
The successful or unsuccessful development of a trading system highly depends on the trader himself, on his experience, ideas and trading approach. When you test a new trading system in the same Forex Tester, it may be completely obvious to you why you didn’t enter this particular trade, but entered that one with a double lot. But another trader testing the same system using the same rules will enter the first trade and miss the second. As a result, whose tests should we trust? That's right, no one. This leads to the following drawback.
Difficulty reproducing the system's trading results.
A man posted his system on the forum, described all the trading rules and showed his beautiful monitoring. And his system was abandoned by evil traders. Why did this happen? Precisely for the reason that we talked about above – the dependence of the result on the trader. Moreover, if one succeeds in trading the system in a positive manner, and another does not, it does not mean that the other trader is not experienced enough or good enough, or that he does not understand something. It’s just that his views on the market may differ from the views of the first trader, that’s all.
Unsystematic nature.
And the last disadvantage of hand trading is the unsystematic nature of creating your own trading system. There is no clear algorithm or technology when creating a trading system. It again depends on the personality of the trader and his experience, views on the market and trading.
The most serious shortcomings in my opinion are the last two. I know several people who have been trading using their own systems for many years, but they are unable to teach and explain how these systems work. I also know from my own experience how it happens when the system stops working, and you don’t know why or how to fix it.
Well, now let’s look at the advantages of algorithmic trading

Transparent, scientific, true understanding of market mechanics.
Algorithmic traders have a clear understanding of price movements and market structure, otherwise their algorithms simply would not work. A scientific approach to market research ensures you have true insights into the functioning of the market. This is guaranteed by the use of technical means, as well as statistically significant samples when searching for inefficiencies. Moreover, the deeper you dive into algorithmic trading, the more complex your knowledge about the markets.
There is no problem of psychology.
In fact, it still exists, because an algorithmic trader is also a person. It just stops playing a decisive role in trading and fades into the background. Yes, bots do not panic, do not go on tilt and do not overestimate themselves, unlike live traders. But the same live trader sits and watches their work.
Market research by technical means
An algorithmic trader does not need to spend money on market research or spend a decade learning to trade by staring at charts before he starts generating decent profits. For him, market research means using special programs that do the work quickly, efficiently, and reliably. That directly saves both money and time. Of course, learning such programs also takes time. Sometimes it takes several years. But the resulting advantages are obvious. In addition, this approach allows you to stay on the cutting edge. Keep only working, thoroughly tested strategies in your lineup. Refresh your bot portfolio in time and rotate the inefficiencies they exploit. This maximizes the amount of time you stay profitable.
Speed
One of the advantages of using robots is speed. A trading robot can track dozens or hundreds of quotes, instantly perform complex calculations, make decisions and immediately place orders. There is no way a person will be able to analyze so much information so quickly. Traders who use large volumes of complex calculations in their trading system and entrust trading to a robot gain an advantage over their colleagues who trade the old-fashioned way. Traders who do not use robots are forced to reduce the number of instruments traded, increase the time intervals used (time frames) and abandon promising but complex trading systems.
Accuracy
The next positive aspect of using trading robots is accuracy. The trading robot does not make mistakes (unless, of course, an error crept into the program code during its creation); all input and output data can be calculated with an accuracy of several decimal places, if necessary. When submitting an application, the robot will not accidentally type an extra zero or put a comma in the wrong place. Traders who trade manually can sometimes make mistakes both in calculations and when placing orders.
Scalability
This, in my opinion, is the main advantage. If you want to add functionality to your trading system, you only need to add code. For example, you can receive beautiful reports and charts at any time, you can set up alerts from the robot via SMS, and you can endlessly complicate your trading strategy. You can create hundreds and thousands of trading robots and this entire army will work for you around the clock. By trading manually, you will have to spend more of your time if you want to expand your trading capabilities, or even hire additional assistants, or refuse to expand your activities.
Disadvantages of algorithmic trading

Algorithm complexity
Even traders with many years of experience and a positive history of good profit-to-loss ratios are susceptible to external factors. Remember, there are many stories of famous traders losing their deposits. ATS, on the other hand, are more predictable in this regard - they will not have a heart attack, they do not need to worry about their family or the foreign policy of their country. The advisor will simply carefully execute all orders according to the laid down algorithm without regret or hesitation. This sounds like a plus, but this fact can also turn into a minus. If there is an error or inaccuracy in the algorithm, the robot will still mindlessly open positions, even if they lead to the loss of the deposit. Therefore, the thoughtfulness of the algorithm is very important, and it depends on the experience of the algorithmic trader himself. Here, as in manual trading, an inexperienced trader loses money, an experienced one makes money. In this case, of course, the more complex the algorithm, the greater the likelihood of making an error. On the other hand, the more complex the algorithm, the less likely it is to be repeated - at least on the part of manual traders. This idea is well expressed in the following article:
Lack of information
Another problem is the lack of literature on teaching algorithmic trading. Some misconception in the process of one's own research and research can burrow very deeply and ultimately it will be discovered when a significant amount of time has been spent, moreover, it will be paid for with real money. With manual trading, in this sense, it is somewhat easier - as a rule, errors and misconceptions are detected sooner rather than later.
Psychology
A little higher up, I said that psychology in algorithmic trading fades into the background, but is still present. Very often algorithmic traders, especially beginners, start interfering with the trading of their advisors. This raises the question of trust in your robot. If you trust your own development, then you can put it on a live account and under no circumstances interfere with its work until it becomes clearly obvious that a mistake was made when designing the algorithm. But sitting there and watching your robot quietly lose money day after day is no easy task, even if you know for certain that this is how it is supposed to be. Of course, it is still much easier to watch that than it would be if you yourself had to open those same losing trades every day according to your system.
So which is better: heads or tails?

I did not write about such a supposed advantage of automated trading as the ability to spend 5 minutes a day on it. Simply because I know people who spend the same amount of time trading manually and earn no less than they would with advisors. So this is nonsense and bait. The main reason why I personally chose algorithmic trading was not that EAs work tirelessly around the clock, and not that you can spend only 5 minutes a day and avoid staring at the monitor from morning till night. The main reasons are psychological. Algorithmic trading suits my temperament better. First, I cannot tolerate drawdowns when I trade manually; I cannot stand losing trades. As I have already said, emotions do exist in algorithmic trading, but they are much weaker and quite easy to overcome. Second, I like programming and constantly learning new things, researching and improving. I am more inclined toward analytical thinking. I enjoy the abundance of new material to study and organize, classify, and look for ways to apply this new knowledge in my experiments. For me personally, manual trading is associated with stress, whereas when I trade with robots I feel comfortable most of the time.
Indeed, both approaches have their pros and cons. What is better anyway? Algorithmic trading is now rapidly developing, the number of transactions opened by robots is steadily growing from year to year. This creates increasing competition among algorithmic traders and forces them to use more complex algorithms. This trend can be clearly seen if you look at the stock markets. Barclay's systematic trader index is an index of the profitability of systematic traders:

Source: Barclay
As can be seen from the chart, on average algorithmic traders have been in drawdown since 2010. In other words, most algorithmic traders have been losing money. So how are discretionary traders doing?

Source: Barclay
The chart shows that most discretionary traders managed to adapt to market changes, unlike algorithmic traders. All the strength of the algorithmic approach in finding market inefficiencies, working around the clock, and eliminating emotions turned out to be powerless in the face of changing markets. The market changed, and many algorithmic traders began to take losses. At the same time, during the Asian crisis of 1997-2001, discretionary traders clearly felt uncomfortable, while algorithms traded more or less effectively. When complex fundamental changes occur in markets, people are usually the ones who trade better. In most other cases, the algorithmic approach seems more stable to me personally. So how can you tell which is better? Very simply: compare the growth charts of both indices. As you can see, the end result is roughly the same, but the systematic-trading index rises more linearly, while drawdowns occur more often on average and are deeper, though shorter. Despite some obvious differences between the two charts, it is clear that neither approach has much of an advantage over the other. Therefore, when choosing whether to trade manually or with robots, you should be guided by personal preference. In other words, if writing code bores you, algorithmic trading is not for you.
So what is better to do with the help of robots, and what to leave to humans?

We will entrust the following tasks to the computer.
High frequency trading. A person is simply physically unable to perform several operations per second while still having time to make any calculations.
Scalping. People can certainly scalp, but fatigue, for example, has not been canceled. A person gets tired, attention drops, emotions accumulate. The robot will easily scalp 24 hours a day on 30 pairs.
System technical analysis. There is no comparison between a human and a computer in the speed and ability to search for various patterns and market inefficiencies.
Large portfolios. When you have 300-500 instruments in your work during the H1 period, try to effectively track them all. Especially if these are 100 completely different systems.
Statistical arbitrage. When a person breaks his brain ten times over the calculations of some ten-legged version of arbitrage, the computer will make all the calculations in a matter of seconds.
Analysis of large amounts of information. Try using an Internet search engine to find, say, ten thousand statements from different traders about a specific currency pair and build a forecast by analyzing each of the statements. This is quite a feasible task for a computer.
Without a person it is impossible to solve the following problems.
Foundation analysis. Macroeconomic data, statements by politicians, analysis of the economies of various countries. It takes a lot of code for a computer to do this. A lot of code.
Subjective technical analysis. You've probably heard that if you give ten analysts the same chart and ask them to draw trend lines, they will all mostly be in different places. So, this is it. It’s the same story with Eliot waves (but we’ll discuss all this later). Well, the computer can't do that. Although, in my opinion, I didn’t really want it.
Special situations. Well, for example, dear Vladimir Vladimirovich called you and said: Son, tomorrow the Central Bank will lower the ruble. Only a person can respond with dignity here.
Any situation where a transaction depends on unclassifiable or unanalyzable reasons. For example, trading according to your mood or according to the schedule of minibuses at the stop outside the window, according to stellar orbits, weather forecasts, and so on.
Long-term trading systems. They should be left to a person, if only because he can do it no worse than a computer, which means the competition is already great.
At the same time, we can divide traders into four groups:
- Super pros - they have both discipline and knowledge
- Disciplined, but no knowledge
- There is knowledge, but no discipline
- No knowledge, no discipline
What groups of traders do you think can make money from the market with their hands? Something tells me that only from the first. Well, what about using algorithms? Of course, from the first group, but also from the penultimate one. Discipline does not play a decisive role. But when trading with your hands (if you fall into the first group), you can get a profit that is incomparable to the profit that algorithmic trading can give, especially if you do something that a computer is not able to do.
Buying a trading robot is a bad idea

So, manual trading and algorithmic trading are two different approaches to trading in financial markets, but ideally they are practically not intertwined. If you are seriously interested in algorithmic trading and want to take the “easy way” by simply buying yourself a trading robot, now I will try to tell you why you shouldn’t do this.
First of all, I advise you to read the following articles:
The ATS trading market is indeed very extensive. If you are not convinced by the four articles about the market above and you are still in doubt, I will give you a couple more reasons against buying anything online.
- Robot sellers often claim that their robot will turn your 1k into 10 million without any hassle. I bet J. Well, what sane person would sell a robot, even if creating such a thing were possible, for a measly 300 bucks? Poor funds invest billions of dollars a year for the sake of a 100% annual return, and here a home-grown financial genius sells a robot that makes 10,000% a year for pennies. There is an inconsistency, someone is clearly lying - either the funds conspired and are misleading their investors, pocketing excess profits, or an honest trader with the interesting nickname anonymous.
- Merchants also often like to come up with beautiful stories about the creation of their bots. Reading such stories is sometimes a good substitute for watching a comedy club. I was walking down the street and a brick fell on me, after which I fell into a coma for 5 years. All this time, in my head, a pretty girl in a bikini was lecturing me on programming and finance. When I woke up, I immediately had a terrible desire to write something. I took a napkin, pierced my finger with a needle and began to write something on the napkin. It turned out to be a ready-made trading robot algorithm, which I am now selling. When I tested it, I was shocked. Over the past year I have earned so much money that I no longer need it, so I decided to give you an opportunity to earn money for you, honest traders. Let's fight together against the oppression of the damned DCs! Let's ruin them together with the help of my bot! (if you order before November 20th, you’ll get a super cool top-up bullet as a gift! Only 8 copies left, hurry!)
One way or another, the seller and the buyer have different interests - the seller needs a beautiful yield curve in order for as many investors as possible to take the bait. At the same time, he is not particularly concerned about the fate of the buyer after receiving the money. Re-optimization and adjustment to the last part of the story and other “dirty” tricks are used. The buyer’s interest is to recoup the purchase and make money. And the more beautiful the monitoring, the more it seems to the investor that this task is more feasible, which in fact is far from the case. The most remarkable thing is that those who want to buy a robot often have little idea what it is. Most of them think that a trading robot is an automatic player on the stock exchange that always brings profit.
At the same time, the funny thing is that the majority sincerely believes that a robot that will bring big profits should be cheap. If you turn to methods for assessing the effectiveness of a business, you will find that if a business provides a return on investment in 3-5 years, then it is a good business. Advertisements often say that the proposed equipment (technology) pays for itself in one year or less, but this is only in advertising. Thus, assuming that you and I are sensible people, I propose the following method for estimating the cost of a robot that allows you to get the desired profit.
The formula for calculating the cost of a robot is very simple. The cost of such a robot is equal to triple the annual profit from the amount you need for food. You need 500 rubles a year, which means such a robot costs 1.5 million rubles. You need 3 million dollars a year, the robot costs 9 million dollars. And the robot costs 300 bucks - guess how much it will bring you in a year? Not true, a little less than a hundred is about zero.
- I don’t know a single person who could live reliably from the profit from a purchased ATS.
Well, honestly, I looked everywhere, on forums, different websites and blogs in different countries, asked friends and couldn’t find it. The only people who consistently make money from commercial bots are their authors and sellers. And everyone who lives off bots developed them for themselves.
- I don’t know of a single system that has survived for years like this from 2007 to the present day.
It doesn’t matter whether it’s commercial or not, but I haven’t seen a single monitoring of a live system that started in 2007-2008. All systems collapse eventually. There are no eternal systems, neither manual nor automatic. This means that either you will have to buy new advisors very often (one per quarter, for example) (and it’s not a fact that all purchases will at least have time to pay off), or learn how to write them yourself in the end! A quality owl of its own can live up to 5 years, judging by the monitoring posted above.
How is this usually done? They hire Indians or Asians who, for 1-2 thousand bucks, write a system that “looks good” in tests, a website appears with a bunch of marketing nonsense, and fake monitoring is done. Everything is ready for big sales!
In general, I strongly do not recommend that you buy commercial systems, and if the temptation to purchase something is irresistible, require monitoring of the trading system on a real account. The following articles will help you with this:
If you already have a ready-made trading system or want to create one, I recommend reading:
So, hopefully by now I've convinced you that algorithmic trading is fun. If not yet, here is the last argument in favor of algorithmic trading, after which I will begin to dissuade you from this activity.
According to research by Aite Group, the share of algorithmic execution of Forex orders as of 2010 is about 24%. Unfortunately, I did not find more recent data, but judging by the trend of this graph, it is quite possible to assume that at the moment this share has increased to about 35-45%, maybe higher.

Source: Aite Group
Scalping and HFT on Forex are the most interesting areas at the moment. Most brokers that provide Forex services also offer the opportunity to trade through ECN (Electronic Communication Network) - an electronic trading system, similar to an exchange platform, which unites, in the case of Forex, the leading providers of liquidity at currency exchange rates - international banks, corporations, foreign trade organizations.
Pay attention to this graph - the percentage of algorithmicization of the Forex market is still quite low! This means that we don’t have many competitors yet, which at least gives me personal confidence.
Common myths and misconceptions about algorithmic trading

- Success in trading depends 90% on psychology.
As I said above, psychology does not have too strong an influence on the algorithmic trading process, unlike manual trading. Even when trading manually, if your system is a losing one, then no matter how much you fight your emotions, you will still lose money. But building a good discretionary trading system is not such an easy task. Trading with an advisor is much easier for a person who is not very psychologically prepared, unless of course he is completely unbalanced (and I hope we do not have such people here).
- Algorithmic trading doesn't work.
Yes, with all the facts presented, a large number of people believe that robots are not capable of earning money. Wild, but true. The Barclays systematic trader index shows an excellent example of how algorithmic traders have consistently made profits for over twenty years. Algorithmic trading with realistic expectations of profitability and drawdowns with a correct, adequate understanding of how the market works is a completely profitable business.
As a special case of such a misconception, one can consider the opinion that in general System trading doesn't work at all.
- Testing doesn't work.
I periodically hear this statement on the Internet, including on our forum. Testing is a very important element of algorithmic trading, which helps to understand how a specific strategy behaved in the past. However, testing has a number of limitations and features without understanding which it is truly useless. Yes, testing doesn't work unless you understand what you're doing and how to test the system with satisfactory accuracy. But if you know and understand perfectly what you are doing, testing is an irreplaceable thing.
- The nets and martins are working.
Yes, these types of systems really do work, but not for very long. As a rule, not long enough for the trader to withdraw the deposit before the blow-up. Systems that have somehow managed not to blow up for at least a couple of years are especially dangerous. On PAMM accounts they gather many hundreds of thousands of dollars before finally blowing up. As a rule, investors either do not understand what they are risking, or they understand it perfectly well but hope that it will not happen to them, that they will somehow sense the approaching collapse in advance and have time to withdraw both their capital and a substantial profit. If you still want to try your luck, then at least read this article:
- The indicators don't work.
Now it's very fashionable to scold indicators. Every second person believes that indicators do not work. And while they think so, traders make money on indicator systems, and algorithmic traders make money on indicator advisors. An indicator is simply some transformation of the price into a different, more convenient mathematical format. How real price flow is converted into Japanese candlesticks. About the same.
Are you really ready to dive into algorithmic trading?
- What do you think you'll do if you can't get that damn robot to trade profitably for two years? Or maybe you expect to start making profits earlier? In fact, the process will take about three years. If you are counting on a shorter period, it is better not to even start - you will waste your time. The timing of the study is well written in this article:
You've probably heard about the 10k hour rule more than once. To make this rule work for you, you first need to make it work for yourself. In order to earn a living doing algorithmic trading, you need knowledge, a lot of knowledge. I will tell you below what knowledge is required.
- How do you feel when your account is in drawdown? If this is a reason for depression and the reason why you are completely drunk today, algorithmic trading is not for you (and manual trading, I think, too). In general, I still have a negative reaction to drawdowns on my account, but they don’t unsettle me. I calmly continue going about my business. If you can't do that, it's better not to start. But perhaps these four extremely useful articles will help you cope with your own emotions:
- Will you continue to trade with this advisor:

How long are you willing to wait? At the first monitoring, the two months I selected really look like a bad version of the bot. However, this “failed bot” made 266% profit in two years with a drawdown of less than 10%. And who is “unsuccessful” now?
It's the months, not the days, that really matter. If the advisor turned out to be profitable in 15 days, you won’t rush to mortgage your apartment, will you? Of the next 15 days, only 5 can be profitable. And again, this will not say anything about the quality of the advisor. However, there is always the possibility of a worst-case scenario occurring. Now it’s important to just remember this, and later I’ll teach you how to calculate this worst-case scenario and draw conclusions based on this knowledge.
- What percentage of profit per year is suitable for you?
Several blog articles have already been written on this topic:
And to prevent unnecessary illusions, I also recommend reading the following article reflecting the essence of algorithmic trading:
If you want to compare your results with some kind of benchmark to track your progress, this is the best option systematic traders index. It currently includes returns for 454 different algorithmic strategies.
How to build an understanding of Forex trading?

All you need to do is continually and methodically deepen your knowledge of the market. With the understanding of some things, new questions arise, the search for answers to which brings you closer to making a profit on an ongoing basis. By learning new information, you increase the likelihood of reaching a level of constant systematic profitability. But knowledge and understanding are slightly different things. Knowledge is simply obtaining some new information about the Forex market. For example, how did you find out what leverage or contract size is? The concept of understanding is somewhat broader. It includes both knowledge and information about how this knowledge is related to other knowledge about the market, as well as the opportunity, based on this knowledge and acquired previous knowledge, to obtain new knowledge. That is, understanding is a complete, general picture of the market, consisting of pieces of those very “details” - knowledge, their interrelations and interweavings. The deeper your knowledge of a particular detail and its relationship to other details, the more holistic your overall picture, the deeper your understanding of the market. There are many different approaches to learning something new. But the most effective and universal is a systematic scientific approach. Systematization of learning allows you to reduce the time spent on learning. It is important to be consistent and have your own training plan, and not jump from one “detail” of the market to another. In addition, during the learning process, it is important to build your “pyramid” of knowledge from quality material. If one of the “parts” in the foundation turns out to be of poor quality, the entire pyramid that was built with such difficulty will collapse and you will still have to discard the “parts” in order to rebuild your pyramid. Believe me, I know what I’m talking about, because I myself recently suffered from such a “low-quality part.” How to reject low-quality knowledge? Only by experiment, based on your own personal experience. For example, can we trust the tests of advisors performed by the MetaTrader 4 terminal? I'll tell you the correct answer later, but I still recommend checking it out and seeing for yourself (just to develop the necessary habit for the job). Try to perceive every phrase you see anywhere (whether on a forum, in a book by a reputable author or anywhere else), for example something like this: “the spread widens at night” as: “it would be nice to write a script that will log the spread once a minute in csv format, so that I accumulate data on the spread during the week and then can calculate the average spread for each trading hour per day and know for sure for the future, how the spread behaves in the morning, during the day and late at night.” Well, you get my point. We do not have facts - we only have hypotheses, the testing of which leads to true knowledge. This is the only possible way to gain understanding. You can study forums, listen to other people's advice, read books and articles, but... you already understand what to do with all this. Here are examples of market research:
How to increase your chances of success?

- Learn to calculate risks. Very many beginners either do not know what risk is or simply ignore its existence. The result is yet another blown account. Some people are so stubborn that in a year they lose sums that the average Russian would not earn in 10 years. While you are learning, reduce risk to 0.5% per trade so you can sleep peacefully. You will always have time to take bigger risks, and it is better to do so with a full understanding of what you are doing. Of course it is tempting when you see monitoring with 100500% in just a week. But think about this: have you ever seen such monitoring last at least a year? For some magical reason these "cool" monitorings disappear after a couple of months at most, together with their owners. Or the owners do not disappear, but carefully pretend they have found the grail and have no reason to reveal their wonderful results to strangers. Remember one simple thing: the higher the return, the higher the risk. If you want to succeed, the first thing you need to study is risk calculation.
- Trading is statistics. A lack of knowledge in this area causes people to fall into serious traps of delusion. For example, many beginners may refuse to use an advisor if after installing it on the account the first three or four trades close at a loss, but that is a completely harmless example. Much more dangerous is blind faith in martingale and the endless search for irrational excuses after an account blow-up, such as supposedly unsuitable market conditions and other nonsense. To make a profit you will have to understand the basics of statistics. After that, you will need to deepen this knowledge gradually.
- Study programming. You can start with mql4 and then move on to something more serious. As a base language, mql4 is quite good for a start: it is simple, it has good documentation, we have many lessons about it on the blog and forum, and fellow forum members will always help if you run into difficulties. It took me about two weeks to write my first advisor from scratch. And when I say from scratch, I mean absolutely from zero; we did not even have computer science at school.
- Study all the basic information about the market that you can find in books and online. At the same time, any information should be treated critically, as we already discussed above. First of all, gather information from more solid sources such as books.
- You must know and clearly understand the main characteristics of the systems you trade, as well as what they mean and how they are calculated. I mean the number of profitable trades, Sharpe, profit factor, profit-to-loss ratio, maximum drawdown, and so on.
- Do not trade advisors unless you fully understand how they work. If you do not understand why the EA opens buys when "this blue line crosses that red line from bottom to top," it is better to put that EA aside. Why? Because you do not know exactly how it works, what risks its behavior creates for you, what you can theoretically expect from it, and what it definitely should not be doing.
- Do not jump around. Beginners often jump from one system to another, from one advisor to the next. Finish one advisor, get it trading profitably for you, and only then start refining the next one. If you spread yourself too thin, you lose concentration and can miss important details that will later come back to hurt your deposit.
- Get used to the fact that even a bot with modest profitability that will stay profitable over the long term takes a lot of work. Creating a new bot usually takes a week at most. Refining and improving it can take up to six months. You are in no rush; the market is not going anywhere.
- Drawdowns are bound to happen from time to time. There is no escaping them; profits alone cannot keep rising forever. You simply have to accept this and endure it, no matter how wonderful the system may be. From time to time drawdowns also occur that are longer and rougher than you expected judging by the advisor's test results. We will discuss later how to be prepared for that.
- Every "piece" of missing or defective information is a potential time bomb on the road to your success. You do not know when it will explode, but the consequences can vary widely. It is better not to leave gray areas in your picture of the market.
A lot of useful information is on the forum, in the section "to help the trader".
By studying algorithmic trading according to this plan, you will build a good, stone, strong house. Points 1, 2 and 3 will serve as the foundation for this house, so take this knowledge as seriously as possible. This is the basis, without which it is too early to start any experiments to understand the market. How long it will take to build the foundation depends only on you, on your character and abilities. But I would give approximate figures of 1-2 years. The next thing you will need is in points 4 to 10. For the most part, these are experiments, forming hypotheses and testing them in practice. This may take 2-4 years, but you won’t be bored, I assure you. At the end of this period, you will have a solid base of proven knowledge about the market, working tools, perhaps some of your own developments in the software necessary for work, as well as the skills and abilities necessary for full-time work. This is the time when your previous experiments will begin to bear fruit in the form of truly profitable advisors in the long term and a clear understanding of what you need to do to earn more. At this time, there may well be a desire to write, for example, your own trading platform, tailored to personal needs, and, most importantly, the ability to implement this.
What other things are desirable to have to one degree or another in order to successfully master algorithmic trading?
So, this is knowledge, understanding, about which I have already said a lot, immunity to disappointments, of which there will be many on your way, curiosity, without which learning is impossible in principle, and, of course, patience, the most important quality in trading in general:

The diagram clearly shows that understanding is 40% - this is the most important thing. Patience and immunity to disappointments – 20% each, and curiosity and knowledge together – 10% each.
Trader knowledge

I have not met a single successful algorithmic trader who did not put in significant effort to achieve what he achieved. In other words, there is a lot to learn to be successful in algorithmic trading. All the successful algorithmic traders that I know and have spoken with are quite good at programming and know several programming languages, and also have clearly incomplete knowledge of statistics.
However, if you decide to engage in algorithmic trading because it is easier than manual trading, I want to warn you that this is not the case at all.
It is better to start working with simple systems, gradually complicating your advisors as you gain new knowledge. Otherwise you can make a lot of mistakes.
Many algorithmic traders make their way by touch, experimentally figuring out all the complexities and nuances. I’ll give you a map that will make it much more convenient to follow. But you will have to overcome the path yourself.
- Basic understanding of the market
First of all, you need to get a basic understanding of the market. Reading literature is good for this. At this stage, you do not necessarily need to build hypotheses and test them. You just need to get a general idea of what generally exists in the world of trading. What exactly do you need to master? Basic knowledge of the functioning of the market, technical analysis (levels, figures, etc.), functioning, calculation and purpose of various indicators, classical trading systems. All these things can be found in any technical analysis reference book.
- Statistics and probability theory.
In addition to basic understanding of statistics, mathematical analysis and probability theory, knowledge of the Monte Carlo method and the Finite Difference method will be very useful. Both methods are based on probability theory, statistics, numerical analysis methods and partial differential equations.
- Money management.
This is something that many traders neglect. But in vain, because it is thanks to money management that you can systematically stay on the market in profit for a very long time, and when the system stops working, you can have much smaller losses. In general, risks in trading are a very entertaining and interesting thing. Additional risks may come from areas that are quite difficult to guess, for example, when volatility changes, important news comes out, or the correlation between two currency pairs increases. And then there are things like black swans, missed algorithm errors or optimization errors, server failures, broker bankruptcies, and so on. We live in a very dangerous world, and in order to avoid at least some of the above risks, we need to study money management.
- You need to learn how to program.
At the first stage you need to learn mql4. Most scripts, indicators, and advisors for the MetaTrader 4 terminal are written in this language. The language is not complicated; in principle, a month is enough to master it more or less tolerably to write your first advisor. Next, it is worth studying the mql5 language for the future - at the moment the MetaTrader 5 terminal is not suitable for the needs of algorithmic trading, but the terminal is being finalized and, perhaps, quite soon it will be possible to switch to it (we will talk about the features of the terminals later). What language will you need next? Everything will depend on your goals, but the most common among algorithmic traders are the following: C++, C#, Java, Python, MathLab, R. By learning one of these languages, you will be able to write code for your research and tools for algorithmic trading. For any of these languages, you can find excellent open-source projects and libraries that can help you a lot. One of the largest such projects for algorithmic trading is QuantLib, written in C++. But if you want to directly connect to liquidity providers such as LMAX, Currenex, Integral and others to trade using high-frequency algorithms, for example, then you should learn Java, since the APIs for connecting are written specifically for this language. In general, programming is a huge layer of knowledge, almost larger in volume than knowledge about the market, and therefore you need to have a clear idea of what you need to study and what you can skip and master if necessary. I am currently mastering the.Net platform - I have finished studying the C# language and am now studying Windows Presentation Foundation (for creating graphical applications). Next, my training plan includes Entity Framework (for working with databases). Having studied these technologies, I will be able to fully write various software for Windows, be it a program for data mining, a clicker for trading on news, or a full-fledged terminal for testing strategies. I decided to skip learning ASP.NET (for developing web applications) and will most likely get only a basic understanding of it to begin with. Having carefully studied the programming language, your capabilities will essentially be limited only by your imagination and free time.
At the same time, we should not forget about the very understanding that we talked about above. In programming, and in all other areas of your life, this is very important. Therefore, I recommend you this programming learning plan:
- Computer architecture – how data is stored and processed. How bits are stored, what main and mass memory are, how integers, fractions and strings are represented. How the processor works, how the program is executed, how the processor interacts with other devices.
- Software – operating systems and networks, algorithms, general understanding of programming languages and program development technologies. What operating systems are there and how they work, networks, network protocols and security. What is an algorithm, how are algorithms created. History of programming languages, concepts, implementation of the language. What is OOP, what are parallel processes. Modularity, methods of designing, testing and documenting software.
- Data organization – data structures, file structures, database structures. What are arrays, lists, stacks, queues. What are files, indexing and hashing. What types of databases are there, what are relational and object-oriented databases?
- Algorithmic machines. Image recognition and reasoning, artificial neural networks, genetic algorithms.
- After getting the general picture, you can start learning the language. To learn a language like mql, you don’t need that much knowledge. And in general, in principle, you can master any language without all of the above. But this knowledge will give you insight, and therefore you will be able to achieve much greater results.
- Knowledge of a programming language alone will not give you much. Having studied C#, I still can’t write anything meaningful until I master WPF and working with databases. It is best to start learning databases with relational databases and the structured query language SQL. The most common databases are Microsoft SQL Server, Oracle and MySQL. Most likely, you won’t need to know anything else about databases. Hedge funds most often use MySQL, while SQL Server and Oracle are more common in the banking industry. If you are going to build fast robots for high-frequency trading, then it is best to take a closer look at HDF (Hierarchical Data Format) or Kdb+, which was developed specifically for HFT.
- What will be useful later - design patterns, the UML language will also not be superfluous. Having mastered one serious programming language, you can deepen your knowledge of basic knowledge, for example, how hardware works or networks. You can also learn another programming language.
Study only what you need specifically at the moment. You should get a basic understanding of all of the above, but it will take you several years to study all the material offered in depth.
Each programming language serves its own specific purpose, including algorithmic trading.
For example, to write robots for HFT, C++ or Java is most often used, less often C#, as well as databases such as HDF and Kdb+.
Various serious studies, optimization and backtesting are carried out, as a rule, in Visual Studio (C++, C#, LINQ), MathLab (which was created to work with linear algebra and vector operations and for which a whole bunch of add-ons for financial calculations, optimization and other things are currently available) or R Studio (and a special language R, tailored for statistical calculations). You can use Java, C++, and Python. Often, Excel and its macros are also used for simpler research (personally, I found it inconvenient and somehow unusual, although for my main work I often use Excel, but at the “everyday”, office level).
But I also like MathLab, perhaps because I have previous experience with it. I’ll tell you a little more about this program: in the program, for example, you can create a high-frequency algorithm and test it. In principle, some not very complicated strategy can be written using MathLab, where it can be tested, optimized, and even evaluated using the Monte Carlo method, and all this will take you no more than a couple of weeks. The program includes the capabilities of financial and statistical calculations, visualization of price data and technical analysis, built-in indicators, development and testing of trading strategies for any data, including ticks, as well as integration with various other analytical packages. Simple strategies like crossing two cars are written in literally 10-15 lines. Quotes can be taken from Excel files by clicking a couple of buttons. But the most important feature is very fast work with calculations of large amounts of data. And the compiled application (yes, this is also possible) will be comparable in speed to one written in C++. At the same time, many well-known methods, from statistics to data mining, have already been implemented in the form of ready-made applications; all you have to do is click the mouse a few times. The only inconvenience of using such methods is that you will have to figure out how the robot will trade in the MT4 terminal. There are several options: rewrite the advisor code for trading in MT4, use the strategy in the form of a dll, which will be called from a regular mql4 advisor, output data from MathLab to a csv file, which will then be read by another advisor, or (the most preferred option) the DDE mechanism - in this case, the data is sent between programs directly. And yet, no matter how attractive working in MathLab looks, professionals use it less often than the statistical programming environment R, which provides much greater opportunities for analysis and research.
In any case, you definitely can’t do without at least basic programming skills, such as knowledge of mql4. Everything above this is optional only for those who decide to take algorithmic trading seriously. At the same time, in order to master programming skills sufficient specifically for trading (and not for working at Microsoft), you do not need to be particularly gifted or have a special education or mathematical education. Just as you don’t need to complete “foreign language” to learn English.
By the way, in my opinion, learning a foreign language and a programming language are very similar. At the same time, learning a programming language is easier, since when learning a foreign language you need to be able to read, write, listen and speak well. At the same time, listening comprehension and speaking skills are considered the most difficult. In programming, you actually just need to learn how to read and write certain letters and symbols in accordance with the logic of the language.
When you first see the code of a program, for example, in the C# language, the thought immediately pops into your head - it is impossible to master this without special education and a predisposition to this type of activity. But after 2-3 months of systematic study of this language, the understanding comes that “it’s not the gods who burn the pots.” In general, I am of the opinion that you can learn anything, or almost anything, if you have the appropriate motivation and discipline.
In general, after studying mql4, according to my observations, learning a more serious language will go much faster. I wrote four robots in C# for TSLab literally a week after I started studying. I wrote a simple script in R for some analysis of quotes in just a couple of days. What I mean is that if you already know at least some programming language, it will be much easier to study further. Well, first you can go "Young Fighter Course" and master the basics of the MQL language on the blog pages.
Surely you already have a question about what language to learn after mastering mql. To do this, just look at the ranking of the very best languages, for example, for 2016. There are several reputable rating agencies that are worth listening to.
RedMonk rating
This analytics company regularly publishes its own ranking of programming languages. It is based on a combination of popularity on GitHub plus discussion activity on Stack Overflow. Of the languages we are interested in: 2 - Java, 4 - Python, 5 - C#, 6 - C++, 9 - C language, which is little used in algorithmic trading, 12 - R, 18 - MathLab, 19 - Visual Basic, a language in which you can program in Excel.
IEEE Spectrum
IEEE Spectrum is a magazine published by the Institute of Electrical and Electronics Engineers. To create their ranking, IEEE experts used 12 different metrics from 10 sources. The main thing is to search for results for the query “name of programming language” on a number of popular sites. Materials that appear in Google search results, Google Trends data, and mentions on social networks are also taken into account. First place – C, second – Java, third – Python, 4 – C++, 5 – R, 6 – C#.
TIOBE
TIOBE Software Company, publishing your rating, notes the rise in popularity of assembler. According to this rating, the language rose by two positions - from 12th to 10th place. This is due to the rapid development of the Internet of Things. Data analysis is carried out based on search results from many engines, including Google, Google Blogs, Yahoo!, Wikipedia, MSN, YouTube, Bing, Amazon and Baidu. So, 1 – Java, 2 – C, 3 – C++, 4 – Python, 5 – C#, 13 – Visual Basic, 16 – MathLab, 17 – R.
PYPL
This rating measures the popularity of a language based on the number of searches for language documentation on Google. So, 1 – Java, 2 – Python, 4 – C#, 6 – C++, 7 – C, 9 – R, 11 – MathLab, 14 – Visual Basic.
There are many different ratings and in all of them the same languages are located in different places. There are also a lot of programming languages – around 2.5 thousand. However, it is clear that java is ahead of approximately equally popular C++ and C# in all ratings, while R and MathLab are in the top twenty. By the way, the mql language is approximately between 50 and 80 places, that is, it is still in the top 100. So which language should you choose? I think that in addition to mql, it is worth learning C++, C# or Java, plus one of the languages for research - R or MathLab. But this is my personal vision. In general, you need to try to do something in one language or another so that you can compare, and then decide what you liked working with more. I have already chosen C# for myself, although I have not yet fully figured out what I like better – R or MathLab.
- Trade technologies.
This group of knowledge can include knowledge of terminals and trading methods, including software, what is a financial data transfer protocol, what is trust management, signals, PAMM and MAMM accounts.
- Knowledge in the field of finance.
In principle, you can gain very basic knowledge in this area. But, again, more in-depth ones will only contribute to success. This includes knowledge about money, loans, the work of banks, markets and exchanges, financial management, investments and the global economy, and economic analysis. Also, knowledge of accounting, the basics of auditing and economic history will certainly not hurt. This knowledge will give immunity from a larger number of near-market scammers, allow you to more deeply understand the functioning of financial markets, and manage your personal finances more effectively.
- Systems engineering.
This includes knowledge about various types of strategies (wave theories, candlestick patterns, fractal theories, graphical analysis, fundamental work, front running, high-speed arbitrage, machine learning, data mining, trend trading and counter-trend strategies, and so on), as well as market research methods (various specialized software). This knowledge and experience will provide the opportunity to build, test and optimize various types of trading systems, tools that allow you to quickly and efficiently test your ideas and systems.
Self-development is a key element of success

To become a professional in your field and maintain professionalism at the proper level, you need to constantly develop, improve and learn new aspects of your occupation. Just as an athlete who quits training loses his form, so any professional who stops developing in his specialty eventually loses the necessary skills. In the case of trading, the need for constant development is most relevant, since in this difficult matter success depends directly on the trader himself, on his training, accumulated knowledge and ability to act more effectively. Even if you have been successfully trading for several years in a row, this does not mean that you have nothing more to learn and do not need to develop further.
Stay on top of things
Even if you are already an established trader, it never hurts to study new directions, strategies, new markets or financial instruments. Constantly monitor new developments in software and internal changes in the mechanism of the exchange. It is not necessary to apply this knowledge in your trading, but it is very useful to know for general development.
Surround yourself with professionals
One of the effective methods of personal and professional development is to get to know and maintain contact with “colleagues in the shop” who have common interests with you and even surpass you in experience and professionalism.
Read more and more often
Reading in itself leads to significant development of a person’s intellectual and analytical abilities, which is extremely important for a trader. In this case, it will be useful to read both classic books on trading, technical and fundamental analysis, programming, basic economics and finance, as well as third-party literature. As for me, I try to adhere to 2 simple rules: devote at least 4 hours to reading books during the day (it doesn’t matter how much time you set aside for this, the main thing is to try to do it every day) and on the weekend, set aside 2-3 hours to watch educational videos or seminars.
Develop comprehensively
Self-development programs and books are very effective for improving personal and professional qualities. Now, with the help of appropriate books and videos, you can significantly improve psychological attitudes and discipline, increase attention and memory, and improve intellectual capabilities. Start improving your weaknesses and actively “pumping up” your strengths. All this will contribute to the comprehensive development of the trader and, as a result, will naturally have a positive effect on your trading results.
Plan your tasks
Planning daily tasks, as well as overall long- and medium-term plans, is the basis for the high performance of successful people. Develop the habit of constantly recording notes and plans on paper or using specialized programs. Every evening make a plan for the next day; on weekends you can make a plan for the week and month. Add new tasks to your routine based on the above points, for example, reading every day for 1 hour, watching videos on trading once a week, running or swimming in the pool every other day for 1 hour, learning programming for 1 hour every day. To quickly work with plans, as well as complete assigned tasks, you can use reminders in your phone or specialized applications.
Play sports
Physical training helps improve discipline, willpower and determination, which is extremely important for a trader. Mental toughness, supported by good physical condition, significantly increases your chances of success. Try to spend at least 30 minutes of physical activity every day. For example, you can go jogging, cycling or skiing, or go to the pool. If on some day there is no opportunity or time to do a workout, then you can do push-ups, squats, and abdominal exercises. This is something that you can easily do at home at any convenient time. And don't forget to breathe in fresh air as much as possible. The head will work much better in this case.
By following these simple principles, you will significantly improve your personal and professional qualities, you will always be in a healthy active tone and aware of all the necessary events in the world of trading. Don't stop developing and new achievements will not keep you waiting. I also advise you to read the following useful articles:
Types of Trading Strategies

Trading system or strategy is a set of rules governing purchase and sale transactions aimed at making a profit. It should answer questions such as when to buy or sell, whether protective stop orders and take profit levels are needed, what indicators to look at, and so on. About how to develop your own trading strategy, has already been written on the blog pages. We will talk about classifying systems into specific types. However, I will omit types of trading systems that are notoriously difficult to implement in the forex market, such as volatility trading or market making.
Trend following strategies
Trending trading systems - a group of strategies based on finding a way out of previously traded ranges and designed for the movement to continue. Favorite strategies of many beginners and experienced algorithmic traders. Many of you have heard such advice as: “Trend is your friend,” “Don’t go against the train,” and so on. All this applies to trend-following strategies. Many experienced traders talk about the importance of a trend on a chart. In algorithmic trading, trend-following strategies can be created from the simplest combinations of well-known technical analysis indicators: moving averages, MACD and others, to the most sophisticated econometric developments, calculating dozens and hundreds of variables based on dozens and hundreds of factors. One of the most popular and profitable types of trading systems that exist today. The first mentions of this type of trade can be found in books of the early 20th century. Even then, insightful speculators understood that holding a position on the movement over large intervals provides great advantages. Traders using a trend-following strategy do not seek to predict specific price levels. There are hundreds of varieties of such strategies. The only thing they have in common is that they buy and sell in approximately the same place and try to maximize holding a position without exiting it. The classic entry for a trending TS is a breakout of the maximum or minimum for a certain time. They simply jump into a trend when, using their rules, they determine that a trend has been established and ride on it. These traders enter the market after a trend has begun and they bet that it will last a long time. When the market turns, traders can exit the position and wait until the desired direction of movement is established again. A distinctive feature of this type of strategy in most cases is the lack of exit at a given profit level. There is almost always a floating stop loss. Trading systems of this type try to stay in trades for as long as possible, based on the assumption that the movement will continue. In such TS, it is customary to pay special attention to exiting a position. It is possible that most trades may be unprofitable, but thanks to the rule of “cut your losses and let your profits run”, the overall strategy can be profitable. It is precisely because of the large number of small losses, and therefore prolonged drawdowns,It’s so difficult to trade psychologically using trend-following strategies. Trend trading is most effective for quiet (relatively low volatility) and trending markets.
Countertrend or mean reversion
Counter-trend trading systems, also called reverse or mean reversion strategies, are trading algorithms designed to return to the mean. If we follow the canons of counter-trend systems, we will buy when the price shows extremely low values. And accordingly, we will sell when prices go up. The exit of a strategy is often located at a fixed distance from the entrance. Most often, reversing strategies are used on lower time frames. Typical representatives of this type of strategy can be night scalpers.
Front running
Front running (literally, "running ahead") is a group of trading systems that exploit the uneven speed of information distribution. It is used mostly in exchange trading. The strategy is that the algorithm analyzes the depth of the order book and, when it detects an imbalance, performs one action or another. For example, it places a buy order near the edge of the order book if there are very few sell orders at that moment or if the number of buy orders has sharply increased. It can also be implemented in the Forex market, but of course not through the MetaTrader terminal; instead you would connect directly to a liquidity provider using the provider's API. As a rule, such strategies are closely related to the concept of HFT. I have not yet had a chance to try this type of strategy myself, but I can say for sure that it takes a great deal of time to develop.
Arbitrage Strategies
This is the second simple way to make money in the financial markets. There are a huge variety of areas of arbitration. A fairly simple option: time arbitration. With this type of trading, in essence, we trade an instrument in a place with lagging quotes, focusing on a certain standard. For example, we take quotes from a supplier such as LMAX, which has no delays in quotes, and look for a broker who has delays in quotes. As a rule, such delays occur during sudden movements, such as news releases, for example. At the same time, the type of account for such arbitrage should be kitchen, that is, standard, in order to avoid large slippages. In general, most often this type does not work rather than works: you need to find the “right” broker, and even manage to withdraw loot earned by the advisor. This is a very difficult task. Although the advantage of this type of arbitrage is obvious - there is almost complete absence of risks on the account, because we know in advance where the price will go. This means we can open up to the whole cutlet. Using standard mql tools it is quite difficult to achieve the required speed of data analysis, so knowledge of a serious programming language is not possible.
The simplest and most primitive version of arbitration is spatial arbitration. With this type of trading, in essence, we trade one instrument in different places. That is, we buy in one place at one, low price and immediately sell in another place at another, higher price. There is currently no place for this type of trading in Forex.
The next type of arbitrage is statistical arbitrage. In the professional environment of financiers, the term "statistical arbitrage" can be used in different contexts. If in classical arbitrage, discussed above, the risk in a trade is reduced almost to zero because the purchase and sale of one instrument are carried out simultaneously, only at different prices, then in statistical arbitrage two different instruments are traded. Statistical arbitrage can be viewed as a trading strategy that includes automated trading systems, statistical data-processing methods, and data mining. Its predecessor is considered to be simple pairs trading. In this approach, traders assemble pairs of currencies that are similar in terms of market logic. At the moment when one of the paired currencies starts moving significantly and the second does not keep up, a buy or sell trade is opened. This system makes it possible to minimize risk, that is, to hedge. In other words, it uses countertrend trading, or mean reversion. To create high diversification, traders recruit a huge number of pairs and obtain a portfolio of dozens of instruments. At the same time, part of them is long and the other part is short. All of this is strictly monitored and recorded in order to eliminate different risk factors. The process of constructing such a basket can vary, for example by assigning ratings. This process is called "evaluation" or scoring. Statistical arbitrage also has its own risks associated with unlikely but possible events. At any finite moment in time, something can happen that causes short-term losses. If those losses exceed the liquidity currently available to the trader, the account can be blown up. There are also weaknesses in the statistical-arbitrage models themselves. There are certain factors the model does not take into account because it considers them insignificant, but in some cases they can matter a great deal for price movement in the market. Another source of risk is a false statistical relationship on which the model is built. This type of arbitrage is very widespread in financial markets. As a rule, in the Forex market it takes the form of three-legged arbitrage, meaning that three currencies are usually traded (for example, eurjpy and usdjpy - eur, usd, and jpy). In general, this seems rather dubious to me. Although I have not checked it myself, in my opinion there are two reasons why such systems will work poorly. The first is transaction cost. When we enter a position, we pay the spread for it, and with some brokers a commission as well. The more legs the arbitrage has, the higher the transaction cost. The second reason is slippage, which will finish off what the spread did not finish off. It is possible that if you set slippage to 1 when sending orders, cancel trades when the spread is exceeded, and connect directly to liquidity providers, such a system may work. But in any case, significant profits are not to be expected, because the profits from such trades are negligible and not worth the time and effort spent developing a system like this.
HFT
High-frequency trading systems are strategies used in algorithmic trading with a position holding horizon of several fractions of seconds. In order to use such strategies and be called HFT, there are some restrictions on the equipment used and also a number of other requirements - it is only algorithmic trading, completely software, good communication channels and direct access to liquidity providers are required. Most of the strategies for high-frequency trading are the same as for regular trading (trend, counter-trend, arbitrage). HFT is rightfully considered the most profitable type of trading systems. The Forex market is considered slow compared to capital exchanges. Especially from the point of view of retail Forex traders, for whom real competition for execution time is often very limited. In general, liquidity providers engage in high-frequency market making. But in order for an ordinary trader to successfully profit from such algorithms, it is definitely necessary to use the provider’s API and VPS in close proximity to it. Nevertheless, HFT on Forex is still a very profitable direction.
Machine learning
Now this is one of the fashionable trends. Mathematical, statistical and logical tools are used to analyze markets. With their help, it is possible to create hypotheses that can be tested (for example, on historical data). The machine learning process consists of several steps from the selection of mathematical and software tools, input data, to making predictions and optimizing their accuracy. It is hardly possible to use only this tool to create a truly effective strategy, but the use of machine learning and historical data allows you to create strategies that will generate a certain income.
Genetic algorithms
There are a number of search algorithms, one of which is genetic. It is used to solve complex problems in cases where the exact relationships between the elements involved are unknown and may be non-existent. The problem is formalized so that its solution can be encoded as a vector of genes (a "genotype"), where each gene can represent a bit, a number, or some other object. Next, many genotypes of the initial “population” are randomly created, which are assessed using a special fitness function. As a result, each genotype is assigned a “fitness” value, which determines how well it solves the problem.
The science of finance is constantly evolving and finding ways to one way or another predict the value of companies, goods and any other assets, based on objective data. For example, government reports can tell a competent analyst how the situation with a particular currency will develop. Process research and cost forecasting based on this data is what occupies the best minds on the planet. Nobel Prizes are regularly awarded for research in economics and finance. In general, fundamental analysis is good. Currently, many algorithmic traders are working on developing systems for analyzing and interpreting news in order to highlight information on the basis of which a trading robot could make trades. Various services are used to receive news - for example, GoogleTrends, which shows the popularity of a particular search query. Algorithms also analyze news feeds. To build even simple types of such algorithms, knowledge of mql alone will not be enough for you, although it is not difficult to develop a simple system of this type. For example, you can analyze the “news” tab of the terminal for some triggers for the release of important news and compare statistics. If a certain index comes out higher than expected, we buy; if it falls below, we sell. Quite a rough example, but it might work after some research.
Data mining
Data Mining is the process of discovering in raw data previously unknown, non-trivial, practically useful and interpretable knowledge necessary for decision-making in various spheres of human activity. The purpose of searching for patterns is to present data in a form that reflects the processes being sought. Building forecasting models is also the goal of finding patterns. The results of Data Mining largely depend on the level of data preparation, and not on the “wonderful capabilities” of a certain algorithm or set of algorithms. About 75% of the work in Data Mining consists of data collection, which occurs before the tools themselves are launched. There are many different algorithms used in data mining. An example of an extremely simple program that uses this technology is Stock Pattern Viewer. This is a simple program into which you can load quotes and find certain candlestick patterns (not just candlesticks), after which a given market reaction occurs. For example, find a pattern after which within three candles the market grew 2000 times, but fell only 200 times. After this, the found patterns are built into the algorithms of trading robots and traded successfully (or not so well).
Programming

We have already looked at which programming languages are best to use to solve which problems and which topics related to programming are worth studying. Now let's talk in more detail about programming in general.
In general, there are no restrictions on a person’s ability to learn a programming language. I made an analogy with learning a foreign language above. So, just as people talk to each other, a person can talk to a machine. This is a completely natural process for most of the planet's inhabitants. However, there are some basic skills that will help you learn one or more programming languages faster. These include: English language, touch typing, discipline, basic knowledge of the functioning of computers and operating systems, the ability to understand the work of new applications, and, of course, IQ. But first things first.
Why do you need English?
The fact is that most of the technical documentation is written in English. Most of the information, including news and interesting articles, is also located on English-language resources. By the way, most of the serious information on algorithmic trading is on English-language websites and in English-language literature. However, English is not required to learn mql. It will come in handy if you want to rise above the basic level.
Version control systems
When you're developing a complex algorithm, there are often 100,500 different versions. How can you not get confused in so many almost identical files? A version control system will help you with this; you can read about its operating principles, for example,in this book.
Touch typing
Sitting at the computer for ten hours and shaking your head from the keyboard to the monitor, you realize that just a little more and your head will fall off. The ability to touch-type text helps you better concentrate on a task and also saves a lot of time.
I have already spoken about other skills above, so I will not repeat them. As you can see, almost anyone can master programming if they have the necessary motivation and discipline. And it’s not difficult to acquire certain skills either - it’s enough to systematically allocate at least an hour to classes every day.
Conclusion

So, based on the information provided today, I think it is quite possible to put together a fairly holistic, albeit superficial, picture of knowledge about algorithmic trading. Now you know what algorithmic trading is and what these algorithmic traders do in general. I hope I have provided you with enough evidence of the validity of this approach to trading - monitoring, indices from reputable sources, as well as arguments about why the average algorithmic trader still has every chance of making a decent living from his craft. I also tried to comprehensively evaluate all the pros and cons of both approaches - manual and algorithmic trading, although I am not sure that I did it well enough due to the possible “some bias” in my conclusions.
But, I think, many will agree with my conclusions about which tasks to entrust to a computer and which to a person and will make the right conclusions about which direction to “dig” so that other traders do not step on their heels. In addition, I hope I have shown how important it is to carefully consider the problem of purchasing trading robots, as well as to critically comprehend all the information coming to you, and also dispelled your perhaps not entirely correct ideas about what awaits you on the path of algorithmic trading, how much time should be devoted to it and how to increase the chances of minimizing errors in training and the time spent on it. And, what personally seems most valuable to me, I tried to formulate the optimal vector for teaching such a discipline as algorithmic trading, telling you about the areas of knowledge that shape the success of an algorithmic trader.
I also gave an idea of the variety of types of algorithmic trading systems, one or more of which, I hope, in the near future will delight those who were convinced by this article, undoubtedly extremely long, but hopefully entertaining enough to read it in full, to start creating their own algorithmic trading system.
Best regards, Dmitry aka Silentspec Tlap.io
Algorithmic trading on Forex: where to start, how to write your own expert advisor (MTS), strategy types, testing, and optimization.