from math import sqrt
from random import gauss
from numpy import ones, random,exp,average,maximum, zeros,max
Traj=1000000
S=100*ones( (1,Traj) )
vol=(random.normal(0,1,Traj))
v = 0.10
r = 0.001
T = 0.5
K=105*ones( (1,Traj) )
St=S* exp((r - 0.5 * v**2) * T + v * sqrt(T) * vol)
payoff=maximum(St-K,zeros( (1,Traj) ))
callprice=payoff*exp(-r*T)
print(average(callprice))

Monte-carlo sim pricing EU call

  • 1.
    from math importsqrt from random import gauss from numpy import ones, random,exp,average,maximum, zeros,max Traj=1000000 S=100*ones( (1,Traj) ) vol=(random.normal(0,1,Traj)) v = 0.10 r = 0.001 T = 0.5 K=105*ones( (1,Traj) ) St=S* exp((r - 0.5 * v**2) * T + v * sqrt(T) * vol) payoff=maximum(St-K,zeros( (1,Traj) )) callprice=payoff*exp(-r*T) print(average(callprice))