Building Financial Risk Management Applications with C++
The purpose of this book is not to provide state-of-the-art C++ programming techniques. The purpose of this book is also not to provide state-of-the-art financial risk management techniques. Financial quantitative analysts (Quants) often lack the foundational understanding of financial risk management as well as basic C++ programming. Many quants have studied the graduate level financial derivatives textbooks and passed various financial risk management-type examinations. They have not, however, seen how to actually deploy these ideas in practice. Thus, I seek to fill this void by providing a launching pad where quantitative finance professionals can connect the dots between abstract theoretical finance concepts and prototype code that could be used to implement various financial risk management ideas.
The purpose here is to provide as simple an approach as possible to enable financial analysts to develop prototype implementation C++ code of their financial risk management ideas. Dynamic memory allocation, abstract data types, container classes, and so forth are left to the computer programming professionals. The objective of this book is to provide assistance for quantitative finance professionals who wish to implement their emerging financial risk management ideas with C++. We focus on introducing financial risk management with C++ because many of the modern financial risk management concepts require some form of computer program to successfully implement.
Computer programming is a unique, disciplined implementation of ideas. In this chapter, several reasons why financial analysts should learn a computer language are reviewed. In particular, the case will be made for C++ and it will be briefly introduced. Finally, the autonomous (compiler independent) and heteronomous (compiler dependent) approaches to teaching C++ are explored. This material takes the atypical heteronomous approach while remaining sympathetic to those learners who prefer the more popular autonomous approach.