Wiley - Financial Instrument Pricing Using CPP
Table of Contents
Financial Instrument Pricing Using C++
Chapter 1: Executive Overview of 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++
Chapter 2: A Gentle Introduction to Templates in C++
2.2 MOTIVATION AND BACKGROUND
2.3 DEFINING A TEMPLATE
2.4 TEMPLATE INSTANTIATION
2.5 FUNCTION TEMPLATES
2.6 DEFAULT VALUES AND TYPEDEFS
2.7 GUIDELINES WHEN IMPLEMENTING TEMPLATES
2.8 CONCLUSIONS AND SUMMARY
Chapter 3: An Introduction to the Standard Template Library
3.2 A BIRD's-EYE VIEW OF STL
3.3 SEQUENCE CONTAINERS
3.4 ASSOCIATIVE CONTAINERS
3.5 ITERATORS IN STL
3.6 ALGORITHMS
3.7 USING STL FOR FINANCIAL INSTRUMENTS
3.8 CONCLUSIONS AND SUMMARY
Chapter 4: STL for Financial Engineering Applications
4.2 CLEVER DATA STRUCTURES
4.3 SET THEORY AND STL
4.4 USEFUL ALGORITHMS
4.5 STL ADAPTOR CONTAINERS
4.6 CONCLUSIONS AND SUMMARY
Chapter 5: The Property Pattern in Financial Engineering
5.2 THE PROPERTY PATTERN
5.3 AN EXAMPLE
5.4 EXTENDING THE PROPERTY PATTERN: PROPERTY SETS AND PROPERTY LISTS
5.5 PROPERTIES AND EXOTIC OPTIONS
5.6 CONCLUSIONS AND SUMMARY
Part II: Building Block Classes
Chapter 6: Arrays, Vectors and Matrices
6.2 MOTIVATION AND BACKGROUND
6.3 A LAYERED APPROACH
6.4 THE ARRAY AND MATRIX CLASSES IN DETAIL
6.5 THE VECTOR AND NUMERICMATRIX CLASSES IN DETAIL
6.6 ASSOCIATIVE ARRAYS AND MATRICES
6.7 CONCLUSIONS AND SUMMARY
Chapter 7: Arrays and Matrix Properties
7.2 AN OVERVIEW OF THE FUNCTIONALITY
7.3 SOFTWARE REQUIREMENTS
7.4 THE CORE PROCESSES
7.5 OTHER FUNCTION CATEGORIES
7.6 USING THE FUNCTIONS
7.7 AN INTRODUCTION TO EXCEPTION HANDLING
7.8 CONCLUSIONS AND SUMMARY
Chapter 8: Numerical Linear Algebra
8.2 AN INTRODUCTION TO NUMERICAL LINEAR ALGEBRA
8.3 TRIDIAGONAL SYSTEMS
8.4 BLOCK TRIDIAGONAL SYSTEMS
8.5 WHAT REQUIREMENTS SHOULD OUR MATRIX SATISFY?
8.6 CONCLUSIONS AND SUMMARY
Chapter 9: Modelling Functions in C++
9.2 FUNCTION POINTERS IN C++
9.3 FUNCTION OBJECTS IN STL
9.4 SOME FUNCTION TYPES
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
Chapter 10: C++ Classes for Statistical Distributions
10.2 DISCRETE AND CONTINUOUS PROBABILITY DISTRIBUTION FUNCTIONS
10.3 CONTINUOUS DISTRIBUTIONS
10.4 DISCRETE DISTRIBUTIONS
10.5 TESTS
10.6 CONCLUSIONS AND SUMMARY
Part III: Ordinary and Stochastic Differential Equations
Chapter 11: Numerical Solution of Initial Value Problems: Fundamentals
11.2 A MODEL PROBLEM
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
Chapter 12: Stochastic Processes and Stochastic Differential Equations
12.2 RANDOM VARIABLES AND RANDOM PROCESSES
12.3 AN INTRODUCTION TO STOCHASTIC DIFFERENTIAL EQUATIONS
12.4 SOME FINITE DIFFERENCE SCHEMES
12.5 WHICH SCHEME TO USE?
12.6 SYSTEMS OF SDEs
12.7 CONCLUSIONS AND SUMMARY
Chapter 13: Two-Point Boundary Value Problems
13.2 DESCRIPTION OF PROBLEM
13.3 (TRADITIONAL) CENTRED-DIFFERENCE SCHEMES
13.4 APPROXIMATION OF THE BOUNDARY CONDITIONS
13.5 EXPONENTIALLY FITTED SCHEMES AND CONVECTION–DIFFUSION
13.6 APPROXIMATING THE DERIVATIVES
13.7 DESIGN ISSUES
13.8 CONCLUSIONS AND SUMMARY
Chapter 14: Matrix Iterative Methods
14.2 ITERATIVE METHODS
14.3 THE JACOBI METHOD
14.4 GAUSS-SEIDEL METHOD
14.5 SUCCESSIVE OVERRELAXATION (SOR)
14.6 OTHER METHODS
14.7 THE LINEAR COMPLEMENTARITY PROBLEM
14.8 IMPLEMENTATION
14.9 CONCLUSIONS AND SUMMARY
Part IV: Programming the Black – Scholes Environment
Chapter 15: An Overview of Computational Finance
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
Chapter 16: Finite Difference Schemes for Black – Scholes
16.2 MODEL PROBLEM: THE ONE-DIMENSIONAL HEAT EQUATION
16.3 THE BLACK-SCHOLES EQUATION
16.4 INITIAL CONDITIONS AND EXOTIC OPTIONS PAYOFFS
16.5 IMPLEMENTATION
16.6 METHOD OF LINES: A WHIRLWIND INTRODUCTION
16.7 CONCLUSIONS AND SUMMARY
Chapter 17: Implicit Finite Difference Schemes for Black – Scholes
17.2 FULLY IMPLICIT METHOD
17.3 AN INTRODUCTION TO THE CRANK–NICOLSON METHOD
17.4 A CRITIQUE OF CRANK–NICOLSON
17.5 IS THERE HOPE? THE KELLER SCHEME
17.6 CONCLUSIONS AND SUMMARY
Chapter 18: Special Schemes for Plain and Exotic Options
18.2 MOTIVATING EXPONENTIALLY FITTED SCHEMES
18.3 EXPONENTIALLY FITTED SCHEMES FOR PARABOLIC PROBLEMS
18.4 WHAT HAPPENS WHEN THE VOLATILITY GOES TO ZERO?
18.5 EXPONENTIAL FITTING WITH EXPLICIT TIME
18.6 EXPONENTIAL FITTING AND EXOTIC OPTIONS
18.7 SOME FINAL REMARKS
Chapter 19: My First Finite Difference Solver
19.2 MODELLING PARTIAL DIFFERENTIAL EQUATIONS IN C++
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.6 INTERFACING WITH EXCEL
19.7 CONCLUSIONS AND SUMMARY
Chapter 20: An Introduction to ADI and Splitting Schemes
20.2 A MODEL PROBLEM
20.3 MOTIVATION AND HISTORY
20.4 BASIC ADI SCHEME FOR THE HEAT EQUATION
20.5 BASIC SPLITTING SCHEME FOR THE HEAT EQUATION
20.6 APPROXIMATING CROSS-DERIVATIVES
20.7 HANDLING BOUNDARY CONDITIONS
20.8 ALGORITHMS AND DESIGN ISSUES
20.9 CONCLUSIONS AND SUMMARY
Chapter 21: Numerical Approximation of Two-Factor Derivative Models
21.2 TWO-FACTOR MODELS IN FINANCIAL ENGINEERING
21.3 FINITE DIFFERENCE APPROXIMATIONS
21.4 ADI SCHEMES FOR ASIAN OPTIONS
21.5 SPLITTING SCHEMES
21.6 CONCLUSIONS AND SUMMARY
Part V: Design Patterns
Chapter 22: A C++ Application for Displaying Numeric Data
22.2 INPUT MECHANISMS
22.3 CONVERSION AND PROCESSING MECHANISMS
22.4 OUTPUT AND DISPLAY MECHANISMS
22.5 PUTTING IT ALL TOGETHER
22.6 OUTPUT
22.7 OTHER FUNCTIONALITY
22.8 USING EXCEL AND PROPERTY SETS
22.9 EXTENSIONS AND THE ROAD TO DESIGN PATTERNS
22.10 CONCLUSIONS AND SUMMARY
Chapter 23: Object Creational Patterns
23.2 THE SINGLETON PATTERN
23.3 THE PROTOTYPE PATTERN
23.4 FACTORY METHOD PATTERN (VIRTUAL CONSTRUCTOR)
23.5 ABSTRACT FACTORY PATTERN
23.6 APPLICATIONS TO FINANCIAL ENGINEERING
23.7 CONCLUSIONS AND SUMMARY
Chapter 24: Object Structural Patterns
24.2 KINDS OF STRUCTURAL RELATIONSHIPS BETWEEN CLASSES
24.3 WHOLE-PART PATTERN
24.4 THE COMPOSITE PATTERN
24.5 THE FACADE PATTERN
24.6 THE BRIDGE PATTERN
24.7 CONCLUSIONS AND SUMMARY
Chapter 25: Object Behavioural Patterns
25.2 KINDS OF BEHAVIOURAL PATTERNS
25.3 ITERATOR PATTERN
25.4 THE VISITOR PATTERN
25.5 NOTIFICATION PATTERNS
25.6 CONCLUSIONS AND SUMMARY
Part VI: Design and Deployment Issues
Chapter 26: An Introduction to the Extensible Markup Language
26.2 A SHORT HISTORY OF XML
26.3 THE XML STRUCTURE
26.4 DOCUMENT TYPE DEFINITION
26.5 EXTENSIBLE STYLESHEET LANGUAGE TRANSFORMATION (XSLT)
26.6 AN APPLICATION OF XML: FINANCIAL PRODUCTS MARKUP LANGUAGE
26.7 CONCLUSIONS AND SUMMARY
Chapter 27: Advanced XML and Programming Interface
27.2 XML SCHEMA
27.3 ACCESSING XML DATA: THE DOCUMENT OBJECT MODEL
27.4 DOM AND C++: THE ESSENTIALS
27.5 DOM, ENTITIES AND PROPERTY SETS
27.6 XML STRUCTURES FOR PLAIN AND BARRIER OPTIONS
27.7 CONCLUSIONS AND SUMMARY
Chapter 28: Interfacing C++ and Excel
28.2 OBJECT MODEL IN EXCEL: AN OVERVIEW
28.3 UNDER THE BONNET: TECHNICAL DETAILS OF C++ INTERFACING TO EXCEL
28.4 IMPLEMENTING THE CORE PROCESS
28.5 EXTENSIONS
28.6 APPLICATION AREAS
28.7 CONCLUSIONS AND SUMMARY
Chapter 29: Advanced Excel Interfacing
29.2 STATUS REPORT AND NEW REQUIREMENTS
29.3 A GENTLE INTRODUCTION TO EXCEL ADD-INS
29.4 AUTOMATION ADD-IN IN DETAIL
29.5 CREATING A COM ADD-IN
29.6 FUTURE TRENDS
29.7 CONCLUSIONS AND SUMMARY
Chapter 30: An Extended Application: Option Strategies and Portfolios
30.2 SPREADS
30.3 COMBINATIONS: STRADDLES AND STRANGLES
30.4 DESIGNING AND IMPLEMENTING SPREADS
30.5 DELTA HEDGING
30.6 AN EXAMPLE
30.7 TIPS AND GUIDELINES
Appendix I: My C++ Refresher
A1.2 WHAT IS C++ AND WHY IS IT IMPORTANT?
A1.3 THE DATASIM C++ SELF-TEST
A1.4 THE ESSENTIALS OF A C++ CLASS: THE CANONICAL HEADER FILE
A1.5 AN OVERVIEW OF OBJECT-ORIENTED PROGRAMMING IN C++
A1.6 THE EUROPEAN OPTION IN C++: THE DETAILS
Appendix II: Dates and Other Temporal Types
A2.2 THE DATE CLASS
A2.3 THE TIME CLASS
A2.4 EXTENSIONS
A2.5 A SIMPLE EXAMPLE
References
Index
Index_B
Index_C
Index_D
Index_E
Index_F
Index_G
Index_H
Index_I
Index_J
Index_K
Index_L
Index_M
Index_N
Index_O
Index_P
Index_Q
Index_R
Index_S
Index_T
Index_U
Index_V
Index_W
Index_X
Index_Y
Index_Z
List of Figures
CD Content
get a great deal on
seo marketing
get a free quote today