MATH4/60082 (Computational Finance)
Assignment No. 1: Monte Carlo Methods
Version 10090075
1 Background
1.1 Stock Options
Consider the equation for geometric Brownian motion, as used to model the path of an underlying asset
paying proportional dividends at a continuous rate D0:
dS = (μ D0)Sdt + σSdW, (1)
where dW is the increment of a Wiener process (drawn from a Normal distribution with mean zero and
standard deviation √
dt); we may then write that
dW = φ√dt, (2)
where φ is a random variable drawn from a normalised Normal distribution.
Utilising (2) and risk neutrality, (1) can be integrated exactly over a timescale δt (NOT necessarily small)
to yield (see also your lecture notes)
S(t + δt) = S(t) exp. (3)
Equation (3) then generates a random path. Since δt need not be small, in the case of European options,
it is possible to generate a (random) value of S at expiry (t = T) in just one step (i.e. δt = T). From this
value (say S(T)), the payoff can then be easily calculated.
European Options
代写MATH4/60082作业
Note that because the stock is paying dividends it makes the value of holding a share a little different since
cash dividend payments are made to stock holders. We assume here that all contracts in the portfolio are
options, so that no cash payments are received by the owner of the portfolio. Here we may price the options
in the portfolio according to the following formula:-
Assume that:d1 =ln(S/X) + (r D0 + σ2/2)(T t)σ√T t, d2 = d1 σ√T t.
A Put Option P with terminal condition
P(S, T) = max(X S, 0)
has the analytic solution
P(S, t) = Xer(T t)N(d2) SeD0(Tt)N(d1)
1
A Call Option C with terminal condition
C(S, T) = max(S X, 0)
has the analytic solution
C(S, t) = SeD0(T t)N(d1) Xer(T t)N(d2),
A Binary Put Option BP with terminal condition
BP(S, T) =
1 if S ≤ X
0 if S > X
has the analytic solution
BP(S, t) = e
r(Tt)N(d2)
A Binary Call Option BC with terminal condition
BC(S, T) =
0 if S ≤ X
1 if S > X
has the analytic solution
BC(S, t) = e
r(T t)N(d2)
If there is a payoff at maturity which is equal to the stock price, this is equivalent to the value of a call
option with strike (X = 0) so that
C(S, T; X = 0) = S
and
C(S, t; X = 0) = SeD0(T t) = e
r(T t)Ft,T
which is the discounted futures price Ft,T .
If this payoff of a portfolio is denoted as Πi(t = T) (for the ith simulation), then the value of this payoff
at t = 0 is
Πi(t = 0) = Πi(t = T)e
rT (4)
If N simulations are performed, then (as described in the notes) we merely average out the Πi(t = 0) to
yield an approximation for the value of the portfolio, i.e.
(5)
1.2 Path Dependent Options
Given a stochastic process that, as before, is governed by
dS = (μ D0)Sdt + σSdW.
Then the following options will depend on S(ti) which are the share prices at K + 1 equally spaced sampling
times t0, t1, ..., tK with t0 = 0 and tK = T (unlike part (a), the computation cannot proceed from t = 0 to
t = T in one step). Full details are given the the lecture notes - but the important point to note is that
to estimate the underlying asset values at each time, where each of the K increments dWi
involves drawing
φi from a Normal distribution.
2
Asian Option
Assume that a discretely sampled Asian option has a payoff depending on the discretely sampled average
given by
Then we can write
V (S, A, t = T) = f(S, A),
where f is the payoff function depending the type of option.
There are different classes of Asian option, resulting in different payoff conditions. In this coursework we
look at simple European style call or put options. We can either have a floating strike S or a fixed strike X,
so that for example a floating strike Asian call option would give
f(S, A) = max(A ? S, 0)
and a fixed strike put would be
f(S, A) = max(X ? A, 0).
Lookback Option
The discretely sampled Lookback option has a payoff depending on the discretely sampled maximum or
minimum given by
Then we can write
V (S, A, t = T) = f(S, A),
where f is the payoff function depending the type of option.
There are different classes of Lookback option, resulting in different payoff conditions. In this coursework
we look at simple European style call or put options. We can either have a floating strike S or a fixed strike
X, so that for example a floating strike Lookback call option would give
f(S, A) = max(A ? S, 0)
and a fixed strike put would be
f(S, A) = max(X A, 0).
Barrier Options
The discretely sampled knock-out barrier option will be knocked out (and return a value of zero) if the a
barrier asset price B is crossed before the maturity date.
The option will be an “up” option if the knock out condition is on S > B, or a “down” option if the
condition is on S < B. So for example a up-and-out knockout barrier call option has the conditions X if S > X
0 if S < X
0 if S(ti) > B for any i = 1, 2, . . . , K
and a down-and-out knockout barrier put option will be
V (S, T) =X S if S < X
0 if S > X
0 if S(ti) < B for any i = 1, 2, . . . , K
3
2 Tasks
2.1 Stock Options
You must value the portfolio comprising of short a call option with strike price X1, short a call option with
strike price X2, short 2X2 binary cash or nothing call options with strike price X2 and unit payoff and short
a call option with strike price equal to zero with the parameters T = 0.75, σ = 0.29, r = 0.01, d = 0.05,
X1 = 70 and X2 = 120. The payoff of the portfolio at time T is shown below
-620.001
-413.334
-206.667
0
0 47.5 95 142.5 190
V(S,T)
S
Write a program to calculate the value of the portfolio using the parameters given at t = 0 using Monte
Carlo simulation. You need only include the code in the appendix of your report. (Coding 3 marks)
Plot out two figures for the value of the portfolio with t = 0 at S0 = X1 and S0 = X2, with increasing
N (N = 1000, 2000, . . ., 50000, or more!) and compare the values you obtain with the exact values
from the analytical formula. (Understanding 4 marks)
Try to obtain a confidence interval for the option value at S0 = X1. Show how this interval changes
as N is increased. Explain you results. (Understanding 4 marks)
Obtain a confidence interval when using antithetic variables, and compare with the results using the
basic method above. Explore how efficient using antithetic variables can be using different values of
N. (Understanding 4 marks)
Try an appropriate extension to the Monte-Carlo method and analyse its benefit. Comment on the
efficiency of the method. (Originality/Initiative 5 marks)
2.2 Path Dependent Options
For this task you are required to value a discrete down-and-out barrier put option with the following parameters.
The option matures at T = 1.5, the interest rate is r = 0.03, the dividend rate D0 = 0.06 and
volatility is σ = 0.3. The stock price, currently at S0 = 390, will be observed on K = 40 plus one equally
4
spaced dates throughout the lifetime of the option, where t0 = 0 and tK = T. The barrier is B = 277 and
the strike price X = 390. You should use Monte-Carlo simulation to value this option.
Code up the path dependent option. (Coding 2 marks)
Using the given parameters at t = 0, produce at most 4 plots or tables to investigate the value
of the path dependent option with different values of N and K. Try to spot and explain trends.
(Understanding 8 marks)
You are tasked with providing the most accurate value possible of discrete version of the option using
the given parameters (K as stated above). Assume that you are only given 10 seconds of computation
time to return a value of the option. State the most accurate value you can get in that time limit, how
you verified it and any techniques used. (Originality/Initiative 5 marks)
3 Instructions
This assignment will account for 40% of your final mark in this module. The total number of marks in this
assessment are 40, and they will be awarded as follows:
(i) 5 for working codes;
Grade Description
0-50% Little or no attempt, codes not working
50%-70% One or two bugs in the code are affecting the results
70%-100% Results in 2.1 and 2.2 from the codes appear correct
(ii) 5 for the presentation of your written report;
Grade Description
0-50% Poorly presented work. Significant amount of text unreferenced.
Graphs and tables poorly labelled making it difficult to interpret
them.
50%-70% Good presentation. Text is readable. Graphs are ok, maybe missing
labels and not always referenced correctly. Report is overly
long and unnecessarily repeats the same (or similar) results.
70%-100% Excellent presentation, well written and well referenced. Graphs
are clear, tables used when appropriate. Report keeps within the
page limit.
(iii) 20 for the understanding of the problems involved;
Grade Description
0-50% Results are poorly presented or they are without supporting text.
The methods are described but are not shown to be implemented
through results. The student is unable to demonstrate they can
correctly interpret results.
50%-70% Demonstrates a good understanding of the standard methods. Is
able to generate standard results and discuss them. Results are
well presented.
70%-100% Student is able to correctly interpret standard results and evaluate
the efficiency of the standard methods.
5
(iv) 10 for originality/initiative.
Grade Description
0-50% Little or no attempt at implementing any of the new methods.
Those that have been implemented have poorly presented results
or the student is unable to demonstrate they can correctly interpret
results.
50%-70% Demonstrates a good understanding of new or alternative methods.
Is able to implement new methods, present results and discuss
them. Results are well presented.
70%-100% Has implemented difficult algorithms not detailed in the course.
Presentation of the results is excellent. Student is able to correctly
interpret results and compare methods in a coherent way.
Please see individual bullet points in the task section for a break down of the marks.
Reports should be prepared electronically using either MS Word, LaTeX, or similar, and must be submitted
without your name, but with your university ID number online through the TurnItIn system.
Please include the program files used to generate results for the report in an appendix as plain text. Your
report should be written in continuous prose in the form of a technical report and should be approximately
8 - 10 pages long (excluding appendices). Any programming language may be used. The deadline for this
assignment is 5pm on SUNDAY 17th MARCH.
THIS DEADLINE MUST BE STRICTLY ADHERED TO – Reports handed in AFTER
5pm SUNDAY 17th MARCH will be docked 4 marks plus an additional 4 marks each day
thereafter until a mark of zero is reached. Reports handed in after 5pm Friday 22nd March
will be awarded a mark of zero and will not be marked.
In order that your report conforms to the standards for a technical report, you should use the following
structure:
give a brief introduction stating the problem you are solving and the parameters you are using (from
the model or method),
present your results in the form of figures and tables, using the order of items in the bullet points as a
guide as to the order of your document
absolutely NO screenshots of running code need to be included,
do not include overly long tables – a table should never cross over a page,
present the results for any methods you have implemented, there is no credit for a discussion of a
method that has not been shown to be implemented by you (through results) for your problem
refer to and discuss each of your results in the text, part of the marks available in each bullet point
are for interpreting the results
try to keep to the page limit, removing any unnecessary results from the main text
number and caption your figures and tables and refer to them by their number (not their position in
the text),
number any equations to which you refer,
use consistent internal (and external) referencing
因为专业,所以值得信赖。如有需要,请加QQ:99515681 或邮箱:99515681@qq.com
微信:codinghelp