Only one in five day traders is profitable. Algorithmic trading improves these odds through better strategy design, testing, and execution.
In this post, I’m going to discuss what it took for me to become a successful retail algorithmic trader. I hope to help other individual investors who are considering this path.
What is Algorithmic Trading?
Algorithmic trading uses computer programs to place buy and sell orders automatically according to a specified set of rules. These rules are collectively referred to as the trading algorithm.
- When the 50-day moving average crosses above the 200-day moving average, the trend is up and we buy.
- When the 50-day moving average crosses below the 200-day moving average, the trend is down and we sell.
I provide detailed instructions and associated code using this DMA strategy in my post A Simple Trading Strategy in Zipline and Jupyter.
The first question you need to answer is not if algorithmic trading can increase your pocketbook, but if it’s right for you. If you do not love learning new technologies, I would recommend against becoming an algorithmic trader solely in the pursuit of profits. If riches are your goal, it would probably be easier to put your money in an index fund and start a business instead.
For me, my decision was easy. I love learning new technologies, and I figured there were two potential outcomes:
- At best, I would become a profitable algorithmic trader
- At worst, I could add an incredibly useful skill to my resume
And the worst-case scenario is a pretty good one. Data scientist salaries are lucrative for a reason. The emergence of big data is empowering better decisions for both companies and traders.
If you’re not interested in learning data science and programming, that’s okay. There’s still plenty of money to be made in long-term stock investing, especially when combined with systematic risk management rules.
The odds of succeeding as an individual discretionary trader are getting worse by the minute. Like many other industries, the companies embracing technology are succeeding much more than those being disrupted. The same goes for trading. Traders that use these exciting new technologies when investing increase their chances of success significantly; however, while the path to profits is easier, the learning curve is steep.
I see two areas where algorithmic trading can improve a retail investor’s performance:
- Data Science enables better strategy development and testing
- Algorithmic Execution improves trade execution and reduces behavioral investing mistakes
I recommend most traders take the same path as me. Start with an online service such as QuantConnect to determine if algorithmic trading is right for you. QuantConnect offers great beginner tutorials. If you discover that you enjoy the process, you’ll eventually need to learn data science and develop your own research environment to create more advanced strategies.
It always bothered me when an investor or trader shared a strategy without backing it up with data. If there’s no data, it’s only an opinion and should not be used as the basis for which to trade. Data science enables you to develop trading strategies with statistical significance. And after you’ve developed a trading strategy, you can backtest it thoroughly to understand how it would have performed and how the strategy will likely perform in the future:
How Long to Learn Data Science & Algorithmic Trading
It took about a year full-time for me to feel like I was proficient at using data science for trading strategy development, and about four months to feel comfortable with automated execution. I’ve been interested in technology my whole life, so I enjoyed the process, and I’m sure my past experiences helped speed up the learning.
I would estimate that someone without a technology background would need 2-3 years to learn the following:
- Code in Python
- Get financial data from an API
- Scrape the web for additional data
- Store the data in a database
- Manipulate and clean the data
- Become an expert at time series analysis
- (Re)learn statistics & machine learning math
- Develop and analyze trading strategies
Think about what you already know. When I started, I had been investing in stocks for years. Because of this, I developed equity trading strategies instead of venturing into futures or forex. As Warren Buffett says, stay within your circle of competence and grow that circle over time.
When developing an algorithmic investing idea, you should always understand why it works. As an example, it’s a human tendency to overreact to large changes in information and underreact to smaller changes. Understanding human nature can help us create a trading strategy exploiting this behavioral characteristic.
If we sourced our ideas from correlations in the data instead of starting with why we’ll run into two problems:
- Correlation isn’t causation, and we’ll be prone to curve fitting.
- It’ll be challenging to stay with the strategy when it moves against you (it will).
There are two areas of opportunities when thinking about algorithmic trading:
- The markets we trade
- The strategies we use
The biggest market opportunity for algorithmic traders is to play in the space where institutional traders are capacity constrained and where data is plentiful. Stay away from competitive areas such as high-frequency trading.
The best trading strategy ideas come from within, but if you’re looking for inspiration, SSRN and other academic journals are great places to look. Algorithmic trading strategies generally fall into one of the following categories:
- Rebalancing exploitation
- Mean reversion
There are also multiple execution strategies to achieve the best possible order price:
The second biggest benefit I’ve realized from implementing algorithmic trading is that I think more and worry less. I know that all of my trades and portfolio positioning will be handled according to the system I’ve developed without intervention from me.
The extra time helps me develop better strategies, and I’m less likely to make behavioral investing mistakes when the markets get crazy.
There are other benefits, but for me, they were less significant:
- Trades are executed quickly to avoid significant price changes
- Trades can be sourced from multiple brokerage accounts
- Multiple market condition checks can be performed before trade execution
- Elimination of manual errors when placing trades
The major disadvantage of algorithmic trading is that one mistake in your code can be catastrophic. An algorithm can trigger hundreds of transactions in a short period costing the trader their entire account. When performed en masse, they are called a flash crash. The 2010 flash crash was one of many instances where algorithms behaved badly.
These mistakes can cause major headaches at best and an empty account at worst, this reason is why I recommend learning data science first and automating trading only once you’ve mastered coding and you’re 100% confident in your trading system.
Tradestation, Multicharts, NinjaTrader, and other retail trading platforms are too limited, in my opinion. The profit potential of using a local system for research and execution outweighs the steeper learning curve.
The good news is that there’s a proliferation of great free trading software and tools out there. I’ve written about my favorite python trading platforms, vendors, and libraries.