# Advanced Algorithmic Trading

Course Curriculum

#### Course Content

Lessons Status

3

#### Practical examples of trade management functions - Unit 1 - Examples of trade management functions
- Unit 2 - Move stops depending on trade profit
- Unit 3 - Move stops with a technical indicator - AssetVars
- Unit 4 - Controlling script behaviour using TMFs
- Unit 5 - Calculating ATR inside a TMF
- Unit 6 - Scale into a position
- Unit 7 - One-cancels-other orders
- Unit 8 - Stop-and-reverse orders
- Unit 9 - The price() functions inside a TMF
- Unit 10 - Typecasting trade-specific variables (why printf() is not working!)
- Unit 11 - Cycling through the trade list
- Unit 12 - User-defined trade-specific variables

- Unit 1 - Examples of trade management functions
- Unit 2 - Move stops depending on trade profit
- Unit 3 - Move stops with a technical indicator - AssetVars
- Unit 4 - Controlling script behaviour using TMFs
- Unit 5 - Calculating ATR inside a TMF
- Unit 6 - Scale into a position
- Unit 7 - One-cancels-other orders
- Unit 8 - Stop-and-reverse orders
- Unit 9 - The price() functions inside a TMF
- Unit 10 - Typecasting trade-specific variables (why printf() is not working!)
- Unit 11 - Cycling through the trade list
- Unit 12 - User-defined trade-specific variables

4

#### Risk management 1: measuring performance - Unit 1 - Introduction
- Unit 2 - Introduction to trade and returns analysis
- Unit 3 - Trade distribution analysis
- Unit 4 - Maximum adverse and favourable correlation
- Unit 5 - Trade summary statistics and returns correlation
- Unit 6 - Trade statistics by period
- Unit 7 - Drawdown analysis and random processes
- Unit 8 - Risk
- Unit 9 - Measuring risk and reward

- Unit 1 - Introduction
- Unit 2 - Introduction to trade and returns analysis
- Unit 3 - Trade distribution analysis
- Unit 4 - Maximum adverse and favourable correlation
- Unit 5 - Trade summary statistics and returns correlation
- Unit 6 - Trade statistics by period
- Unit 7 - Drawdown analysis and random processes
- Unit 8 - Risk
- Unit 9 - Measuring risk and reward

5

#### Risk management 2: quantitative portfolio management - Unit 1 - Introduction to quantitative portfolio contruction
- Unit 2 - Loop functions: Zorro's shortcut to building portfolios
- Unit 3 - Modern portfolio theory
- Unit 4 - Optimal F and The Kelly Criterion
- Unit 5 - Performance-based allocation
- Unit 6 - Reinvesting and other capital allocation methods
- Unit 7 - When to pull out: a quantitative approach
- Unit 8 - Portfolios: conclusions

- Unit 1 - Introduction to quantitative portfolio contruction
- Unit 2 - Loop functions: Zorro's shortcut to building portfolios
- Unit 3 - Modern portfolio theory
- Unit 4 - Optimal F and The Kelly Criterion
- Unit 5 - Performance-based allocation
- Unit 6 - Reinvesting and other capital allocation methods
- Unit 7 - When to pull out: a quantitative approach
- Unit 8 - Portfolios: conclusions

6

#### Working with time - Unit 1 - Your reference framework: arbitrary or principled?
- Unit 2 - The basics of working with time
- Unit 3 - Multiple perspectives: analyzing data at different timeframes
- Unit 4 - Seasonal effects
- Investigating Seasonal Patterns using Zorro
- Correlograms
- Unit 7 - Exploiting seasonality
- Unit 8 - Exploiting seasonality: Stock Index ETF monthly patterns
- Exploiting Seasonality: Overnight Effects
- Exploiting Seasonality: Non-Farm Payrolls Drift
- Unit 11 - Conclusions

