SlideShare a Scribd company logo
1 of 63
Using the NAG Library in Excel




                                  Marcin Krzysztofik
                                           NAG Ltd.




Experts in numerical algorithms
and HPC services
Agenda


 NAG Introduction
 Why do Quants love NAG?
 NAG from VBA
 Examples
   • Least Squares Optimisation
   • Local Volatility
   • Nearest Correlation Matrix



                                  2
The Numerical Algorithms Group

 NAG provides mathematical and statistical algorithm
  libraries and compiler widely used in industry and academia
 Founded in 1970 as a co-operative project in UK
 Operates as a commercial, not-for-profit organization
 Worldwide operations
    • Offices in Oxford & Manchester, Chicago, Tokyo, Taipei
    • Technical Support Engineer in Germany
    • Distributors in Brazil, India, Singapore, Mexico…
 Over 3,000 customer sites worldwide
 Staff of ~100, ~70 technical, includes ~25 HPC



                                                                3
NAG Portfolio

 Mathematical, statistical, data analysis components
   • NAG Numerical libraries
   • Connectors for Excel, .NET, R, Java
 NAG Fortran Compiler
   • Windows GUI - Fortran Builder
 HPC software engineering services
   • HECToR support
 Consultancy work for bespoke application
  development


                                                        4
NAG is a HPCFinance partner




       http://www.hpcfinance.eu
       The network is recruiting for
        Early Stage Researchers (ESRs ~ PhD Students)
        Experienced Researchers (ERs ~ Post Docs)       5
The NAG Library Contents
                                          •   Dense Linear Algebra
•   Root Finding
                                          •   Sparse Linear Algebra
•   Summation of Series
                                          •   Correlation & Regression Analysis
•   Quadrature
                                          •   Multivariate Methods
•   Ordinary Differential Equations
                                          •   Analysis of Variance
•   Partial Differential Equations
                                          •   Random Number Generators
•   Numerical Differentiation
                                          •   Univariate Estimation
•   Integral Equations
                                          •   Nonparametric Statistics
•   Mesh Generation
                                          •   Smoothing in Statistics
•   Interpolation
                                          •   Contingency Table Analysis
•   Curve and Surface Fitting
                                          •   Survival Analysis
•   Optimisation
                                          •   Time Series Analysis
•   Approximations of Special Functions
                                          •   Operations Research

                                                                            6
The NAG Library is now at Mark 23

Now available as:
 The NAG Fortran Library
 The NAG Library for SMP & Multicore
 The NAG C Library
 The NAG Toolbox for MATLAB




                                            7
                                        7
NAG Library : new Mark 23
Mark 23 has new functions in many areas including...
 Wavelet Transforms
   • One dimensional continuous transforms  Optimisation
     • Two dimensional discrete single level and        • Multi-start optimisation
         multi-level transforms                         • Minimization by quadratic approximation
   ODE’s                                                   (BOBYQA)
     • BVP solution through Chebyshev pseudo-           •   Stochastic global optimisation using PSO
         spectral method                              RNG’s
   Matrix Operations                                   • Generators of multivariate copulas
     • Matrix exponentials                              • Skip-ahead for Mersenne Twister
     • Functions of real symmetric and Hermitian        • L’Ecuyer MRG32K3a generator
         matricies                                    Statistics
     •   Sparse matrix functions
                                                        • Quantiles of streamed data, bivariate
     •   LAPACK 3.2 Cholesky solvers and                    Student’s t, and two probability density
         factorizations, and many other LAPACK              functions
         driver functions
                                                        •   Nearest correlation matrices
   Interpolation                                       •   Quantile regression
     • Modified Shepard’s method in 4D/5D               •   Peirce Outlier detection
   New vector functions (in G01 and S)                 •   Anderson–Darling goodness-of-fit


                                                                                                       8
NAG Library : new Mark 23
Mark 23 has new functions in many areas including...
 Wavelet Transforms
   • One dimensional continuous transforms  Optimisation
     • Two dimensional discrete single level and        • Multi-start optimisation
         multi-level transforms                         • Minimization by quadratic approximation
   ODE’s                                                   (BOBYQA)
     • BVP solution through Chebyshev pseudo-           •   Stochastic global optimisation using PSO
         spectral method                              RNG’s
   Matrix Operations                                   • Generators of multivariate copulas
     • Matrix exponentials                              • Skip-ahead for Mersenne Twister
     • Functions of real symmetric and Hermitian        • L’Ecuyer MRG32K3a generator
         matricies                                    Statistics
     •   Sparse matrix functions
                                                        • Quantiles of streamed data, bivariate
     •   LAPACK 3.2 Cholesky solvers and                    Student’s t, and two probability density
         factorizations, and many other LAPACK              functions
         driver functions
                                                        •   Nearest correlation matrices
   Interpolation                                       •   Quantile regression
     • Modified Shepard’s method in 4D/5D               •   Peirce Outlier detection
   New vector functions (in G01 and S)                 •   Anderson–Darling goodness-of-fit


                                                                                                       9
Why do Quants love NAG?


Senior quant from Tier 1 Investment Bank
“We deploy production code in C++ embedding NAG C Library functions
wherever we can, but often prototype new models in MATLAB before
writing our C++ code. Having the same NAG algorithms in MATLAB via the
NAG Toolbox for MATLAB is a real win for us”


OK, what more?



                                                                         10
Numerical computation – DIY Vs NAG
   DIY implementations of numerical components have
    their place, but NOT in production code.
     • Handwritten code might be easy to implement, but will…
           NOT be well tested
           NOT be fast
           NOT be stable
           NOT deliver good error handling
    • NAG implementations in contrast are fast and
           Accurate
           Well tested & thoroughly documented
           Give “qualified error” messages e.g. tolerances of answers (which
            the user can choose to ignore, but avoids proceeding blindly)


                                                                                11
Problem 1: Finance PDE Solvers

   Major banks PDE solvers tend to be “proprietary” so
    there is a reluctance to take “end to end” solutions

   Several different numerical components needed
     • Sparse Linear Solvers
     • Functions for finding a range of Eigenvalues (stability
        checkers)
    •   Special Linear Systems solvers (e.g. Banded Matrices)
    •   ..



                                                                 12
Problem 1: Finance PDE Solvers

 Major banks PDE solvers tend to be “proprietary” so
  there is a reluctance to take “end to end” solutions
  NAG to the rescue
 Several different numerical components needed
   • Sparse Linear Solvers √
   • Functions for finding a range of Eigenvalues (stability
        checkers) √
    •   Special Linear Systems solvers (e.g. Banded Matrices) √
    •   .. √ √



                                                                  13
Problem 2: Calibration

   Major banks all need to calibrate their models

   Several different numerical components needed
     • Optimisation functions (e.g. constrained non-linear
      optimisers)
    • Interpolation functions
    • Spline functions
    • ..



                                                             14
Problem 2: Calibration

 Major banks all need to calibrate their models
  NAG to the rescue
 Several different numerical components needed
   • Optimisation functions (e.g. constrained non-linear
      optimisers) √
    • Interpolation functions (used intelligently*) √
    • Spline functions √
    • .. √ √
    *interpolator must be used carefully –must know the properties to pick appropriate method




                                                                                                15
