This is part 2 in a 3-part series on how to self-study to get into quantitative finance. We've already covered self-studying to become a quantitative developer. In this article we'll look at forming a self-study plan to become a quantitative analyst/financial engineer.
Quantitative analysts and financial engineers spend their time determining fair prices for derivative products. This involves some deep mathematical theory including probability, measure theory, stochastic calculus and partial differential equations. Thus to become a quant analyst it is necessary to have a strong mathematical background in mathematics, usually through an undergraduate degree in mathematics, physics or engineering.
Undertaking self-study to become a quantitative analyst is not a straightforward task. Depending upon your background, aptitude and time commitments, it can take anywhere from six months to two years to be familiar with the necessary material before being able to apply for a quantitative position. However, the rewards are worthwhile. An extremely challenging intellectual environment coupled with highly attractive compensation provides strong motivation to work towards becoming a quant.
The Mathematical Fundamentals
Nowadays there is a comprehensive literature available for financial engineering. I've written many articles on this site about which books to start with, but I want to provide greater detail in this article as it is a study plan not a reading list!
- For those of you who are unfamiliar with financial markets or the derivative products within them, the best place to start is with John Hull's Options, Futures, and Other Derivatives. This is not a highly mathematical treatment of the subject, instead it concentrates on the different markets and products such as futures, options, swaps and other interest rate derivatives. I would suggest reading all of the chapters in this book, eventually, but only concurrently with a more mathematical text. Familiarise yourself with the chapters on futures markets, options markets, binomial trees, Wiener processes and the Black-Scholes-Merton model. Later on you can read about the "Greeks" and volatility. Hull is a great "bedtime" or "commuter" read, but you'll need something more mathematically-oriented to really get to grips with the options pricing material.
- Next up is Mark Joshi's The Concepts and Practice of Mathematical Finance, which is pitched at 3rd year undergraduate mathematics level. You will need to read and fully understand Chapters 1-7. Chapter 6, on Risk Neutrality, is probably the most challenging at this stage. You will then have a good grasp of how options are priced both in theory and in practice. Chapters 8-12 concentrate on exotic or early-exercise options. As a desk quant you will need to be aware of these concepts too and they provide insight into how the theory of Chapters 1-7 is applied. The remainder of the book concentrates on interest rate derivatives as well as more advanced models for asset price paths. I would suggest learning the basics extremely well, before beginning these chapters.
- The next book, by Martin Baxter and Andrew Rennie, Financial Calculus: An Introduction to Derivative Pricing, can be read concurrently. Chapter 3 in particular covers risk neutral pricing at a good level. The remainder of the book concentrates on interest rates and more advanced models. I will emphasise again - make sure you understand the basics extremely well, particularly the Black-Scholes model, different types of options and pricing techniques as well as practical pricing methods such as Monte Carlo and how it works.
I would suggest that these books are sufficient to gain a good understanding of options pricing. If you know that you are going to become a fixed income quant, then you will obviously need to be extremely familiar with interest rate derivatives and models, such as Heath-Jarrow-Morton (HJM) and the Hull-White models.
If you really want to become an expert at the underlying mathematics, say for carrying out a top Masters in Financial Engineering (MFE) program or for beginning a PhD in Mathematical Finance, you will need to gain a deeper level of mathematical sophistication at stochastic calculus. Steven Shreve has written a two-volume set, which covers both the discrete (Stochastic Calculus for Finance I: The Binomial Asset Pricing Model) and continuous (Stochastic Calculus for Finance II: Continuous-Time Models) cases. The books are quite involved and given the limited time with which you may have to study, you may find them too deep and specific for front office quant job interviews.
If you wish to delve into more mathematical finance books take a look at the quantitative finance reading list section on mathematical finance.
For some of you, getting a job in the financial industry is not the goal - you might want to pursue research in certain topics, either at PhD level or as a post-doctoral student, potentially coming from industry. The following books will give you a much deeper appreciation for options/derivatives pricing and will concentrate more on particular topic areas, such as fixed income or credit derivatives. You will almost certainly know your (approximate) research area before committing to a program. I've tried to provide some books which will give you a solid introduction to that particular area. By following the references, you will be able to learn more.
If you are simply interested in a career change into quantitative finance within industry or are after an entry-level role then feel free to skip this section and take a look at Programming Skills below.
Advanced Mathematical Finance
Advanced mathematical finance really comes down to learning more about stochastic calculus and risk neutral pricing. These are both extensive research areas in mathematics. The following books will give you a deeper flavour of what quantitative finance is about.
- Mark Joshi's recent More Mathematical Finance essentially continues where his other book finishes. Early parts of the book concentrate on the theory and practical pricing of credit derivatives. Later on, deeper Monte Carlo and other pricing methods are discussed. If your research area is likely to involve practical implementation, this is a great book to get hold of.
- For deeper explorations of stochastic calculus, it is worth picking up Brownian Motion and Stochastic Calculus by Karatzas and Shreve as well as Stochastic Differential Equations by Oksendal. Both books delve deeply into their respective areas and are required reading for anyone beginning research into stochastic analysis.
Topics (Fixed Income/Credit)
If your research area is geared more towards particular products - specifically in the fixed income and credit spaces - then the following books will be of interest.
- For the modelling of interest rates and term structure, Brigo's book Interest Rate Models - Theory and Practice will provide the necessary groundwork to begin reading Filipovic's Term-Structure Models.
- If your research area is geared towards credit risk then two recommended texts are Credit Risk Pricing Models and Modelling, Pricing, and Hedging Counterparty Credit Exposure.
Unfortunately I can't do justice to all of the highly interesting areas of research that financial engineering encompasses in this article, so I will have to stop there!
Although you won't need to have as extensive a programming knowledge base as a quantitative developer, you will still need to have solid object-oriented programming skills, particularly in a language such as C++.
As a financial engineer you will spend about 50% of your time programming and implementing models. For that reason you will need to be familiar with C++ (or C#/Java) syntax, its pitfalls and "best practices". You will also need to be extremely competent at taking a mathematical algorithm and creating an object-oriented implementation that promotes maintainability, re-use and optimisation. These are difficult skills to learn unless you actually start implementing models. However, before we discuss numerical algorithms, we will talk about how to learn an object-oriented language, such as C++, to the extent necessary to perform well on a quant job (and pass an interview!).
Note that there will be some crossover here with the article on quantitative development, so feel free to look at that article for more details on programming.
- As with quantitative development, the best way to start learning C++ is to read a text such as Andrew Koenig's Accelerated C++. If you have had some programming experience before, this book will get you up to scratch on C++ specific topics such as memory management, pointers/references as well as object-oriented approaches such as operator overloading, inheritance and polymorphism. It will also introduce you to the Standard Template Library (STL).
- One book I consistently promote on the site is Scott Meyers' Effective C++. The book is almost a requirement for quant analyst interviews today as it contains many "gotchas" that can easily show whether you've been spending any time with the language! Definitely pick this one up and read from cover-to-cover (twice!) before your interview.
- Once you've read the above two I would suggest taking a look at my own C++ book, C++ for Quantitative Finance. In it I cover some of the more intermediate C++ features and how, with some knowledge of design patterns, they can be applied to the problems that a quantitative analyst will face. The book is heavily geared towards in-depth implementations, rather than extensive theory, and will give you plenty to discuss in your quant interview.
If you wish to go further with your programming and learn about topics such as software engineering, version control and optimisation then take a look at the self-study guide for quantitative developers.
I have to admit that numerical methods are my favourite component of the financial engineering landscape. Further, they are possibly the most important part as well. Having a solid grasp of mathematics and stochastic calculus, while essential, means very little if you are not able to apply that knowledge to the practical pricing of derivative products. Generally one gains an education in scientific computing at PhD level or in grad school, as part of a computational/numerical PhD program. For those who haven't had a background in numerical methods, most likely due to a career change, it can seem like a daunting task to learn the material.
The best way to get started is to learn a fast language such as C++, as described above in Programming Skills, and then work through the books in the list below.
- While calculus and linear algebra are the staples of an undergraduate mathematics education, a topic which is not often core to the course is Numerical Linear Algebra (NLA). This is the study of algorithms to solve matrix equations (of the type $Ax=b$) and optimisations surrounding them. It is an extremely important part of the quantitative finance landscape, not just for financial engineering but for quantitative trading as well. While you won't need to be absolutely familiar with every NLA algorithm, a reasonable read-through of Lloyd Trefethen's Numerical Linear Algebra will give you a solid grounding on the topic. Another seminal work is Numerical Recipes: The Art of Scientific Computing, which contains many of the algorithms used by quants today, including Monte Carlo techniques, NLA techniques and Fast Fourier Transforms. Implementing these methods (the book uses C++) will help you understand the process of scientific computing and will give you topics to discuss at interview.
- The Monte Carlo Method is the most widely used pricing tool in financial engineeering today. Although an interviewer would probably not expect you to know extensive details of random number generation, you may as well pick them up before your role as you'll need to know them for the job anyway! The best place to get started with basic Monte Carlo is with Mark Joshi's C++ Design Patterns and Derivatives Pricing. The book begins with a simple random number generator and then prices basic options, right the way through to interest rate models and useful design patterns. This covers similar ground to my own ebook on C++ for Quantitative Finance. Once you're happy with the quant implementations in Joshi's book, you can (optionally) gain a deeper understanding of the state of the art Monte Carlo with Paul Glasserman's Monte Carlo Methods in Financial Engineering.
- Finite Difference Methods (FDM), while popular a few years back, are not quite as important as they once were. Daniel Duffy's Financial Instrument Pricing Using C++ provides a great introduction to pricing financial derivatives with FDM and goes into extensive detail about how to use the STL within financial applications. If you know that you're going to be dealing with options where FDM makes sense, this book is worth picking up.
While the above may seem like a lot of material, you can break it down by avoiding many of the irrelevant algorithms. Concentrate on NLA, Monte Carlo and (maybe) some finite differences, as these are the cutting edge techniques. Remember though that you will only really gain experience via actually implementing these models. Make sure you program as many as you can to really get to grips with the material.
Interview Preparation and Final Thoughts
I've already written an article on interview preparation for becoming a quantitative analyst so I won't repeat myself too much here. Make sure you work through the five books described in that article and brush up on the myriad of brainteasers found within. They are an extremely common tactic to put a candidate under stress in an interview environment.
A strong investment in learning the material above well, coupled with extensive implementations of quant models in C++ along with practice interview questions from the above article will give you a very good chance of gaining a quant job in one of the top-tier firms.
Be aware though that it is a tougher market than usual for trying to find a quant position - particularly at entry-level. Investment banking interviews can be challenging. Thus it is extremely important that you study hard, implement the models and understand the basics thoroughly before applying to the recruiters.