Hands-On Algorithmic Trading with Python
Published byO'Reilly Media, Inc.
CreatedOctober 2019
The pace of automation in the investment management industry has become frenetic in the last decade because of algorithmic trading and machine learning technologies. Industry experts estimate that as much as 75% of the daily trading volume in US equity markets is executed algorithmically, i.e. by computer programs following a set of pre-defined rules. In the 20th century, algorithmic trading was used by sell-side brokers to get the best execution of large trades for their clients. In the 21st century, algorithms are used in the entire trading process, from idea generation to execution and portfolio management. While all algorithmic trading is executed by computers, the rules for generating trades may be designed by humans or discovered by machine learning algorithms from training data.
Discipline in the face of grueling markets is a key success factor in trading and investing. Emotional irrationality, behavioral biases, inability to multitask effectively and slow execution speeds put manual trading by retail investors at a massive disadvantage. Retail investors are aware of these disadvantages and there is considerable interest in algorithmic trading, especially using Python. This learning path is about taking the first step in leveling the playing field for retail equity investors. It provides the concepts, process, and technological tools for developing algorithmic trading strategies. Note that live trading is out of scope for this learning path.
What you’ll learn—and how you can apply it
By the end of this learning path you’ll understand:
- The advantages and disadvantages of algorithmic trading
- The different types of models used to generate trading and investment strategies
- The process and tools used for researching, designing, and developing them
- Pitfalls of backtesting algorithmic strategies
- Risk-adjusted metrics for evaluating their performance
- The paramount importance of risk management and position sizing
And you’ll be able to:
- Use the Pandas library to import, analyze, and visualize data from economic, market, fundamental, and alternative sources available for free on the web
- Design and automate your own specific investment and trading strategies in Python
- Backtest and evaluate the performance of your strategies using the vectorized backtesting
- Prepare for competitions by crowd-sourced hedge funds to fund your algorithmic trading strategies
This learning path is for you because…
- You’re a retail equity investor, financial analyst, or trader who wants to develop algorithmic trading strategies and mitigate the disadvantages of emotional, manual trading
- You have Python development experience and want to learn how to apply that to open up opportunities in the financial services and investment management industry
Prerequisites:
- You should have basic experience trading and investing in equities
- You should have basic knowledge of Python and Pandas DataFrames
Materials or downloads needed in advance:
- “ Algorithmic trading in less than 100 lines of Python code ” (article)
- “ Data Analysis with Pandas” (Chapter 5 in Python for Finance, 2nd Edition)
- “ The Trinity of Errors in Financial Models ” (article)
Further resources:
- You'll find the O'Reilly GitLab Repository associated with this course and instructions for how to access the (optional) exercises mentioned throughout this course at https://resources.oreilly.com/learning-paths/hands-on-algorithmic-trading-with-python. Access the README file for information on installing Docker and running the provided notebooks.
- Python for Data Analysis, 2nd Edition (book)
- Python for Finance, 2nd Edition (book)
- Hands-On Machine Learning for Algorithmic Trading (book)