*If you are a complete beginner to the world of quantitative finance, I suggest you take a look at my newbies guide first, then come back here*.

The following topics are discussed on QuantStart:

**Algorithmic Trading****Forex Trading Diary****Careers Advice****Quant Reading Lists****Statistical Modelling and Machine Learning****Time Series Analysis****The Binomial Model****Stochastic Calculus****Numerical PDEs****C++ Implementation****Python Implementation****Book Reviews****Quantstart**

Algorithmic trading is a rapidly growing area, both in the quant fund industry and in the retail trader space. To become a successful algorithmic trader requires a **solid background in many topics**.

- Beginner's Guide to Quantitative Trading
- Can Algorithmic Traders Still Succeed at the Retail Level?
- Top 5 Essential Beginner Books for Algorithmic Trading

- Installing a Desktop Algorithmic Trading Research Environment using Ubuntu Linux and Python
- Securities Master Databases for Algorithmic Trading
- Securities Master Database with MySQL and Python
- Downloading Historical Futures Data From Quandl
- Research Backtesting Environments in Python with pandas
- Continuous Futures Contracts for Backtesting Purposes
- Downloading Historical Intraday US Equities From DTN IQFeed with Python

- Successful Backtesting of Algorithmic Trading Strategies - Part I
- Successful Backtesting of Algorithmic Trading Strategies - Part II
- Best Programming Language for Algorithmic Trading Systems?
- Event-Driven Backtesting with Python - Part I
- Event-Driven Backtesting with Python - Part II
- Event-Driven Backtesting with Python - Part III
- Event-Driven Backtesting with Python - Part IV
- Event-Driven Backtesting with Python - Part V
- Event-Driven Backtesting with Python - Part VI
- Event-Driven Backtesting with Python - Part VII
- Event-Driven Backtesting with Python - Part VIII

- Sharpe Ratio for Algorithmic Trading Performance Measurement
- Money Management via the Kelly Criterion
- Value at Risk (VaR) for Algorithmic Trading Risk Management - Part I

- Interactive Brokers Demo Account Signup Tutorial
- Using Python, IBPy and the Interactive Brokers API to Automate Trades
- Choosing a Platform for Backtesting and Automated Execution

- How to Identify Algorithmic Trading Strategies
- Backtesting a Moving Average Crossover in Python with pandas
- Backtesting a Forecasting Strategy for the S&P500 in Python with pandas
- Backtesting An Intraday Mean Reversion Pairs Strategy Between SPY And IWM

Algorithmic forex trading has become a lot easier since many forex brokerages introduced REST-based APIs. Hence, I started a diary in 2015 to track my progress in building a high-frequency open source forex backtesting and live trading engine:

- Forex Trading Diary #1 - Automated Forex Trading with the OANDA API
- Forex Trading Diary #2 - Adding a Portfolio to the OANDA Automated Trading System
- Forex Trading Diary #3 - Open Sourcing the Forex Trading System
- Forex Trading Diary #4 - Adding a Backtesting Capability
- Forex Trading Diary #5 - Trading Multiple Currency Pairs
- Forex Trading Diary #6 - Multi-Day Trading and Plotting Results
- Forex Trading Diary #7 - New Backtest Interface

This is the place to start if you are looking for guidance on **how to accelerate your quant career**. I've discussed changing careers, PhDs, MFEs and as well as the different types of quant roles.

- Understanding How to Become a Quantitative Analyst
- What are the Different Types of Quantitative Analysts?
- My Experiences as a Quantitative Developer in a Hedge Fund
- A Day in the Life of a Quantitative Developer

- What Classes Should You Take To Become a Quantitative Analyst?
- Why Study for a Mathematical Finance PhD?
- Why a Masters in Finance Won't Make You a Quant Trader
- Best Undergraduate Degree Course For Becoming A Quant?
- The Top 5 UK Universities For Becoming A Quant

- Junior Quant Jobs - Beginning a Career in Financial Engineering after a PhD
- How To Get A Quant Job Once You Have A PhD
- Getting a Job in a Top Tier Quant Hedge Fund
- How to Get a Job at a High Frequency Trading Firm
- Which Programming Language Should You Learn To Get A Quant Developer Job?

