American options pricing with Least Squares Monte Carlo method


The package compiles functions that calculate prices of American put options with Least Squares Monte Carlo method. The option types are plain vanilla American put, Asian American put, and Quanto American put. The pricing algorithms include variance reduction techniques such as Antithetic Variates and Control Variates. Additional functions are given to derive "price surfaces" at different volatilities and strikes, create 3-D plots, quickly generate Geometric Brownian motion, and calculate prices of European options with Black & Scholes analytical solution.


Package: LSMonteCarlo
Type: Package
Version: 1.0
Date: 2013-09-20
License: GPL 3

The Least Squares Monte Carlo is an approach developed to approximate the value of American options. It combines regression modeling and Monte Carlo simulation. The key feature of this method is estimation of the conditional expectation of the future pay-offs by a regression model (for details see Longstaff & Schwartz, 2000). The main pricing functions employing this method in the package are: AmerPutLSM, AsianAmerPutLSM, and QuantoAmerPutLSM. Pricing functions that include variance reduction methods are: AmerPutLSM_AV, QuantoAmerPutLSM_AV (Antithetic Variates) and AmerPutLSM_CV (Control Variates, with Black & Scholes solution for European put used as the control). All these functions are based on Geometric Brownian motion as a price process. They can be used with tailored summary, print, and price functions. The "price surfaces" at different volatilities and strikes can be derived using the functions AmerPutLSMPriceSurf, AsianAmerPutLSMPriceSurf, and QuantoAmerPutLSMPriceSurf, and plotted with tailored plot function. For general reading on option pricing with Monte Carlo methods see Glasserman (2004).


Mikhail A. Beketov

Maintainer: Mikhail A. Beketov <>


Glasserman, P. 2004. Monte Carlo Methods in Financial Engineering. Springer.

Longstaff, F.A., and E.S. Schwartz. 2000. Valuing american option by simulation: A simple least-squared approach. The Review of Financial Studies. 14:113-147.

See Also

Functions: AmerPutLSM, AmerPutLSM_AV, AmerPutLSM_CV, AsianAmerPutLSM, QuantoAmerPutLSM, and QuantoAmerPutLSM_AV.


Put<-AmerPutLSM(Spot=14.2, Strike=16.5, n=200, m=50)
plot(AmerPutLSMPriceSurf(vols = (seq(0.1, 1.5, 0.2)), n=200, m=10, 
strikes = (seq(0.5, 1.9, 0.2))), color = divPalette(150, "RdBu"))
comments powered by Disqus