A common problem in mathematical finance is the evaluation of exercise options (enter or cancel rights) in financial contracts. A typical example is an American equity option that allows the investor at any given day to buy (or sell) a stock at a fixed price. The owner has to decide every day whether to exercise the option or to hold it and exercise later. Another example is a corporate bond that can be canceled by the issuer at several dates before its maturity. More general, a situation where a company or an investor can opt in or opt out of a business or contract can be framed as an exercise option.

Using Monte Carlo simulation, many financial products can be evaluated with low computational effort. However, when an exercise option comes into play, for every path of the original simulation an additional full simulation would be required to price the exercise right. With every exercise right added, the computational effort increases exponentially and the full revaluation approach quickly becomes unfeasible. Francis Longstaff and Eduardo Schwartz developed a simple method based on linear least-squares to tackle this problem. Instead of recursive full simulations, the exercise option value is estimated by performing successive linear regressions on predefined basis functions.

In this talk, a simple implementation of the Longstaff-Schwartz algorithm in Python will be presented. The technical problems in the context of exercise right valuation are explained using code examples. Prerequisites are intermediate Python skills and a solid foundation in probability theory and statistics (especially probability distributions, stochastic processes and linear regression). Knowledge on quantitative finance or financial markets is not expected, but will certainly be useful. The SciPy technology stack will be used for the implementation of the algorithm.

After this talk you will be familiar with a simple method to evaluate exercise options and determine optimal exercise decisions. Also, you will know how to implement this method using Python.

Benedikt Rudolph

Affiliation: Lucht Probst Associates

I studied Mathematical Finance at Technical University of Munich. After graduation, I joined Lucht Probst Associates (LPA) in Frankfurt, Germany, to work as a Quantitative Analyst. My job is the development and implementation of mathematical models for structured financial products. C# and Python are my programming languages of choice to solve difficult quantitative problems.

visit the speaker at: Homepage