Problem 3: Closed-Form Option Pricing Formulae
   Closed form solutions are useful
     • for validating numerical methods
     • for some calibration problems as input (objective function)
       to optimisers


   Several different numerical components needed
     • FFTs, Quadrature
     • Root finders (single variable)
     • Special functions (Bessel, non-Central Chi, Erf,..)
     • Probability distributions
     • ..
                                                                     16
Problem 3: Closed-Form Option Pricing Formulae
   Closed form solutions are useful
     • for validating numerical methods
     • for some calibration problems as input (objective function)
       to optimisers
  NAG to the rescue
 Several different numerical components needed
   • FFTs, Quadrature √
   • Root finders (single variable) √
   • Special functions (Bessel, non-Central Chi, Erf,..) √
   • Probability distributions √
   • .. √ √
                                                                     17
Problem 4: Simulation (Monte Carlo)
   Simulation is important for scenario generation

   Several different numerical components needed
     • Random Number Generators
     • Brownian bridge constructor
     • Interpolation/Splines
     • Principal Component Analysis
     • Cholesky Decomposition
     • Distributions (uniform, Normal, exponential gamma,
        Poisson, Student’s t, Weibull,..)
    •   ..

                                                            18
Problem 4: Simulation (Monte Carlo)
 Simulation is important for scenario generation
  NAG to the rescue
 Several different numerical components needed
   • Random Number Generators √
   • Brownian bridge constructor √
   • Interpolation/Splines √
   • Principal Component Analysis√
   • Cholesky Decomposition √
   • Distributions (uniform, Normal, exponential gamma,
        Poisson, Student’s t, Weibull,..)√
    •   .. √ √

                                                          19
Problem 5: Risk Matrix VaR

   VaR is important for identifying correlation of one
    asset to another (eg Yen Vs USD)

   Several different numerical components needed
     • Matrix functions
     • Correlation and Regressions
     •
     • ..


                                                          20
Problem 5: Risk Matrix VaR

 VaR is important for identifying correlation of one
  asset to another (eg Yen Vs USD)
  NAG to the rescue
 Several different numerical components needed
   • Matrix functions √
   • Correlation and Regressions √
   •
   • .. √ √


                                                        21
Problem 6: Historical VaR
   This is another VaR methodology (again important
    for identifying what variables might impact you
    most (eg Yen Vs USD))

   Several different numerical components needed
     • Time Series
     • Correlation and Regressions
     • Matrix functions
     • Cholesky Decomp
     • RNGs ..

                                                       22
Problem 6: Historical VaR
 This is another VaR methodology (again important
  for identifying what variables might impact you
  most (eg Yen Vs USD))
  NAG to the rescue
 Several different numerical components needed
   • Time Series √
   • Correlation and Regressions √
   • Matrix functions √
   • Cholesky Decomp √
   • RNGs .. √ √

                                                     23
NAG provides the atomic bricks
   … for the quants to build the walls, houses and fancy
    castles!

   Users know NAG Components are here today,
    tomorrow and beyond
     • Functions are not removed when new ones added without
        sensible notice and advice
    •   NAG functions are well documented


   Lets take a look at Excel & VBA now…

                                                               24
NAG from Excel


 Intro
 Why use NAG from Excel
 How to call NAG from Excel
   • A simple function
   • Callbacks
   • Passing arrays



                               25
NAG from Excel


 Use Excel’s underlying VBA to call external library
 NAG provides VBA Declaration Statements
   • Shipped together with the DLL version of NAG Library
   • Just Ctrl+C Ctrl+V into a VBA module
 Start creating macros and UDFs
   • Macros executed for example via a button
   • User Defined Functions called via Excel Function Wizard



                                                               26
Why NAG & Excel?


 Microsoft Office Excel is the industry-standard
  spreadsheet application.
 Easy to use, intuitive, practical.
 However it’s not a statistical data analysis package...
 And that’s where NAG being great at serious
  numerical calculations comes in!




                                                            27
How to call a simple function?

 S17AEF – returns value of the Bessel function 𝐽0 (𝑥)
 Note:
   • Declaration statements in VB
   • Calling straight from the spreadsheet
   • Calling through a wrapper function
   • Error handling




                                                         28
The IFAIL parameter

IFAIL serves two purposes:
 On input it determines what action the Library
  routine takes when an error is detected:
   • -1 (Soft Fail & Noisy Exit) – error message and continue;
   • 0 (Hard Fail) – error message and stop;
   • 1 (Soft Fail & Quiet Exit) – no error message and continue.
   On output it informs what kind of error has occurred,
    depending on the function in use (see
    documentation for details).


                                                                   29
How to handle callbacks?

 A callback is a piece of executable code that is
  passed as an argument to other code.
 D01BAF – performs numerical integration on a
  function of one variable
   • uses Gaussian quadrature rules
 Note:
   • Visual Basic AddressOf operator to handle callbacks
   • Argument Passing by reference ByRef



                                                           30
How to pass arrays as arguments?

 F07FDF – computes the Cholesky factorization of a
  real symmetric positive definite matrix.
 Note:
   • Reading the array from the worksheet (Range -> Double)
   • Checking if the matrix is a square matrix
   • What if the matrix is not symmetric?




                                                              32
Example




          Least Squares Optimisation




                                       33
1st Example: Least Squares Optimisation
   General formulation of an optimisation problem is
          min F ( x) subject to constraints on x
          xR
            n


    • Constraints can be bound, linear or fully non-linear
    • Example: maximise value of portfolio subject to limits on
      capital, individual positions and overall risk exposure
    • Have routines in NAG Library to solve these problems
   Least squares optimisation addresses the following:
                m
        min  f i 2 ( x) subject to constraints on x
         xR
          n
                i 1
    • Most commonly used in fitting data

                                                                  34
1st Example: Least Squares Optimisation

   Important special case:
                                                  x 
               m
                                                  Ax 
        min   yi  f i ( x)    subject to l       u
                              2
        xR
          n
               i 1                              c( x)
                                                      
    • Used in calibration and non-linear regression, typically in
      the form
                      m
              min   yi  C ( xi ,  )  subject to l    u
                                      2
               R
                n
                      i 1

    • Here 𝐶is a pricing formula (e.g. SABR, Heston, CIR) with
      parameters 𝛽, and (𝑥 𝑖 , 𝑦 𝑖 ) are 𝑚 observed market prices


                                                                    35
1st Example: Least Squares Optimisation
   Another important special case:
                                            x 
            min x A x  b x subject to l  
                  T        T
                                                u
            xR
                                           C x 
                n



    • Called Quadratic Programming
    • 𝐴 and 𝐶 and matrices and 𝑏 is a vector
    • Objective function is quadratic polynomial, constraints are
        linear
    •   Arises in certain asset allocation problems, interpolation
        problems, linear programming problems ...
    •   Emphasis on speed and scale: can have 𝑛 ≥ 20,000 and
        still require a solution in under 0.5s

                                                                     36
1st Example: Mean-Variance Analysis
   Recall classic Markowitz model
                   n
          P( x)   xi Ri  x R subject to    
                                                  n
                                 T
                                                      x 1
                                                 i 1 i
                  i 1
    • Assume return on each asset 𝑖 is 𝑅 𝑖 ~𝑁1 (𝜇 𝑖 , 𝜎 𝑖2 )
    • Assume vector of all 𝑚 returns 𝑅~𝑁 𝑛 (𝜇, A)
    • Therefore return on portfolio 𝑃 𝑥 ~𝑁1 (𝑥 𝑇 𝜇, 𝑥 𝑇 𝐴𝑥)
    • Define “Risk” as variance of return on portfolio, i.e.
         𝑉𝑎𝑟 𝑃(𝑥) = 𝑥 𝑇 𝐴𝑥
    •   Problem: for given level of expected return 𝑟, find the
        portfolio with minimal risk
                                       
         min Var P( x)   x A x s.t. 
                             T                 xi         1
                                                           
         xR n
                                        EP( x)   i xi   r 
                                                             
                                                                    37
