Hands-On Financial Trading with Python
A practical guide to using Zipline and other Python libraries for backtesting trading strategies
- 360 pages
- English
- ePUB (mobile friendly)
- Available on iOS & Android
Hands-On Financial Trading with Python
A practical guide to using Zipline and other Python libraries for backtesting trading strategies
About This Book
Build and backtest your algorithmic trading strategies to gain a true advantage in the market
Key Features
- Get quality insights from market data, stock analysis, and create your own data visualisations
- Learn how to navigate the different features in Python's data analysis libraries
- Start systematically approaching quantitative research and strategy generation/backtesting in algorithmic trading
Book Description
Creating an effective system to automate your trading can help you achieve two of every trader's key goals; saving time and making money. But to devise a system that will work for you, you need guidance to show you the ropes around building a system and monitoring its performance. This is where Hands-on Financial Trading with Python can give you the advantage.
This practical Python book will introduce you to Python and tell you exactly why it's the best platform for developing trading strategies. You'll then cover quantitative analysis using Python, and learn how to build algorithmic trading strategies with Zipline using various market data sources.
Using Zipline as the backtesting library allows access to complimentary US historical daily market data until 2018. As you advance, you will gain an in-depth understanding of Python libraries such as NumPy and pandas for analyzing financial datasets, and explore Matplotlib, statsmodels, and scikit-learn libraries for advanced analytics.
As you progress, you'll pick up lots of skills like time series forecasting, covering pmdarima and Facebook Prophet.
By the end of this trading book, you will be able to build predictive trading signals, adopt basic and advanced algorithmic trading strategies, and perform portfolio optimization to help you get —and stay—ahead of the markets.
What you will learn
- Discover how quantitative analysis works by covering financial statistics and ARIMA
- Use core Python libraries to perform quantitative research and strategy development using real datasets
- Understand how to access financial and economic data in Python
- Implement effective data visualization with Matplotlib
- Apply scientific computing and data visualization with popular Python libraries
- Build and deploy backtesting algorithmic trading strategies
Who this book is for
If you're a financial trader or a data analyst who wants a hands-on introduction to designing algorithmic trading strategies, then this book is for you. You don't have to be a fully-fledged programmer to dive into this book, but knowing how to use Python's core libraries and a solid grasp on statistics will help you get the most out of this book.
Frequently asked questions
Information
Section 1: Introduction to Algorithmic Trading
- Chapter 1, Introduction to Algorithmic Trading and Python
Chapter 1: Introduction to Algorithmic Trading
- Walking through the evolution of algorithmic trading
- Understanding financial asset classes
- Going through the modern electronic trading exchange
- Understanding the components of an algorithmic trading system
Walking through the evolution of algorithmic trading
- Human traders are inherently slow at processing new market information, making them likely to miss information or to make errors in interpreting updated market data. This leads to bad trading decisions.
- Humans, in general, are also prone to distractions and biases that reduce profits and/or generate losses. For example, the fear of losing money and the joy of making money also causes us to deviate from the optimal systematic trading approach, which we understand in theory but fail to execute in practice. In addition, people are also naturally and non-uniformly biased against profitable trades versus losing trades; for instance, human traders are quick to increase the amount of risk after profitable trades and slow down to decrease the amount of risk after losing trades.
- Human traders learn by experiencing market conditions, for example, by being present and trading live markets. So, they cannot learn from and backtest over historical market data conditions – an important advantage of automated strategies, as we will see later.
- Computers are extremely good at performing clearly defined and repetitive rule-based tasks. They can perform these tasks extremely quickly and can handle massive throughputs.
- Additionally, computers do not get distracted, tired, or make mistakes (unless there is a software bug, which, technically, counts as a software developer error).
- Algorithmic trading strategies also have no emotions as far as trading through losses or profits; therefore, they can stick to a systematic trading plan no matter what.
- Manual trading is better at dealing with significantly complex ideas and the complexities of real-world trading operations that are, sometimes, difficult to express as an automated software solution.
- Automated trading systems require significant investments in time and R&D costs, while manual trading strategies are often significantly faster to get to market.
- Algorithmic trading strategies are also prone to software development/operation bugs, which can have a significant impact on a trading business. Entire automated trading operations being wiped out in a matter of a few minutes is not unheard of.
- Often, automated quantitative trading systems are not good at dealing with extremely unlikely events termed as black swan events, such as the LTCM crash, the 2010 flash crash, the Knight Capital crash, and more.
Understanding financial asset classes
- Equities (stocks): These allow market participants to invest directly in the company and become owners of the company.
- Fixed income (bonds): These represent a loan made by the investor to a borrower (for instance, a government or a firm). Each bond has its end date when the principal of the loan is due to be paid back and, usually, either fixed or variable interest payments made by the borrower over the lifetime of the bond.
- Real Estate Investment Trusts (REITs): These are publicly traded companies that own or operate or finance income-producing real estate. These can be used as a proxy to directly invest in the housing market, say, by purchasing a property.
- Commodities: Examples include metals (silver, gold, copper, and more) and agricultural produce (wheat, corn, milk, and more). They are financial assets tracking the price of the underlying commodities.
- Exchange-Traded Funds (ETFs): An EFT is an exchange-listed security that tracks a collection of other securities. ETFs, such as SPY, DIA, and QQQ, hold equity stocks to track the larger well-known S&P 500, Dow Jones Industrial Average, and Nasdaq stock indices. ETFs such as United States Oil Fund (USO) track oil prices by investing in short-term WTI crude oil futures. ETFs are a convenient investment vehicle for investors to invest in a wide range of asset classes at relatively lower costs.
- Foreign Exchange (FX) between different currency pairs, the major ones being the US Dollar (USD), Euro (EUR), Pound Sterling (GBP), Japanese Yen (JPY), Australian Dollar (AUD), New Zealand Dollar (NZD), Canadian Dollar (CAD), Swiss Franc (C...
Table of contents
- Hands-On Financial Trading with Python
- Contributors
- Preface
- Section 1: Introduction to Algorithmic Trading
- Chapter 1: Introduction to Algorithmic Trading
- Section 2: In-Depth Look at Python Libraries for the Analysis of Financial Datasets
- Chapter 2: Exploratory Data Analysis in Python
- Chapter 3: High-Speed Scientific Computing Using NumPy
- Chapter 4: Data Manipulation and Analysis with pandas
- Chapter 5: Data Visualization Using Matplotlib
- Chapter 6: Statistical Estimation, Inference, and Prediction
- Section 3: Algorithmic Trading in Python
- Chapter 7: Financial Market Data Access in Python
- Chapter 8: Introduction to Zipline and PyFolio
- Chapter 9: Fundamental Algorithmic Trading Strategies
- Appendix A: How to Setup a Python Environment
- Other Books You May Enjoy