📜 ⬆️ ⬇️

Books and educational resources on algorithmic trading



Algorithmic trading is an interesting area that allows IT professionals to apply their technical knowledge in the stock market and derive some benefit from it. In our blog, we have repeatedly considered various topics related to the creation of trading robots, but not enough attention was paid to theoretical issues faced by novice traders.

In our today's material - a selection of books that will help you better prepare for getting started in the stock market and writing mechanical trading systems. In order to achieve the greatest efficiency of the material, we provide expert advice that deals with algorithmic trading on the Russian and foreign stock markets.

Michael Halls-Moore, Quantitative trading expert (quoted from a blog post)
')
I believe that before a person understands the basic concepts of trading on the stock exchange and algorithmic trading, it is worthwhile to avoid immersion in complex mathematics. In my opinion, with the help of the following books, it is good to study the basics:


After mastering the basic concepts, it is necessary to proceed to the development of trading strategies. Nowadays, it’s not particularly difficult to find a strategy, but its effectiveness will depend, among other things, on the trader’s personal characteristics, so you need to constantly try new strategies and test them with historical data. The following books discuss the creation of trading engines and the associated difficulties:


After studying the presented literature, the trader will be more prepared to conduct research and study the various components of the trading systems and their interconnection (separate books are devoted to each of these elements).


Alexey Afanasyevsky, Head of the algorithmic trading department of Finam JSC

If you are going to write your first robot, then you need to have more or less solid points of support in three areas - mathematics at least at the level of the first or second year of a technical university of average lumpiness, understanding of financial structures and possession of any programming tools.

1) Mathematics is the most important thing without it at all. And it is desirable that knowledge be broad and diverse. Nothing from the main disciplines will be superfluous - mathematical analysis, linear algebra, analytic geometry, the theory of a function of a complex variable, differential equations and, in particular, second-order partial differential derivatives, functional analysis, mathematical statistics and probability theory. All this beauty lives in the Course of Higher Mathematics and Mathematical Physics, edited by A.N. Tikhonov, V.A. Ilina, A.G. Sveshnikov.

An unforgettable Landauvshitz - a course of theoretical physics from Landau-Lifshitz will be redundant, but perhaps useful for internal development. This will not give an immediate effect in the development of robots, but will increase the sharpness of the mind and efficiency in achieving results.

It is clear that not everyone has academic knowledge and, all the more so, all of the above will take a lot of time to master, which is always lacking. Therefore, the mandatory minimum is linear algebra, probability theory, and mathematical statistics. Without this in any way.

2) Programming is the second mandatory pillar. If a person has money, and he does not want to "bother", then it is certainly easier for him to hire a team. If you want to participate in the process, you will have to program it yourself anyway. This may be a deep immersion in the process, up to the trapping of microsecond roundtripes in a low-level language, or it may be a slow and costly simulation in terms of resources, but one way or another you will have to participate in programming something personally.

Here, depending on the role that you will take in the project and on the type of robot that you will develop, there may be options.

If you are doing a medium-term statistical arbitration robot or a robot that performs a small number of transactions that are insensitive to slippage, then it is possible to use languages ​​such as Python or R to describe its logic, as well as to create your own back-testing mechanism. At the same time, the part responsible for execution can be fully implemented in languages ​​of a sufficiently high level, for example, belonging to the .Net family.

If you create a less sophisticated, but faster, robot, you will need languages ​​more “approximate” to the hardware - C ++, perhaps the usual C, and maybe even the assembler.

In any case, the choice of languages ​​is not the topic of this review, but I strongly recommend that you get a practical acquaintance with a couple or three of the most distant languages ​​from each other. If you are completely lazy or have a little time, master at least one. As the maximum compromise between ease of learning, ease of writing and performance, perhaps the best for today is C # - all of the characteristics are four to his side, sometimes with minuses, sometimes with two or four fat pluses (sorry for the pun).

As manuals on languages ​​there is a huge amount of textbooks of the most different publishers and authors. As one of the options we can recommend books on programming languages, published by O'Reilly (often with any animals on the covers). They are also reissued in Russian.

3) Financial mathematics in terms of complexity is very much inferior to claim 1, i.e. higher mathematics, but it is an important source of understanding the subject of the market. Books on financial mathematics are many and they are all about one thing. Any " Financial Engineering " Galitsa is quite suitable for an initial acquaintance.

4) Options - If you decide to take up options, but have not known them before, then this is Connolly, Connolly and nothing but Connolly. The book " Trading volatility " - a mandatory beginning.

5) Contract specifications , settlement terms, trading rules, dividend accounting - in short, learn the hardware, read the clearing rules, climb the sites of exchanges, regulators, and more. Crawling is difficult, but useful.

6) Spices and seasonings . Want something unusual - rummage in near-trade technologies, in adaptive mathematics. Wavelets, fractals, fuzzy logic, genetic algorithms, neural networks and other big data and data mining. Most likely it will not add you earnings, and definitely will not add it immediately. But this is a good way of self-development ... And, perhaps, you will still find something there

7) Absolutely for “geeks” - programming Cuda, FPGA , etc. Go to the NVidia site, the development sites of any FPGA and read. Maybe it will hook you. If you make a super-duper-mega-fast-HFT, then perhaps FPGA is what will allow you to beat the competition. And if you do option arbitrage in Western markets (and not only), then Cuda will most likely come in handy. The sources here are all open and are easily searched on Google, the main thing is to think out correctly why to use them.


Andrey Gorkovenko, creator of mechanical trading systems, developer of the SmartX terminal

By occupation, I read quite specific literature, mainly related to complex models of mathematical statistics. And since in the Russian Federation this topic is not very developed, my literature is mainly in English.

Of the more “popular” books in the genre, he read “ Long-term secrets of short-term trading, ” but he never applied any of the ideas listed there in practice.

To all novice traders (no matter, algorithmic, or “simple”), I would recommend reading Nassim Taleb, especially the book “ Fooled by Accident ” - it is thin, but it makes you look at many things in a new way.

From what really helped me, I can advise the following materials:




In addition to the books and articles listed by experts, there is still a huge amount of useful educational resources. Some of them are presented below:

Books to understand the stock market



Posts on Habré


On Habré (mainly in our blog) there were quite a lot of interesting posts about creating trading robots:


Educational courses StockSharp


The company-developer of trading robots Sharparp is also engaged in training algotraders. In particular, two distance courses deserve attention:


That's all for today, thank you for your attention! If you think that some great book, blog post or educational course was unfairly forgotten in our topic - write in the comments, so we can collect the most complete resource base for algorithmic trading!

PS Soon we are holding two interesting educational events (a seminar and a webinar), dedicated to getting started in the stock market and buying stocks of foreign companies like Tesla Motors. Read the description on Megamind and sign up!

Source: https://habr.com/ru/post/257971/


All Articles