1st Example: Mean-Variance Analysis
 Let’s look at some market data
   • 10 big FTSE100 players
   • Market data: 20/05/2003 – 19/06/2009
 Use NAG to compute covariances, returns and
  standard deviations of the stock returns
 Set upper & lower investment constraints
 Optimize
   • Return portfolio risk for given return, sensitivities, shadow
        prices
    •   Plot the Efficient Frontier


                                                                     38
Example




          Local Volatility Model




                                   39
2nd Example: Local Volatility Model
   What’s in a smile?
    • Black-Scholes model is not perfect. Main drawbacks?
    • So traders pick different vol for each combination of
        maturity and strike, in order to get “correct” price
   Local volatility model tries to express this
             dSt  r (t )   (t ) St dt   (t , St ) St dWt
    • Here 𝜎(𝑡, 𝑥) is a function, to be determined
    • Since volatility now depends on time and asset level, we
        could hope that it’s possible to capture smile effect
    •   But what should 𝜎(𝑡, 𝑥) be to achieve this?
    •   Key is Dupire formula

                                                                  40
2nd Example: Local Volatility Model
   Let 𝐶(𝑇, 𝐾) denote price of European call option in
    Local Volatility model
     • By manipulating Kolmogorov forward equation (Fokker-
      Plank equation) together with
                            0 r ( s ) ds                
                                T

           C (T , K )  E  e
                                           maxST  K ,0 
                                                           
                                                          
       we can show that
                           CT   (T )C   (T )C K
             (T , K )  2
                                   K 2C KK
    • Now 𝐶(𝑇, 𝐾) we observe in the market – why? So this
      gives a formula to translate market call quotes into 𝜎(𝑡, 𝑥)

                                                                     41
2nd Example: Local Volatility Model
   Let 𝜃(𝑇, 𝐾) be market implied vol for a call option
     • Then 𝐶 𝑇, 𝐾 = 𝐵𝑆(𝑇, 𝐾, 𝜃(𝑇, 𝐾)) where 𝐵𝑆(. ) is the
      Black-Scholes pricing formula
    • Substituting and simplifying, we arrive at the Dupire
      formula
                             2T   / T  2 K r (T )   (T )  K
        2 (T , K ) 
                                              1 1             
                                                                2

                        K  KK  d  T  K   
                         2
                                                       d  K  
                                             2
                                               K T           
                                                                 
    • So given a smile surface 𝜃(𝑇, 𝐾) we can also recover
       𝜎(𝑡, 𝑥). This more common way of doing things.

                                                                       42
2nd Example: Local Volatility Model



   Sweet – no problems!!




    • Well, no. What’s the problem?




                                      43
2nd Example: Local Volatility Model


   Two problems
     • 1. Dupire formula assumes infinitely many market quotes.
       We only have finitely many. We’ll have to interpolate, and
       this is challenging

    • 2. Once we’ve obtained 𝜎(𝑡, 𝑥), what then? How do we
       price options? Two routes: either Monte Carlo, or PDEs.




                                                                    44
2nd Example: Interpolation
   Interpolation – but that’s just joining the dots!
     • Interpolated surface must be smooth: at least 𝐶 1,2
           Many interpolators can do this, so not such a problem.
    • Worse: the interpolated surface must be arbitrage free!
           E.g. suppose had quotes for maturity 𝑇 and 𝐾 = 50,60,70,80,90.
           Delete quote for 𝐾 = 70 and interpolate over 𝐾 = 50,60,80,90.
           Interpolated value at 𝐾 = 70 must be consistent with current
            market prices – no arbitrage

   Termed shape preserving interpolation – it’s a very
    hard mathematical problem!
     • Research is quite young, and not much in financial space

                                                                             45
2nd Example: Interpolation

   So how is this problem commonly tackled?
     • As best you can
     • One approach – fit monotonic (Hermite) interpolator in
        time, then a cubic spline in space
    •   Make sure 𝜎 𝑡, 𝑥 ≥ 0
            Backward heat problems are unstable
   NAG Library has all these interpolators (and more!)
    • Currently has no routines for shape constrained
        interpolation, but watch this space!



                                                                46
2nd Example: PDE Solution
   Monte Carlo vs PDEs?
    • Local vol model is quite amenable to PDE techniques,
      provided interpolation is good enough
    • Monte Carlo reserved for heavily path-dependent options
   The local volatility model PDE for option price 𝑉 is

           Vt  r (t )   (t ) SVS  1 2  2 (t , S ) S 2VSS  r (t )V

    • NAG Library has many PDE solvers, but which kind of
        solver should we be using?
    •   Decision tree


                                                                            47
2nd Example: NAG PDE Solver
 Try to use most specific solver, rather than most
  general solver
 So seems we should use D03PFF
   • Provided we can massage our PDE into conservative form
   • Conservative form is term used predominantly in
      engineering literature
    • Related to continuity or conservation laws
          Conservation of mass
          Conservation of momentum
          Conservation of energy
          Etc.
    • Many PDEs can be put into conservative form
                                                              48
2nd Example: NAG PDE Solver
   Can re-write our PDE as follows
                                               
        Vt  r    SV   V   1 2  2 S 2     VS   rV
                      S                       S
                                  2S 2 
          1
              Vt 
                     
                        SV                VS   2r   V
        r         S          2r    S          r 

    • Note 𝑟, 𝛾, 𝜎 are still functions. Our boundary conditions
      are at 𝑡 = 𝑇, not 𝑡 = 0. So set 𝜏 = 𝑇 − 𝑡 to get
         1                   2S 2            2r  
             V     SV                VS          V
        r       S         2r    S          r 


                                                                  49
2nd Example: NAG PDE Solver
   So our PDE can be placed in conservative form

   What about flux? How can we get approximate
    solutions?
     • Work it out analytically for your approximate Riemann
      solver of choice: our flux equation is
                             
                       Vt      SV   0
                            S
    • Use a NAG routine to approximate it numerically (D03PUF)
    • Look at Example 2 in D03PFF doc
           Just so happens to have our exact flux equation, with solution


                                                                             50
2nd Example: NAG Interpolators

   Requirements for interpolation
     • 1D monotonic (Hermite) interpolator in time – E01BEF
     • 1D cubic spline interpolator in space – E01BAF
   So far so good. How will we get derivatives?
     • Recall need 𝜃 𝑇 , 𝜃 𝐾 , 𝜃 𝐾𝐾
     • Simple approach – use finite differences
     • Do NOT do this!
     • NAG interpolation routines can also return exact analytic
       derivatives – use these


                                                                   51
2nd Example: PDE Solver


   Before we look at the code:
     • How will we know whether our model and
      implementation are correct ... ?



   Examine the code




                                                52
Example




          Nearest Correlation Matrix




                                       53
