MATH52230 FINANCIAL MATHEMATICS
Hello, dear friend, you can consult us at any time if you have any questions, add WeChat: daixieit
FINANCIAL MATHEMATICS
(MATH52230)
1. In this question, you may use any standard properties of Brownian motion, including its quadratic variation, and the fact that its sample paths are almost surely locally α-H¨older continuous for any α e (0, ) .
(a) Let B be a (standard one-dimensional) Brownian motion, adapted to a filtration
(rt )t>0 .
Let us fix a finite time T > 0 . For p 2 1 and a path x: [0, T] - R, the p- variation of
x is defined as
lxlp-var := ╱ sπ(u)p |xti≠1 _ xti |p、 ,
where the supremum is taken over all possible finite partitions π = }0 = t0 < t1 < . . . < tN = TI of the interval [0, T]. If lxlp-var < o, then x is said to have finite p- variation. If lxlp-var = o, then x is said to have infinite p- variation.
Prove that almost every sample path of B has finite p-variation for every p > 2 .
(b) Prove that almost every sample path of B has infinite p-variation for every p e [1, 2) .
For parts (c)– (e) of this question, let β e (0, 1], and let f : R - R be a β-H¨older continuous function . That is, suppose that there exists a constant C > 0 such that
|f(x) _ f(y)| < C|x _ y|β for all x, y e R.
(c) Explain why, for any s < t, we have the equality:
E ┌|Bt _ Bs |2β┐ = (t _ s)β E ┌|B1 |2β┐ .
(d) Show that, for any t > 0,
E ┌ 匕0 t │f(Bs ) │2 ds┐ < o.
(e) It follows from the previous part and the theory developed in the lectures that the stochastic integral 0(t) f (Bs ) dBs exists . Prove that it is given by
匕0 t f (Bs ) dBs = llTl(i)0尸(N_1) f (Bti)(Bti≠1 _ Bti),
where the limit exists in L2 (Ω), and may be taken over any sequence of partitions π = }0 = t0 < t1 < . . . < tN = tI of the interval [0, t] with vanishing mesh size . You may use the Itˆo isometry and any standard properties of simple processes .
2. (a) For some T > 0, let f : [0, T] x R - R be a function which is twice continuously differentiable with uniformly bounded derivatives . Let λ > 0, let B be a Brownian motion, and let X be the stochastic process given by
Xt = e_λt f (t, Bt ) for t e [0, T].
By first applying Itˆo’s formula to the function e_λt f (t, x), show that X is a martingale if and only if the function f satisfies the partial differential equation:
∂f 1 ∂2 f
∂t 2 ∂x2
(b) By identifying a suitable value of λ and a suitable function f , deduce from part (a)
that, for any γ e R, the process given by
eγBt _γ 2 t/2 for t e [0, T]
is a martingale .
(c) Now consider a Black–Scholes model with a risk-free bond with price process β, and a stock with price process S, which satisfy
dβt = rβt dt,
dSt = αSt dt + σSt dBt ,
where α e R, σ > 0, and r e R is the rate of continuously compounded interest .
Assume that the price of an option is given by a process V , which may be written as
Vt = u(t, St )
for some function u : [0, T] x (0, o) - R, which is twice continuously differentiable with uniformly bounded derivatives .
Suppose that an investor decides to hold one option, a number at of stocks, and a number bt of bonds, so that the wealth of their portfolio is given by
Wt = Vt + at St + bt βt .
We assume that this portfolio is self-financing, so that its dynamics are given by dWt = dVt + at dSt + bt dβt .
Show that
dWt = ╱ (t, St ) + σ S2t(2) (t, St ) + btrβt、dt + ╱ (t, St ) + at、dSt .
(d) We can make this portfolio risk-free by setting
∂u
Since the portfolio is now risk-free, you may assume that its dynamics also satisfy dWt = kWt dt
for some k e R .
By using the principle of absence of arbitrage, explain why we must have that k = r .
(e) By using parts (c) and (d), show that the function u satisfies the Black–Scholes
equation:
(t, x) + σ 2 x2 (t, x) + rx (t, x) _ ru(t, x) = 0.
3. Let X ~ N(0, 1) and f be any function . Define g(X) := . (a) For an i .i .d sample Xi , 1 < i < M of X, define
M
M = g(Xi ).
(i) Show that if E [f(X)] exists finitely, then M is both consistent and unbiased as an estimator of f(X) . [State clearly any theorem that you are using.]
(ii) If Var (f(X)) exists finitely, then find Var ╱M 、in terms of variance and covari-ance of f(X) and f(_X) . [Hint: How can you calculate Var (g(X))?]
(b) The basis of the antithetic method is a theoretical upper bound on Var (g(X)) in terms
of the function f . State this upper bound . Give an example of a monotone function f that shows the theoretically guaranteed bound is the best possible in general .
(c) Let Y be a random variable with finite positive variance . Define Zθ := X+θ (E[Y] _ Y) . Prove that the Var(Zθ ) is minimised by θ min = . Justify each step of your proof.
(d) For an m x m real matrix A = ((aij )), define
m
lAlo := m x 尸 |ai(a) ij |
j=1
m
lAl1 := m x 尸 |aj(a) ij |.
i=1
(i) For any two real matrices A, B, show that lA + Blo < lAlo + lBlo .
(ii) Show that if A is a real, symmetric matrix, then
lAlo = lAl1 .
4. The price of a European put option can be obtained using the Crank Nicolson(CN) finite difference method . The given parameter values are strike price E = 4 ; volatility σ = 0.3, interest rate r = 0.03; and T = 1; L = 10; N北 = 50; Nt = 50; k = T/Nt ; h = L/N北 . Here T is the maturity time, L is the length along the x-axis, N北 is the number of steps along the x-axis, Nt is the number of steps along the time t-axis . In the code below, the Crank-Nicolson algorithm is implemented using Python . Recall that the following implicit matrix equation related to the CN method, where our aim is to solve for Vi+1
(I + B)Vi+1 = (I + F)Vi + (pi + qi ), (1)
where the notations I, B, F, Vi , pi and qi are similar to that discussed in class .
(a) The following Python code should generate all the matrices required to write the
CN formula . Fill in the blanks (indicated by ) in the incomplete Python code below . Remember to use the right indentation and syntax . No credit will be given if you change parts of the code other than the indicated ones . The source code is attached .
import numpy as np
import math
import itertools # used to convert into suitable data object # All packages here ##############################################################
Nx =50 # number of steps along the x-axis
T=1 # maturity time
Nt=50 # number of time steps
time˙step = T/Nt
r=0 .03
sigma=0 .3
L=10
h=L/Nx
E=4
# All parameters here ##############################################################
mvec= [ x for x in range(1, Nx)] # an array with entries 1,2, . .Nx- 1 D1=np .diag(mvec)
square˙mvec= [x **2 for x in mvec]
D2=np .diag(square˙mvec)
zero˙vector1 =np .zeros((Nx-2, 1))
zero˙vector2= np .transpose(zero˙vector1)
B1=np .identity(Nx-2)
Upper˙triangular1= np .block([
,
[0, zero˙vector2]
])
Lower˙triangular1 = np .transpose( * Upper˙triangular1) Tridiagonal1= Upper˙triangular1 + Lower˙triangular1 Tridiagonal2= Upper˙triangular1+ + (-2) * np .identity(Nx- 1)
Intermediate1= 0 .5*time˙step* r *(np .matrix(D1)@ np .matrix(Tridiagonal1)) #Multilpy matrices D2T2
Intermediate2= 0 .5*time˙step*sigma**2*(np .matrix(D2) @ np .matrix(Tridiagonal2 # Fmatrix =F as in equation (1) above
Fmatrix = (1-r*time˙step)*np .identity(Nx- 1)+ +Intermediate1 # Bmatrix=B in equation (1) above
Bmatrix = (1+ r*time˙step)* - Intermediate2 -
#A1matrix=1/2 (I + F) on RHS of equation (1) above
A1matrix= 0 .5 * ( +Fmatrix)
# A2matrix=1/2 (I+ B) on LHS of equation (1) above
A2matrix = 0 .5 * ( + Bmatrix)
(b) The following Python code should solve the implicit CN matrix equation (1) . Fill in
the blanks (indicated by ) in the incomplete Python code below . Remember to use the right indentation and syntax . No credit will be given if you change parts of the code other than the indicated ones . The packages and parameters remain the same as in part (a) . The source code is attached .
# Next we solve the above implicit matrix equation
Vmatrix= np .zeros((Nx- 1, Nt+1))
column˙1˙V=[max(E-j*h,0) for j in range(1,Nx)]
Vmatrix[:,0] =column˙ 1˙V
for i in range(Nt):
tau=i*
p1=0 .5* time˙step *(sigma**2-r)*E * math .exp(-r*( ))
q1 = 0 .5 * time˙step *(sigma**2-r)*E * math .exp(-r*( + )) vector˙initialize=np .zeros((Nx- 1, 1))
vector˙initialize[0]=0 .5 * (p1+q1)
new˙p˙q˙vector=vector˙initialize
rhs =np .transpose(A1matrix@ Vmatrix[:,i]) + 0 .5 * solution˙to˙equation= np .linalg .solve(A2matrix, rhs)
Vmatrix[:, i+1]=list(itertools .chain(*np .array(solution˙to˙equation)))
2023-03-17