You have no items in your shopping cart.

Monte Carlo Frameworks: Building Customisable High-performance C++ Applications

Monte Carlo Frameworks Building Customisable High-performance C++ Applications

  • Author:
  • Publisher: John Wiley & Sons
  • ISBN: 9780470060698
  • Published In: September 2009
  • Format: Hardback , 775 pages
  • Jurisdiction: International ? Disclaimer:
    Countri(es) stated herein are used as reference only
Out of stock
OR
  • Description 
  • Contents 
  • Author 
  • Details

    This 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.

     

    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.  

    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 ++.

  • Notation.

    Executive Overview.

    0 My First Monte Carlo Application One-Factor Problems.

    0.1 Introduction and objectives.

    0.2 Description of the problem.

    0.3 Ordinary differential equations (ODE).

    0.4 Stochastic differential equations (SDE) and their solution.

    0.5 Generating uniform and normal random numbers.

    0.6 The Monte Carlo method.

    0.7 Calculating sensitivities.

    0.8 The initial C++ Monte Carlo framework: hierarchy and paths.

    0.9 The initial C++ Monte Carlo framework: calculating option price.

    0.10 The predictor-corrector method: a scheme for all seasons?

    0.11 The Monte Carlo approach: caveats and nasty surprises.

    0.12 Summary and conclusions.

    0.13 Exercises and projects.

    PART I FUNDAMENTALS.

    1 Mathematical Preparations for the Monte Carlo Method.

    1.1 Introduction and objectives.

    1.2 Random variables.

    1.3 Discrete and continuous random variables.

    1.4 Multiple random variables.

    1.5 A short history of integration.

    1.6 σ-algebras, measurable spaces and measurable functions.

    1.7 Probability spaces and stochastic processes.

    1.8 The Ito stochastic integral.

    1.9 Applications of the Lebesgue theory.

    1.10 Some useful inequalities.

    1.11 Some special functions.

    1.12 Convergence of function sequences.

    1.13 Applications to stochastic analysis.

    1.14 Summary and conclusions.

    1.15 Exercises and projects.

    2 The Mathematics of Stochastic Differential Equations (SDE).

    2.1 Introduction and objectives.

    2.2 A survey of the literature.

    2.3 Mathematical foundations for SDEs.

    2.4 Motivating random (stochastic) processes.

    2.5 An introduction to one-dimensional random processes.

    2.6 Stochastic differential equations in Banach spaces: prologue.

    2.7 Classes of SIEs and properties of their solutions.

    2.8 Existence and uniqueness results.

    2.9 A special SDE: the Ito equation.

    2.10 Numerical approximation of SIEs.

    2.11 Transforming an SDE: the Ito formula.

    2.12 Summary and conclusions.

    2.13 Appendix: proof of the Banach fixed-point theorem and some applications.

    2.14 Exercises and projects.

    3 Alternative SDEs and Toolkit Functionality.

    3.1 Introduction and objectives.

    3.2 Bessel processes.

    3.3 Random variate generation.

    3.4 The exponential distribution.

    3.5 The beta and gamma distributions.

    3.6 The chi-squared, Student and other distributions.

    3.7 Discrete variate generation.

    3.8 The Fokker-Planck equation.

    3.9 The relationship with PDEs.

    3.10 Alternative stochastic processes.

    3.11 Using associative arrays and matrices to model lookup tables and volatility surfaces.

    3.12 Summary and conclusion.

    3.13 Appendix: statistical distributions and special functions in the Boost library.

    3.14 Exercises and projects.

    4 An Introduction to the Finite Difference Method for SDE.

    4.1 Introduction and objectives.

    4.2 An introduction to discrete time simulation, motivation and notation.

    4.3 Foundations of discrete time approximation: ordinary differential equations.

    4.4 Foundations of discrete time approximation: stochastic differential equations.

    4.5 Some common schemes for one-factor SDEs.

    4.6 The Milstein schemes.

    4.7 Predictor-corrector methods.

    4.8 Stiff ordinary and stochastic differential equations.

    4.9 Software design and C++ implementation issues.

    4.10 Computational results.

    4.11 Aside: the characteristic equation of a difference scheme.

    4.12 Summary and conclusions.

    4.13 Exercises and projects.

    5 Design and Implementation of Finite Difference Schemes in Computational Finance.

    5.1 Introduction and objectives.

    5.2 Modelling SDEs and FDM in C++.

    5.3 Mathematical and numerical tools.

    5.4 The Karhunen-Loeve expansion.

    5.5 Cholesky decomposition.

    5.6 Spread options with stochastic volatility.

    5.7 The Heston stochastic volatility model.

    5.8 Path-dependent options and the Monte Carlo method.

    5.9 A small software framework for pricing options.

    5.10 Summary and conclusions.

    5.11 Exercises and projects.

    6 Advanced Finance Models and Numerical Methods.

    6.1 Introduction and objectives.

    6.2 Processes with jumps.

    6.3 Lévy processes.

    6.4 Measuring the order of convergence.

    6.5 Mollifiers, bump functions and function regularisation.

    6.6 When Monte Carlo does not work: counterexamples.

    6.7 Approximating SDEs using strong Taylor, explicit and implicit schemes.

    6.8 Summary and conclusions.

    6.9 Exercises and projects.

    7 Foundations of the Monte Carlo Method.

    7.1 Introduction and objectives.

    7.2 Basic probability.

    7.3 The Law of Large Numbers.

    7.4 The Central Limit Theorem.

    7.5 Quasi Monte Carlo methods.

    7.6 Summary and conclusions.

    7.7 Exercises and projects.

    PART II DESIGN PATTERNS.

    8 Architectures and Frameworks for Monte Carlo Methods: Overview.

    8.1 Goals of Part II of this book.

    8.2 Introduction and objectives of this chapter.

    8.3 The advantages of domain architectures.

    8.4 Software Architectures for the Monte Carlo method.

    8.5 Summary and conclusions.

    8.6 Exercises and projects.

    9 System Decomposition and System Patterns.

    9.1 Introduction and objectives.

    9.2 Software development process; a critique.

    9.3 System decomposition, from concept to code.

    9.4 Decomposition techniques, the process.

    9.5 Whole-part.

    9.6 Whole-part decomposition; the process.

    9.7 Presentation-Abstraction Control (PAC).

    9.8 Building complex objects and configuring applications.

    9.9 Summary and conclusions.

    9.10 Exercises and projects.

    10 Detailed Design using the GOF Patterns.

    10.1 Introduction and objectives.

    10.2 Discovering which patterns to use.

    10.3 An overview of the GOF patterns.

    10.4 The essential structural patterns.

    10.5 The essential creational patterns.

    10.6 The essential behavioural patterns.

    10.7 Summary and conclusions.

    10.8 Exercises and projects.

    11 Combining Object-Oriented and Generic Programming Models.

    11.1 Introduction and objectives.

    11.2 Using templates to implement components: overview.

    11.3 Templates versus inheritance, run-time versus compile-time.

    11.4 Advanced C++ templates.

    11.5 Traits and policy-based design.

    11.6 Creating templated design patterns.

    11.7 A generic Singleton pattern.

    11.8 Generic composite structures.

    11.9 Summary and conclusions.

    11.10 Exercises and projects.

    12 Data Structures and their Application to the Monte Carlo Method.

    12.1 Introduction and objectives.

    12.2 Arrays, vectors and matrices.

    12.3 Compile-time vectors and matrices.

    12.4 Creating adapters for STL containers.

    12.5 Date and time classes.

    12.6 The class string.

    12.7 Modifying strings.

    12.8 A final look at the generic composite.

    12.9 Summary and conclusions.

    12.10 Exercises and projects.

    13 The Boost Library: An Introduction.

    13.1 Introduction and objectives.

    13.2 A taxonomy of C++ pointer types.

    13.3 Modelling homogeneous and heterogeneous data in Boost.

    13.4 Boost signals: notification and data synchronisation.

    13.5 Input and output.

    13.6 Linear algebra and uBLAS.

    13.7 Date and time.

    13.8 Other libraries.

    13.9 Summary and conclusions.

    13.10 Exercises and projects.

    PART III ADVANCED APPLICATIONS.

    14 Instruments and Payoffs.

    14.1 Introduction and objectives.

    14.2 Creating a C++ instrument hierarchy.

    14.3 Modelling payoffs in C++.

    14.4 Summary and conclusions.

    14.5 Exercises and projects.

    15 Path-Dependent Options.

    15.1 Introduction and objectives.

    15.2 Monte Carlo – a simple general-purpose version.

    15.3 Asian options.

    15.4 Options on the running Max/Min.

    15.5 Barrier options.

    15.6 Lookback options.

    15.7 Cliquet Options.

    15.8 Summary and conclusions.

    15.9 Exercises and projects.

    16 Affine Stochastic Volatility Models.

    16.1 Introduction and objectives.

    16.2 The volatility skew/smile.

    16.3 The Heston model.

    16.4 The Bates/SVJ model.

    16.5 Implementing the Bates model.

    16.6 Numerical results – European options.

    16.7 Numerical results – skew-dependent options.

    16.8 XLL – using DLL within Microsoft Excel.

    16.9 Analytic solutions for affine stochastic volatility models.

    16.10 Summary and conclusions.

    16.11 Exercises and projects.

    17 Multi-Asset Options.

    17.1 Introduction and objectives.

    17.2 Modelling in multiple dimensions.

    17.3 Implementing payoff classes for multi-asset options.

    17.4 Some multi-asset options.

    17.5 Basket options.

    17.6 Min/Max options.

    17.7 Mountain range options.

    17.8 The Heston model in multiple dimensions.

    17.9 Equity interest rate hybrids.

    17.10 Summary and conclusions.

    17.11 Exercises and projects.

    18 Advanced Monte Carlo I – Computing Greeks.

    18.1 Introduction and objectives.

    18.2 The finite difference method.

    18.3 The pathwise method.

    18.4 The likelihood ratio method.

    18.5 Likelihood ratio for finite differences – proxy simulation.

    18.6 Summary and conclusions.

    18.7 Exercises and projects.

    19 Advanced Monte Carlo II – Early Exercise.

    19.1 Introduction and objectives.

    19.2 Description of the problem.

    19.3 Pricing American options by regression.

    19.4 C++ design.

    19.5 Linear least squares regression.

    19.6 Example – step by step.

    19.7 Analysis of the method and improvements.

    19.8 Upper bounds.

    19.9 Examples.

    19.10 Summary and conclusions.

    19.11 Exercises and projects.

    20 Beyond Brownian Motion.

    20.1 Introduction and objectives.

    20.2 Normal mean variance mixture models.

    20.3 The multi-dimensional case.

    20.4 Summary and conclusions.

    20.5 Exercises and projects.

    PART IV SUPPLEMENTS.

    21 C++ Application Optimisation and Performance Improvement.

    21.1 Introduction and objectives.

    21.2 Modelling functions in C++: choices and consequences.

    21.3 Performance issues in C++: classifying potential bottlenecks.

    21.4 Temporary objects.

    21.5 Special features in the Boost library.

    21.6 Boost multiarray library.

    21.7 Boost random number library.

    21.8 STL and Boost smart pointers: final remarks.

    21.9 Summary and conclusions.

    21.10 Exercises, projects and guidelines.

    22 Random Number Generation and Distributions.

    22.1 Introduction and objectives.

    22.2 Uniform number generation.

    22.3 The Sobol class.

    22.4 Number generation due to given distributions.

    22.5 Jump processes.

    22.6 The random generator templates.

    22.7 Tests for randomness.

    22.8 Summary and conclusions.

    22.9 Exercises and projects.

    23 Some Mathematical Background.

    23.1 Introduction and objectives.

    23.2 A matrix class.

    23.3 Matrix functions.

    23.4 Functional analysis.

    23.5 Applications to option pricing.

    23.6 Summary and conclusions.

    23.7 Exercises and projects.

    24 An Introduction to Multi-threaded and Parallel Programming.

    24.1 Introduction and objectives.

    24.2 Shared memory models.

    24.3 Sequential, concurrent and parallel programming 101.

    24.4 How fast is fast? Performance analysis of parallel programs.

    24.5 An introduction to processes and threads.

    24.6 What kinds of applications are suitable for multi-threading?

    24.7 The multi-threaded application lifecycle.

    24.8 Some model architectures.

    24.9 Analysing and designing large software systems: a summary of the steps.

    24.10 Conclusions and summary.

    24.11 Exercises and projects.

    25 An Introduction to OpenMP and its Applications to the Monte Carlo Method.

    25.1 Introduction and objectives.

    25.2 Loop optimisation.

    25.3 An overview of OpenMP.

    25.4 Threads in OpenMP.

    25.5 Loop-level parallelism.

    25.6 Data sharing.

    25.7 Work-sharing and parallel regions.

    25.8 Nested loop optimisation.

    25.9 Scheduling in OpenMP.

    25.10 OpenMP for the Monte Carlo method.

    25.11 Conclusions and summary.

    25.12 Exercises and projects.

    26 A Case Study of Numerical Schemes for the Heston Model.

    26.1 Introduction and objectives.

    26.2 Test scenarios.

    26.3 Numerical approximations for the Heston model.

    26.4 Testing different schemes and scenarios.

    26.5 Results.

    26.6 Lessons learned.

    26.7 Extensions, calibration and more.

    26.8 Other numerical methods for Heston.

    26.9 Summary and conclusions.

    26.10 Exercises and projects.

    27 Excel, C++ and Monte Carlo Integration.

    27.1 Introduction and objectives.

    27.2 Integrating applications and Excel.

    27.3 ATL architecture.

    27.4 Creating my first ATL project: the steps.

    27.5 Creating automation add-ins in Excel.

    27.6 Useful utilities and interoperability projects.

    27.7 Test Case: a COM add-in and complete code.

    27.8 Summary and conclusions.

    27.9 Exercises and projects.

    References.

    Index.

  • DANIEL J. DUFFY 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 Trinity College, Dublin.

    JÖRG KIENITZ 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.

