Pricing European Options Using the Finance Package - Maple Programming Help

Online Help

All Products    Maple    MapleSim


Home : Support : Online Help : Applications and Example Worksheets : Finance : Finance/Examples/EuropeanOptions

Pricing European Options Using the Finance Package

Simulation

restart; withFinance:

 

We will consider a stochastic variable, which follows the standard Brownian motion with drift 0.055 and diffusion 0.3.

 

Y:=BrownianMotion0, 0.055,0.3

Y:=_X

(1.1)

PathPlotYt,t=0..2,timesteps=50,replications=10, thickness =3, color = red..blue, axes = BOXED, gridlines = true, tickmarks = 10, 10

 

Here ae sample paths for ⅇYt.

 

PathPlotⅇYt,t=0..2,timesteps=50,replications=10,thickness=3,color=red..blue,axes=BOXED,gridlines=true,tickmarks=10,10

 

You can compute the expected value of any expression involving Y.

 

ExpectedValuemaxⅇY30.5,0,replications=105

value=0.5000000000,standarderror=0.

(1.2)

 

Consider another stochastic process.

 

Z:=GeometricBrownianMotion1,0.1,0.3

Z:=_X3

(1.3)

DriftZtZt=DriftⅇYtⅇYt

0.1=0.1000000000

(1.4)

DiffusionZtZt=DiffusionexpYtexpYt

0.3=0.3

(1.5)

 

So eYt and Zt define the same stochastic process.

 

ExpectedValuemaxZ31,0,replications=105

value=0.4506814169,standarderror=0.002083752433

(1.6)

 

Note that the previous value is the expected payoff of a European call option with strike price 1 maturing in 3 years. In order to compute the current option price you have to discount this expected value at the risk-free rate (which is the drift parameter of Zt).

 

DiscountFactor3,0.1ExpectedValuemaxZ31,0,replications=105,output=value

0.3354146746

(1.7)

 

Compare this with the analytic price obtained using the Black-Scholes formula.

 

BlackScholesPrice1,1,3,0.3, 0.1

0.3360448376

(1.8)

 

Try to compute some market sensitivities of the option price.

 

W:=t→lnZt0.055t0.3

W:=t→lnZt+10.055t0.3

(1.9)

DriftWt;

0.

(1.10)

DiffusionWt;

0.9999999999

(1.11)

 

So Wt is the standard Wiener process. Using tools from the Malliavin Calculus you can show that for any payoff function  ft

 

Δ =  S0 EerTfST=erTEfSTWTS0σT

 

ⅇ0.13ExpectedValuemaxZ31,0W30.33,replications=106,output=value

0.8034185612

(1.12)

BlackScholesDelta1,1,3,0.3,0.1;

0.7987480882

(1.13)

 

Here are multiple stocks.

 

W1:=WienerProcess

W1:=_W

(1.14)

S1:=t→100ⅇ0.055t+0.3W1t

S1:=t→100ⅇ0.055t+0.3W1t

(1.15)

W2:=WienerProcess

W2:=_W0

(1.16)

S2:=t→100ⅇ0.055t+0.3W2t

S2:=t→100ⅇ0.055t+0.3W2t

(1.17)

ⅇ0.11ExpectedValuemaxS11S21,0,timesteps=100,replications=104,output=value

16.87358420

(1.18)

ⅇ0.11ExpectedValuemaxS21S11,0,timesteps=100,replications=104,output=value

16.94221984

(1.19)

 

This is the correlation structure.

 

W3:=WienerProcess

W3:=_W1

(1.20)

S1:=t→100ⅇ0.055t+0.30.00001W1t+W3t

S1:=t→100ⅇ0.055t+0.30.00001W1t+W3t

(1.21)

S2:=t→100ⅇ0.055t+0.30.000001W2t+W3t

S2:=t→100ⅇ0.055t+0.30.000001W2t+W3t

(1.22)

ⅇ0.11ExpectedValuemaxS21S11,0,timesteps=100,replications=104,output=value

0.0001198987355

(1.23)