This is the most common question that people ask when the curiosity about algorithmic trading arises in them for the first time.
It’s not easy to give an accurate answer. It really depends on which branch of the huge algorithmic trading world that person is interested in.
Algo trading is a vast world these days. It ranges from market-making to optimal execution to risk management and everything in between, which means that completely different skills are needed for different goals.
If someone is not working for a financial institution but is interested in trading their own money using algos, I always suggest that they learn rule-based trading.
Rule-based trading consists of finding price patterns with a predicting power and using them to build a trading strategy.
It can be seen as a quantitative version of technical analysis-based trading. As my readers already know, in discretionary trading, experience is combined with knowledge of strategies that have been learned via books or a mentor, allowing the trader to make decisions and, hopefully, a profit.
If we take it one step further, using a very simple quantitative instrument, we can test the strategy that a trader is using to see if it is possible to deconstruct it using rules and test whether it has a real predicting power or not.
After it is tested,whether buying after an event like “price closed above past week maximum” or by adding money management rules, like “exit after $1000 USD of profit” and “exit after $500 USD of loss”, we obtain a usable trading strategy.
The process is very simple: we start with a trading idea that can be decomposed in univocally defined rules. Once it is demonstrated that they tell us something about the future, we add a criteria to exit from the market and finally obtain a complete trading strategy, which is called a “trading system”.
After this pretty long introduction, I can finally answer those who are asking if they need to be a good programmer to build good trading systems.
The answer is: NO. Being a good programmer is really not necessary.
I am not saying that building a rules-based strategy is easy—not at all! I am saying that the hard part is not coding. It is finding good ideas to test.
There are already plenty of high-level programming software out there to do most of the job, such as TradeStation or MultiChart, which use their own proprietary programming language and are very user-friendly. These are thousands of times easier than Python, which already has the reputation of being an easy one among the classics, like C++ or Java.
It is very important to understand that, in order to build a trading system, skills and knowledge are required. And money to trade, of course! If someone starts this journey thinking that if they become a fast programmer, they will be able to test thousands of strategies per week, then they will go in the wrong direction.
If a beginner wants some chance of making money, they need to realize that most of their time should be spent observing and studying the markets, because price movements are the only source of ideas.
I would say that most of an algo trader’s success comes from their financial market experience and intuition. Coding and testing the idea is not where the value of the trader can be found.
Let’s take the example of two guys. One has 15 years of programming experience and six months of trading knowledge. The other has the opposite: 15 years of trading knowledge, very old school, and six months of Trade Station experience. The second guy, with all that trading knowledge, has a much better chance of building good trading systems than the first one.
Another reason why it is important to understand that being a good programmer doesn’t make you a good trader is because I have seen many programmers who are very self-confident in their chances of succeeding invest heavily and lose a lot of money.
At the same time, I have seen good traders with a lot of ideas who did not want to try to code them because they are “bad with computers”.
In other part of algo trading, being a good programmer is essential. Sometimes, things can be so hard that the programmer just thinks about how to translate other people’s models into computer language.
In computationally intensive applications, like high-frequency or market making, a quant can build a model prototype in Python and then a real computer scientist can translate it into C++.
In the case of algos based on machine learning or time-series models, the person who builds it must be proficient at least in R, Python and SQL just to play around with their ideas and to build a prototype.
For trading strategies based on rules, someone who has studied a bit of programming at school will be proficient enough in a couple of weeks to code a system from scratch. But as I have said, and I want to repeat this, it is the knowledge of the market that is most necessary if you want to come up with a successful strategy. This is where the difference lies between a winner and a loser.
Warning: There is a risk of loss in trading. It is the nature of commodity and securities trading that where there is the opportunity for profit, there is also the risk of loss. Commodity trading involves a certain degree of risk, and may not be suitable for all investors. Derivative transactions, including futures and forex, are complex and carry the risk of substantial losses. Past performance is not necessarily indicative of future results. Please read additional risk matters on our web site www.londontradinginstitute.com
It is important you understand all the risks involved with trading, and you should only trade with risk capital. This communication is intended for the sole use of the intended recipient and is for informational purposes only. It is not intended as investment advice, or an offer or solicitation for the purchase or sale of any financial instrument.