- Unit 1 - Your reference framework: arbitrary or principled?
- Unit 2 - The basics of working with time
- Unit 3 - Multiple perspectives: analyzing data at different timeframes
- Unit 4 - Seasonal effects
- Investigating Seasonal Patterns using Zorro
- Correlograms
- Unit 7 - Exploiting seasonality
- Unit 8 - Exploiting seasonality: Stock Index ETF monthly patterns
- Exploiting Seasonality: Overnight Effects
- Exploiting Seasonality: Non-Farm Payrolls Drift
- Unit 11 - Conclusions

7

#### Advanced analytical tools for traders - Unit 1 - Advanced analytical tools for traders: introduction
- Unit 2 - Regression 1: an introduction
- Unit 3 - Regression 2: smoothing trend estimation
- Unit 4 - Regression 3: polynomial regression
- Unit 5 - Regression 4: beta
- Unit 6 - Regression 5: further considerations
- Unit 7 - Spearman Rank correlation
- Unit 8 - Pattern recognition with the Frechet Distance
- Unit 9 - Shannon Entropy
- Unit 10 - Machine learning 1: introduction to machine learning in Zorro
- Unit 11 - Machine learning 2: a brief overview
- Unit 12 - Machine learning 3: first steps with Zorro
- Unit 13 - Machine learning 4: decision trees
- Unit 14 - Machine learning 5: ensembling machine learning models in Zorro
- Unit 15 - Machine learning 6: perceptrons, the simplest neural networks
- Unit 16 - Machine learning 7: data mining for predictive patterns
- Unit 17 - The insidious threat of data mining bias
- Unit 18 - Dealing with data mining bias: the empirical approach
- Unit 19 - Dealing with data mining bias using synthetic price data
- Unit 20 - Dealing with data mining bias using bootstrapped backtests
- Unit 21 - Applications of digital signal processing to trading
- Unit 22 - Oversampling for getting more out of data

- Unit 1 - Advanced analytical tools for traders: introduction
- Unit 2 - Regression 1: an introduction
- Unit 3 - Regression 2: smoothing trend estimation
- Unit 4 - Regression 3: polynomial regression
- Unit 5 - Regression 4: beta
- Unit 6 - Regression 5: further considerations
- Unit 7 - Spearman Rank correlation
- Unit 8 - Pattern recognition with the Frechet Distance
- Unit 9 - Shannon Entropy
- Unit 10 - Machine learning 1: introduction to machine learning in Zorro
- Unit 11 - Machine learning 2: a brief overview
- Unit 12 - Machine learning 3: first steps with Zorro
- Unit 13 - Machine learning 4: decision trees
- Unit 14 - Machine learning 5: ensembling machine learning models in Zorro
- Unit 15 - Machine learning 6: perceptrons, the simplest neural networks
- Unit 16 - Machine learning 7: data mining for predictive patterns
- Unit 17 - The insidious threat of data mining bias
- Unit 18 - Dealing with data mining bias: the empirical approach
- Unit 19 - Dealing with data mining bias using synthetic price data
- Unit 20 - Dealing with data mining bias using bootstrapped backtests
- Unit 21 - Applications of digital signal processing to trading
- Unit 22 - Oversampling for getting more out of data

8

#### Advanced utilities for algo traders - Unit 1 - Introduction to algo trading utilities
- Unit 2 - Introduction to string manipulation
- Unit 3 - String manipulation example 1: reading in a binary balance curve
- Unit 4 - String manipulation 2: exporting data to a CSV file
- Unit 5 - String manipulation 3: scraping sentiment data from the web
- Unit 6 - Advanced script flow control
- Unit 7 - The command line: enabling an efficient and productive workflow
- Unit 8 - Sending free email and SMS from a trading algorithm
- Unit 9 - External input 1: sliders
- Unit 10 - External input 2: control panels
- Conclusion: Algo trading utilities

- Unit 1 - Introduction to algo trading utilities
- Unit 2 - Introduction to string manipulation
- Unit 3 - String manipulation example 1: reading in a binary balance curve
- Unit 4 - String manipulation 2: exporting data to a CSV file
- Unit 5 - String manipulation 3: scraping sentiment data from the web
- Unit 6 - Advanced script flow control
- Unit 7 - The command line: enabling an efficient and productive workflow
- Unit 8 - Sending free email and SMS from a trading algorithm
- Unit 9 - External input 1: sliders
- Unit 10 - External input 2: control panels
- Conclusion: Algo trading utilities