You may also be interested in these books:

KPMG's Insights into IFRS 2023/2024 (20th Edition) (e-Book only)
KPMG's Insights into IFRS 2023/2024 (20th Edition) (e-Book only)

List Price: HKD 2,064.00

HKD 2,002.08 Save HKD 61.92 (3%)

The Hong Kong Company Secretary's Handbook: Practice and Procedure (11th Edition)
The Hong Kong Company Secretary's Handbook: Practice and Procedure (11th Edition)

List Price: HKD 535.00

HKD 518.95 Save HKD 16.05 (3%)

Hong Kong Tax & Accounting Practical Toolkit (Basic Package)
Hong Kong Tax & Accounting Practical Toolkit (Basic Package)
HKD 3,300.00
Consolidated Financial Statements, 10th Edition
Consolidated Financial Statements, 10th Edition

List Price: HKD 710.00

HKD 688.70 Save HKD 21.30 (3%)

Hong Kong Company Secretary's Practice Manual, 5th Edition
Hong Kong Company Secretary's Practice Manual, 5th Edition

List Price: HKD 1,380.00

HKD 1,338.60 Save HKD 41.40 (3%)

A Practical Guide to Company Secretarial Obligations in Singapore, 2nd Edition
A Practical Guide to Company Secretarial Obligations in Singapore, 2nd Edition

