Path: blob/master/2.3 American Options.ipynb
1675 views
American options
Contents
The American option problem is an optimal stopping problem formulated as follows:
where is the payoff, also called intrinsic value. This formula resembles the formula of a European option, except that in this case the option can be exercised at any time. But... at which time? The problem is to find the best exercise time that maximizes the expectation.
Notice that the time is a random variable! It can be different for different paths of the stock process. The solution of the problem provides a strategy, that at each time assesses if it is optimal to exercise the option or not, depending on the current value of the underlying stock.
It can be proved that the function is the solution of the following PDE:
The numerical algorithm for solving this PDE is almost identical to the algorithm proposed in the notebook 2.1 for the Black-Scholes PDE.
Let us have a look at the differences between the implementation of the European and the American algorithm, in the class BS_pricer
:
The European and the American algorithms just differ in one line!!
I don't consider dividends in the notebook. In absence of dividends the American call has the same value of the European call. For this reason, I'm going to consider only the pricing problem of a put option
The class BS_pricer
implements two algorithms to price American options:
the Longstaff-Schwartz Method (see section below)
the PDE method
Plot American put curve
Optimal early exercise boundary
Let us define a free boundary by the value such that if the current stock price is smaller than , then it is optimal to exercise the option, otherwise it is optimal to wait.
called stopping region
called continuation region
In the stopping region, the value of the option corresponds to its intrinsic value i.e. .
In order to find we have to find the maximum value such that :
Binomial tree
One of the most used methods for pricing American options is the Binomial tree.
We have already encountered the binomial tree in the notebook 1.1. The following algorithm is almost a copy/paste from that notebook. There are just two additional lines:
S_T = S_T * u
. This an efficient method to retrive the price vector at each time steps.V = np.maximum( V, K-S_T )
. This line computes the maximum between the conditional expectation V and the intrisic value.
Longstaff - Schwartz Method
This is a Monte Carlo algorithm proposed by Longstaff and Schwartz in the paper [1]: LS Method
The algorithm is not difficult to implement, but it can be difficult to understand. I think this is the reason the authors started the paper with an example. Well. I think they had a good idea, and for this reason I want to reproduce their example here.
The same code is copied in the class BS_pricer
where the function LSM
is implemented.
If in the following code you feel that something is unclear, I suggest you to follow the steps (not in python) proposed in the original paper.
In the previous cell we defined the stock matrix S. It has 8 rows that correspond to the number of paths. The 4 columns correspond to the 4 time points, i.e. each row is a path with 3 time steps.
The matrix H = np.maximum(K - S, 0)
, is the matrix of intrinsic values:
The matrix V contains the cash flows.
Important To simplify the computations, the discounted cashflows are reported at every time points.
For instance: In the third row the final cashflow (0.07) is discounted at every time point, till t=1. In the paper, the authors just consider the cashflow (0.07) at time t=3 and the discount is performed at the end of the algorithm.
Perpetual put
An American option is called perpetual if it has no expiration date i.e. :
By the time homogeneity of the problem we can set and obtain:
The PDE for the perpetual put option is:
In order to solve this obstacle problem we need to find a value such that:
and
We can search for the solution of the linear second order ODE in the continuation region, by guessing a solution in the form . We then obtain a quadratic equation in that has two solutions and . We can express
Since as , we must have . We then require that V(s) is continuous and differentiable at :
These equations are satisfied for:
It is also interesting to have a look at [2], where the author derives the formulas above using a probabilistic approach.
Numerical computation of perpetual put
We can pass to the log-variable and obtain the simpler equation with constant coefficients:
equivalent to:
This variational inequality can be reformulated as a linear complementarity problem:
At this poins, we can discretize the equations by finite difference using a central approximation for the first order derivative;
That in matrix form becomes:
where as usual, is a tridiagonal matrix and is the vector containing the boundary values. is the payoff.
A description of numerical methods to solve the linear complementarity problem can be found in [3] or [4].
Here it is important to choose a big value of S_max
because the perpetual put price goes to zero asimptotically.
The PSOR method is a slight modification of the SOR method introduced in the notebooks A1 and A2.
Plot
References
[1] F. Longstaff, E. Schwartz (2001) Valuing American Options by Simulation: A Simple Least-Squares Approach, The Review of Financial Studies, vol 14-1, pag 113-147.
[2] Steven Shreve, Stochastic calculus for finance, volume 2, (2004).
[3] Daniel Sevcovic, Beata Stehlikova, Karol Mikula (2011). "Analytical and numerical methods for pricing financial derivatives". Nova Science Pub Inc; UK.
[4] Wilmott Paul (1994). "Option pricing - Mathematical models and computation". Oxford Financial Press.