9

#### Quick start guide to R: the language of statistical computing - Unit 1 - Leveraging R: the free software for statistical computing
- Unit 2 - The basics: installing, calculating, commenting and getting help
- Unit 3 - Variable types, assignment and data structures
- Unit 4 - Vectors
- Unit 5 - Matrices
- Unit 6 - Factors
- Unit 7 - DataFrames
- Unit 8 - Lists
- Unit 9 - Flow control
- Unit 10 - Functions
- Unit 11 - Vectorization
- Unit 12 - Basic plotting in R
- Unit 13 - Packages
- Unit 14 - Data manipulation with dplyr
- Unit 15 - Managing an R installation with Installr
- Unit 16 - Conclusions and my favourite R references

- Unit 1 - Leveraging R: the free software for statistical computing
- Unit 2 - The basics: installing, calculating, commenting and getting help
- Unit 3 - Variable types, assignment and data structures
- Unit 4 - Vectors
- Unit 5 - Matrices
- Unit 6 - Factors
- Unit 7 - DataFrames
- Unit 8 - Lists
- Unit 9 - Flow control
- Unit 10 - Functions
- Unit 11 - Vectorization
- Unit 12 - Basic plotting in R
- Unit 13 - Packages
- Unit 14 - Data manipulation with dplyr
- Unit 15 - Managing an R installation with Installr
- Unit 16 - Conclusions and my favourite R references

10

#### Early stage strategy evaluation: practical research in the R enviromnent - Unit 1 - Introduction
- Unit 2 - Preliminaries
- Unit 3 - Getting and preparing data
- Unit 4 - Vectorized backtesting
- Unit 5 - Vectorized backtesting of a simple trading strategy
- Unit 6 - Performance of a single vectorized backtest
- Unit 7 - Parameter permutation
- Unit 8 - Parameter selection
- Unit 9 - Conclusions, code and a warning

- Unit 1 - Introduction
- Unit 2 - Preliminaries
- Unit 3 - Getting and preparing data
- Unit 4 - Vectorized backtesting
- Unit 5 - Vectorized backtesting of a simple trading strategy
- Unit 6 - Performance of a single vectorized backtest
- Unit 7 - Parameter permutation
- Unit 8 - Parameter selection
- Unit 9 - Conclusions, code and a warning

11

#### Extending Zorro with R - Unit 1 - Integrating Zorro and R: Introduction
- Unit 2 - Configuring Zorro to communicate with R
- Unit 3 - The R bridge functions
- Unit 4 - Mean reversion trading 1: stationarity
- Unit 5 - Mean reversion trading 2: timing of mean reversion
- Unit 6 - Mean reversion trading 3: implementing mean reversion strategies
- Unit 7 - Practical pairs trading
- Unit 8 - Harnessing external machine learning algorithms in Zorro
- Unit 9 - Predicting market direction with k-Nearest Neighbours
- Unit 10 - Tips and tricks for better machine learning
- Unit 11 - XGBoost and its application to the markets
- Unit 12 - Deep learning trading algorithms
- Unit 13 - Better machine learning with ensembles

- Unit 1 - Integrating Zorro and R: Introduction
- Unit 2 - Configuring Zorro to communicate with R
- Unit 3 - The R bridge functions
- Unit 4 - Mean reversion trading 1: stationarity
- Unit 5 - Mean reversion trading 2: timing of mean reversion
- Unit 6 - Mean reversion trading 3: implementing mean reversion strategies
- Unit 7 - Practical pairs trading
- Unit 8 - Harnessing external machine learning algorithms in Zorro
- Unit 9 - Predicting market direction with k-Nearest Neighbours
- Unit 10 - Tips and tricks for better machine learning
- Unit 11 - XGBoost and its application to the markets
- Unit 12 - Deep learning trading algorithms
- Unit 13 - Better machine learning with ensembles