Welcome to THETAWIKI. If you like to create or edit a page please make sure to login or register an account. All registered users please make sure to provide a valid email address.

American Option

From ThetaWiki
Jump to: navigation, search

Description

An American option can be exercised at any time up to the maturity date. This means one has to determine an optimal exercise strategy in order to evaluate this option. For example, the option holder has to decide when to exercise the put value K-S of the option. It turns out that the optimal time to exercise is when the expected value of continuation E(V) is less than the current exercise value K-S of the option.

Modeling American put in ThetaML

The model 'AmericanPut' computes the American Put option prices, assuming 52 exercise times. The underlying 'S' and the discount numeraire 'EUR' are processes simulated externally. For example, the process 'S' can be a stock price process that follows a Geometric Brownian Motion or a Heston Volatility process. The discount numeraire 'EUR' can be a constant discount curve as implemented in Discounting, or a stochastic process that has a dynamics as defined in the CIR model.

%% The model American computes an approximation
%% of the price "P" of a continuously exercisable put
%% option based on 52 exercise dates.
model AmericanPut
  import S	"Stock price process"
  import K	"Option strike price"
  import EUR	"Discount numeraire"
  import T	"Option maturity time"
  export P	"Option Value"
 
  %at current time, set the option value to have the same distribution
  %as the variable 'V'; the ThetaML future operator '!' accompanying the
  %variable 'V' acts like a function on 'V', such that the values of 'V'
  %at current time remain to be determined at a later instance when 'V'
  %is assigned some values
  P = V!
  %'n' number of exercise times
  n = 52
  %loop 'n' times
  loop n
    %the ThetaML command 'Theta' passes time by 'T/n' years
    Theta T/n
    %the ThetaML function E approximates the early exercise value, computed using the
    %Least Squares Monte Carlo method combined with the sparse grid basis functions
    if E(V!) < (K - S)*EUR
	V = (K - S)*EUR
    end
  end
  %at option maturity time T, set the option payoffs;
  %the option payoffs are discounted to time 0 by the discount numeraire'EUR'
  V = max(K - S, 0)*EUR
 
end

(Samples/Derivatives/american.thetas)

Thetagram graphic illustration of modelling American put


American.png

Numerical example of pricing American put


Parameter Symbol Value
Strike K 100
Risk-free rate r 5% p.a.
Volatility sigma 40% p.a.
Exercise price K-S



The true option price is P = 13.66761. The above ThetaScript with 100000 paths delivers P = 13.623 +- 0.091 with a distribution for P as shown below:
Ami histogram.png

Simulation optimizations

There are a few techniques which can increase significantly the efficiency for computation. For example the script below evaluates to P = 13.652 +- 0.035 with only 10000 paths. Methods for increasing accuracy can be found in Tips and Tricks.

The model 'American_accurate' computes the American Put option prices, assuming 252 exercise times. The underlying 'S' and the discount numeraire 'EUR' are processes simulated externally. For example, the process 'S' can be a stock price process that follows a Geometric Brownian Motion or a Heston Volatility process. The discount numeraire 'EUR' can be a constant discount curve as implemented in Discounting, or a stochastic process that has a dynamics as defined in the CIR model.

%% The model American computes an approximation
%% of the price "P" of a continuously exercisable put
%% option based on 252 exercise dates.
model American_accurate
  import S	"Stock price process"
  import K	"Option strike price"
  import EUR	"Discount numeraire"
  import T	"Option maturity time"
  export P	"Option Value"
 
  %at current time, set the option value to have the same distribution
  %as the variable 'V'; the ThetaML future operator '!' accompanying the
  %variable 'V' acts like a function on 'V', such that the values of 'V'
  %at current time remain to be determined at a later instance when 'V'
  %is assigned some values
  P = V!
  %'n' number of exercise times
  n = 252
  %loop 'n' times
  loop n
    %Optimization 1: Hedge the option value
    %the ThetaML function 'Beta' computes an optimal hedge ratio based on its two arguments
    V = V! - Beta(S!,V!)*(S!*EUR!-S*EUR)
    %the ThetaML command 'Theta' passes time by 'T/n' years
    Theta T/n
 
    % Optimization 2: Compute expectation of "in-the-money" paths only.
    if (K-S)*EUR > 0
      %the ThetaML function 'E' approximates the early exercise value, computed using the
      %Least Squares Monte Carlo method combined with the sparse grid basis functions
      if E(V!) < (K - S)*EUR
        V = (K - S)*EUR
      end
    end
  end
  %at option maturity time T, set the option payoffs;
  %the option payoffs are discounted to time 0 by the discount numeraire 'EUR'
  V = max(K - S,0)*EUR
 
end

(Samples/Derivatives/american.thetas)