3rd Example: Nearest Correlation Matrix

   Correlation between assets
     • We all know what this is ... ?

   Mathematically, a correlation matrix 𝐶 ∈ ℝ 𝑛×𝑛 is ...
    1. Square
    2. Symmetric
    3. Has ones on diagonal
    4. Is positive semi-definite: 𝑥 𝑇 𝐶𝑥 ≥ 0 for all 𝑥 ∈ ℝ 𝑛


                                                               54
3rd Example: Nearest Correlation Matrix


   How do we estimate correlations?
     • Historical data
     • Parametric methods such as Gaussian Copulas
     • Try to back it out from options markets

   Typically 1, 2 and 3 easy enough to ensure
     • Ensuring positive semi-definite can be tricky



                                                       55
3rd Example: Nearest Correlation Matrix
   Historical data
     • Take time series for several assets and try to estimate
        correlation
   •    Perhaps time series model with exponential weights?
 Gaussian copula
                                                         
           G (u )  FZ (u )   C  1 (u1 ), ,  1 (un ) for u  [0,1]n
        where 𝐹 𝑍 𝑢 = ℙ(𝑍 ≤ 𝑢) and Z~𝑁 𝑛 (0, C). Then set
                FX ( x)  G F1 ( x1 ), , Fn ( xn )  for x  R n
        where 𝐹𝑖 is the marginal distribution of asset 𝑋 𝑖
    •   Now only need 𝐹𝑖 and 𝐶, but still have to estimate 𝐶

                                                                             56
3rd Example: Nearest Correlation Matrix

   Infer from options markets
     • Recent market events yet again highlighted importance of
        correlation
    •   New developments in market-based approaches
    •   Idea is to combine individual options, options on indexes,
        and perhaps best-of-two options, to back out correlation
        structure
    •   Example is Local Correlation Model
    •   Typically have to supply some “primal” input correlation
        matrix which is then evolved over time and space


                                                                     57
3rd Example: Nearest Correlation Matrix
   Given the importance of estimating correlations, what
    happens if estimate not mathematically correct?

   NAG Library can find the “nearest” correlation matrix
    to a given square matrix 𝐴
     • G02AAF solves the problem min 𝐶 𝐴 − 𝐶 2𝐹 in Frobenius
      norm
    • G02ABF incorporates weights min 𝐶      𝑊 1/2
                                               𝐴− 𝐶     𝑊 1/2 2
                                                               𝐹
    • Weights useful when have more confidence in accuracy of
      observations for certain assets than for others


                                                                   58
3rd Example: Nearest Correlation Matrix
   The effect of W:
A =
    0.4218    0.6557    0.6787   0.6555
    0.9157    0.3571    0.7577   0.1712
    0.7922    0.8491    0.7431   0.7060
    0.9595    0.9340    0.3922   0.0318
W = diag([10,10,1,1])


W*A*W =                                     Whole rows/cols
   42.1761   65.5741    6.7874   6.5548     weighted by 𝑤 𝑖
   91.5736   35.7123    7.5774   1.7119
    7.9221    8.4913    0.7431   0.7060   Elements weighted by
    9.5949    9.3399    0.3922   0.0318          𝑤 𝑖 ∗ 𝑤𝑗




                                                              59
3rd Example: Nearest Correlation Matrix
   Can also do dimension reduction (G02AEF)
     • So-called factor models
     • Very similar to PCA in regression analysis
     • Suppose have assets 𝑌1 , ⋯ , 𝑌 𝑛 , an 𝑛 dimensional Brownian
       motion 𝑊 and an 𝑛 × 𝑛 “correlation” matrix 𝐴 where
                      Yt1         Wt1 
                                   
                          Ft  A  
                      Yt n        Wt n 
                                   
    • For example, a simple multi-asset model
    • Assuming one factor (Brownian motion) for each asset, and
        𝐴𝐴 𝑇 gives correlation between all factors

                                                                  60
3rd Example: Nearest Correlation Matrix

   Can use NAG Library to reduce the number of factors
     • Find a n × 𝑘 matrix D (where 𝑘 < 𝑛) such that
                       Yt1          Wt1 
                                     
                           Ft  D   
                       Yt n         Wt k 
                                     
    • Crucially, 𝐷𝐷 𝑇 gives a correlation structure as close as
        possible to the original structure implied by 𝐴
    •   Can be very useful to reduce complexity and
        computational cost of some models and applications


                                                                  61
3rd Example: Nearest Correlation Matrix




   Let’s examine the code




                                          62
Finally….




   Thank you and……




                      63
Finally…

 Contact support@nag.co.uk to get your free 30-day
  trial licence key for NAG Library
   • NAG C Library, Fortran Library,
   • NAG Toolbox for MATLAB
   • NAG Library for .NET
 Visit www.nag.co.uk/numeric/nagandexcel.asp
   • Many Excel examples available
   • Tips & tricks, white papers


                                                      64

More Related Content

Similar to Why quants love NAG & NAG from Excel

Joker'14 Java as a fundamental working tool of the Data Scientist
Joker'14 Java as a fundamental working tool of the Data ScientistJoker'14 Java as a fundamental working tool of the Data Scientist
Joker'14 Java as a fundamental working tool of the Data ScientistAlexey Zinoviev
 
Performance Benchmarking of the R Programming Environment on the Stampede 1.5...
Performance Benchmarking of the R Programming Environment on the Stampede 1.5...Performance Benchmarking of the R Programming Environment on the Stampede 1.5...
Performance Benchmarking of the R Programming Environment on the Stampede 1.5...James McCombs
 
Extending Machine Learning Algorithms with PySpark
Extending Machine Learning Algorithms with PySparkExtending Machine Learning Algorithms with PySpark
Extending Machine Learning Algorithms with PySparkDatabricks
 
Sparse Data Support in MLlib
Sparse Data Support in MLlibSparse Data Support in MLlib
Sparse Data Support in MLlibXiangrui Meng
 
Predicting SPARQL query execution time and suggesting SPARQL queries based on...
Predicting SPARQL query execution time and suggesting SPARQL queries based on...Predicting SPARQL query execution time and suggesting SPARQL queries based on...
Predicting SPARQL query execution time and suggesting SPARQL queries based on...Rakebul Hasan
 
Processing Large Graphs
Processing Large GraphsProcessing Large Graphs
Processing Large GraphsNishant Gandhi
 
Sparksummit2016 share
Sparksummit2016 shareSparksummit2016 share
Sparksummit2016 sharePing Yan
 
A Graph-Based Method For Cross-Entity Threat Detection
 A Graph-Based Method For Cross-Entity Threat Detection A Graph-Based Method For Cross-Entity Threat Detection
A Graph-Based Method For Cross-Entity Threat DetectionJen Aman
 
2012 sept 18_thug_biotech
2012 sept 18_thug_biotech2012 sept 18_thug_biotech
2012 sept 18_thug_biotechAdam Muise
 
201907 AutoML and Neural Architecture Search
201907 AutoML and Neural Architecture Search201907 AutoML and Neural Architecture Search
201907 AutoML and Neural Architecture SearchDaeJin Kim
 
Combining Machine Learning Frameworks with Apache Spark
Combining Machine Learning Frameworks with Apache SparkCombining Machine Learning Frameworks with Apache Spark
Combining Machine Learning Frameworks with Apache SparkDatabricks
 
04 accelerating dl inference with (open)capi and posit numbers
04 accelerating dl inference with (open)capi and posit numbers04 accelerating dl inference with (open)capi and posit numbers
04 accelerating dl inference with (open)capi and posit numbersYutaka Kawai
 