- Can You Still Become a Quant in Your Thirties?
- Self-Study Plan for Becoming a Quantitative Trader - Part I
- Self-Study Plan for Becoming a Quantitative Trader - Part II
- Self-Study Plan for Becoming a Quantitative Developer
- Self-Study Plan for Becoming a Quantitative Analyst

The following lists of books will get you up to speed on how to become a quant. I've broken them down into Maths Finance, C++, Python and Interview Guides. If you want to see in depth book reviews, check out the section below.

- Quant Reading List Derivative Pricing
- Quant Reading List C++ Programming
- Quant Reading List Numerical Methods
- Quant Reading List Python Programming
- 5 Important But Not So Common Books A Quant Should Read Before Applying for a Job
- 5 Top Books for Acing a Quantitative Analyst Interview
- Top 5 Finite Difference Methods books for Quant Analysts
- Top 5 Essential Beginner C++ Books for Financial Engineers
- Quantitative Finance Reading List
- Top 10 Essential Resources for Learning Financial Econometrics
- Free Quantitative Finance Resources
- Top 5 Essential Books for Python Machine Learning

The areas of quantitative finance and data science both make heavy use of **statistical inference** and **machine learning**.

- Basics of Statistical Mean Reversion Testing
- Basics of Statistical Mean Reversion Testing - Part II
- Forecasting Financial Time Series - Part I
- Beginner's Guide to Statistical Machine Learning - Part I
- Support Vector Machines: A Guide for Beginners
- Bayesian Statistics: A Beginner's Guide
- Supervised Learning for Document Classification with Scikit-Learn
- The Bias-Variance Tradeoff in Statistical Machine Learning - The Regression Setting
- Using Cross-Validation to Optimise a Machine Learning Method - The Regression Setting
- Bayesian Inference of a Binomial Proportion - The Analytical Approach

- Beginner's Guide to Time Series Analysis
- Serial Correlation in Time Series Analysis
- White Noise and Random Walks in Time Series Analysis
- Autoregressive Moving Average ARMA(p, q) Models for Time Series Analysis - Part 1
- Autoregressive Moving Average ARMA(p, q) Models for Time Series Analysis - Part 2
- Autoregressive Moving Average ARMA(p, q) Models for Time Series Analysis - Part 3
- Autoregressive Integrated Moving Average ARIMA(p, d, q) Models for Time Series Analysis
- Generalised Autoregressive Conditional Heteroskedasticity GARCH(p, q) Models for Time Series Analysis
- ARIMA+GARCH Trading Strategy on the S&P500 Stock Market Index Using R

The binomial model is a **great way to introduce options pricing**. Although the method is rarely used computationally, it provides good intuition on how options pricing works.

- Introduction to Option Pricing with Binomial Trees
- Hedging the sale of a Call Option with a Two-State Tree
- Risk Neutral Pricing of a Call Option with a Two-State Tree
- Replication Pricing of a Call Option with a One-Step Binomial Tree
- Multinomial Trees and Incomplete Markets
- Pricing a Call Option with Two Time-Step Binomial Trees
- Pricing a Call Option with Multi-Step Binomial Trees
- Derivative Pricing with a Normal Model via a Multi-Step Binomial Tree
- Risk Neutral Pricing of a Call Option with Binomial Trees with Non-Zero Interest Rates

**You can't do quantitative finance without stochastic calculus.** The following articles discuss the relevant stochastic calculus you need to understand the famous Black-Scholes equation derivation.

- Introduction to Stochastic Calculus
- The Markov and Martingale Properties
- Brownian Motion and the Wiener Process
- Stochastic Differential Equations
- Geometric Brownian Motion
- Ito's Lemma
- Deriving the Black-Scholes Equation

The Black-Scholes equation is a partial differential equation (PDE). In order to solve it you can use *numerical discretisation* techniques such as **Finite Difference Methods**. The following articles walk you through the basic techniques.

- Derivative Approximation via Finite Difference Methods
- Solving the Diffusion Equation Explicitly
- Crank-Nicholson Implicit Scheme
- Tridiagonal Matrix Solver via Thomas Algorithm

