Introduction to the Boost C++ Libraries Volume II - Advanced Libraries
Robert Demming & Daniel J. Duffy
Volume II continues the work and style of Volume I. In particular, we discuss a number of advanced libraries for network programming, interprocess, mathematics and data structures. It has been written for software developers who use Boost C++ libraries to create flexible applications.
|Table of contents||View|
Introduction to the Boost C++ Libraries - Volume I - Foundations
Robert Demming & Daniel J. Duffy
C++ is one of the most important and influential programming languages for application development. It supports the modular, object- oriented and generic programming models and its flexibility has been one of the main reasons why it has been so successful. With the emergence of the Boost Libraries (www.boost.org) we see that C++ is brought to a new level, namely a set of reusable and modular template libraries that C++ developers can use in their applications. This book is dedicated to a number of Boost libraries for higher-order functions, data types and data structures, libraries for text and string processing, multi-threading, random number generation and more. We also discuss how Boost and design patterns are used to promote the flexibility of code.
|Table of contents||View|
Financial Instrument Pricing Using C++ (second edition)
An integrated guide to C++ and computational finance
This complete guide to C++ and computational finance is a follow-up and major extension to Daniel J. Duffy's 2004 edition of Financial Instrument Pricing Using C++. Both C++ and computational finance have evolved and changed dramatically in the last ten years and this book documents these improvements. Duffy focuses on these developments and the advantages for the quant developer by:
- Delving into a detailed account of the new C++11 standard and its applicability to computational finance.
- Using de-facto standard libraries, such as Boost and Eigen to improve developer productivity.
- Developing multiparadigm software using the object-oriented, generic, and functional programming styles.
- Designing flexible numerical algorithms: modern numerical methods and multiparadigm design patterns.
- Providing a detailed explanation of the Finite Difference Methods through six chapters, including new developments such as ADE, Method of Lines (MOL), and Uncertain Volatility Models.
- Developing applications, from financial model to algorithmic design and code, through a coherent approach.
- Generating interoperability with Excel add-ins, C#, and C++/CLI.
- Using random number generation in C++11 and Monte Carlo simulation.
Duffy adopted a spiral model approach while writing each chapter of Financial Instrument Pricing Using C++ 2e: analyse a little, design a little, and code a little. Each cycle ends with a working prototype in C++ and shows how a given algorithm or numerical method works. Additionally, each chapter contains non-trivial exercises and projects that discuss improvements and extensions to the material.
This book is for designers and application developers in computational finance, and assumes the reader has some fundamental experience of C++ and derivatives pricing.
HOW TO RECEIVE THE SOURCE CODE
Once you have purchased a copy of the book please send an email to the author dduffyATdatasim.nl requesting your personal and non-transferable copy of the source code. Proof of purchase is needed. The subject of the mail should be “C++ Book Source Code Request”. You will receive a reply with a zip file attachment.
|Table of contents||View|
C# for Financial Markets
Daniel J. Duffy and Andrea Germani
C# is a modern object-oriented programming language that runs under the Microsoft .NET Framework and it is suitable for the development of pricing and trading applications in quantitative finance. It has functionality to support the needs of quants and traders who develop fixed income and computational finance applications. It is more accessible than C++ and has interfaces with other tools such as Excel, C++, F# and database systems. C# for Financial Markets is a practice-oriented book that shows how to design and program pricing and trading models using the C# programming language. It is a step-by-step account of how to develop software programs that can be used by traders in real life situations. The reader will discover how to design and implement real finance applications including new methodologies that were developed after the crash of 2007. The approach is thorough and comprehensive and the authors use a combination of C# language features, design patterns, mathematics and finance to produce efficient and maintainable software.
Introduction to C++ for Financial Engineers: An Object-Oriented Approach 1st Edition
Daniel J. Duffy
The 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. C++ 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 that discusses 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: Learning the essential syntax of C++ ('getting the fundamentals right') Designing and implementing generic data structures using STL Numerous applications (lattices, finite difference, Monte Carlo, etc) Libraries, design patterns (GOF, POSA) and reusable software frameworks Introduction to COM and C++ to Excel interoperability Each 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. This book is self-contained and we advise its use in combination with the well-known standard reference work by Dr. Stroustrup. Last, 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'. Furthermore, these exercises will also hopefully prepare you for your job interviews! Included with the book is a companion website with all source code, including working code 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.
Finite Difference Methods in Financial Engineering: A Partial Differential Equation Approach
Daniel J. Duffy
The world of quantitative finance (QF) is one of the fastest growing areas of research and its practical applications to derivatives pricing problem. Since the discovery of the famous Black-Scholes equation in the 1970’s we have seen a surge in the number of models for a wide range of products such as plain and exotic options, interest rate derivatives, real options and many others. Gone are the days when it was possible to price these derivatives analytically. For most problems we must resort to some kind of approximate method. In this book we employ partial differential equations (PDE) to describe a range of one-factor and multi-factor derivatives products such as plain European and American options, multi-asset options, Asian options, interest rate options and real options. PDE techniques allow us to create a framework for modeling complex and interesting derivatives products. Having defined the PDE problem we then approximate it using the Finite Difference Method (FDM). This method has been used for many application areas such as fluid dynamics, heat transfer, semiconductor simulation and astrophysics, to name just a few. In this book we apply the same techniques to pricing real-life derivative products. We use both traditional (or well-known) methods as well as a number of advanced schemes that are making their way into the QF literature: Crank-Nicolson, exponentially fitted and higher-order schemes for one-factor and multi-factor options Early exercise features and approximation using front-fixing, penalty and variational methods Modelling stochastic volatility models using Splitting methods Critique of ADI and Crank-Nicolson schemes; when they work and when they don’t work Modelling jumps using Partial Integro Differential Equations (PIDE) Free and moving boundary value problems in QF Included with the book is a CD containing information on how to set up FDM algorithms, how to map these algorithms to C++ as well as several working programs for one-factor and two-factor models. We also provide source code so that you can customize the applications to suit your own needs.
Financial Instrument Pricing Using C++
Daniel J. Duffy
One of the best languages for the development of financial engineering and instrument pricing applications is C++. It has several features that allow developers to write robust, flexible and extensible software systems. It is an ANSI/ISO standard, fully object-oriented and interfaces with many third-party applications. It has support for templates and generic programming, massive reusability using templates (‘write once’) and support for legacy C applications. In this book we bring C++ to the next level by applying it to the design and implementation of classes, libraries and applications for option and derivative pricing models. We employ modern software engineering techniques to produce industrial-strength applications: - Using the Standard Template Library (STL) in finance Creating your own template classes and functions Reusable data structures for vectors, matrices and tensors Classes for numerical analysis (numerical linear algebra …) Solving the Black Scholes equations, exact and approximate solutions Implementing the Finite Difference Method in C++ Integration with the ‘Gang of Four’ Design Patterns Interfacing with Excel (output and Add-Ins) Financial engineering and XML Cash flow and yield curves Included with the book is a CD containing the source code in the Datasim Financial Toolkit that you can use directly. This will get you up to speed with your C++ applications by reusing existing classes and libraries.
Monte Carlo Frameworks: Building Customisable High-performance C++ Applications 1st Edition
Daniel J. Duffy and Joerg Kienitz
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. 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. The book is divided into four parts, each one dealing with one major aspect of the current problem domain. The features and topics are: Option pricing for a range of one-factor and n-factor models; European, Asian, baskets, Heston, jump models; Early exercises, calculating option sensitivities; The mathematical theory of n-factor Stochastic Differential Equations (SDE); An introduction to the numerical analysis of SDE; Modelling SDE and the Finite Difference Method (FDM) in C++; Applying design and system patterns (GOF, POSA) for improved design; Extensive use of the STL and boost libraries; Multi-threading and parallel programming (OpenMP) techniques for Monte Carlo; Creating Excel-based applications using xlw, Automation and COM; Extra discussion of mathematical foundations for Monte Carlo; Working source code is provided along with numerous examples, exercises and projects related to the extension of the C++ framework. The 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.
Numerical Methods in Computational Finance: A Partial Differential Equation (PDE/FDM) Approach
Daniel J. Duffy
This book is a detailed and step-by-step introduction to the mathematical foundations of ordinary and partial differential equations, their approximation by the finite difference method and applications to computational finance. The book is structured so that it can be read by beginners, novices and expert users.
Part A Mathematical Foundation for One-Factor Problems
Chapters 1 to 7 introduce the mathematical and numerical analysis concepts that are needed to understand the finite difference method and its application to computational finance.
Part B Mathematical Foundation for Two-Factor Problems
Chapters 8 to 13 discuss a number of rigorous mathematical techniques relating to elliptic and parabolic partial differential equations in two space variables. In particular, we develop strategies to preprocess and modify a PDE before we approximate it by the finite difference method, thus avoiding ad-hoc and heuristic tricks.
Part C The Foundations of the Finite Difference Method (FDM)
Chapters 14 to 17 introduce the mathematical background to the finite difference method for initial boundary value problems for parabolic PDEs. It encapsulates all the background information to construct stable and accurate finite difference schemes.
Part D Advanced Finite Difference Schemes for Two-Factor Problems
Chapters 18 to 22 introduce a number of modern finite difference methods to approximate the solution of two factor partial differential equations. This is the only book we know of that discusses these methods in any detail.
Part E Test Cases in Computational Finance
Chapters 23 to 26 are concerned with applications based on previous chapters. We discuss finite difference schemes for a wide range of one-factor and two-factor problems.
This book is suitable as an entry-level introduction as well as a detailed treatment of modern methods as used by industry quants and MSc/MFE students in finance. The topics have applications to numerical analysis, science and engineering.
More on computational finance and the author’s online courses, see www.datasim.nl.