This training course covers the basics of:
1. Finance - Stocks, equities, returns.
2. Data extraction from quandl and pandas-datareader.
2. Financial Analyses techniques using Python
3. Trading strategies - types, formulation and coding strategies in python
4. Designing and developing the backtesting framework
5. How to use Quantopian/Zipline to backtest your strategies.
6. Risk Assessment metrics
7. Design and develop your own backtesting algorithm and learn how to backtest using Quantopian.
What am I going to get from this course?
- Extract data from different sources like quandl, yahoo-finance, etc.
- Understand the principles of quantitative analysis of end of day stock pricing data.
- Build upon mathematical and statistical fundamentals.
- Formulate and develop trading strategies based on momentum indicator, moving averages, rolling window calculation and crossover techniques.
- Statistically test the strategies that you have formulated on quantopian.
- Design and develop backtesting framework.
- Understand the risk assessment metrics.
- Design and develop your own backtesting algorithm and learn how to backtest using Quantopian.
Prerequisites and Target Audience
What will students need to know or do before starting this course?
You should be familiar with:
- Basic Statistics and mathematics
- Interpreting graphs and plots.
Who should take this course? Who should not?
- You are a programmer or data analyst/scientist who familiar with basics of finance. You want to pursue a new job as a quant analyst, launch yourself in the field of fintech.
- You are someone who is fundamentally strong in programming and statistics. You wish to work as a Quant Analyst at an Investment Bank or a Hedge fund.
- Students who don't want to get into finance or data science.
- Students who are looking for one-stop course to learn quantitative trading to make millions.
Module 1: Course Overview and Exploratory Data Analysis
Overview - Stocks and Trading
We discuss the strategy and guidelines to make the most of this course. We walk through over the concept of stocks and trading.
Setting up the Workspace
In this video, we'll be covering the technical requirements to set up the workspace for the entire course.
We'll go through:
- Python version
- Creating a virtual environment which will have all the packages required
- Jupyter notebook
- How to write python code in Jupyter notebook
Data Extraction from Quandl
Without wasting much time, let's get started with the collection of data. Getting your hands on the right dataset is very important. In this video, we're going to learn about Quandl and how can we use the Quandl API using Python to get Apple's EOD stock pricing data. We'll cover the introduction to pandas and how you can save the data to a CSV file.
Exploratory Analysis on Time-series Data
Throughout the course, we'll be using data manipulation package, pandas along with NumPy, SciPy, Matplotlib, and a few others. In this lecture, we'll mainly focus on dealing with time series data, what each column in the dataframe represents and means. We'll cover slicing, subsetting and resampling techniques using pandas.
Extract Microsoft Data Using your Own API Key
Here is the first assignment where you've to use the Quandl API to extract MSFT(Microsoft) EOD stock pricing data from 1st Jan, 2011 to 1st Jan, 2019.
Module 2: Performing financial analyses on stocks
Calculation of Returns
The lecture would cover the common financial analyses which every quant trader should learn. We'll cover various methods of calculating returns. Here are the python functions we'll use:
- np.log - for log returns
- Plot the returns using plot() function.
Cumulative Returns and Portfolio Stocks Analysis
The lecture will walk you through the importance of cumulative returns for different time windows(daily, monthly, quarterly, yearly).
We'll learn to capture data from pandas_datareader package which uses yahoo_finance.
Compare the returns of a range of stocks extracted from the pdr package.
Rolling Window Statistics
In this lecture, we're going to learn about moving window statistics:
- How to calculate the rolling mean, rolling variance, rolling median, etc.
- How moving window statistics eliminates the fluctuations and spikes in the data.
- Python functions: rolling_mean(), rolling_std(), etc
In this lecture, we're going to learn about risk assessment using volatility:
- We'll calculate the variance of a stock over a period of time.
- Understanding the volatility of a stock compared with other stocks and assessing how risky is the investment.
- Formulating historical volatility on log returns.
Ordinary Least-Squares (OLS) Regression Method
The lecture covers the concept of regression analysis using the statsmodel package. We are using the Ordinary Least-Squares Regression model to understand the pattern of the dependent variable(log returns of stocks) and the independent variable.
- Learn about the goodness of fit.
- Probability using F-statistics
- How to use t-tests.
- The skewness of the curve.
Perform Financial Analysis on the MSFT Data
Using the data collected in the previous quiz, you have to perform a few tasks and answer the following questions.
Module 3: Formulation and development of trading strategies
Introduction to Trading Strategies
The lecture covers the basics of trading strategies and common algorithms used to trade securities. In general, there are two common trading strategies: the momentum strategy and the reversion strategy. You'll learn about various types of algorithms you can develop in each of them.
Steps to Formulate the Trading Strategy
A step-by-step guide to formulating the Moving average crossover algorithm.
- Translate each step into code in Jupyter notebook.
- Learn about the implementation of rolling statistics in SMA.
Visualizing the Trading Signals
Learn about the matplotlib's plotting methods, we'll:
- plot the short, long moving averages
- mark the buy and sell signals in the data.
- learn about adding conditions in the plot function
Let's Revise the Trading Strategies Concepts
Module 4: Developing your own backtesting framework
Introduction to Backtesting
In this lecture, we'll cover:
- The basic definition and importance of backtesting.
- Pitfalls of backtesting and factors you need to take care of while designing the backtesting framework.
- Essential components of backtesting
Step-by-step Guide to Developing a Backtester
We'll be moving forward to developing a simple backtester consisting of a strategy, a data handler, and a portfolio.
- We'll be following a set of instructions and translate each of them to pythonic statements using pandas dataframe.
- We'll generate the backtester which will track all our expenses, total funds, P&L, etc.
Plotting the Portfolio Values
Learn about the matplotlib's plotting methods, we'll:
- plot the portfolio's total column and visualise our holdings
- introduction to quantopian
Module 5: Backtesting on Quantopian and Risk Assessment
In this lecture, we're going to learn about the free, community-centered platform called Quantopian:
- Advantages of backtesting on quantopian.
- How to write and backtest an algorithm on quantopian
- Learn about the backtesting results
Backtesting the SMA Strategy on Quantopian
This lecture is going to cover the entire process of backtesting the strategy that we developed on quantopian. We'll see the entire dashboard of results of the backtesting. Learn about different measures on the dashboard and what they represent.
Risk Assessment Metrics
After all the backtesting, you'll need to evaluate the strategy, here you'll learn about:
- Sharpe ratio
- Maximum drawdown
- Compound annual growth rate (CAGR)
You'll code these in python using statsmodel, pandas and run it over your strategy's output.
This is the last video in which we'll look at the next steps after the course, prospective projects you can take up to master the skill and links to resources and books to subscribe to. This is a defined list of resources which can help you get more clarity on quantitative trading algorithms and concepts.
Test your Backtesting Skills!