| Library: | finance |
| See also: | BlackScholesPathIndependentMD BlackScholesPathDependent1DQMC BlackScholesPathIndependent1D BlackScholesPathDependent1D |
| Quantlet: | BlackScholesPathIndependentMDDiv | |
| Description: | calculates the option price and its standard deviation for path independent options in the multi-dimensional Black Scholes model by Monte Carlo simulation. |
| Usage: | {z,v} = BlackScholesPathIndependentMDDiv(s0,r,div,vola,dt,payoff,iterations,gennum) | |
| Input: | ||
| s0 | n x 1 vector of the underlying values at time 0 | |
| r | scalar, risk free interest rate 5% = 0.05 | |
| div | n x 1 vector of the continuous dividend yields | |
| vola | covariance matrix of the log-price processes | |
| dt | scalar, time to maturity | |
| payoff | string, name of the payoff function for the option product | |
| iterations | scalar, number of simulations | |
| gennum | scalar, number of the random source which is used in the simulation | |
| Output: | ||
| z | scalar, estimated option price | |
| v | scalar, standard deviation of the price estimate | |
library("finance")
proc(v) = SpecialOPT(s0)
maxcall = 1.4*(s0[1]-40)
next = 0.95*(s0[2]-60)
if(next>maxcall)
maxcall = next
endif
next = 2.1*(s0[4]-27)
if(next>maxcall)
maxcall = next
endif
next = 0.16*(s0[5]-340)
if(next>maxcall)
maxcall = next
endif
next =(s0[6]-57.5)
if(next>maxcall)
maxcall = next
endif
maxput =(55-s0[3])
if((maxput+maxcall)>0)
v = maxput+maxcall
else
v = 0
endif
endp
s0 = #(40.14,59.4,56.57,26.79,335.3,58.65)
r = 0.058
div = 0.01
dt = 1
vola = #(0.1744942,0.0570134,0.0305491,0.0123347,0.0250993,0.0225357)
vola = vola|#(0.0570134,0.1024468,0.0456498,0.0212167,0.0207358,0.0278711)
vola = vola|#(0.0305491,0.0456498,0.0924536,0.0150578,0.0139953,0.0179354)
vola = vola|#(0.0123347,0.0212167,0.0150578,0.0776464,0.0037853,0.0078510)
vola = vola|#(0.0250993,0.0207358,0.0139953,0.0037853,0.0975046,0.0439312)
vola = vola|#(0.0225357,0.0278711,0.0179354,0.0078510,0.0439312,0.1670526)
BlackScholesPathIndependentMDDiv(s0,r,div,vola,dt,"SpecialOPT",100000,3)
The results can slightly vary with every execution of this example! Contents of _tmp.z [1,] 23.166 Contents of _tmp.v [1,] 0.068005