Welcome to the big list of free quantitative finance resources!
I've listed here all of the free ebooks, slides, courses, videos and data that I've found useful during my quant finance career. The resources are broken down by category and are all completely free (or require free signup).
I will be constantly updating this page as and when I find new content around the web, so keep checking back.
This list was last updated on 21st August 2013.
If you have any recommendations for free quant finance resources, please feel free to email me at email@example.com.
It is surprisingly straightforward to get hold of high-quality financial data for free, as long as one is willing to accept that it will be restricted to certain time period and instrument subsets. Brokerages often "give away" their historical financial data in order to entice new clients. In particular, foreign exchange (forex) tick data is widely available from many of the sources below.
Equities are somewhat trickier as they require a corresponding high-quality corporate actions feed in order to handle dividends and stock-splits. However, it is relatively easy to get hold of major end-of-day US/UK equities information that have already been "back adjusted" in this manner.
- DukasCopy - DukasCopy is a Swiss forex broker/ECN, which provides extremely high quality forex tick data going back to 2007 for the majority of currency pairs. This should be your first port of call if you are interested in backtesting tick-level forex strategies.
- EoDData - EoDData are a paid service but they provide a free tier. They conveniently provide a substantial list of traded symbols on nearly every exchange of interest across the globe.
- Google Finance - Google Finance provide end-of-day equities data. Unfortunately, unlike Yahoo Finance, it is not back-adjusted to handle dividends and stock-splits. Thus a separate corporate actions feed is necessary. I've linked to an example of historical data via the FTSE100.
- Quandl - Quandl is an ambitious project attempting to "make all the numerical data on the internet easy to find & easy to use". They provide a huge catalogue of market data across multiple asset classes including currencies, equities, futures and commodities. They have an easy-to-use API and all of their data is freely available and frequently updated. A veritable goldmine for the quant!
- Yahoo Finance - Yahoo Finance is the "go to" location for easily downloading end-of-day equities data. The major benefit of of their API feed is that the data is back-adjusted, meaning that it accounts for dividends and stock splits. However, the data is not 100% high quality. I have used YF in a production environment and I can attest that you should be double-checking your data against other sources such as EoDData or Google Finance. I've linked to the Historical Prices for the FTSE100 as an example.
While textbooks, certificates and Masters in Financial Engineering (MFE) courses remain the most popular method to learn financial engineering, a number of freely available resources have appeared on the scene in recent years. In particular, Coursera now provides some fantastic courses on the topic.
- Financial Engineering and Risk Management Part I - This was originally a single course, but it was decided to split in two. This course concentrates on options pricing and the basics of the Black-Scholes theory. A notable feature is an interview with Emanuel Derman, the famed quant author.
- Financial Engineering and Risk Management Part II - The second part in the two part Coursera covers portfolio construction and risk management, with some additional focus on more advanced derivative products.
- Introduction to Computational Finance and Financial Econometrics - This course, run by Eric Zivot from the University of Washington, is an absolutely fantastic introduction to time series methods and statistics as applied to financial data. The course covers significant ground, starting with "returns", basic statistics and linear algebra and then swiftly covering more advanced topics in econometrics needed for quantitative finance.
- Mathematical Methods for Quantitative Finance - This course has been designed primarily to prepare you for beginning studies of quantitative finance by covering the necessary calculus and linear algebra necessary in derivatives pricing and portfolio management. A great way to bridge the gap from a CompSci or Economics major to understanding the mathematics needed for QF.
- QuantNet - QuantNet provides significant guidance in how to apply for and obtain a position on an MFE course. The forum is also populated with posts about derivatives pricing and financial software development.
- Wilmott - Wilmott is the website of Paul Wilmott, the famed quant. The site contains a huge forum discussing primarily financial engineering, numerical methods and software development. Algorithmic trading is also covered, but it is not the focus of the site.
Unfortunately, Algorithmic Trading is often only "learned" while on the job or via painstaking experimentation at home! The barriers to entry used to be significant - extensive software development skills, expensive computational hardware and data feeds as well as a lot of time and patience. Nowadays entire backtesting tools exist in the browser, brought to us via cutting edge startups such as Quantopian and QuantConnect.
Equally, courses are now springing up in how to learn algorithmic trading using open source tools, such as Python/pandas. I've listed some of these resources below.
- Computational Investing, Part I - Tucker Balch has written this course to help learn the basics of algorithmic trading ("computational investing") using Python and a custom library. If you re completely new to the world of data analysis and systematic trading, then this course is a great start.
- EliteTrader - The EliteTrader forums contain significant discussions on all aspects of trading. There is an in-depth section on algorithmic trading. While the signal-to-noise ratio is roughly comparable to other internet forums, there are some fantastic threads discussing implementation of advanced trading algos, so make sure to hunt for them!
- QuantConnect - QuantConnect "empower[s] quants with free data, cluster computing, and capital.". The service provides an in-browser C# IDE, access to free tick data (US equities and forex) and a cluster of servers to carry out backtesting. The service provides a free tier, although more features are available on a monthly subscription basis.
- Quantopian - Quantopian provides an in-browser Python IDE, access to minute-resolution US equities data and a sophisticated backtesting system (ZipLine, see below). The main benefit of Quantopian is that strategies can (optionally) be shared and commented upon, allowing people to suggest improvements, if you are at an early-stage in your quant career. Eventually they plan to support live trading (although this will likely be a paid service).
I've said it over and over again on QuantStart, but it is absolutely necessary in this day and age to be a good programmer to get anywhere in quantitative finance. As software rapidly eats the rest of the world, so too does it encroach on the financial markets.
The barrier to entry may now be higher than 10 years ago, but then the prevalence of free materials is also far greater. The programming community is extremely generous at "giving back" and here are some of the most useful resources that will help you learn to program in the main quant languages.
- Bayesian Methods for Hackers - This is a novel approach to learning what is often quite a tricky subject. It is actually an interactive ebook, which allows you to modify the code in an IPython browser session. Bayesian Methods are extremely important in the field of Machine Learning (and thus quant finance!) and this introductory course really bridges the gap between theory and application.
- Building Skills in Object-Oriented Design - Most books discuss object orientation in terms of Mammals, Cats and Dogs. This is mostly useless from the point of view of creating an actual software application! "Building Skills in OOD" is a free web-book on using Python to create a real moderately complex object-oriented application.
- Data Structures and Algorithms with Object-Oriented Design Patterns in Python - If you weren't a pure CompSci undergrad, then you may have to had to learn Data Structures as you went along. For a more formal introduction in Python (and many other languages too, if you follow the link!), this free web book will bridge the gap between theory and application.
- High Performance Python - This is a set of lecture notes from a EuroPython conference in 2011. The lectures discuss profiling, PyPy, CPython, Cython and PyCUDA as means of optimising your Python programs. Essential for the performance-hungry quant!
- Learn Python the Hard Way - Zed Shaw's famous book is actually designed for the beginner programmer, despite the odd title! It is a great way to begin learning Python and it really covers pretty much everything a beginner would need to know. Best of all, it's free!
- Natural Language Processing with Python - Certain quantitative finance applications such as sentiment analysis make heavy use of Natural Language Processing (NLP) algorithms. This is the free web version of the O'Reilly book, which discusses the Natural Language ToolKit (NLTK) package for Python and how to apply it to applications in NLP.
- Think Python - Allen Downey has created a great book, originally published by O'Reilly, on how to learn Python from the ground up. It covers all of the major components of the language and provides plenty of code examples. The stated goal is to "help you think like a computer scientist" and I would say the book does a good job of achieving that.
- Think Stats - Allen Downey has taken a large subject area (statistics) and distilled it down into the key components to provide a more applied approach to learning, via the Python language. Probability, distributions, hypothesis testing, estimation and correlation are all covered. If you prefer "learning by doing", then this free book is definitely for you.
- Computing for Data Analysis - Roger Peng runs a course designed to help you learn R and then apply that knowledge to problems of data analysis. For many beginning quants, this will provide some great lessons in how to deal with messy data importing and make use of non-traditional sources of data to help in your financial modelling.
- DataMind - DataMind is a new service (still in beta mode) that is designed to help you learn the R language, interactively. Currently there are a few beginner lessons, but more are being added all of the time.
Free open soure software (FOSS) can now be found in nearly every investment bank and quantitative hedge fund. Not only does it cost you nothing to try out, but you can modify the source code as you see fit in order to suit your particular application. You can now easily build an entire options pricing or algorithmic trading system out of FOSS. Here are some of the tools I use day-to-day in my own work, which I highly recommend.
- Boost - The Boost libraries begin where the C++ standard libraries end. In fact, many of the original Boost components were added to the C++11 standard. However, if you're still restricted to C++03, then Boost comes with modules for regular expressions (regexes), smart pointers, lambdas, threading, statistical distributions and a lot more.
- Django - Django is a web framework written in Python. In fact, QuantStart is a Django-based website! When I was a quant dev in a fund, I used it for all of our web-based reporting tools. It has a significant community behind it and comes with "batteries included" to help you get started quickly.
- Eigen - Eigen provides a set of C++ headers for numerical linear algebra (NLA). It is intended as a "competitor" to uBLAS. I find the API extremely expressive and minimal code is usually required to carry out common operations. If you want to find out more about it, check out my article on using it for matrix algebra.
- HDF5 - HDF5 is a scientific-grade file-system datastore. As quants, we are primarily interested in it as it is commonly used to store tick data. When integrated with PyTables and pandas, in the Python ecosystem, it makes backtesting high-volume strategies straightforward.
- MySQL - MySQL is an open-source relational database management system (RDBMS). I have used it in high-scale financial production environments and I can attest that it can "hold its own" in demanding applications! It is a great choice for creating an end-of-day securities master.
- pandas - Wes McKinney created pandas in order to provide the expressiveness of R in the Python scientific ecosystem. It is now the de facto data analysis package for Python. When coupled with IPython and HDF5, it makes for an extremely useful interactive research environment.
- R - R is an open source interactive statistical language with extensive package support and graphical capabilities. R is often found in some of the best quantitative hedge funds as the "go to" initial research tool.
- QuantLib - QuantLib is a highly mature derivatives pricing library written in C++. Although it is somewhat complex, it has support for many derivative types. A significant number of investment banks and funds make use of QuantLib in production settings.
- scikit-learn - scikit-learn is a relatively new Python package that ecompasses a range of machine learning algorithms, wrapped up in an expressive interface with a highly efficient implementation (making use of NumPy/SciPy underneath). Coupled with IPython and pandas, it allows rapid research and development of financial trading strategies.
- Ubuntu Server - Ubuntu Server is one of the most popular production Linux distributions for financial applications. I have been using it ever since it came out (which shows my age!) and it has gone from strength to strength. It is highly robust, very secure and being based on the Linux kernal, can be modified at will to suit your particular application.
- ZipLine - ZipLine is an open source algorithmic trading backtesting tool, developed by and used as the engine in the Quantopian service. It should be your first port of call for beginning the development of an algorithmic trading system if you want to use a Python stack.
Please send me any suggestions of free quant books, blogs, forums, courses, videos or slides you've read that have helped you on your way. I am always willing to add more to this list. You can contact me by sending an email to firstname.lastname@example.org.