# AsianCall: Calculates the Price, Delta and Gamma of an Asian Option In OptionPricing: Option Pricing with Efficient Simulation Algorithms

## Description

Prices arithmetic average Asian Call options under geometric Brownian motion. It also estimates the sensitivities Delta and Gamma.

## Usage

 ```1 2 3 4 5``` ```AsianCall(T=1,d=12,K=100,r=0.05,sigma=0.2,S0=100,method=c("best","naive"), sampling=c("QMC","MC"), metpar=list(maxiter=100,tol=1.e-14,cvmethod="splitting"), sampar=list(nout=50,seq.type="korobov",n=2039,a=1487, baker=TRUE,genmethod="pca")) ```

## Arguments

 `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; method `"best"` uses a variance reduction method based on effective control variates and conditional Monte Carlo and is very effective. method `"naive"` is mainly provided for comparison purposes. `sampling` sampling `QMC` uses the Quasi Monte Carlo method Korobov lattice for the simulation. sampling `MC` uses standard Monte Carlo for the simulation. `metpar` list holding extra parameters related to the simulation method For `method="best"`: `maxiter=` maximal no of iterations for Newton method `tol=` error tolerance for Newton method for `sampling="QMC"`: `cvmethod=c("splitting","direct")` NOT necessary for method = "naive" "splitting" ... estimates CV coefficients using lm with bootstrap "direct" ... estimates CV coefficients using lm and the full sample for `sampling="MC"`: `np` ... sample size for pilot run for CV; NOT necessary for method = "naive" `sampar` list holding several parameters related to the sampling method; for `sampling="MC"` the list `sampar` only contains the total samplesize `n`; for `sampling="QMC"` the list `sampar` contains the elements: `nout`number of independent "randomized" copies of the Korobov lattice `n`number of points of the Korobov lattice `a`important constant for the construction of the Korobov lattice `baker``TRUE/FALSE`, indicates if Baker transform should be used for making the integrand periodic `genmethod``= c("pca", "std","pcamain","lt","ltpca")`, note that for `method=="naive"` only `genmethod=c("pca","std")` can be used. `genmethod="pca"`principal component analysis `genmethod="std"`standard `genmethod="pcamain"`use only first `dirnum` main directions of the PCA `genmethod="lt"`uses a transform for the first `dirnum` `genmethod="ltpca"`combination of `lt` with `pca` `dirnum`number of main directions, only used for `genmethod="pcamain"` or `"lt"`

## Details

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).

## Value

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.

## Author(s)

Kemal Dingec, Wolfgang Hormann

## References

K. D. Dingec and W. Hormann. Improved Monte Carlo and Quasi-Monte 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): 1214-1235.

`OptionPricing-package`
 ``` 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.e-14,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.e-14,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)) ```