{"product_id":"monte-carlo-frameworks-isbn-9780470060698","title":"Monte Carlo Frameworks","description":"This is one of the first books that describe all the steps that are needed in order to analyze, design and implement \u003cst1:place w:st=\"on\"\u003eMonte Carlo\u003c\/st1:place\u003e applications. It discusses the financial theory as well as the mathematical and numerical background that is needed to write flexible and efficient C++ code using state-of-the art design and system patterns, object-oriented and generic programming models in combination with standard libraries and tools.  \u003cp\u003e\u003c\/p\u003e    \u003cp\u003e\u003c\/p\u003e Includes a CD containing the source code for all examples. It is strongly advised that you experiment with the code by compiling it and extending it to suit your needs. Support is offered via a user forum on \u003ca href=\"http:\/\/www.datasimfinancial.com\/\"\u003ewww.datasimfinancial.com\u003c\/a\u003e where you can post queries and communicate with other purchasers of the book.  \u003cp\u003e\u003c\/p\u003e    \u003cp\u003e\u003c\/p\u003e This book is for those professionals who design and develop models in computational finance. This book assumes that you have a working knowledge of C ++.  \u003cp\u003e\u003c\/p\u003e    \u003cb\u003eNotation xix\u003c\/b\u003e  \u003cp\u003e\u003cb\u003eExecutive Overview xxiii\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e\u003cb\u003e0 My First Monte Carlo Application One-Factor Problems 1\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e0.1 Introduction and objectives 1\u003c\/p\u003e \u003cp\u003e0.2 Description of the problem 1\u003c\/p\u003e \u003cp\u003e0.3 Ordinary differential equations (ODE) 2\u003c\/p\u003e \u003cp\u003e0.4 Stochastic differential equations (SDE) and their solution 3\u003c\/p\u003e \u003cp\u003e0.5 Generating uniform and normal random numbers 4\u003c\/p\u003e \u003cp\u003e0.6 The Monte Carlo method 8\u003c\/p\u003e \u003cp\u003e0.7 Calculating sensitivities 9\u003c\/p\u003e \u003cp\u003e0.8 The initial C++ Monte Carlo framework: hierarchy and paths 10\u003c\/p\u003e \u003cp\u003e0.9 The initial C++ Monte Carlo framework: calculating option price 19\u003c\/p\u003e \u003cp\u003e0.10 The predictor-corrector method: a scheme for all seasons? 23\u003c\/p\u003e \u003cp\u003e0.11 The Monte Carlo approach: caveats and nasty surprises 24\u003c\/p\u003e \u003cp\u003e0.12 Summary and conclusions 25\u003c\/p\u003e \u003cp\u003e0.13 Exercises and projects 25\u003c\/p\u003e \u003cp\u003e\u003cb\u003ePART I FUNDAMENTALS\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e\u003cb\u003e1\u003c\/b\u003e \u003cb\u003eMathematical Preparations for the Monte Carlo Method 31\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e1.1 Introduction and objectives 31\u003c\/p\u003e \u003cp\u003e1.2 Random variables 31\u003c\/p\u003e \u003cp\u003e1.3 Discrete and continuous random variables 34\u003c\/p\u003e \u003cp\u003e1.4 Multiple random variables 37\u003c\/p\u003e \u003cp\u003e1.5 A short history of integration 38\u003c\/p\u003e \u003cp\u003e1.6 \u003ci\u003eσ\u003c\/i\u003e-algebras, measurable spaces and measurable functions 39\u003c\/p\u003e \u003cp\u003e1.7 Probability spaces and stochastic processes 40\u003c\/p\u003e \u003cp\u003e1.8 The Ito stochastic integral 41\u003c\/p\u003e \u003cp\u003e1.9 Applications of the Lebesgue theory 43\u003c\/p\u003e \u003cp\u003e1.10 Some useful inequalities 45\u003c\/p\u003e \u003cp\u003e1.11 Some special functions 46\u003c\/p\u003e \u003cp\u003e1.12 Convergence of function sequences 48\u003c\/p\u003e \u003cp\u003e1.13 Applications to stochastic analysis 49\u003c\/p\u003e \u003cp\u003e1.14 Summary and conclusions 50\u003c\/p\u003e \u003cp\u003e1.15 Exercises and projects 50\u003c\/p\u003e \u003cp\u003e\u003cb\u003e2 The Mathematics of Stochastic Differential Equations (SDE) 53\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e2.1 Introduction and objectives 53\u003c\/p\u003e \u003cp\u003e2.2 A survey of the literature 53\u003c\/p\u003e \u003cp\u003e2.3 Mathematical foundations for SDEs 55\u003c\/p\u003e \u003cp\u003e2.4 Motivating random (stochastic) processes 59\u003c\/p\u003e \u003cp\u003e2.5 An introduction to one-dimensional random processes 59\u003c\/p\u003e \u003cp\u003e2.6 Stochastic differential equations in Banach spaces: prologue 62\u003c\/p\u003e \u003cp\u003e2.7 Classes of SIEs and properties of their solutions 62\u003c\/p\u003e \u003cp\u003e2.8 Existence and uniqueness results 63\u003c\/p\u003e \u003cp\u003e2.9 A special SDE: the Ito equation 64\u003c\/p\u003e \u003cp\u003e2.10 Numerical approximation of SIEs 66\u003c\/p\u003e \u003cp\u003e2.11 Transforming an SDE: the Ito formula 68\u003c\/p\u003e \u003cp\u003e2.12 Summary and conclusions 69\u003c\/p\u003e \u003cp\u003e2.13 Appendix: proof of the Banach fixed-point theorem and some applications 69\u003c\/p\u003e \u003cp\u003e2.14 Exercises and projects 71\u003c\/p\u003e \u003cp\u003e\u003cb\u003e3 Alternative SDEs and Toolkit Functionality 73\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e3.1 Introduction and objectives 73\u003c\/p\u003e \u003cp\u003e3.2 Bessel processes 73\u003c\/p\u003e \u003cp\u003e3.3 Random variate generation 74\u003c\/p\u003e \u003cp\u003e3.4 The exponential distribution 74\u003c\/p\u003e \u003cp\u003e3.5 The beta and gamma distributions 75\u003c\/p\u003e \u003cp\u003e3.6 The chi-squared, Student and other distributions 79\u003c\/p\u003e \u003cp\u003e3.7 Discrete variate generation 79\u003c\/p\u003e \u003cp\u003e3.8 The Fokker-Planck equation 80\u003c\/p\u003e \u003cp\u003e3.9 The relationship with PDEs 81\u003c\/p\u003e \u003cp\u003e3.10 Alternative stochastic processes 84\u003c\/p\u003e \u003cp\u003e3.11 Using associative arrays and matrices to model lookup tables and volatility surfaces 93\u003c\/p\u003e \u003cp\u003e3.12 Summary and conclusion 96\u003c\/p\u003e \u003cp\u003e3.13 Appendix: statistical distributions and special functions in the Boost library 97\u003c\/p\u003e \u003cp\u003e3.14 Exercises and projects 102\u003c\/p\u003e \u003cp\u003e\u003cb\u003e4 An Introduction to the Finite Difference Method for SDE 107\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e4.1 Introduction and objectives 107\u003c\/p\u003e \u003cp\u003e4.2 An introduction to discrete time simulation, motivation and notation 107\u003c\/p\u003e \u003cp\u003e4.3 Foundations of discrete time approximation: ordinary differential equations 109\u003c\/p\u003e \u003cp\u003e4.4 Foundations of discrete time approximation: stochastic differential equations 113\u003c\/p\u003e \u003cp\u003e4.5 Some common schemes for one-factor SDEs 117\u003c\/p\u003e \u003cp\u003e4.6 The Milstein schemes 117\u003c\/p\u003e \u003cp\u003e4.7 Predictor-corrector methods 118\u003c\/p\u003e \u003cp\u003e4.8 Stiff ordinary and stochastic differential equations 119\u003c\/p\u003e \u003cp\u003e4.9 Software design and C++ implementation issues 125\u003c\/p\u003e \u003cp\u003e4.10 Computational results 126\u003c\/p\u003e \u003cp\u003e4.11 Aside: the characteristic equation of a difference scheme 127\u003c\/p\u003e \u003cp\u003e4.12 Summary and conclusions 128\u003c\/p\u003e \u003cp\u003e4.13 Exercises and projects 128\u003c\/p\u003e \u003cp\u003e\u003cb\u003e5 Design and Implementation of Finite Difference Schemes in Computational Finance 137\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e5.1 Introduction and objectives 137\u003c\/p\u003e \u003cp\u003e5.2 Modelling SDEs and FDM in C++ 137\u003c\/p\u003e \u003cp\u003e5.3 Mathematical and numerical tools 138\u003c\/p\u003e \u003cp\u003e5.4 The Karhunen-Loeve expansion 143\u003c\/p\u003e \u003cp\u003e5.5 Cholesky decomposition 144\u003c\/p\u003e \u003cp\u003e5.6 Spread options with stochastic volatility 146\u003c\/p\u003e \u003cp\u003e5.7 The Heston stochastic volatility model 153\u003c\/p\u003e \u003cp\u003e5.8 Path-dependent options and the Monte Carlo method 160\u003c\/p\u003e \u003cp\u003e5.9 A small software framework for pricing options 161\u003c\/p\u003e \u003cp\u003e5.10 Summary and conclusions 162\u003c\/p\u003e \u003cp\u003e5.11 Exercises and projects 162\u003c\/p\u003e \u003cp\u003e\u003cb\u003e6 Advanced Finance Models and Numerical Methods 167\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e6.1 Introduction and objectives 167\u003c\/p\u003e \u003cp\u003e6.2 Processes with jumps 168\u003c\/p\u003e \u003cp\u003e6.3 Levy processes 171\u003c\/p\u003e \u003cp\u003e6.4 Measuring the order of convergence 172\u003c\/p\u003e \u003cp\u003e6.5 Mollifiers, bump functions and function regularisation 176\u003c\/p\u003e \u003cp\u003e6.6 When Monte Carlo does not work: counterexamples 177\u003c\/p\u003e \u003cp\u003e6.7 Approximating SDEs using strong Taylor, explicit and implicit schemes 179\u003c\/p\u003e \u003cp\u003e6.8 Summary and conclusions 183\u003c\/p\u003e \u003cp\u003e6.9 Exercises and projects 184\u003c\/p\u003e \u003cp\u003e\u003cb\u003e7 Foundations of the Monte Carlo Method 189\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e7.1 Introduction and objectives 189\u003c\/p\u003e \u003cp\u003e7.2 Basic probability 189\u003c\/p\u003e \u003cp\u003e7.3 The Law of Large Numbers 190\u003c\/p\u003e \u003cp\u003e7.4 The Central Limit Theorem 191\u003c\/p\u003e \u003cp\u003e7.5 Quasi Monte Carlo methods 194\u003c\/p\u003e \u003cp\u003e7.6 Summary and conclusions 198\u003c\/p\u003e \u003cp\u003e7.7 Exercises and projects 198\u003c\/p\u003e \u003cp\u003e\u003cb\u003ePART II DESIGN PATTERNS\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e\u003cb\u003e8 Architectures and Frameworks for Monte Carlo Methods: Overview 203\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e8.1 Goals of Part II of this book 203\u003c\/p\u003e \u003cp\u003e8.2 Introduction and objectives of this chapter 203\u003c\/p\u003e \u003cp\u003e8.3 The advantages of domain architectures 204\u003c\/p\u003e \u003cp\u003e8.4 Software Architectures for the Monte Carlo method 207\u003c\/p\u003e \u003cp\u003e8.5 Summary and conclusions 212\u003c\/p\u003e \u003cp\u003e8.6 Exercises and projects 213\u003c\/p\u003e \u003cp\u003e\u003cb\u003e9 System Decomposition and System Patterns 217\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e9.1 Introduction and objectives 217\u003c\/p\u003e \u003cp\u003e9.2 Software development process; a critique 217\u003c\/p\u003e \u003cp\u003e9.3 System decomposition, from concept to code 217\u003c\/p\u003e \u003cp\u003e9.4 Decomposition techniques, the process 220\u003c\/p\u003e \u003cp\u003e9.5 Whole-part 222\u003c\/p\u003e \u003cp\u003e9.6 Whole-part decomposition; the process 223\u003c\/p\u003e \u003cp\u003e9.7 Presentation-Abstraction Control (PAC) 226\u003c\/p\u003e \u003cp\u003e9.8 Building complex objects and configuring applications 229\u003c\/p\u003e \u003cp\u003e9.9 Summary and conclusions 239\u003c\/p\u003e \u003cp\u003e9.10 Exercises and projects 239\u003c\/p\u003e \u003cp\u003e\u003cb\u003e10 Detailed Design using the GOF Patterns 243\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e10.1 Introduction and objectives 243\u003c\/p\u003e \u003cp\u003e10.2 Discovering which patterns to use 244\u003c\/p\u003e \u003cp\u003e10.3 An overview of the GOF patterns 255\u003c\/p\u003e \u003cp\u003e10.4 The essential structural patterns 257\u003c\/p\u003e \u003cp\u003e10.5 The essential creational patterns 266\u003c\/p\u003e \u003cp\u003e10.6 The essential behavioural patterns 270\u003c\/p\u003e \u003cp\u003e10.7 Summary and conclusions 276\u003c\/p\u003e \u003cp\u003e10.8 Exercises and projects 276\u003c\/p\u003e \u003cp\u003e\u003cb\u003e11 Combining Object-Oriented and Generic Programming Models 281\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e11.1 Introduction and objectives 281\u003c\/p\u003e \u003cp\u003e11.2 Using templates to implement components: overview 281\u003c\/p\u003e \u003cp\u003e11.3 Templates versus inheritance, run-time versus compile-time 283\u003c\/p\u003e \u003cp\u003e11.4 Advanced C++ templates 286\u003c\/p\u003e \u003cp\u003e11.5 Traits and policy-based design 294\u003c\/p\u003e \u003cp\u003e11.6 Creating templated design patterns 306\u003c\/p\u003e \u003cp\u003e11.7 A generic \u003ci\u003eSingleton\u003c\/i\u003e pattern 307\u003c\/p\u003e \u003cp\u003e11.8 Generic composite structures 310\u003c\/p\u003e \u003cp\u003e11.9 Summary and conclusions 314\u003c\/p\u003e \u003cp\u003e11.10 Exercises and projects 314\u003c\/p\u003e \u003cp\u003e\u003cb\u003e12 Data Structures and their Application to the Monte Carlo Method 319\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e12.1 Introduction and objectives 319\u003c\/p\u003e \u003cp\u003e12.2 Arrays, vectors and matrices 319\u003c\/p\u003e \u003cp\u003e12.3 Compile-time vectors and matrices 324\u003c\/p\u003e \u003cp\u003e12.4 Creating adapters for STL containers 331\u003c\/p\u003e \u003cp\u003e12.5 Date and time classes 334\u003c\/p\u003e \u003cp\u003e12.6 The class string 339\u003c\/p\u003e \u003cp\u003e12.7 Modifying strings 343\u003c\/p\u003e \u003cp\u003e12.8 A final look at the generic composite 345\u003c\/p\u003e \u003cp\u003e12.9 Summary and conclusions 348\u003c\/p\u003e \u003cp\u003e12.10 Exercises and projects 348\u003c\/p\u003e \u003cp\u003e\u003cb\u003e13 The Boost Library: An Introduction 353\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e13.1 Introduction and objectives 353\u003c\/p\u003e \u003cp\u003e13.2 A taxonomy of C++ pointer types 353\u003c\/p\u003e \u003cp\u003e13.3 Modelling homogeneous and heterogeneous data in Boost 361\u003c\/p\u003e \u003cp\u003e13.4 Boost signals: notification and data synchronisation 367\u003c\/p\u003e \u003cp\u003e13.5 Input and output 368\u003c\/p\u003e \u003cp\u003e13.6 Linear algebra and uBLAS 371\u003c\/p\u003e \u003cp\u003e13.7 Date and time 372\u003c\/p\u003e \u003cp\u003e13.8 Other libraries 372\u003c\/p\u003e \u003cp\u003e13.9 Summary and conclusions 374\u003c\/p\u003e \u003cp\u003e13.10 Exercises and projects 374\u003c\/p\u003e \u003cp\u003e\u003cb\u003ePART III ADVANCED APPLICATIONS\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e\u003cb\u003e14 Instruments and Payoffs 379\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e14.1 Introduction and objectives 379\u003c\/p\u003e \u003cp\u003e14.2 Creating a C++ instrument hierarchy 379\u003c\/p\u003e \u003cp\u003e14.3 Modelling payoffs in C++ 383\u003c\/p\u003e \u003cp\u003e14.4 Summary and conclusions 392\u003c\/p\u003e \u003cp\u003e14.5 Exercises and projects 393\u003c\/p\u003e \u003cp\u003e\u003cb\u003e15 Path-Dependent Options 395\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e15.1 Introduction and objectives 395\u003c\/p\u003e \u003cp\u003e15.2 Monte Carlo – a simple general-purpose version 396\u003c\/p\u003e \u003cp\u003e15.3 Asian options 401\u003c\/p\u003e \u003cp\u003e15.4 Options on the running Max\/Min 411\u003c\/p\u003e \u003cp\u003e15.5 Barrier options 412\u003c\/p\u003e \u003cp\u003e15.6 Lookback options 418\u003c\/p\u003e \u003cp\u003e15.7 Cliquet Options 422\u003c\/p\u003e \u003cp\u003e15.8 Summary and conclusions 424\u003c\/p\u003e \u003cp\u003e15.9 Exercises and projects 424\u003c\/p\u003e \u003cp\u003e\u003cb\u003e16 Affine Stochastic Volatility Models 427\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e16.1 Introduction and objectives 427\u003c\/p\u003e \u003cp\u003e16.2 The volatility skew\/smile 427\u003c\/p\u003e \u003cp\u003e16.3 The Heston model 429\u003c\/p\u003e \u003cp\u003e16.4 The Bates\/SVJ model 441\u003c\/p\u003e \u003cp\u003e16.5 Implementing the Bates model 443\u003c\/p\u003e \u003cp\u003e16.6 Numerical results – European options 444\u003c\/p\u003e \u003cp\u003e16.7 Numerical results – skew-dependent options 446\u003c\/p\u003e \u003cp\u003e16.8 XLL – using DLL within Microsoft Excel 449\u003c\/p\u003e \u003cp\u003e16.9 Analytic solutions for affine stochastic volatility models 455\u003c\/p\u003e \u003cp\u003e16.10 Summary and conclusions 457\u003c\/p\u003e \u003cp\u003e16.11 Exercises and projects 458\u003c\/p\u003e \u003cp\u003e\u003cb\u003e17 Multi-Asset Options 461\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e17.1 Introduction and objectives 461\u003c\/p\u003e \u003cp\u003e17.2 Modelling in multiple dimensions 461\u003c\/p\u003e \u003cp\u003e17.3 Implementing payoff classes for multi-asset options 465\u003c\/p\u003e \u003cp\u003e17.4 Some multi-asset options 466\u003c\/p\u003e \u003cp\u003e17.5 Basket options 469\u003c\/p\u003e \u003cp\u003e17.6 Min\/Max options 471\u003c\/p\u003e \u003cp\u003e17.7 Mountain range options 475\u003c\/p\u003e \u003cp\u003e17.8 The Heston model in multiple dimensions 480\u003c\/p\u003e \u003cp\u003e17.9 Equity interest rate hybrids 482\u003c\/p\u003e \u003cp\u003e17.10 Summary and conclusions 486\u003c\/p\u003e \u003cp\u003e17.11 Exercises and projects 486\u003c\/p\u003e \u003cp\u003e\u003cb\u003e18 Advanced Monte Carlo I – Computing Greeks 489\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e18.1 Introduction and objectives 489\u003c\/p\u003e \u003cp\u003e18.2 The finite difference method 489\u003c\/p\u003e \u003cp\u003e18.3 The pathwise method 492\u003c\/p\u003e \u003cp\u003e18.4 The likelihood ratio method 497\u003c\/p\u003e \u003cp\u003e18.5 Likelihood ratio for finite differences – proxy simulation 503\u003c\/p\u003e \u003cp\u003e18.6 Summary and conclusions 504\u003c\/p\u003e \u003cp\u003e18.7 Exercises and projects 506\u003c\/p\u003e \u003cp\u003e\u003cb\u003e19 Advanced Monte Carlo II – Early Exercise 511\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e19.1 Introduction and objectives 511\u003c\/p\u003e \u003cp\u003e19.2 Description of the problem 511\u003c\/p\u003e \u003cp\u003e19.3 Pricing American options by regression 512\u003c\/p\u003e \u003cp\u003e19.4 C++ design 513\u003c\/p\u003e \u003cp\u003e19.5 Linear least squares regression 516\u003c\/p\u003e \u003cp\u003e19.6 Example – step by step 520\u003c\/p\u003e \u003cp\u003e19.7 Analysis of the method and improvements 521\u003c\/p\u003e \u003cp\u003e19.8 Upper bounds 525\u003c\/p\u003e \u003cp\u003e19.9 Examples 527\u003c\/p\u003e \u003cp\u003e19.10 Summary and conclusions 528\u003c\/p\u003e \u003cp\u003e19.11 Exercises and projects 528\u003c\/p\u003e \u003cp\u003e\u003cb\u003e20 Beyond Brownian Motion 531\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e20.1 Introduction and objectives 531\u003c\/p\u003e \u003cp\u003e20.2 Normal mean variance mixture models 531\u003c\/p\u003e \u003cp\u003e20.3 The multi-dimensional case 536\u003c\/p\u003e \u003cp\u003e20.4 Summary and conclusions 536\u003c\/p\u003e \u003cp\u003e20.5 Exercises and projects 538\u003c\/p\u003e \u003cp\u003e\u003cb\u003ePART IV SUPPLEMENTS\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e\u003cb\u003e21\u003c\/b\u003e \u003cb\u003eC\u003c\/b\u003e++ \u003cb\u003eApplication Optimisation and Performance Improvement 543\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e21.1 Introduction and objectives 543\u003c\/p\u003e \u003cp\u003e21.2 Modelling functions in C++: choices and consequences 543\u003c\/p\u003e \u003cp\u003e21.3 Performance issues in C++: classifying potential bottlenecks 552\u003c\/p\u003e \u003cp\u003e21.4 Temporary objects 560\u003c\/p\u003e \u003cp\u003e21.5 Special features in the Boost library 562\u003c\/p\u003e \u003cp\u003e21.6 Boost multiarray library 563\u003c\/p\u003e \u003cp\u003e21.7 Boost random number library 564\u003c\/p\u003e \u003cp\u003e21.8 STL and Boost smart pointers: final remarks 566\u003c\/p\u003e \u003cp\u003e21.9 Summary and conclusions 568\u003c\/p\u003e \u003cp\u003e21.10 Exercises, projects and guidelines 569\u003c\/p\u003e \u003cp\u003e\u003cb\u003e22 Random Number Generation and Distributions 571\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e22.1 Introduction and objectives 571\u003c\/p\u003e \u003cp\u003e22.2 Uniform number generation 571\u003c\/p\u003e \u003cp\u003e22.3 The Sobol class 578\u003c\/p\u003e \u003cp\u003e22.4 Number generation due to given distributions 580\u003c\/p\u003e \u003cp\u003e22.5 Jump processes 588\u003c\/p\u003e \u003cp\u003e22.6 The random generator templates 593\u003c\/p\u003e \u003cp\u003e22.7 Tests for randomness 596\u003c\/p\u003e \u003cp\u003e22.8 Summary and conclusions 596\u003c\/p\u003e \u003cp\u003e22.9 Exercises and projects 597\u003c\/p\u003e \u003cp\u003e\u003cb\u003e23 Some Mathematical Background 601\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e23.1 Introduction and objectives 601\u003c\/p\u003e \u003cp\u003e23.2 A matrix class 601\u003c\/p\u003e \u003cp\u003e23.3 Matrix functions 601\u003c\/p\u003e \u003cp\u003e23.4 Functional analysis 608\u003c\/p\u003e \u003cp\u003e23.5 Applications to option pricing 610\u003c\/p\u003e \u003cp\u003e23.6 Summary and conclusions 614\u003c\/p\u003e \u003cp\u003e23.7 Exercises and projects 614\u003c\/p\u003e \u003cp\u003e\u003cb\u003e24 An Introduction to Multi-threaded and Parallel Programming 617\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e24.1 Introduction and objectives 617\u003c\/p\u003e \u003cp\u003e24.2 Shared memory models 617\u003c\/p\u003e \u003cp\u003e24.3 Sequential, concurrent and parallel programming 101 619\u003c\/p\u003e \u003cp\u003e24.4 How fast is fast? Performance analysis of parallel programs 623\u003c\/p\u003e \u003cp\u003e24.5 An introduction to processes and threads 625\u003c\/p\u003e \u003cp\u003e24.6 What kinds of applications are suitable for multi-threading? 626\u003c\/p\u003e \u003cp\u003e24.7 The multi-threaded application lifecycle 627\u003c\/p\u003e \u003cp\u003e24.8 Some model architectures 629\u003c\/p\u003e \u003cp\u003e24.9 Analysing and designing large software systems: a summary of the steps 633\u003c\/p\u003e \u003cp\u003e24.10 Conclusions and summary 634\u003c\/p\u003e \u003cp\u003e24.11 Exercises and projects 634\u003c\/p\u003e \u003cp\u003e\u003cb\u003e25 An Introduction to OpenMP and its Applications to the Monte Carlo Method 637\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e25.1 Introduction and objectives 637\u003c\/p\u003e \u003cp\u003e25.2 Loop optimisation 637\u003c\/p\u003e \u003cp\u003e25.3 An overview of OpenMP 644\u003c\/p\u003e \u003cp\u003e25.4 Threads in OpenMP 644\u003c\/p\u003e \u003cp\u003e25.5 Loop-level parallelism 646\u003c\/p\u003e \u003cp\u003e25.6 Data sharing 646\u003c\/p\u003e \u003cp\u003e25.7 Work-sharing and parallel regions 651\u003c\/p\u003e \u003cp\u003e25.8 Nested loop optimisation 654\u003c\/p\u003e \u003cp\u003e25.9 Scheduling in OpenMP 656\u003c\/p\u003e \u003cp\u003e25.10 OpenMP for the Monte Carlo method 657\u003c\/p\u003e \u003cp\u003e25.11 Conclusions and summary 661\u003c\/p\u003e \u003cp\u003e25.12 Exercises and projects 661\u003c\/p\u003e \u003cp\u003e\u003cb\u003e26 A Case Study of Numerical Schemes for the Heston Model 665\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e26.1 Introduction and objectives 665\u003c\/p\u003e \u003cp\u003e26.2 Test scenarios 666\u003c\/p\u003e \u003cp\u003e26.3 Numerical approximations for the Heston model 667\u003c\/p\u003e \u003cp\u003e26.4 Testing different schemes and scenarios 672\u003c\/p\u003e \u003cp\u003e26.5 Results 675\u003c\/p\u003e \u003cp\u003e26.6 Lessons learned 678\u003c\/p\u003e \u003cp\u003e26.7 Extensions, calibration and more 679\u003c\/p\u003e \u003cp\u003e26.8 Other numerical methods for Heston 680\u003c\/p\u003e \u003cp\u003e26.9 Summary and conclusions 681\u003c\/p\u003e \u003cp\u003e26.10 Exercises and projects 681\u003c\/p\u003e \u003cp\u003e\u003cb\u003e27 Excel, C\u003c\/b\u003e++ \u003cb\u003eand Monte Carlo Integration 685\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e27.1 Introduction and objectives 685\u003c\/p\u003e \u003cp\u003e27.2 Integrating applications and Excel 686\u003c\/p\u003e \u003cp\u003e27.3 ATL architecture 686\u003c\/p\u003e \u003cp\u003e27.4 Creating my first ATL project: the steps 693\u003c\/p\u003e \u003cp\u003e27.5 Creating automation add-ins in Excel 695\u003c\/p\u003e \u003cp\u003e27.6 Useful utilities and interoperability projects 696\u003c\/p\u003e \u003cp\u003e27.7 Test Case: a COM add-in and complete code 697\u003c\/p\u003e \u003cp\u003e27.8 Summary and conclusions 707\u003c\/p\u003e \u003cp\u003e27.9 Exercises and projects 707\u003c\/p\u003e \u003cp\u003e\u003cb\u003eReferences 711\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e\u003cb\u003eIndex 719\u003c\/b\u003e\u003c\/p\u003e \u003cb\u003eDANIEL J. DUFFY\u003c\/b\u003e has been working with numerical methods in finance, industry and engineering since 1979. He has written four books on financial models and numerical methods and C++ for computational finance and he has also developed a number of new schemes for this field. He is the founder of Datasim Education and has a PhD in Numerical Analysis from \u003cst1:placename w:st=\"on\"\u003eTrinity\u003c\/st1:placename\u003e \u003cst1:placetype w:st=\"on\"\u003eCollege\u003c\/st1:placetype\u003e, \u003cst1:city w:st=\"on\"\u003e\u003cst1:place w:st=\"on\"\u003eDublin\u003c\/st1:place\u003e\u003c\/st1:city\u003e.  \u003cp\u003e\u003c\/p\u003e \u003cb\u003eJÖRG KIENITZ\u003c\/b\u003e is the head of Quantitative Analysis at Deutsche Postbank AG. He is primarily involved in the developing and implementation of models for pricing of complex derivatives structures and for asset allocation. He is also lecturing at university level on advanced financial modelling and gives courses on ‘Applications of Monte Carlo Methods in Finance’ and on other financial topics including Lévy processes and interest rate models. Joerg holds a Ph.D. in stochastic analysis and probability theory.   \"With many books on C++ and Monte Carlo methods at hand, Daniel and Jörg have taken a serious approach to combine these topics in one volume. It is this combination that makes the book worth reading for a junior quant as an introduction and for a senior quant as a reference guide of some of the recent developments in financial engineering. The authors cover the basic models used mainly in equity derivatives up to stochastic volatility, jump diffusions and Lévy processes. The Monte Carlo method contains computation of Greeks, many variance reduction methods and handling early exercise features. This way the reader can learn the theory and the implementation in C++ (the industry standard in financial engineering) including using the boost library, standard template library (STL) up to building own libraries (DLLs and XLLs). Many case studies with lists of results and numerous exercises make it easy to learn and verify the valuation of financial instruments. You can start your career to become a good quant by reading this book.\"\u003cbr\u003e —\u003cb\u003eUwe Wystup\u003c\/b\u003e, Managing Director of MathFinance AG  \u003cp\u003e\"The reader is presented with a clear and readable self-contained guide for the Monte Carlo framework in C++. It discusses the complete software lifecycle of the Monte Carlo simulation process for computational finance and will therefore be directly useful for the quant and academic community. For sure a hands-on standard reference.\"\u003cbr\u003e —\u003cb\u003eWim Schoutens\u003c\/b\u003e, Research Professor Financial Engineering, Catholic University of Leuven\u003c\/p\u003e  The Monte Carlo method is now acknowledged as being one of the most robust tools for a range of applications in finance, from option pricing to risk management and optimization. One of the best languages for the development of Monte Carlo applications and frameworks is C++, an object-oriented and generic programming language which is also an industry standard.  \u003cp\u003eThis is one of the first books that describe all the steps that are needed in order to analyze, design and implement Monte Carlo applications. It discusses the financial theory as well as the mathematical and numerical background that is needed to write flexible and efficient C++ code using state-of-the-art design and system patterns, object-oriented and generic programming models in combination with standard libraries and tools.\u003c\/p\u003e \u003cp\u003eThe book is divided into four parts, each one dealing with one major aspect of the current problem domain. The features and topics are:\u003c\/p\u003e \u003cul\u003e \u003cli\u003eOption pricing for a range of one-factor and n-factor models;\u003c\/li\u003e \u003cli\u003eEuropean, Asian, baskets, Heston, jump models;\u003c\/li\u003e \u003cli\u003eEarly exercises, calculating option sensitivities;\u003c\/li\u003e \u003cli\u003eThe mathematical theory of n-factor Stochastic Differential Equations (SDE);\u003c\/li\u003e \u003cli\u003eAn introduction to the numerical analysis of SDE;\u003c\/li\u003e \u003cli\u003eModelling SDE and the Finite Difference Method (FDM) in C++;\u003c\/li\u003e \u003cli\u003eApplying design and system patterns (GOF, POSA) for improved design;\u003c\/li\u003e \u003cli\u003eExtensive use of the STL and boost libraries;\u003c\/li\u003e \u003cli\u003eMulti-threading and parallel programming (OpenMP) techniques for Monte Carlo;\u003c\/li\u003e \u003cli\u003eCreating Excel-based applications using xlw, Automation and COM;\u003c\/li\u003e \u003cli\u003eExtra discussion of mathematical foundations for Monte Carlo;\u003c\/li\u003e \u003cli\u003eWorking source code is provided along with numerous examples, exercises and projects related to the extension of the C++ framework.\u003c\/li\u003e \u003c\/ul\u003e \u003cp\u003eThe book is accompanied by a CD which contains the source code for all the examples. It is strongly advised that you experiment with the code by compiling it and extending it to suit your needs. Support is offered via a user forum on www.datasimfinancial.com where you can post queries and communicate with other purchasers of the book.\u003c\/p\u003e","brand":"Wiley","offers":[{"title":"Default Title","offer_id":47989653143781,"sku":"NP9780470060698","price":157.0,"currency_code":"USD","in_stock":false}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/1842\/7735\/files\/9780470060698.jpg?v=1761784968","url":"https:\/\/k12savings.com\/products\/monte-carlo-frameworks-isbn-9780470060698","provider":"K12savings","version":"1.0","type":"link"}