Bots are programs that run all the time and that do something in a rather autonomous way. Trading bots are programs that run all the time and trade autonomously.
In the last sections we talked about algorithms. How are algorithms and programs/bots related?
As we said before, algorithms are just lists of steps one has to take to achieve a goal. That is why you can describe algorithms in plain English. Computers, though, do not understand English. They cannot execute instructions written in English, or any other natural language, such as German, Spanish or Chinese. They can only run programs and programs are written in programming languages. Bots, or more generally, programs, are "implementations" of algorithms. Someone who writes the computer program that can execute a given algorithm is said to "implement" this algorithm.
So, traders who automate their trading basically have two tasks: They need to invent a trading strategy, a.k.a. a trading algorithm, and they need to implement this algorithm, i.e. write a program that can be connected to a bank account (with real money or with virtual money) and that executes this algorithm, i.e. that trades autonomously. Usually they will do this in one step, though: They will invent a trading strategy and write it down directly as code in some programming language.
Here is a widespread way of developing trading strategies:
A developer writes down a first version of his trading strategy, let us call it "s1". He tests his strategy on historical data, a process known as "backtesting" and learns that s1 doesn't perform the way he wanted it to perform. So the developer modifies s1 slightly. In other words, he creates a new strategy, let us call it "s2" that is very similar to s1. Then he will backtest s2 to see if it works. He will modify and backtest his strategies until some version of the original idea, maybe s412, finally seems to be profitable on the historical data.
Obviously, this is a lot of manual work. And this manual work gets even more complicated by the fact that the platforms for which developers write trading strategies often come with certain restrictions. An example: One of the most popular platforms, "Metatrader 4", or "MT4" for short, does allow developing strategies that trade several instruments, such as EURUSD (euros vs. U.S. dollars) and GBPJPY (British pounds vs. Japanese yen), but it doesn't allow backtesting such strategies. So a trader who wants to develop a strategy that trades several instruments would have to develop a strategy for each instrument, backtest all of these strategies and then find a way to combine the backtest results of the different strategies. He would have to do this on his own, i.e. he would have to write a completely new software for this, because the MT4 platform doesn't allow for combining backtests of different strategies.
An obvious solution might be to use a different platform.
There are actually other trading-bot platforms, some of which have some advantages over MT4. But they all also have severe disadvantages. One of the most important disadvantages of the other platforms is that they are not very common. There are not many "brokers" (roughly: banks that allow you to run trading bots) that will offer the platform for which you have written your trading bot, if you do not use the Metatrader platform. And, there is one great disadvantage that, to our knowledge, all of these platforms have in common: They do not allow developers to maximally automatize their work.
As explained above, a developer of trading bots will usually start with some preliminary trading strategy implemented as a preliminary trading bot. I.e. he will develop his first strategy s1. Then he will run a backtest for s1, modify it, and backtest it again.
But what does "modify" actually mean?
It means that the developer changes certain parameters of his strategy. Let us reconsider our example from the last sections: We started with the idea of buying gold after its price has fallen three days in a row. The three-days idea might not work, but maybe four days (of gold prices falling in a row) would work. That is one parameter of a strategy: The number of days the price of gold needs to be falling. Wouldn't it be great, if developers didn't have to modify this parameter and all other parameters manually and then have to redo their backtests manually?
This is why we developed Algocrowd. All trading-bot platforms we have looked at allow for some "parametrization", i.e. for some kind of automatization of the development of trading strategies. But in all of these platforms the possibilities of automatization are very limited. What you cannot do with any of the many platforms we examined is to just develop building blocks for trading strategies and have an algorithm create new trading strategies with these building blocks in a completely automated way.
Note that we are talking about two levels of algorithms/bots now: There is the level of the algorithms/bots that you can use for trading: the trading algorithms/bots. And there is the level of algorithms/bots that develop trading algorithms/bots. Algocrowd is a system of the second kind. It uses building blocks provided by humans, invents trading algorithms with these building blocks and generates the code for these algorithms, i.e. it creates trading bots that can be run.
We decided to implement our trading bots for the MT4 platform. It is a very popular platform. And that means that with MT4 bots (which are also called "Expert Advisors"), you can choose between a great variety of brokers. And that means that you are very independent of your current broker and can switch easily, e.g. when you find a broker with lower fees. With MT4 it is also easy to have several brokers and use each broker to only trade with a part of one's capital.
The disadvantages of MT4, its limitations when it comes to automatization, are only relevant, if you use this program manually to find trading algorithms. We created the Algocrowd system to overcome these limitations. In other words, with Algocrowd, you can have the greatest advantage of MT4, its popularity, without the disadvantages.
However, Algocrowd is not about MT4. Algocrowd is not about generating bots for a specific platform. Algocrowd is about finding trading algorithms. Right now, the MT4 platform seems to be the most reasonable choice. Therefore, at the time being, our system only generates bots for this platform. However, this may change in the future, e.g. if the MT4 platform should become less popular.
In order to understand what a program does, you need to know its input and its output. What is the input of Algocrowd? And what is the output of Algocrowd? The input of Algocrowd are certain pieces of code, so called "indicators", which we will describe in the following sections. If you are a developer, you can upload such indicators and thereby contribute to our completely automated search for the best trading algorithms. The output of Algocrowd is a list of trading bots generated for the MT4 platform. You don't have to understand the code of these trading bots to use them. You can simply download and run them. We have a blog post that explains how to do this.
There is one last technical distinction that we need to introduce: MT4 is the platform that must be used to run Algocrowd bots. You can easily download, install and run it on your computer. You don't have to be an MT4 expert for this. What you actually run with your MT4, the trading bots, or, "Expert Advisors" as the MT4 people like to call it, are "mq4" files. The programming language in which MT4 bots are written is called "MQL4". And MQL4 programs have the suffix ".mq4". If you are not a developer, don't worry. You can just download the mq4 files and run them in your MT4 by clicking on them. If you are a developer: Note that with the mq4 files you get the source code of the strategies found by Algocrowd. That means that you can read them and modify them, if you want. And you will not lose the source code of the strategies you downloaded, if Algocrowd should go bankrupt.
After all these rather abstract explanations, you might wonder what a bot for MT4 or "expert advisor" actually looks like. That is what we are going to explore next.