As with stochastic calculus, you really **cannot avoid learning C++** for pricing derivatives! Love it or hate it, it is *essential*. Although the following articles won't teach you how to program from scratch, I will point out intermediate to advanced features that you can impress interviewers with when you apply for that banking role!

- C++ Virtual Destructors: How to Avoid Memory Leaks
- Passing By Reference To Const in C++
- Mathematical Constants in C++
- STL Containers and Auto_ptrs - Why They Don't Mix
- Function Objects ("Functors") in C++ - Part 1
- C++ Standard Template Library Part I - Containers
- C++ Standard Template Library Part II - Iterators
- C++ Standard Template Library Part III - Algorithms
- What's New in the C++11 Standard Template Library?

- Tridiagonal Matrix Algorithm ("Thomas Algorithm") in C++
- Matrix Classes in C++ - The Header File
- Matrix Classes in C++ - The Source File
- Statistical Distributions in C++
- Random Number Generation via Linear Congruential Generators in C++
- Eigen Library for Matrix Algebra in C++

- European vanilla option pricing with C++ and analytic formulae
- European vanilla option pricing with C++ via Monte Carlo methods
- Digital option pricing with C++ via Monte Carlo methods
- Double digital option pricing with C++ via Monte Carlo methods
- Asian option pricing with C++ via Monte Carlo Methods
- Floating Strike Lookback Option Pricing with C++ via Analytic Formulae
- C++ Explicit Euler Finite Difference Method for Black Scholes
- Generating Correlated Asset Paths in C++ via Monte Carlo
- Implied Volatility in C++ using Template Functions and Interval Bisection
- Implied Volatility in C++ using Template Functions and Newton-Raphson
- Heston Stochastic Volatility Model with Euler Discretisation in C++
- Jump-Diffusion Models for European Options Pricing in C++
- Calculating the Greeks with Finite Difference and Monte Carlo Methods in C++

- Installing Nvidia CUDA on Mac OSX for GPU-Based Parallel Computing
- Vector Addition "Hello World!" Example with CUDA on Mac OSX
- Installing Nvidia CUDA on Ubuntu 14.04 for Linux GPU Computing
- dev_array: A Useful Array Class for CUDA
- Monte Carlo Simulations In CUDA - Barrier Option Pricing
- Matrix-Matrix Multiplication on the GPU with Nvidia CUDA

If you are more interested in becoming a quantitative trader in a hedge fund, then **Python is something you definitely need to know**. End-to-end trading systems are now being built entirely in Python, so I've written some articles to help you get started.

- Options Pricing in Python
- European Vanilla Call-Put Option Pricing with Python
- LU Decomposition in Python and NumPy
- Cholesky Decomposition in Python and NumPy
- QR Decomposition with Python and NumPy
- Jacobi Method in Python and NumPy
- Parallelising Python with Threading and Multiprocessing
- Quick-Start Python Quantitative Research Environment on Ubuntu 14.04
- Easy Multi-Platform Installation of a Scientific Python Stack Using Anaconda

I've reviewed some of my favourite Quant Finance books below. If you are interested in any of the following titles then please take a look.

- Paul Wilmott Introduces Quantitative Finance - Paul Wilmott
- The Concepts and Practice of Mathematical Finance - Mark S. Joshi
- Financial Instrument Pricing Using C++ - Daniel J. Duffy
- Introduction to C++ for Financial Engineers: An Object-Oriented Approach - Daniel J. Duffy
- Effective C++: 55 Specific Ways to Improve Your Programs and Designs - Scott Meyers
- Heard on The Street: Quantitative Questions from Wall Street Job Interviews - Timothy Falcon Crack
- Frequently Asked Questions in Quantitative Finance - Paul Wilmott
- Quant Job Interview Questions And Answers - Mark S. Joshi, Nick Denson, Andrew Downes
- A Practical Guide To Quantitative Finance Interviews - Xinfeng Zhou
- Starting Your Career as a Wall Street Quant: A Practical, No-BS Guide to Getting a Job in Quantitative Finance - Brett Jiu
- Learning Python: Powerful Object-Oriented Programming - Mark Lutz
- C++ Design Patterns and Derivatives Pricing - Mark S. Joshi

The following articles relate to Quantstart itself and include updates about progress on certain projects:

comments powered by Disqus