WhyR? Analiza sentymentu
WhyR? Analiza sentymentuWhyR? Analiza sentymentu
WhyR? Analiza sentymentuŁukasz Grala
 
Continuous Inspection - Uma abordagem efetiva para melhoria contínua da quali...
Continuous Inspection - Uma abordagem efetiva para melhoria contínua da quali...Continuous Inspection - Uma abordagem efetiva para melhoria contínua da quali...
Continuous Inspection - Uma abordagem efetiva para melhoria contínua da quali...Roberto Pepato
 
Scalable Persistent Storage for Erlang: Theory and Practice
Scalable Persistent Storage for Erlang: Theory and PracticeScalable Persistent Storage for Erlang: Theory and Practice
Scalable Persistent Storage for Erlang: Theory and PracticeAmir Ghaffari
 
DigitRecognition.pptx
DigitRecognition.pptxDigitRecognition.pptx
DigitRecognition.pptxruvex
 
BigDataSpain 2016: Introduction to Apache Apex
BigDataSpain 2016: Introduction to Apache ApexBigDataSpain 2016: Introduction to Apache Apex
BigDataSpain 2016: Introduction to Apache ApexThomas Weise
 
Data-Intensive Computing for Competent Genetic Algorithms: A Pilot Study us...
Data-Intensive Computing for  Competent Genetic Algorithms:  A Pilot Study us...Data-Intensive Computing for  Competent Genetic Algorithms:  A Pilot Study us...
Data-Intensive Computing for Competent Genetic Algorithms: A Pilot Study us...Xavier Llorà
 

Similar to Why quants love NAG & NAG from Excel (20)

Joker'14 Java as a fundamental working tool of the Data Scientist
Joker'14 Java as a fundamental working tool of the Data ScientistJoker'14 Java as a fundamental working tool of the Data Scientist
Joker'14 Java as a fundamental working tool of the Data Scientist
 
Performance Benchmarking of the R Programming Environment on the Stampede 1.5...
Performance Benchmarking of the R Programming Environment on the Stampede 1.5...Performance Benchmarking of the R Programming Environment on the Stampede 1.5...
Performance Benchmarking of the R Programming Environment on the Stampede 1.5...
 
Extending Machine Learning Algorithms with PySpark
Extending Machine Learning Algorithms with PySparkExtending Machine Learning Algorithms with PySpark
Extending Machine Learning Algorithms with PySpark
 
Sparse Data Support in MLlib
Sparse Data Support in MLlibSparse Data Support in MLlib
Sparse Data Support in MLlib
 
Predicting SPARQL query execution time and suggesting SPARQL queries based on...
Predicting SPARQL query execution time and suggesting SPARQL queries based on...Predicting SPARQL query execution time and suggesting SPARQL queries based on...
Predicting SPARQL query execution time and suggesting SPARQL queries based on...
 
Processing Large Graphs
Processing Large GraphsProcessing Large Graphs
Processing Large Graphs
 
Sparksummit2016 share
Sparksummit2016 shareSparksummit2016 share
Sparksummit2016 share
 
PREDIcT
PREDIcTPREDIcT
PREDIcT
 
A Graph-Based Method For Cross-Entity Threat Detection
 A Graph-Based Method For Cross-Entity Threat Detection A Graph-Based Method For Cross-Entity Threat Detection
A Graph-Based Method For Cross-Entity Threat Detection
 
2012 sept 18_thug_biotech
2012 sept 18_thug_biotech2012 sept 18_thug_biotech
2012 sept 18_thug_biotech
 
201907 AutoML and Neural Architecture Search
201907 AutoML and Neural Architecture Search201907 AutoML and Neural Architecture Search
201907 AutoML and Neural Architecture Search
 
Ml ch17
Ml ch17Ml ch17
Ml ch17
 
Combining Machine Learning Frameworks with Apache Spark
Combining Machine Learning Frameworks with Apache SparkCombining Machine Learning Frameworks with Apache Spark
Combining Machine Learning Frameworks with Apache Spark
 
04 accelerating dl inference with (open)capi and posit numbers
04 accelerating dl inference with (open)capi and posit numbers04 accelerating dl inference with (open)capi and posit numbers
04 accelerating dl inference with (open)capi and posit numbers
 
WhyR? Analiza sentymentu
WhyR? Analiza sentymentuWhyR? Analiza sentymentu
WhyR? Analiza sentymentu
 
Continuous Inspection - Uma abordagem efetiva para melhoria contínua da quali...
Continuous Inspection - Uma abordagem efetiva para melhoria contínua da quali...Continuous Inspection - Uma abordagem efetiva para melhoria contínua da quali...
Continuous Inspection - Uma abordagem efetiva para melhoria contínua da quali...
 
Scalable Persistent Storage for Erlang: Theory and Practice
Scalable Persistent Storage for Erlang: Theory and PracticeScalable Persistent Storage for Erlang: Theory and Practice
Scalable Persistent Storage for Erlang: Theory and Practice
 
DigitRecognition.pptx
DigitRecognition.pptxDigitRecognition.pptx
DigitRecognition.pptx
 
BigDataSpain 2016: Introduction to Apache Apex
BigDataSpain 2016: Introduction to Apache ApexBigDataSpain 2016: Introduction to Apache Apex
BigDataSpain 2016: Introduction to Apache Apex
 
Data-Intensive Computing for Competent Genetic Algorithms: A Pilot Study us...
Data-Intensive Computing for  Competent Genetic Algorithms:  A Pilot Study us...Data-Intensive Computing for  Competent Genetic Algorithms:  A Pilot Study us...
Data-Intensive Computing for Competent Genetic Algorithms: A Pilot Study us...
 

