COMPUTING BARRIER OPTION PRICES UNDER LOCAL VOLATILITY MODEL WITH FINITE DIFFERENCE AND MONTE CARLO SIMULATION
Computational Finance Project (50% of total module marks) Released: 1st April 2022
Deadline: 1st May 2022, 23:55 UK time
Project marks range: 0 to 50
Copyright By PowCoder代写 加微信 powcoder
1. Background
Let’s assume that the stock price S paying a continuous dividend yield q follows the process below:
where r is the risk-free interest rate, W is a Standard Brownian Motion and
We know that the price of an option, V (S, t), on the above stock satisfies the Black-Scholes
PDE below:
In this project you are asked to price a Barrier option (which is a very popular weakly path dependent option) using two numerical approaches: Finite Difference Methods (FDM) and Monte Carlo simulation.
Barrier options (also called knock-in or knock-out options) are standard calls or puts except that they disappear (knock-out) or come into existence (knock-in) if the underlying asset price is found to have crossed a predetermined (barrier) level B any time before the maturity of the option. They have a fairly standard naming convention which describes whether the barrier is below or above the current asset price (“down” or “up”), whether the option disappears or appears when the barrier is crossed (“out” or “in”) and whether they have a standard call or put pay-off. For instance, an up-and-out call option with zero rebate will have a payoff:
With a change of time variable τ = T – t, the equation satisfied by the option becomes:
For the above equation, from the payoff of an up-and-out call option it is possible to derive the initial condition at τ = 0
V(S, 0) = and the boundary conditions
max (S – K, 0 ) , 0,
if S < B otherwise
V(S = 0 , τ) = 0 ; V(S = B, τ) = 0 . In this project we will use the following pricing parameters:
• spot price S0 = £100
• strike price K = £90
• barrier level B = £130
• risk-free rate r = 3%
• dividend yield q = 5%
• time to maturity T = 0.5 years
• in the local volatility function α = 0.35.
The aim of the project is to numerically solve the problem of pricing an up-and-out call option by:
1. solving the Black-Scholes PDE using explicit FDM
2. solving the Black-Scholes PDE using implicit FDM
3. solving the Black-Scholes PDE using Crank-Nicolson FDM
4. Monte Carlo simulation.
Since there is no analytic solution to the PDE, you need to compare FDM results with the prices calculated from Monte Carlo simulation. For the Monte Carlo simulation, use the fact that, due to the form of the payoff function, if a sample trajectory of the stock price exceeds the barrier value, the corresponding option payoff is 0.
2. Project Tasks and distribution of marks
Please finish the tasks below.
You will need to turn in the following six items (= four MATLAB scripts + two PDF documents):
MATLAB scripts (max 36 marks; note: code which does not execute will be marked 0)
(Item 1) (9 marks) A single explicit.m script which implements the explicit finite differences method. More than one file should not be used. All functions should be self- contained in the explicit.m file.
(Item 2) (9 marks) A single implicit.m script which implements the implicit finite differences method. More than one file should not be used. All functions should be self- contained in the implicit.m file.
(Item 3) (9 marks) A single crank.m script which implements the Crank-Nicolson finite differences method. More than one file should not be used. All functions should be self- contained in the crank.m file.
(Item 4) (9 marks) A single monte_carlo.m script which implements the Monte Carlo scheme with antithetic sampling. More than one file should not be used. All functions should be self-contained in the monte_carlo.m file.
The 9 marks available for each of the above items (1) − (4) will be split as follows: coding style (2 marks), clarity and accuracy of computation (5 marks), appropriate and well written comments within the code (2 marks).
PDF documents (max 14 marks; note: the code should be accompanied by detailed documentation, split into the following two PDF files, written using a typesetting program like Word, LaTeX, etc., not a scan of handwritten document; if a scan of handwritten document is submitted, it will be marked 0)
(Item 5) (7 marks split as follows) Code developer documentation and testing results, maximum 4 pages, presenting: the structure of the code (1 mark), available functions (1 mark), main variables and any other information to help to understand the code (1 mark), and directions on how to extend the code (1 mark); the test runs of your code (1 mark) and timings (1 mark) should be reported in a separate section of the developer documentation. For each of three finite difference schemes, namely each scheme in (1) - (3), compare the prices with different grid sizes with those from the Monte Carlo methods (4) and report the convergence properties of each scheme (1 mark).
(Item 6) (7 marks split as follows) End-user’s instructions, maximum 4 pages, on how to use the .m programs and how to input data (2 marks), how the results are presented (1 mark), and a brief description of the methods implemented (2 marks). The discussions of proper domain and boundary conditions you should use in the finite difference schemes based on the properties of the up-and-out call option should also be included here (2 marks).
This project will contribute 50% towards the final mark for the module.
Submit your work by uploading it in Moodle by 23:55 (UK time) on 1st of May 2022.
Submit the code as a single compressed .zip file, including all MATLAB (.m) files and the PFD files all residing in a single parent directory, whose name should contain your name and student code.
The project will be marked anonymously. Please do not write any information that could be used to reveal your identity in the code or in the PDF documents, or in filenames (except the .zip filename).
程序代写 CS代考 加微信: powcoder QQ: 1823890830 Email: powcoder@163.com