# QUANTITATIVE FINANCE ARTICLES

*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****Careers Advice****Quant Reading Lists****The Binomial Model****Stochastic Calculus****Numerical PDEs****C++ Implementation****Python Implementation****Book Reviews**

## Algorithmic Trading

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**.

### Getting Started with Algorithmic Trading

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

### Building an Algorithmic Trading Infrastructure

- 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

### Backtesting

- 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

### Risk and Performance Measurement

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

### Statistical Modelling

- Basics of Statistical Mean Reversion Testing
- Forecasting Financial Time Series - Part I
- Beginner's Guide to Statistical Machine Learning - Part I

### Automated Execution

- 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

### Quantitative Trading Strategies

- 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

### Talks and Interviews

## Careers Advice

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.

### Life as a Quant

- 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

### Undergraduates

- 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

### Postgraduates

- 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?

### Career Changers

- 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

## Quant Reading Lists

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 Binomial Model

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

## Stochastic Calculus

**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

## Numerical PDE

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

## C++ Implementation

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
- 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
- Tridiagonal Matrix Algorithm ("Thomas Algorithm") in C++
- Matrix Classes in C++ - The Header File
- Matrix Classes in C++ - The Source File
- C++ Standard Template Library Part I - Containers
- Asian option pricing with C++ via Monte Carlo Methods
- Floating Strike Lookback Option Pricing with C++ via Analytic Formulae
- Statistical Distributions in C++
- Function Objects ("Functors") in C++ - Part 1
- Random Number Generation via Linear Congruential Generators in C++
- C++ Explicit Euler Finite Difference Method for Black Scholes
- C++ Standard Template Library Part II - Iterators
- Implied Volatility in C++ using Template Functions and Interval Bisection
- Generating Correlated Asset Paths in C++ via Monte Carlo
- C++ Standard Template Library Part III - Algorithms
- What's New in the C++11 Standard Template Library?
- Eigen Library for Matrix Algebra in C++
- 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++

## Python Implementation

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

## Book Reviews

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

*Like what you read?*

If so, please join QuantStart's growing list of people who receive FREE exclusive weekly **algorithmic trading**, **quantitative finance** and **programming** help. Just enter your name and email below: