*If you are a complete beginner to the world of quantitative finance, I suggest you take a look at the Start Here page first then return here for more specific articles.*

The following topics are discussed on QuantStart:

**Algorithmic Trading****QSTrader****Forex Trading Diary****Careers Advice****Quant Reading Lists****Statistical Modelling and Machine Learning****Bayesian Statistics****Deep Learning****Time Series Analysis****The Binomial Model****Stochastic Calculus****Numerical PDEs****C++ Implementation****Python Implementation****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
- Should You Build Your Own Backtester?

- 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
- ARIMA+GARCH Trading Strategy on the S&P500 Stock Market Index Using R
- Kalman Filter-Based Pairs Trading Strategy In QSTrader
- Monthly Rebalancing of ETFs with Fixed Initial Weights in QSTrader

- My Interview Over At OneStepRemoved.com
- My Talk At The London Financial Python User Group
- My Chat With Traders Interview with Aaron Fifield
- When Should You Build Your Own Backtester? - QuantCon NYC, April 2016 talk

QSTrader is a freely available open source backtesting and live trading engine, written by members of the QuantStart team and the QuantStart community. These articles track the development of QSTrader from announcement through individual module development:

- Announcing the QuantStart Advanced Trading Infrastructure Article Series
- Advanced Trading Infrastructure - Position Class
- Advanced Trading Infrastructure - Portfolio Class
- Advanced Trading Infrastructure - Portfolio Handler Class

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
- Careers in Quantitative Finance

- 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
- How to Learn Advanced Mathematics Without Heading to University - Part 1
- How to Learn Advanced Mathematics Without Heading to University - Part 2
- How to Learn Advanced Mathematics Without Heading to University - Part 3

- 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
- Mailbag: Can You Get A Job In HFT Without A Degree?
- Quant Finance Career Skills - What Are Employers Looking For?

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
- 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
- Beginner's Guide to Unsupervised Learning
- Beginner's Guide to Decision Trees for Supervised Machine Learning
- Maximum Likelihood Estimation for Linear Regression

Bayesian statistics involves making use of prior information along with available data in order to draw statistical conclusions. It is used heavily in quantitative finance.

- Bayesian Statistics: A Beginner's Guide
- Bayesian Inference of a Binomial Proportion - The Analytical Approach
- Markov Chain Monte Carlo for Bayesian Inference - The Metropolis Algorithm
- Bayesian Linear Regression Models with PyMC3

Quantitative finance has now started to make use of deep neural network architectures, so called **"Deep Learning"** in order to produce trading signals.

- 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
- State Space Models and the Kalman Filter
- Dynamic Hedge Ratio Between ETF Pairs Using the Kalman Filter
- Cointegrated Time Series Analysis for Mean Reversion Trading with R
- Cointegrated Augmented Dickey Fuller Test for Pairs Trading Evaluation in R
- Johansen Test for Cointegrating Time Series Analysis in R
- Hidden Markov Models - An Introduction
- Hidden Markov Models for Regime Detection 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

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

- QuantStart: 2014 in Review
- Announcement: Speaking at QuantCon in April 2016
- How to Write a Great Quant Blog
- QuantStart April 2016 News
- Advanced Algorithmic Trading and QSTrader Updates
- Advanced Algorithmic Trading and QSTrader - Second Update
- QuantStart Events in October and November 2016
- QuantStart New York City October 2016 Trip Report