Prices arithmetic average Asian Call options under geometric Brownian motion. It also estimates the sensitivities Delta and Gamma.
1 2 3 4 5 
T 
time to maturity (in years) 
d 
number of control points 
K 
strike price 
r 
risk free interest rate 
sigma 
volatility 
S0 
starting stockprice 
method 
selects the simulation method; 
sampling 
sampling 
metpar 
list holding extra parameters related to the simulation method 
sampar 
list holding several parameters related to the sampling method;

Method best
(see the reference Dingec and Hormann below)
is a very efficient simulation algorithm using multiple Control Variates and conditional MonteCarlo
to calculate the the price, delta and gamma of Asian call options under geometric Brownian motion.
It is especially effective when QMC
is selected as sampling method.
As QMC method Korobov Lattice rules are used. For good parameter values
see Table 1 of (L'Ecuyer, Lemieux).
returns a matrix holding the price and greeks. The estimated Asian Call price and its estimated delta and gamma form the first column vector, the respective 95 percent error bounds are given in the second column.
Kemal Dingec, Wolfgang Hormann
K. D. Dingec and W. Hormann. Improved Monte Carlo and QuasiMonte Carlo Methods for the Price and the Greeks of Asian Options, Proceedings of the 2014 Winter Simulation Conference A. Tolk, S. D. Diallo, I. O. Ryzhov, L. Yilmaz, S. Buckley, and J. A. Miller, eds.
L'Ecuyer, P., and C. Lemieux. 2000. Variance Reduction via Lattice Rules. Management Science 46 (9): 12141235.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21  # standard settings for an efficient simulation using QMC and variance reduction
AsianCall(T=1,d=12,K=100,r=0.05,sigma=0.2,S0=100,method="best",
sampling="QMC",metpar=list(maxiter=100,tol=1.e14,cvmethod="splitting"),
sampar=list(nout=50,n=2039,a=1487,baker=TRUE,genmethod="pca"))
# efficient Monte Carlo version of the above simulation
AsianCall(T=1,d=12,K=100,r=0.05,sigma=0.2,S0=100,method="best",
sampling="MC",metpar=list(maxiter=100,tol=1.e14,np=1000),
sampar=list(n=10^5))
# simple QMC version without variance reduction
AsianCall(T=1,d=12,K=100,r=0.05,sigma=0.2,S0=100,method="naive",
sampling="QMC",
sampar=list(nout=50,n=2039,a=1487,baker=TRUE,genmethod="pca"))
# naive Monte Carlo version
AsianCall(T=1,d=12,K=100,r=0.05,sigma=0.2,S0=100,method="naive",
sampling="MC",sampar=list(n=10^5))

Questions? Problems? Suggestions? Tweet to @rdrrHQ or email at ian@mutexlabs.com.
Please suggest features or report bugs with the GitHub issue tracker.
All documentation is copyright its authors; we didn't write any of that.