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 nite 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 nite partitions π = }0 = t0  < t1  < . . . < tN  = TI of the interval [0, T].  If lxlp-var  < o, then x is said to have nite p- variation.  If lxlp-var  = o, then x is said to have infinite p- variation.

Prove that almost every sample path of B has nite 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)β |B1 |2β.

(d)  Show that, for any t > 0,

┌ 匕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 rst 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βtdt +  (t, St ) + atdSt .

(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 .  Dene 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 nitely, 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 nitely, then nd Var 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 nite 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)))