Books on and Related To Quantitative Finance Part 3
This list arose as a result of research involved in the development of a series of
fairly advance Python, R and C++ courses for those working in the area of Quantitative Finance.
Quantitative finance is a technical subject that encompasses many technical disciplines and areas of applicabipity.
These include e.g. financial markets, time series analysis, risk management, financial engineering, statistical data analysis and machine learning.
The following list of books, though by no means exhaustive represents an attempt to pull together those books that may
be useful, and includes also some books that are more in the nature of "light reading" for when all that maths, computing and theory
becomes too much. Some of the books cover the basic essentials in a given are whilst other are specialised references, and most are
somewhere in between. The list is split up over several sections each made up of sub-sections covering particular areas of interest. The areas on this page - Part 3 - are concerned with C++ and Python Programming and how it is used in Quantitative Finance
Part - 1 Is concerned with historical, career and interview preparation aspects of Quantitative Finance.
Part - 2 Is concerned with Quantitative Trading, High Frequency Trading and Time Series Analysis
Part - 4 Is concerned with R Programming and how it is used in Quantitative Finance
Part - 5 will be concerned with Java Programming and how it is used in Quantitative Finance
Part - 6 will be concerned with statistics and machine learning and how they can be applied in Quantitative Finance
Part - 7 will be concerned with numerical analytical an modeling methods used in Quantitative Finance
Part - 8 will be concerned with Quantitative Financial aspects of Derivatives
Part - 9 will be concerned with Volatility and Portfolio management aspect of Quantitative Finance
Part - 10 will be concerned with advanced programming and machine learning technologies and frameworks such as Matlab and CUDA
Part - 11 will be concerned with spreadsheets, data mining and data visualisation as they apply to Quantitative Finance
Standard textbooks covering C++ Programming
C++ is a powerful object oriented programming language. It has a steep learning curve, especially as regards implementation of some of the more mathematical algorithms associated with quantitative finance. It is probably best learned by going on professional C++ programming such as e.g. the FTT introduction to C++ course course followed some months later by an advanced C++ programming course followed by one or mores courses specialising in C++ programming for quantitative finance.
The first six books on the list that follows provide a sound grounding in C++ programming. The remaining books deal with more advanced aspects of C++ programming the remainder, you will (eventually) become an expert:
Foundations of C++
These books cover the foundations of C++ programming.
- Sams Teach Yourself C++ in One Hour a Day - Siddhartha Rao (7th edition, covering C++11)
- C++: A Beginner's Guide 3rd Ed. - Herbert Schildt
- Accelerated C++: Practical Programming by Example - Andrew Koenig, Barbara Moo
- Effective C++: 55 Specific Ways to Improve Your Programs and Designs 3rd Ed. - Scott Meyers
- C++ Design Patterns and Derivatives Pricing - Mark Joshi
- Programming: Principles and Practice Using C++ 2nd Ed. - Bjarne Stroustrup
- C++ Programming: From Problem Analysis to Program Design Eighth Ed. – D. Malik
- C++ Programming: Program Design Including Data Structures Eighth Ed. – D. Malik
- C++ Primer 5th Ed.– Stanley B. Lippman, Josée Lajoie , Barbara E. Moo
These books cover more advanced topics that should address most practical C++ programming situations a practising quant would likely ever need to know as regards C++ programming itself:
- More Effective C++: 35 New Ways to Improve Your Programs and Designs 3rd Ed. - Scott Meyers
- Effective STL: 50 Specific Ways to Improve Your Use of the Standard Template Library - Scott Meyers
- Effective Modern C++: 42 Specific Ways to Improve Your Use of C++11 and C++14 - Scott Meyers
- Discovering Modern C++: An Intensive Course for Scientists, Engineers, and Programmers - Peter Gottschling
- Professional C++, Third Edition - Marc Gregoire
- Absolute C++ - Walter Savitch , Kenrick Mock
For those who wish to become experts and leaders in their peer group and/or work in specialised high-frequency trading, it will be necessary to study and learn more advanced and specialised topics such as effective use of the Standard Template Library , multi-threading using the C++11 multi-threading features as well as meta-programming and smart pointers. A knowledge of advanced Linux Posix API programming including TCP/IP network programming will also be required. An understanding of Design Patterns and how to apply them will also be expected.
- The C++ Standard Library: A Tutorial and Reference - Nicholai Josuttis
- The C++ Programming Language, 4th Edition - Bjarne Stroustrup
- C++ Concurrency in Action: Practical Multithreading - Anthony Williams
- Optimized C++ - Kurt Guntheroth
- C++ Templates: The Complete Guide 2nd Ed. - David Vandevoorde, Nicolai Josuttis
- The Linux Programming Interface: A Linux and UNIX System Programming Handbook - Michael Kerrisk
- Advanced Programming in the UNIX Environment, 3rd Edition - W. Richard Stevens, Stephen A. Rago
- Unix Network Programming, Volume 1: The Sockets Networking API (3rd Edition) - W. Richard Stevens, Bill Fenner, Andrew M. Rudoff
- Design Patterns: Elements of Reusable Object-Oriented Software - Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides
There are many Python frameworks for running and evaluating quantitative financial models. Many of these provide a more user friendly programming interface to powerful underlying libraries implemented in C or C++. There are also python frameworks for developing machine learning applications, and for data analysis and visualisation. It is safe to say that, in recent years, Python has become a staple in the quantitative finance world. There is a sizeable number of investment funds using Python in the end-to-end computational infrastructure for carrying out systematic trading. At we have developed and run tailored training for developers working on Python based computerised trading systems
It is to get started with Python programming. However mastering the full power of Python and the many Python frameworks that are available requires considerable effort. Regardless of which area of quantitative finance you wish to become an expert mastery of Python is, almost certainly, a valuable skill to have. The chances are high that Python is only going to become more widely adopted over time.
These books provide a good foundation to Python programming and the effective use of its many scientific libraries
- Learning Python,5th Edition - Mark Lutz
- Think Python, 2nd Edition - Allen Downey
- Learn Python the Hard Way - Zed Shaw
These books deal with advanced topics relevant to the practice of quantitative finance. This includes coverage of libraries dealing non only with quantitative finance, but also with data science and machine learning. They have been used in developing various FTT programming courses, mostly tailored to specific client requirements. More recently, in connection with developing an advanced python based CUDA machine learning module using with the NJetson TX2 much use was made of Sebastian Raschka's book on Python machine learning.
- Hands-On Machine Learning with Scikit-Learn and TensorFlow - Aurelien Geron
- Python for Data Analysis: Data Wrangling with Pandas, NumPy, and IPython - Wes McKinney
- Data Science from Scratch: First Principles with Python - Joel Grus
- Data Wrangling with Python: Tips and Tools to Make Your Life Easier - Jacqueline Kazil, Katharine Jarmul
- Python for Finance: Analyze Big Financial Data - Yves Hilpisch
- Effective Python: 59 Specific Ways to Write Better Python - Brett Slatkin
- High Performance Python: Practical Performant Programming for Humans - Micha Gorelick, Ian Ozsvald
- Python 3 Object-Oriented Programming, 2nd Edition - Dusty Phillips
- Python Machine Learning, 2nd Edition - Sebastian Raschka and Vahid Mirjalili