List Price: HKD 1,210.00

HKD 1,173.70 Save HKD 36.30 (3%)

Applied Valuation in Hong Kong and Asia Capital Markets
Applied Valuation in Hong Kong and Asia Capital Markets

List Price: HKD 1,380.00

HKD 1,338.60 Save HKD 41.40 (3%)

Hong Kong Financial Reporting Standards for SMEs (2nd Edition)
Hong Kong Financial Reporting Standards for SMEs (2nd Edition)

List Price: HKD 1,500.00

HKD 1,455.00 Save HKD 45.00 (3%)

International Master Tax Guide 2022-23, 8th Edition (2 Volume set)
International Master Tax Guide 2022-23, 8th Edition (2 Volume set)

List Price: HKD 1,940.00

HKD 776.00 Save HKD 1,164.00 (60%)

Derivatives and Hedge Accounting, 2nd Edition
Derivatives and Hedge Accounting, 2nd Edition

List Price: HKD 450.00

HKD 436.50 Save HKD 13.50 (3%)

Hong Kong Company Law & Compliance Practical Toolkit (Basic Package)
Hong Kong Company Law & Compliance Practical Toolkit (Basic Package)
HKD 4,400.00
China Master Tax Guide 2021 (14th Edition)
China Master Tax Guide 2021 (14th Edition)

List Price: HKD 1,680.00

HKD 1,629.60 Save HKD 50.40 (3%)

Tax Accounting in Mergers and Acquisitions (2022)
Tax Accounting in Mergers and Acquisitions (2022)

List Price: HKD 5,090.00

HKD 4,937.30 Save HKD 152.70 (3%)

Audit and Assurance: Principles and Practices in Singapore, 5th Edition
Audit and Assurance: Principles and Practices in Singapore, 5th Edition

List Price: HKD 1,000.00

HKD 970.00 Save HKD 30.00 (3%)

Hong Kong Company Secretary Checklist
Hong Kong Company Secretary Checklist

List Price: HKD 1,380.00

HKD 1,338.60 Save HKD 41.40 (3%)