FilonLevyOptionPricer Code
Status: Alpha
Brought to you by:
andrewdickinson
| File | Date | Author | Commit |
|---|---|---|---|
| bin | 2011-05-12 | andrewdickinson | [r3] Reverted to g++ compiler as default in Makefile |
| src | 2011-05-12 | andrewdickinson | [r4] Fixed sign in piece of code that is never called. |
| licence.txt | 2011-05-12 | andrewdickinson | [r1] Initial Revision |
| readme.txt | 2011-05-12 | andrewdickinson | [r1] Initial Revision |
| testFilonLevy.sln | 2011-05-12 | andrewdickinson | [r1] Initial Revision |
Filon Levy Option Pricer V1.0 Copyright Andrew Dickinson May 2011 This software is supplied under the Boost Software License Version 1.0 (see ./licence.txt). 1. Overview The purpose of this software is to provide a simple prototype of the algorithm described in the paper 'Numerical Approximation of Option Premia in Displaced-Lognormal Heston Models' by Andrew Dickinson. The algorithm is not completely trivial to implement and it is hoped that this prototype may be cut-and-pasted into interested parties' libraries (one should consolidate the calls to standard functions here, eg. Black-Scholes pricers and exceptions, with those in your own library). The implementation is not highly optimized but sufficient for most practical purposes. It is not that exhaustively commented, and it is down to the reader to figure out how it is actually working. There may be some basic fiddling necessary to get the code building on your machine (most likely issues related to ensuring you have the correct paths of the boost libraries). Code should build warning-free under microsoft visual studio 2008 and gcc. The code successfully builds under intel linux compiler (although with some 'remarks'). 2. Folder Structure ./src/numerics/testFilonLevy Contains some example code for calling the analytics ./src/numerics/vanilla Contains bulk of the algorithm as well as simple financial analytics (Black-Scholes, implied vol,...) ./src/numerics/numerics Contains numerical routines (Filon scheme, Gaussian quadrature scheme) ./src/numerics/utils Contains an exception class ./bin Contains Makefile for building under linux ./ Contains visual studio 2008 express solution 3. Dependencies: 3.1 Dependency structure is : testFilonLevy depends on: vanilla, numerics, utils vanilla depends on: numerics, utils numerics depends on: utils utils 3.2 External dependencies: boost (distribution and timer) stl NB: VS projects and makefile need to be updated to point to a suitable version of boost (NB code only depends upon boost headers) 4. Building and Executing 4.1 Under Linux Go to /bin type make (any problems then suitably modify ./bin/Makefile). To run type ./testApprox 4.2 Under Windows Download visual studio express and open solution Update project settings to point to boost folder Build and run 5. Explanation of Extensive Results Labels 'QDelta': q-delta as explained in paper 'K': absolute strike 'lamda': relative strike less 1 (see paper) 'approx': approximation to forward time value based upon algorithm described in paper 'benchmark': benchmark forward time value based upon naive Gaussian quadrature 'RelErr': relative error in forward time value of option 'Bch1E4': approximation of Gaussian quadrature using 1E4 points 'Bch1E6': approximation of Gaussian quadrature using 1E6 points 'Bch2E6': approximation of Gaussian quadrature using 2E6 points '1qPrice': displaced lognormal price (with no volatility of volatility) 'QIVDK': q-implied volatility of option price using algorithm in paper 'QIVBench': q-implied volatility of option price using 2E6 node gaussian quadrature 'AbsErr': absolute error in q-implied volatility 'IVDK': implied volatility of option price using algorithm in paper 'IVBench': implied volatility of option price using 2E6 node gaussian quadrature 'AbsErr': absolute error in implied volatility