Financial Instrument Pricing Using C++.
Material type: TextSeries: The Wiley Finance SerPublisher: New York : John Wiley & Sons, Incorporated, 2013Copyright date: ©2004Edition: 1st edDescription: 1 online resource (434 pages)Content type: text Media type: computer Carrier type: online resourceISBN: 9780470020487Subject(s): C++ (Computer program language) | Financial engineering | Investments -- Mathematical modelsGenre/Form: Electronic books.Additional physical formats: Print version:: Financial Instrument Pricing Using C++DDC classification: 332.6/0285/5133 LOC classification: HG4515.2.D85 2004Online resources: Click to ViewIntro -- Financial Instrument Pricing Using C++ -- Contents -- 1 Executive Overview of this Book -- 1.1 What is this book? -- 1.2 What's special about this book? -- 1.3 Who is this book for? -- 1.4 Software requirements -- 1.5 The structure of this book -- 1.6 Pedagogical approach -- 1.7 What this book is not -- 1.8 Source code on the CD -- PART I TEMPLATE PROGRAMMING IN C++ -- 2 A Gentle Introduction to Templates in C++ -- 2.1 Introduction and objectives -- 2.2 Motivation and background -- 2.3 Defining a template -- 2.3.1 An example -- 2.4 Template instantiation -- 2.5 Function templates -- 2.5.1 An example -- 2.6 Default values and typedefs -- 2.7 Guidelines when implementing templates -- 2.8 Conclusions and summary -- 3 An Introduction to the Standard Template Library -- 3.1 Introduction and objectives -- 3.1.1 Why use STL? -- 3.2 A Bird's-eye view of STL -- 3.3 Sequence containers -- 3.3.1 Programming lists -- 3.3.2 Vectors and arrays in STL -- 3.4 Associative containers -- 3.4.1 Sets in STL -- 3.4.2 Maps in STL -- 3.5 Iterators in STL -- 3.5.1 What kinds of iterators? -- 3.6 Algorithms -- 3.7 Using STL for financial instruments -- 3.8 Conclusions and summary -- 4 STL for Financial Engineering Applications -- 4.1 Introduction and objectives -- 4.2 Clever data structures -- 4.2.1 A simple output mechanism -- 4.3 Set theory and STL -- 4.4 Useful algorithms -- 4.5 STL adaptor containers -- 4.6 Conclusions and summary -- 5 The Property Pattern in Financial Engineering -- 5.1 Introduction and objectives -- 5.2 The Property pattern -- 5.2.1 Requirements for a Property pattern -- 5.3 An example -- 5.4 Extending the Property pattern: property sets and property lists -- 5.4.1 An example -- 5.5 Properties and exotic options -- 5.5.1 Example: Executive options -- 5.6 Conclusions and summary -- PART II BUILDING BLOCK CLASSES.
6 Arrays, Vectors and Matrices -- 6.1 Introduction and objectives -- 6.2 Motivation and background -- 6.3 A layered approach -- 6.4 The Array and Matrix classes in detail -- 6.4.1 Simple print functions -- 6.4.2 Array example -- 6.4.3 Matrix example -- 6.5 The Vector and NumericMatrix classes in detail -- 6.5.1 Vector example -- 6.5.2 NumericMatrix example -- 6.6 Associative arrays and matrices -- 6.7 Conclusions and summary -- 7 Arrays and Matrix Properties -- 7.1 Introduction and objectives -- 7.2 An overview of the functionality -- 7.3 Software requirements -- 7.3.1 Accuracy -- 7.3.2 Efficiency -- 7.3.3 Reliability -- 7.3.4 Understandability -- 7.4 The core processes -- 7.4.1 Interactions between matrices and vectors -- 7.4.2 Some examples -- 7.5 Other function categories -- 7.5.1 Measures of central tendency -- 7.5.2 Measures of dispersion -- 7.5.3 Moments, skewness, kurtosis -- 7.5.4 Inequalities -- 7.6 Using the functions -- 7.6.1 Calculating historical volatility -- 7.6.2 Variance of return of a portfolio -- 7.7 An introduction to exception handling -- 7.7.1 Try, throw and catch: A bit like tennis -- 7.8 Conclusions and summary -- 8 Numerical Linear Algebra -- 8.1 Introduction and objectives -- 8.2 An introduction to numerical linear algebra -- 8.2.1 Direct methods -- 8.2.2 Iterative methods -- 8.3 Tridiagonal systems -- 8.3.1 LU decomposition -- 8.3.2 Godunov's Double Sweep method -- 8.3.3 Designing and implementing tridiagonal schemes -- 8.4 Block tridiagonal systems -- 8.5 What requirements should our matrix satisfy? -- 8.5.1 Positive-definite matrices and diagonal dominance -- 8.5.2 M-Matrices -- 8.6 Conclusions and summary -- 9 Modelling Functions in C++ -- 9.1 Introduction and objectives -- 9.2 Function pointers in C++ -- 9.3 Function objects in STL -- 9.3.1 Comparison functions -- 9.3.2 STL and financial engineering.
9.4 Some function types -- 9.4.1 Applications in numerical analysis and financial engineering -- 9.4.2 An example: Functions in option pricing -- 9.5 Creating your own function classes -- 9.6 Arrays of functions -- 9.7 Vector functions -- 9.8 Real-valued functions -- 9.9 Vector-valued functions -- 9.10 Conclusions and summary -- 10 C++ Classes for Statistical Distributions -- 10.1 Introduction and objectives -- 10.2 Discrete and continuous probability distribution functions -- 10.3 Continuous distributions -- 10.3.1 Uniform (rectangular) distribution -- 10.3.2 Normal distribution -- 10.3.3 Lognormal distribution -- 10.3.4 Gamma distribution and its specialisations -- 10.4 Discrete distributions -- 10.4.1 Poisson distribution -- 10.4.2 Binomial and Bernoulli distributions -- 10.4.3 Pascal and geometric distributions -- 10.5 Tests -- 10.5.1 Continuous distributions -- 10.5.2 Discrete distributions -- 10.6 Conclusions and summary -- PART III ORDINARY AND STOCHASTIC DIFFERENTIAL EQUATIONS -- 11 Numerical Solution of Initial Value Problems: Fundamentals -- 11.1 Introduction and objectives -- 11.2 A model problem -- 11.2.1 Qualitative properties of the solution -- 11.3 Discretisation -- 11.4 Common schemes -- 11.5 Some theoretical issues -- 11.6 Fitting: Special schemes for difficult problems -- 11.7 Non-linear scalar problems and predictor-corrector methods -- 11.8 Extrapolation techniques -- 11.9 C++ design and implementation -- 11.10 Generalisations -- 11.11 Conclusions and summary -- 12 Stochastic Processes and Stochastic Differential Equations -- 12.1 Introduction and objectives -- 12.2 Random variables and random processes -- 12.2.1 Random variables -- 12.2.2 Generating random variables -- 12.2.3 Random (stochastic) processes -- 12.3 An introduction to stochastic differential equations -- 12.4 Some finite difference schemes.
12.4.1 Improving the accuracy: Richardson extrapolation -- 12.5 Which scheme to use? -- 12.6 Systems of SDEs -- 12.7 Conclusions and summary -- 13 Two-Point Boundary Value Problems -- 13.1 Introduction and objectives -- 13.2 Description of problem -- 13.3 (Traditional) centred-difference schemes -- 13.3.1 Does the discrete system have a solution? -- 13.3.2 Extrapolation -- 13.4 Approximation of the boundary conditions -- 13.4.1 Linearity boundary condition -- 13.5 Exponentially fitted schemes and convection-diffusion -- 13.6 Approximating the derivatives -- 13.7 Design issues -- 13.8 Conclusions and summary -- 14 Matrix Iterative Methods -- 14.1 Introduction and objectives -- 14.2 Iterative methods -- 14.3 The Jacobi method -- 14.4 Gauss-Seidel method -- 14.5 Successive overrelaxation (SOR) -- 14.6 Other methods -- 14.6.1 The conjugate gradient method -- 14.6.2 Block SOR -- 14.6.3 Solving sparse systems of equations -- 14.7 The linear complementarity problem -- 14.8 Implementation -- 14.9 Conclusions and summary -- PART IV PROGRAMMING THE BLACK-SCHOLES ENVIRONMENT -- 15 An Overview of Computational Finance -- 15.1 Introduction and objectives -- 15.2 The development life cycle -- 15.3 Partial differential equations -- 15.4 Numerical approximation of PDEs -- 15.5 The class of finite difference schemes -- 15.6 Special schemes for special problems -- 15.7 Implementation issues and the choice of programming language -- 15.8 Origins and application areas -- 15.9 Conclusions and summary -- 16 Finite Difference Schemes for Black-Scholes -- 16.1 Introduction and objectives -- 16.2 Model problem: The one-dimensional heat equation -- 16.3 The Black-Scholes equation -- 16.4 Initial conditions and exotic options payoffs -- 16.4.1 Payoff functions in options modelling -- 16.5 Implementation -- 16.6 Method of lines: A whirlwind introduction.
16.7 Conclusions and summary -- 17 Implicit Finite Difference Schemes for Black-Scholes -- 17.1 Introduction and objectives -- 17.2 Fully implicit method -- 17.3 An introduction to the Crank-Nicolson method -- 17.4 A critique of Crank-Nicolson -- 17.4.1 How are derivatives approximated? -- 17.4.2 Boundary conditions -- 17.4.3 Initial conditions -- 17.4.4 Proving stability -- 17.5 Is there hope? the Keller scheme -- 17.5.1 The advantages of the Box scheme -- 17.6 Conclusions and summary -- 18 Special Schemes for Plain and Exotic Options -- 18.1 Introduction and objectives -- 18.2 Motivating exponentially fitted schemes -- 18.2.1 A new class of robust difference schemes -- 18.3 Exponentially fitted schemes for parabolic problems -- 18.3.1 The fitted scheme in more detail: Main results -- 18.4 What happens when the volatility goes to zero? -- 18.4.1 Graceful degradation -- 18.5 Exponential fitting with explicit time -- 18.5.1 An explicit time-marching scheme -- 18.6 Exponential fitting and exotic options -- 18.7 Some final remarks -- 19 My First Finite Difference Solver -- 19.1 Introduction and objectives -- 19.2 Modelling partial differential equations in C++ -- 19.2.1 Function classes in C++ -- 19.2.2 Function classes for partial differential equations -- 19.3 Finite difference schemes as C++ classes, Part I -- 19.4 Finite difference schemes as C++ classes, Part II -- 19.5 Initialisation issues -- 19.5.1 Functions and parameters -- 19.5.2 The main program -- 19.6 Interfacing with Excel -- 19.7 Conclusions and summary -- 20 An Introduction to ADI and Splitting Schemes -- 20.1 Introduction and objectives -- 20.2 A model problem -- 20.3 Motivation and history -- 20.4 Basic ADI scheme for the heat equation -- 20.4.1 Three-dimensional heat equation -- 20.5 Basic splitting scheme for the heat equation -- 20.5.1 Three-dimensional heat equation.
20.6 Approximating cross-derivatives.
Daniel Duffy works for Datasim, an Amsterdam-based trainer and software developer (www.datasim-component.com, www.datasim.nl). He has been working in IT since 1979 and with object-oriented technology since 1987. He received his MSc and PhD theses (in numerical analysis) from Trinity College, Dublin. His current interests are in the modelling of financial instruments using numerical methods (for example, finite difference method) and C++. He can be contacted at dduffy@datasim.nl.
Description based on publisher supplied metadata and other sources.
Electronic reproduction. Ann Arbor, Michigan : ProQuest Ebook Central, 2018. Available via World Wide Web. Access may be limited to ProQuest Ebook Central affiliated libraries.
There are no comments on this title.