{"product_id":"introduction-to-c-for-financial-engineers-isbn-9780470015384","title":"Introduction to C++ for Financial Engineers","description":"This book introduces the reader to the C++ programming language and how to use it to write applications in quantitative finance (QF) and related areas. No previous knowledge of C or C++ is required -- experience with VBA, Matlab or other programming language is sufficient. The book adopts an incremental approach; starting from basic principles then moving on to advanced complex techniques and then to real-life applications in financial engineering. There are five major parts in the book:  \u003cul\u003e \u003cli\u003eC++ fundamentals and object-oriented thinking in QF\u003c\/li\u003e \u003cli\u003eAdvanced object-oriented features such as inheritance and polymorphism\u003c\/li\u003e \u003cli\u003eTemplate programming and the Standard Template Library (STL)\u003c\/li\u003e \u003cli\u003eAn introduction to GOF design patterns and their applications in QF Applications\u003c\/li\u003e \u003c\/ul\u003e \u003cp\u003eThe kinds of applications include binomial and trinomial methods, Monte Carlo simulation, advanced trees, partial differential equations and finite difference methods.\u003c\/p\u003e \u003cp\u003eThis book includes a companion website with all source code and many useful C++ classes that you can use in your own applications. Examples, test cases and applications are directly relevant to QF.\u003c\/p\u003e \u003cp\u003eThis book is the perfect companion to Daniel J. Duffy’s book \u003ci\u003eFinancial Instrument Pricing using C++\u003c\/i\u003e (Wiley 2004, 0470855096 \/ 9780470021620)\u003c\/p\u003e \u003cp\u003e\u003cb\u003e0 Goals of this Book and Global Overview 1\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e0.1 What is this book? 1\u003c\/p\u003e \u003cp\u003e0.2 Why has this book been written? 1\u003c\/p\u003e \u003cp\u003e0.3 For whom is this book intended? 2\u003c\/p\u003e \u003cp\u003e0.4 Why should I read this book? 2\u003c\/p\u003e \u003cp\u003e0.5 The structure of this book 2\u003c\/p\u003e \u003cp\u003e0.6 What this book does not cover 2\u003c\/p\u003e \u003cp\u003e0.7 More information and support 3\u003c\/p\u003e \u003cp\u003e\u003cb\u003ePart I C++ Essential Skills 5\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e\u003cb\u003e1 Introduction to C++ and Quantitative Finance 7\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e1.1 Introduction and objectives 7\u003c\/p\u003e \u003cp\u003e1.2 A short history of C++ 7\u003c\/p\u003e \u003cp\u003e1.3 C++, a multi-paradigm language 8\u003c\/p\u003e \u003cp\u003e1.4 C++ and quantitative finance: what’s the relationship? 11\u003c\/p\u003e \u003cp\u003e1.5 What is software quality? 11\u003c\/p\u003e \u003cp\u003e1.6 Summary and conclusions 13\u003c\/p\u003e \u003cp\u003e1.7 Exercises 14\u003c\/p\u003e \u003cp\u003e\u003cb\u003e2 The Mechanics of C++: from Source Code to a Running Program 15\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e2.1 Introduction and objectives 15\u003c\/p\u003e \u003cp\u003e2.2 The compilation process 15\u003c\/p\u003e \u003cp\u003e2.3 Header files and source files 16\u003c\/p\u003e \u003cp\u003e2.4 Creating classes and using their objects 19\u003c\/p\u003e \u003cp\u003e2.5 Template classes and template functions 22\u003c\/p\u003e \u003cp\u003e2.6 Kinds of errors 25\u003c\/p\u003e \u003cp\u003e2.7 The struct concept 27\u003c\/p\u003e \u003cp\u003e2.8 Useful data conversion routines 27\u003c\/p\u003e \u003cp\u003e2.9 Summary and conclusions 29\u003c\/p\u003e \u003cp\u003e2.10 Exercises and projects 29\u003c\/p\u003e \u003cp\u003e\u003cb\u003e3 C++ Fundamentals and My First Option Class 31\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e3.1 Introduction and objectives 31\u003c\/p\u003e \u003cp\u003e3.2 Class == member data + member functions 32\u003c\/p\u003e \u003cp\u003e3.3 The header file (function prototypes) 33\u003c\/p\u003e \u003cp\u003e3.4 The class body (code file) 35\u003c\/p\u003e \u003cp\u003e3.5 Using the class 38\u003c\/p\u003e \u003cp\u003e3.6 Examining the class in detail 40\u003c\/p\u003e \u003cp\u003e3.7 Other paradigms 41\u003c\/p\u003e \u003cp\u003e3.8 Summary and conclusions 45\u003c\/p\u003e \u003cp\u003e3.9 Questions, exercises and projects 45\u003c\/p\u003e \u003cp\u003e\u003cb\u003e4 Creating Robust Classes 49\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e4.1 Introduction and objectives 49\u003c\/p\u003e \u003cp\u003e4.2 Call by reference and call by value 49\u003c\/p\u003e \u003cp\u003e4.3 Constant objects everywhere 52\u003c\/p\u003e \u003cp\u003e4.4 Constructors in detail 54\u003c\/p\u003e \u003cp\u003e4.5 Static member data and static member functions 55\u003c\/p\u003e \u003cp\u003e4.6 Function overloading 57\u003c\/p\u003e \u003cp\u003e4.7 Non-member functions 58\u003c\/p\u003e \u003cp\u003e4.8 Performance tips and guidelines 58\u003c\/p\u003e \u003cp\u003e4.9 Summary and conclusions 60\u003c\/p\u003e \u003cp\u003e4.10 Questions, exercises and projects 60\u003c\/p\u003e \u003cp\u003e\u003cb\u003e5 Operator Overloading in C++ 63\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e5.1 Introduction and objectives 63\u003c\/p\u003e \u003cp\u003e5.2 What is operator overloading and what are the possibilities? 63\u003c\/p\u003e \u003cp\u003e5.3 Why use operator overloading? The advantages 65\u003c\/p\u003e \u003cp\u003e5.4 Operator overloading: the steps 68\u003c\/p\u003e \u003cp\u003e5.5 Using operator overloading for simple I\/O 71\u003c\/p\u003e \u003cp\u003e5.6 Friend functions in general 72\u003c\/p\u003e \u003cp\u003e5.7 Summary and conclusions 74\u003c\/p\u003e \u003cp\u003e5.8 Exercise 74\u003c\/p\u003e \u003cp\u003eAppendix: useful data structures in C++ 75\u003c\/p\u003e \u003cp\u003e\u003cb\u003e6 Memory Management in C++ 79\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e6.1 Introduction and objectives 79\u003c\/p\u003e \u003cp\u003e6.2 Single objects and arrays of objects on the stack 79\u003c\/p\u003e \u003cp\u003e6.3 Special operators: ‘new’ and ‘delete’ 82\u003c\/p\u003e \u003cp\u003e6.4 Small application: working with complex numbers 84\u003c\/p\u003e \u003cp\u003e6.5 Creating an array class 86\u003c\/p\u003e \u003cp\u003e6.6 Summary and conclusions 89\u003c\/p\u003e \u003cp\u003e6.7 Exercises 89\u003c\/p\u003e \u003cp\u003e6.8 Review questions and comments 91\u003c\/p\u003e \u003cp\u003e\u003cb\u003e7 Functions, Namespaces and Introduction to Inheritance 93\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e7.1 Introduction and objectives 93\u003c\/p\u003e \u003cp\u003e7.2 Functions and function pointers 93\u003c\/p\u003e \u003cp\u003e7.3 An introduction to namespaces in C++ 96\u003c\/p\u003e \u003cp\u003e7.4 An introduction to the inheritance mechanism in C++ 99\u003c\/p\u003e \u003cp\u003e7.5 Multiple inheritance 104\u003c\/p\u003e \u003cp\u003e7.6 Solution of nonlinear equations 104\u003c\/p\u003e \u003cp\u003e7.7 Nonlinear solvers in C++: design and implementation 106\u003c\/p\u003e \u003cp\u003e7.8 Applying nonlinear solvers: calculating volatility 108\u003c\/p\u003e \u003cp\u003e7.9 Summary and conclusions 109\u003c\/p\u003e \u003cp\u003e7.10 Exercises and projects 109\u003c\/p\u003e \u003cp\u003e\u003cb\u003e8 Advanced Inheritance and Payoff Class Hierarchies 113\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e8.1 Introduction and objectives 113\u003c\/p\u003e \u003cp\u003e8.2 The virtual specifier and memory deallocation 113\u003c\/p\u003e \u003cp\u003e8.3 Abstract and concrete classes 115\u003c\/p\u003e \u003cp\u003e8.4 Lightweight payoff classes 119\u003c\/p\u003e \u003cp\u003e8.5 Super lightweight payoff functions 121\u003c\/p\u003e \u003cp\u003e8.6 The dangers of inheritance: a counterexample 123\u003c\/p\u003e \u003cp\u003e8.7 Implementation inheritance and fragile base class problem 127\u003c\/p\u003e \u003cp\u003e8.8 Two-factor payoff functions and classes 127\u003c\/p\u003e \u003cp\u003e8.9 Conclusions and summary 130\u003c\/p\u003e \u003cp\u003e8.10 Exercises and projects 130\u003c\/p\u003e \u003cp\u003e\u003cb\u003e9 Run-Time Behaviour in C++ 133\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e9.1 Introduction and objectives 133\u003c\/p\u003e \u003cp\u003e9.2 An introduction to reflection and self-aware objects 133\u003c\/p\u003e \u003cp\u003e9.3 Run-time type information (RTTI) 134\u003c\/p\u003e \u003cp\u003e9.4 Casting between types 137\u003c\/p\u003e \u003cp\u003e9.5 Client-server programming and exception handling 140\u003c\/p\u003e \u003cp\u003e9.6 try, throw and catch: ingredients of the C++ exception mechanism 141\u003c\/p\u003e \u003cp\u003e9.7 C++ implementation 141\u003c\/p\u003e \u003cp\u003e9.8 Pragmatic exception mechanisms 145\u003c\/p\u003e \u003cp\u003e9.9 Conclusions and summary 149\u003c\/p\u003e \u003cp\u003e9.10 Exercises and research 149\u003c\/p\u003e \u003cp\u003e\u003cb\u003e10 An Introduction to C++ Templates 153\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e10.1 Introduction and objectives 153\u003c\/p\u003e \u003cp\u003e10.2 My first template class 154\u003c\/p\u003e \u003cp\u003e10.3 Template functions 158\u003c\/p\u003e \u003cp\u003e10.4 Consolidation: understanding templates 159\u003c\/p\u003e \u003cp\u003e10.5 Summary and conclusions 163\u003c\/p\u003e \u003cp\u003e10.6 Exercises and projects 164\u003c\/p\u003e \u003cp\u003e\u003cb\u003ePart II Data Structures, Templates and Patterns 167\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e\u003cb\u003e11 Introduction to Generic Data Structures and Standard Template Library (STL) 169\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e11.1 Introduction and objectives 169\u003c\/p\u003e \u003cp\u003e11.2 Complexity analysis 170\u003c\/p\u003e \u003cp\u003e11.3 An introduction to data structures 172\u003c\/p\u003e \u003cp\u003e11.4 Algorithms 176\u003c\/p\u003e \u003cp\u003e11.5 Navigation in data structures: iterators in STL 177\u003c\/p\u003e \u003cp\u003e11.6 STL by example: my first example 178\u003c\/p\u003e \u003cp\u003e11.7 Conclusions and summary 183\u003c\/p\u003e \u003cp\u003e11.8 Exercises and projects 183\u003c\/p\u003e \u003cp\u003e\u003cb\u003e12 Creating Simpler Interfaces to STL for QF Applications 187\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e12.1 Introduction and objectives 187\u003c\/p\u003e \u003cp\u003e12.2 Maps and dictionaries 187\u003c\/p\u003e \u003cp\u003e12.3 Applications of maps 190\u003c\/p\u003e \u003cp\u003e12.4 User-friendly sets 191\u003c\/p\u003e \u003cp\u003e12.5 Associative arrays and associative matrices 196\u003c\/p\u003e \u003cp\u003e12.6 Applications of associative data structures 199\u003c\/p\u003e \u003cp\u003e12.7 Conclusions and summary 200\u003c\/p\u003e \u003cp\u003e12.8 Exercises and projects 200\u003c\/p\u003e \u003cp\u003e\u003cb\u003e13 Data Structures for Financial Engineering Applications 203\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e13.1 Introduction and objectives 203\u003c\/p\u003e \u003cp\u003e13.2 The property pattern 203\u003c\/p\u003e \u003cp\u003e13.3 Property sets 205\u003c\/p\u003e \u003cp\u003e13.4 Property sets and data modelling for quantitative finance 213\u003c\/p\u003e \u003cp\u003e13.5 Lattice structures 215\u003c\/p\u003e \u003cp\u003e13.6 Conclusions and summary 221\u003c\/p\u003e \u003cp\u003e13.7 Exercises and projects 221\u003c\/p\u003e \u003cp\u003e\u003cb\u003e14 An Introduction to Design Patterns 223\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e14.1 Introduction and objectives 223\u003c\/p\u003e \u003cp\u003e14.2 The software lifecycle 223\u003c\/p\u003e \u003cp\u003e14.3 Documentation issues 225\u003c\/p\u003e \u003cp\u003e14.4 An Introduction to design patterns 233\u003c\/p\u003e \u003cp\u003e14.5 Are we using the wrong design? Choosing the appropriate pattern 237\u003c\/p\u003e \u003cp\u003e14.6 CADObject, a C++ library for computer graphics 238\u003c\/p\u003e \u003cp\u003e14.7 Using patterns in CADObject 241\u003c\/p\u003e \u003cp\u003e14.8 Conclusions and summary 241\u003c\/p\u003e \u003cp\u003e14.9 Exercises and projects 241\u003c\/p\u003e \u003cp\u003e\u003cb\u003ePart III QF Applications 243\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e\u003cb\u003e15 Programming the Binomial Method in C++ 245\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e15.1 Introduction and objectives 245\u003c\/p\u003e \u003cp\u003e15.2 Scoping the problem 246\u003c\/p\u003e \u003cp\u003e15.3 A short overview of the binomial method 246\u003c\/p\u003e \u003cp\u003e15.4 Software requirements for a binomial solver 249\u003c\/p\u003e \u003cp\u003e15.5 Class design and class structure 250\u003c\/p\u003e \u003cp\u003e15.6 Applying design patterns 252\u003c\/p\u003e \u003cp\u003e15.7 The builder and director classes 255\u003c\/p\u003e \u003cp\u003e15.8 The process and the steps 258\u003c\/p\u003e \u003cp\u003e15.9 Test cases and examples 259\u003c\/p\u003e \u003cp\u003e15.10 Conclusions and summary 260\u003c\/p\u003e \u003cp\u003e15.11 Exercises and questions 260\u003c\/p\u003e \u003cp\u003e\u003cb\u003e16 Implementing One-Factor Black Scholes in C++ 265\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e16.1 Introduction and objectives 265\u003c\/p\u003e \u003cp\u003e16.2 Scope and assumptions 265\u003c\/p\u003e \u003cp\u003e16.3 Assembling the C++ building blocks 267\u003c\/p\u003e \u003cp\u003e16.4 Modelling the black scholes PDE 267\u003c\/p\u003e \u003cp\u003e16.5 Finite difference schemes 270\u003c\/p\u003e \u003cp\u003e16.6 Test cases and presentation in excel 276\u003c\/p\u003e \u003cp\u003e16.7 Summary 279\u003c\/p\u003e \u003cp\u003e16.8 Exercises and projects 279\u003c\/p\u003e \u003cp\u003e\u003cb\u003e17 Two-Factor Option Pricing: Basket and Other Multi-Asset Options 283\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e17.1 Introduction and objectives 283\u003c\/p\u003e \u003cp\u003e17.2 Motivation and background 283\u003c\/p\u003e \u003cp\u003e17.3 Scoping the problem: PDEs for basket options 285\u003c\/p\u003e \u003cp\u003e17.4 Modelling basket option PDE in UML and C++ 286\u003c\/p\u003e \u003cp\u003e17.5 The finite difference method for two-factor problems 297\u003c\/p\u003e \u003cp\u003e17.6 Discrete boundary and initial conditions 298\u003c\/p\u003e \u003cp\u003e17.7 Assembling the system of equations 299\u003c\/p\u003e \u003cp\u003e17.8 Post processing and output 301\u003c\/p\u003e \u003cp\u003e17.9 Summary and conclusions 302\u003c\/p\u003e \u003cp\u003e17.10 Exercises and projects 302\u003c\/p\u003e \u003cp\u003e\u003cb\u003e18 Useful C++ Classes for Numerical Analysis Applications in Finance 305\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e18.1 Introduction and objectives 305\u003c\/p\u003e \u003cp\u003e18.2 Solving tridiagonal systems 305\u003c\/p\u003e \u003cp\u003e18.3 An introduction to interpolation 310\u003c\/p\u003e \u003cp\u003e18.4 Summary and conclusions 313\u003c\/p\u003e \u003cp\u003e\u003cb\u003e19 Other Numerical Methods in Quantitative Finance 315\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e19.1 Introduction and objectives 315\u003c\/p\u003e \u003cp\u003e19.2 The trinomial method for assets 315\u003c\/p\u003e \u003cp\u003e19.3 Lattice data structures 318\u003c\/p\u003e \u003cp\u003e19.4 Trinomial tree for the short rate 318\u003c\/p\u003e \u003cp\u003e19.5 The multidimensional binomial method 321\u003c\/p\u003e \u003cp\u003e19.6 Generic lattice structures 322\u003c\/p\u003e \u003cp\u003e19.7 Approximating exponential functions 326\u003c\/p\u003e \u003cp\u003e19.8 Summary and conclusions 326\u003c\/p\u003e \u003cp\u003e19.9 Exercises 326\u003c\/p\u003e \u003cp\u003e\u003cb\u003e20 The Monte Carlo Method Theory and C++ Frameworks 327\u003cbr\u003e \u003c\/b\u003e\u003ci\u003eDr. Joerg Kieritz and Daniel J. Duffy\u003c\/i\u003e\u003c\/p\u003e \u003cp\u003e20.1 Introduction and objectives 327\u003c\/p\u003e \u003cp\u003e20.2 A short history of the Monte Carlo (MC) method 327\u003c\/p\u003e \u003cp\u003e20.3 Examples of the application of the Monte Carlo method 327\u003c\/p\u003e \u003cp\u003e20.4 The Monte Carlo method in quantitative finance 333\u003c\/p\u003e \u003cp\u003e20.5 Software architecture for the Monte Carlo method 337\u003c\/p\u003e \u003cp\u003e20.6 Examples and test cases 338\u003c\/p\u003e \u003cp\u003e20.7 Summary and conclusions 340\u003c\/p\u003e \u003cp\u003e20.8 Appendix: comparing Monte Carlo with other numerical methods 340\u003c\/p\u003e \u003cp\u003e20.9 Exercises and projects 341\u003c\/p\u003e \u003cp\u003e\u003cb\u003e21 Skills Development: from White Belt to Black Belt 345\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e21.1 Introduction and objectives 345\u003c\/p\u003e \u003cp\u003e21.2 Review of book 345\u003c\/p\u003e \u003cp\u003e21.3 Part I: C++ essential skills 345\u003c\/p\u003e \u003cp\u003e21.4 Part II: data structures, templates and patterns 346\u003c\/p\u003e \u003cp\u003e21.5 Part III: applications in quantitative finance 347\u003c\/p\u003e \u003cp\u003e21.6 Part IV: background information 347\u003c\/p\u003e \u003cp\u003e21.7 Choosing a programming paradigm 348\u003c\/p\u003e \u003cp\u003e21.8 Summary and conclusions 349\u003c\/p\u003e \u003cp\u003e\u003cb\u003ePart IV Background Information 351\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e\u003cb\u003e22 Basic C Survival Guide 353\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e22.1 Introduction and objectives 353\u003c\/p\u003e \u003cp\u003e22.2 Basic data types 353\u003c\/p\u003e \u003cp\u003e22.3 The C preprocessor 354\u003c\/p\u003e \u003cp\u003e22.4 Pointers and references 355\u003c\/p\u003e \u003cp\u003e22.5 Other useful bits and pieces 357\u003c\/p\u003e \u003cp\u003e22.6 What to avoid in c 357\u003c\/p\u003e \u003cp\u003e22.7 Test case: numerical integration in one dimension 358\u003c\/p\u003e \u003cp\u003e22.8 Conclusions and summary 359\u003c\/p\u003e \u003cp\u003e22.9 Exercises 359\u003c\/p\u003e \u003cp\u003e\u003cb\u003e23 Advanced C Syntax 363\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e23.1 Introduction and objectives 363\u003c\/p\u003e \u003cp\u003e23.2 Fixed-size and dynamic arrays 364\u003c\/p\u003e \u003cp\u003e23.3 Multi-dimensional arrays 364\u003c\/p\u003e \u003cp\u003e23.4 Introduction to structures 365\u003c\/p\u003e \u003cp\u003e23.5 Unions 366\u003c\/p\u003e \u003cp\u003e23.6 Useful C libraries 366\u003c\/p\u003e \u003cp\u003e23.7 Test case: linear regression 367\u003c\/p\u003e \u003cp\u003e23.8 Conclusions and summary 370\u003c\/p\u003e \u003cp\u003e23.9 Exercises 370\u003c\/p\u003e \u003cp\u003e\u003cb\u003e24 Datasim Visualisation Package in Excel: Drivers and Mechanisms 373\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e24.1 Introduction and objectives 373\u003c\/p\u003e \u003cp\u003e24.2 Fundamental functionality in the package 373\u003c\/p\u003e \u003cp\u003e24.3 Basic driver functionality 373\u003c\/p\u003e \u003cp\u003e24.4 Excel mechanisms 376\u003c\/p\u003e \u003cp\u003e24.5 Option values and sensitivities in excel 380\u003c\/p\u003e \u003cp\u003e24.6 Finite difference method 384\u003c\/p\u003e \u003cp\u003e24.7 Summary and conclusions 387\u003c\/p\u003e \u003cp\u003e24.8 Exercises and projects 387\u003c\/p\u003e \u003cp\u003e\u003cb\u003e25 Motivating COM and Emulation in C++ 391\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e25.1 Introduction and objectives 391\u003c\/p\u003e \u003cp\u003e25.2 A short history of COM 391\u003c\/p\u003e \u003cp\u003e25.3 An introduction to multiple inheritance (MI) 391\u003c\/p\u003e \u003cp\u003e25.4 Interfaces and multiple inheritance 396\u003c\/p\u003e \u003cp\u003e25.5 Virtual function tables 399\u003c\/p\u003e \u003cp\u003e25.6 Summary 399\u003c\/p\u003e \u003cp\u003e\u003cb\u003e26 COM Fundamentals 401\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e26.1 Introduction and objectives 401\u003c\/p\u003e \u003cp\u003e26.2 Interfaces in COM 401\u003c\/p\u003e \u003cp\u003e26.3 The IUnknown interface 401\u003c\/p\u003e \u003cp\u003e26.4 Using IUnknown 402\u003c\/p\u003e \u003cp\u003e26.5 Defining new versions of components 406\u003c\/p\u003e \u003cp\u003e26.6 Summary 406\u003c\/p\u003e \u003cp\u003eReferences 407\u003c\/p\u003e \u003cp\u003eIndex 409\u003c\/p\u003e  \u003cp\u003e\u003cb\u003e\u003ci\u003eAbout the author\u003c\/i\u003e\u003c\/b\u003e \u003c\/p\u003e\u003cp\u003e\u003cb\u003eDANIEL J. DUFFY\u003c\/b\u003e has been involved in software development projects using C++ and object-oriented design techniques since 1988. He organized the first C++ course in the Netherlands in 1989 and has worked on a variety of C++ projects in areas such as computer graphics, optical technology, process control and quantitative finance systems. In 1993 he worked on an early version of a large object-oriented system for derivatives pricing and hedging models. He is designer\/trainer and has trained more than 2000 C++ developers in recent years. \u003c\/p\u003e\u003cp\u003eA companion book to the current one is “Financial Instrument Pricing using C++” (Wiley 2004). Since 1996 he has written seven books on object-oriented design and programming. Daniel Duffy has a PhD in Numerical Analysis from Trinity College Dublin. He lives in the Netherlands with his wife Ilona and son Brendan. \u003c\/p\u003e\u003cp\u003eHe can be contacted at dduffy@datasim.nl.   \u003c\/p\u003e\u003cp\u003eThe object-oriented programming language C++ is the de facto standard for developing real-life applications for Quantitative Finance and Financial Engineering. This language was designed by Dr. Bjarne Stroustup in the early 1990’s and it has become one of the most popular and robust languages for many important areas such as medical systems, computer graphics, telecommunications and in application areas where performance, accuracy and interoperability issues play a key role. The general expectation is that its importance will grow in the coming years. \u003c\/p\u003e\u003cp\u003eC++ has also become the de facto standard for quant development and analysis. Knowledge of C++ is mandatory for many openings and job positions in Quantitative Finance. This book is the first book to discuss many of the issues that you need to know in order to be able to design and implement real-world applications. We focus on a number of critical topics: \u003c\/p\u003e\u003cul\u003e\n\u003cli\u003eLearning the essential syntax of C++ (‘getting the fundamentals right’)\u003c\/li\u003e \u003cli\u003eDesigning and implementing generic data structures using STL\u003c\/li\u003e \u003cli\u003eNumerous applications (lattices, finite difference, Monte Carlo, etc)\u003c\/li\u003e \u003cli\u003eLibraries, design patterns (GOF, POSA) and reusable software frameworks\u003c\/li\u003e \u003cli\u003eIntroduction to COM and C++ to Excel interoperability\u003c\/li\u003e\n\u003c\/ul\u003e \u003cp\u003eEach chapter deals with one major topic. Furthermore, each chapter builds only on the results of the chapters preceding it, so that we keep the amount of forward referencing to a minimum.We discuss all the syntax that is discussed in the IT books and we apply it to QF applications. \u003c\/p\u003e\u003cp\u003eLast, but not least, each chapter concludes with exercises and projects to test what you learned in that chapter. The exercises are based on the tactic: ‘get it working, then get it right, then get it optimised’. The exercises will also help you prepare for your job interviews. \u003c\/p\u003e\u003cp\u003eIncluded with the book is a CD will full source code, including \u003ci\u003eworking code\u003c\/i\u003e for lattice, finite difference and Monte Carlo methods for one-factor and two-factor pricing models as well as an easy-to-use C++ visualization package to help you examine the output from these numerical methods.\u003c\/p\u003e","brand":"Wiley","offers":[{"title":"Default Title","offer_id":47989456568549,"sku":"NP9780470015384","price":130.0,"currency_code":"USD","in_stock":false}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/1842\/7735\/files\/9780470015384.jpg?v=1761784173","url":"https:\/\/k12savings.com\/es\/products\/introduction-to-c-for-financial-engineers-isbn-9780470015384","provider":"K12savings","version":"1.0","type":"link"}