Why quants love NAG & NAG from Excel

  • 1. Using the NAG Library in Excel Marcin Krzysztofik NAG Ltd. Experts in numerical algorithms and HPC services
  • 2. Agenda  NAG Introduction  Why do Quants love NAG?  NAG from VBA  Examples • Least Squares Optimisation • Local Volatility • Nearest Correlation Matrix 2
  • 3. The Numerical Algorithms Group  NAG provides mathematical and statistical algorithm libraries and compiler widely used in industry and academia  Founded in 1970 as a co-operative project in UK  Operates as a commercial, not-for-profit organization  Worldwide operations • Offices in Oxford & Manchester, Chicago, Tokyo, Taipei • Technical Support Engineer in Germany • Distributors in Brazil, India, Singapore, Mexico…  Over 3,000 customer sites worldwide  Staff of ~100, ~70 technical, includes ~25 HPC 3
  • 4. NAG Portfolio  Mathematical, statistical, data analysis components • NAG Numerical libraries • Connectors for Excel, .NET, R, Java  NAG Fortran Compiler • Windows GUI - Fortran Builder  HPC software engineering services • HECToR support  Consultancy work for bespoke application development 4
  • 5. NAG is a HPCFinance partner http://www.hpcfinance.eu The network is recruiting for  Early Stage Researchers (ESRs ~ PhD Students)  Experienced Researchers (ERs ~ Post Docs) 5
  • 6. The NAG Library Contents • Dense Linear Algebra • Root Finding • Sparse Linear Algebra • Summation of Series • Correlation & Regression Analysis • Quadrature • Multivariate Methods • Ordinary Differential Equations • Analysis of Variance • Partial Differential Equations • Random Number Generators • Numerical Differentiation • Univariate Estimation • Integral Equations • Nonparametric Statistics • Mesh Generation • Smoothing in Statistics • Interpolation • Contingency Table Analysis • Curve and Surface Fitting • Survival Analysis • Optimisation • Time Series Analysis • Approximations of Special Functions • Operations Research 6
  • 7. The NAG Library is now at Mark 23 Now available as:  The NAG Fortran Library  The NAG Library for SMP & Multicore  The NAG C Library  The NAG Toolbox for MATLAB 7 7
  • 8. NAG Library : new Mark 23 Mark 23 has new functions in many areas including...  Wavelet Transforms • One dimensional continuous transforms  Optimisation • Two dimensional discrete single level and • Multi-start optimisation multi-level transforms • Minimization by quadratic approximation  ODE’s (BOBYQA) • BVP solution through Chebyshev pseudo- • Stochastic global optimisation using PSO spectral method  RNG’s  Matrix Operations • Generators of multivariate copulas • Matrix exponentials • Skip-ahead for Mersenne Twister • Functions of real symmetric and Hermitian • L’Ecuyer MRG32K3a generator matricies  Statistics • Sparse matrix functions • Quantiles of streamed data, bivariate • LAPACK 3.2 Cholesky solvers and Student’s t, and two probability density factorizations, and many other LAPACK functions driver functions • Nearest correlation matrices  Interpolation • Quantile regression • Modified Shepard’s method in 4D/5D • Peirce Outlier detection  New vector functions (in G01 and S) • Anderson–Darling goodness-of-fit 8
  • 9. NAG Library : new Mark 23 Mark 23 has new functions in many areas including...  Wavelet Transforms • One dimensional continuous transforms  Optimisation • Two dimensional discrete single level and • Multi-start optimisation multi-level transforms • Minimization by quadratic approximation  ODE’s (BOBYQA) • BVP solution through Chebyshev pseudo- • Stochastic global optimisation using PSO spectral method  RNG’s  Matrix Operations • Generators of multivariate copulas • Matrix exponentials • Skip-ahead for Mersenne Twister • Functions of real symmetric and Hermitian • L’Ecuyer MRG32K3a generator matricies  Statistics • Sparse matrix functions • Quantiles of streamed data, bivariate • LAPACK 3.2 Cholesky solvers and Student’s t, and two probability density factorizations, and many other LAPACK functions driver functions • Nearest correlation matrices  Interpolation • Quantile regression • Modified Shepard’s method in 4D/5D • Peirce Outlier detection  New vector functions (in G01 and S) • Anderson–Darling goodness-of-fit 9
  • 10. Why do Quants love NAG? Senior quant from Tier 1 Investment Bank “We deploy production code in C++ embedding NAG C Library functions wherever we can, but often prototype new models in MATLAB before writing our C++ code. Having the same NAG algorithms in MATLAB via the NAG Toolbox for MATLAB is a real win for us” OK, what more? 10
  • 11. Numerical computation – DIY Vs NAG  DIY implementations of numerical components have their place, but NOT in production code. • Handwritten code might be easy to implement, but will…  NOT be well tested  NOT be fast  NOT be stable  NOT deliver good error handling • NAG implementations in contrast are fast and  Accurate  Well tested & thoroughly documented  Give “qualified error” messages e.g. tolerances of answers (which the user can choose to ignore, but avoids proceeding blindly) 11
  • 12. Problem 1: Finance PDE Solvers  Major banks PDE solvers tend to be “proprietary” so there is a reluctance to take “end to end” solutions  Several different numerical components needed • Sparse Linear Solvers • Functions for finding a range of Eigenvalues (stability checkers) • Special Linear Systems solvers (e.g. Banded Matrices) • .. 12
  • 13. Problem 1: Finance PDE Solvers  Major banks PDE solvers tend to be “proprietary” so there is a reluctance to take “end to end” solutions NAG to the rescue  Several different numerical components needed • Sparse Linear Solvers √ • Functions for finding a range of Eigenvalues (stability checkers) √ • Special Linear Systems solvers (e.g. Banded Matrices) √ • .. √ √ 13
  • 14. Problem 2: Calibration  Major banks all need to calibrate their models  Several different numerical components needed • Optimisation functions (e.g. constrained non-linear optimisers) • Interpolation functions • Spline functions • .. 14
  • 15. Problem 2: Calibration  Major banks all need to calibrate their models NAG to the rescue  Several different numerical components needed • Optimisation functions (e.g. constrained non-linear optimisers) √ • Interpolation functions (used intelligently*) √ • Spline functions √ • .. √ √ *interpolator must be used carefully –must know the properties to pick appropriate method 15
  • 16. Problem 3: Closed-Form Option Pricing Formulae  Closed form solutions are useful • for validating numerical methods • for some calibration problems as input (objective function) to optimisers  Several different numerical components needed • FFTs, Quadrature • Root finders (single variable) • Special functions (Bessel, non-Central Chi, Erf,..) • Probability distributions • .. 16
  • 17. Problem 3: Closed-Form Option Pricing Formulae  Closed form solutions are useful • for validating numerical methods • for some calibration problems as input (objective function) to optimisers NAG to the rescue  Several different numerical components needed • FFTs, Quadrature √ • Root finders (single variable) √ • Special functions (Bessel, non-Central Chi, Erf,..) √ • Probability distributions √ • .. √ √ 17
  • 18. Problem 4: Simulation (Monte Carlo)  Simulation is important for scenario generation  Several different numerical components needed • Random Number Generators • Brownian bridge constructor • Interpolation/Splines • Principal Component Analysis • Cholesky Decomposition • Distributions (uniform, Normal, exponential gamma, Poisson, Student’s t, Weibull,..) • .. 18
  • 19. Problem 4: Simulation (Monte Carlo)  Simulation is important for scenario generation NAG to the rescue  Several different numerical components needed • Random Number Generators √ • Brownian bridge constructor √ • Interpolation/Splines √ • Principal Component Analysis√ • Cholesky Decomposition √ • Distributions (uniform, Normal, exponential gamma, Poisson, Student’s t, Weibull,..)√ • .. √ √ 19
  • 20. Problem 5: Risk Matrix VaR  VaR is important for identifying correlation of one asset to another (eg Yen Vs USD)  Several different numerical components needed • Matrix functions • Correlation and Regressions • • .. 20
  • 21. Problem 5: Risk Matrix VaR  VaR is important for identifying correlation of one asset to another (eg Yen Vs USD) NAG to the rescue  Several different numerical components needed • Matrix functions √ • Correlation and Regressions √ • • .. √ √ 21
  • 22. Problem 6: Historical VaR  This is another VaR methodology (again important for identifying what variables might impact you most (eg Yen Vs USD))  Several different numerical components needed • Time Series • Correlation and Regressions • Matrix functions • Cholesky Decomp • RNGs .. 22
  • 23. Problem 6: Historical VaR  This is another VaR methodology (again important for identifying what variables might impact you most (eg Yen Vs USD)) NAG to the rescue  Several different numerical components needed • Time Series √ • Correlation and Regressions √ • Matrix functions √ • Cholesky Decomp √ • RNGs .. √ √ 23
  • 24. NAG provides the atomic bricks  … for the quants to build the walls, houses and fancy castles!  Users know NAG Components are here today, tomorrow and beyond • Functions are not removed when new ones added without sensible notice and advice • NAG functions are well documented  Lets take a look at Excel & VBA now… 24
  • 25. NAG from Excel  Intro  Why use NAG from Excel  How to call NAG from Excel • A simple function • Callbacks • Passing arrays 25
  • 26. NAG from Excel  Use Excel’s underlying VBA to call external library  NAG provides VBA Declaration Statements • Shipped together with the DLL version of NAG Library • Just Ctrl+C Ctrl+V into a VBA module  Start creating macros and UDFs • Macros executed for example via a button • User Defined Functions called via Excel Function Wizard 26
  • 27. Why NAG & Excel?  Microsoft Office Excel is the industry-standard spreadsheet application.  Easy to use, intuitive, practical.  However it’s not a statistical data analysis package...  And that’s where NAG being great at serious numerical calculations comes in! 27
  • 28. How to call a simple function?  S17AEF – returns value of the Bessel function 𝐽0 (𝑥)  Note: • Declaration statements in VB • Calling straight from the spreadsheet • Calling through a wrapper function • Error handling 28
  • 29. The IFAIL parameter IFAIL serves two purposes:  On input it determines what action the Library routine takes when an error is detected: • -1 (Soft Fail & Noisy Exit) – error message and continue; • 0 (Hard Fail) – error message and stop; • 1 (Soft Fail & Quiet Exit) – no error message and continue.  On output it informs what kind of error has occurred, depending on the function in use (see documentation for details). 29
  • 30. How to handle callbacks?  A callback is a piece of executable code that is passed as an argument to other code.  D01BAF – performs numerical integration on a function of one variable • uses Gaussian quadrature rules  Note: • Visual Basic AddressOf operator to handle callbacks • Argument Passing by reference ByRef 30
  • 31. How to pass arrays as arguments?  F07FDF – computes the Cholesky factorization of a real symmetric positive definite matrix.  Note: • Reading the array from the worksheet (Range -> Double) • Checking if the matrix is a square matrix • What if the matrix is not symmetric? 32
  • 32. Example Least Squares Optimisation 33
  • 33. 1st Example: Least Squares Optimisation  General formulation of an optimisation problem is min F ( x) subject to constraints on x xR n • Constraints can be bound, linear or fully non-linear • Example: maximise value of portfolio subject to limits on capital, individual positions and overall risk exposure • Have routines in NAG Library to solve these problems  Least squares optimisation addresses the following: m min  f i 2 ( x) subject to constraints on x xR n i 1 • Most commonly used in fitting data 34
  • 34. 1st Example: Least Squares Optimisation  Important special case:  x  m  Ax  min   yi  f i ( x)  subject to l   u 2 xR n i 1 c( x)   • Used in calibration and non-linear regression, typically in the form m min   yi  C ( xi ,  )  subject to l    u 2  R n i 1 • Here 𝐶is a pricing formula (e.g. SABR, Heston, CIR) with parameters 𝛽, and (𝑥 𝑖 , 𝑦 𝑖 ) are 𝑚 observed market prices 35
  • 35. 1st Example: Least Squares Optimisation  Another important special case:  x  min x A x  b x subject to l   T T u xR C x  n • Called Quadratic Programming • 𝐴 and 𝐶 and matrices and 𝑏 is a vector • Objective function is quadratic polynomial, constraints are linear • Arises in certain asset allocation problems, interpolation problems, linear programming problems ... • Emphasis on speed and scale: can have 𝑛 ≥ 20,000 and still require a solution in under 0.5s 36
  • 36. 1st Example: Mean-Variance Analysis  Recall classic Markowitz model n P( x)   xi Ri  x R subject to  n T x 1 i 1 i i 1 • Assume return on each asset 𝑖 is 𝑅 𝑖 ~𝑁1 (𝜇 𝑖 , 𝜎 𝑖2 ) • Assume vector of all 𝑚 returns 𝑅~𝑁 𝑛 (𝜇, A) • Therefore return on portfolio 𝑃 𝑥 ~𝑁1 (𝑥 𝑇 𝜇, 𝑥 𝑇 𝐴𝑥) • Define “Risk” as variance of return on portfolio, i.e. 𝑉𝑎𝑟 𝑃(𝑥) = 𝑥 𝑇 𝐴𝑥 • Problem: for given level of expected return 𝑟, find the portfolio with minimal risk  min Var P( x)   x A x s.t.  T  xi  1   xR n  EP( x)   i xi   r    37
  • 37. 1st Example: Mean-Variance Analysis  Let’s look at some market data • 10 big FTSE100 players • Market data: 20/05/2003 – 19/06/2009  Use NAG to compute covariances, returns and standard deviations of the stock returns  Set upper & lower investment constraints  Optimize • Return portfolio risk for given return, sensitivities, shadow prices • Plot the Efficient Frontier 38
  • 38. Example Local Volatility Model 39
  • 39. 2nd Example: Local Volatility Model  What’s in a smile? • Black-Scholes model is not perfect. Main drawbacks? • So traders pick different vol for each combination of maturity and strike, in order to get “correct” price  Local volatility model tries to express this dSt  r (t )   (t ) St dt   (t , St ) St dWt • Here 𝜎(𝑡, 𝑥) is a function, to be determined • Since volatility now depends on time and asset level, we could hope that it’s possible to capture smile effect • But what should 𝜎(𝑡, 𝑥) be to achieve this? • Key is Dupire formula 40
  • 40. 2nd Example: Local Volatility Model  Let 𝐶(𝑇, 𝐾) denote price of European call option in Local Volatility model • By manipulating Kolmogorov forward equation (Fokker- Plank equation) together with   0 r ( s ) ds  T C (T , K )  E  e  maxST  K ,0     we can show that CT   (T )C   (T )C K  (T , K )  2 K 2C KK • Now 𝐶(𝑇, 𝐾) we observe in the market – why? So this gives a formula to translate market call quotes into 𝜎(𝑡, 𝑥) 41
  • 41. 2nd Example: Local Volatility Model  Let 𝜃(𝑇, 𝐾) be market implied vol for a call option • Then 𝐶 𝑇, 𝐾 = 𝐵𝑆(𝑇, 𝐾, 𝜃(𝑇, 𝐾)) where 𝐵𝑆(. ) is the Black-Scholes pricing formula • Substituting and simplifying, we arrive at the Dupire formula 2T   / T  2 K r (T )   (T )  K  2 (T , K )   1 1   2 K  KK  d  T  K    2  d  K   2   K T     • So given a smile surface 𝜃(𝑇, 𝐾) we can also recover 𝜎(𝑡, 𝑥). This more common way of doing things. 42
  • 42. 2nd Example: Local Volatility Model  Sweet – no problems!! • Well, no. What’s the problem? 43
  • 43. 2nd Example: Local Volatility Model  Two problems • 1. Dupire formula assumes infinitely many market quotes. We only have finitely many. We’ll have to interpolate, and this is challenging • 2. Once we’ve obtained 𝜎(𝑡, 𝑥), what then? How do we price options? Two routes: either Monte Carlo, or PDEs. 44
  • 44. 2nd Example: Interpolation  Interpolation – but that’s just joining the dots! • Interpolated surface must be smooth: at least 𝐶 1,2  Many interpolators can do this, so not such a problem. • Worse: the interpolated surface must be arbitrage free!  E.g. suppose had quotes for maturity 𝑇 and 𝐾 = 50,60,70,80,90.  Delete quote for 𝐾 = 70 and interpolate over 𝐾 = 50,60,80,90.  Interpolated value at 𝐾 = 70 must be consistent with current market prices – no arbitrage  Termed shape preserving interpolation – it’s a very hard mathematical problem! • Research is quite young, and not much in financial space 45
  • 45. 2nd Example: Interpolation  So how is this problem commonly tackled? • As best you can • One approach – fit monotonic (Hermite) interpolator in time, then a cubic spline in space • Make sure 𝜎 𝑡, 𝑥 ≥ 0  Backward heat problems are unstable  NAG Library has all these interpolators (and more!) • Currently has no routines for shape constrained interpolation, but watch this space! 46
  • 46. 2nd Example: PDE Solution  Monte Carlo vs PDEs? • Local vol model is quite amenable to PDE techniques, provided interpolation is good enough • Monte Carlo reserved for heavily path-dependent options  The local volatility model PDE for option price 𝑉 is Vt  r (t )   (t ) SVS  1 2  2 (t , S ) S 2VSS  r (t )V • NAG Library has many PDE solvers, but which kind of solver should we be using? • Decision tree 47
  • 47. 2nd Example: NAG PDE Solver  Try to use most specific solver, rather than most general solver  So seems we should use D03PFF • Provided we can massage our PDE into conservative form • Conservative form is term used predominantly in engineering literature • Related to continuity or conservation laws  Conservation of mass  Conservation of momentum  Conservation of energy  Etc. • Many PDEs can be put into conservative form 48
  • 48. 2nd Example: NAG PDE Solver  Can re-write our PDE as follows     Vt  r    SV   V   1 2  2 S 2 VS   rV  S  S   2S 2  1 Vt   SV   VS   2r   V r  S 2r    S r  • Note 𝑟, 𝛾, 𝜎 are still functions. Our boundary conditions are at 𝑡 = 𝑇, not 𝑡 = 0. So set 𝜏 = 𝑇 − 𝑡 to get 1    2S 2  2r   V  SV   VS   V r  S 2r    S r  49
  • 49. 2nd Example: NAG PDE Solver  So our PDE can be placed in conservative form  What about flux? How can we get approximate solutions? • Work it out analytically for your approximate Riemann solver of choice: our flux equation is  Vt  SV   0 S • Use a NAG routine to approximate it numerically (D03PUF) • Look at Example 2 in D03PFF doc  Just so happens to have our exact flux equation, with solution 50
  • 50. 2nd Example: NAG Interpolators  Requirements for interpolation • 1D monotonic (Hermite) interpolator in time – E01BEF • 1D cubic spline interpolator in space – E01BAF  So far so good. How will we get derivatives? • Recall need 𝜃 𝑇 , 𝜃 𝐾 , 𝜃 𝐾𝐾 • Simple approach – use finite differences • Do NOT do this! • NAG interpolation routines can also return exact analytic derivatives – use these 51
  • 51. 2nd Example: PDE Solver  Before we look at the code: • How will we know whether our model and implementation are correct ... ?  Examine the code 52
  • 52. Example Nearest Correlation Matrix 53
  • 53. 3rd Example: Nearest Correlation Matrix  Correlation between assets • We all know what this is ... ?  Mathematically, a correlation matrix 𝐶 ∈ ℝ 𝑛×𝑛 is ... 1. Square 2. Symmetric 3. Has ones on diagonal 4. Is positive semi-definite: 𝑥 𝑇 𝐶𝑥 ≥ 0 for all 𝑥 ∈ ℝ 𝑛 54
  • 54. 3rd Example: Nearest Correlation Matrix  How do we estimate correlations? • Historical data • Parametric methods such as Gaussian Copulas • Try to back it out from options markets  Typically 1, 2 and 3 easy enough to ensure • Ensuring positive semi-definite can be tricky 55
  • 55. 3rd Example: Nearest Correlation Matrix  Historical data • Take time series for several assets and try to estimate correlation • Perhaps time series model with exponential weights?  Gaussian copula   G (u )  FZ (u )   C  1 (u1 ), ,  1 (un ) for u  [0,1]n where 𝐹 𝑍 𝑢 = ℙ(𝑍 ≤ 𝑢) and Z~𝑁 𝑛 (0, C). Then set FX ( x)  G F1 ( x1 ), , Fn ( xn )  for x  R n where 𝐹𝑖 is the marginal distribution of asset 𝑋 𝑖 • Now only need 𝐹𝑖 and 𝐶, but still have to estimate 𝐶 56
  • 56. 3rd Example: Nearest Correlation Matrix  Infer from options markets • Recent market events yet again highlighted importance of correlation • New developments in market-based approaches • Idea is to combine individual options, options on indexes, and perhaps best-of-two options, to back out correlation structure • Example is Local Correlation Model • Typically have to supply some “primal” input correlation matrix which is then evolved over time and space 57
  • 57. 3rd Example: Nearest Correlation Matrix  Given the importance of estimating correlations, what happens if estimate not mathematically correct?  NAG Library can find the “nearest” correlation matrix to a given square matrix 𝐴 • G02AAF solves the problem min 𝐶 𝐴 − 𝐶 2𝐹 in Frobenius norm • G02ABF incorporates weights min 𝐶 𝑊 1/2 𝐴− 𝐶 𝑊 1/2 2 𝐹 • Weights useful when have more confidence in accuracy of observations for certain assets than for others 58
  • 58. 3rd Example: Nearest Correlation Matrix  The effect of W: A = 0.4218 0.6557 0.6787 0.6555 0.9157 0.3571 0.7577 0.1712 0.7922 0.8491 0.7431 0.7060 0.9595 0.9340 0.3922 0.0318 W = diag([10,10,1,1]) W*A*W = Whole rows/cols 42.1761 65.5741 6.7874 6.5548 weighted by 𝑤 𝑖 91.5736 35.7123 7.5774 1.7119 7.9221 8.4913 0.7431 0.7060 Elements weighted by 9.5949 9.3399 0.3922 0.0318 𝑤 𝑖 ∗ 𝑤𝑗 59
  • 59. 3rd Example: Nearest Correlation Matrix  Can also do dimension reduction (G02AEF) • So-called factor models • Very similar to PCA in regression analysis • Suppose have assets 𝑌1 , ⋯ , 𝑌 𝑛 , an 𝑛 dimensional Brownian motion 𝑊 and an 𝑛 × 𝑛 “correlation” matrix 𝐴 where Yt1  Wt1          Ft  A   Yt n  Wt n      • For example, a simple multi-asset model • Assuming one factor (Brownian motion) for each asset, and 𝐴𝐴 𝑇 gives correlation between all factors 60
  • 60. 3rd Example: Nearest Correlation Matrix  Can use NAG Library to reduce the number of factors • Find a n × 𝑘 matrix D (where 𝑘 < 𝑛) such that Yt1  Wt1          Ft  D    Yt n  Wt k      • Crucially, 𝐷𝐷 𝑇 gives a correlation structure as close as possible to the original structure implied by 𝐴 • Can be very useful to reduce complexity and computational cost of some models and applications 61
  • 61. 3rd Example: Nearest Correlation Matrix  Let’s examine the code 62
  • 62. Finally….  Thank you and…… 63
  • 63. Finally…  Contact support@nag.co.uk to get your free 30-day trial licence key for NAG Library • NAG C Library, Fortran Library, • NAG Toolbox for MATLAB • NAG Library for .NET  Visit www.nag.co.uk/numeric/nagandexcel.asp • Many Excel examples available • Tips & tricks, white papers 64