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.

# Bender

## PRMIA talk: State-of-the-art option pricing by simulation

Option pricing with Monte Carlo methods is often required for estimation of precise market-risk. However, until recently pricing securities with early exercise or issuer’s call features remained practically infeasible in simulation settings. The main challenges for practical usage of an option valuation by simulation is the avoidance of nested simulation and the estimation of confidence bounds of the price. Using practical examples, this talk will outline the recent developments satisfying these requirements.

The presentation slides for Christian Bender’s talk: State-of-the-art option pricing by simulation, held on 02.06.2008, 18:00h at the PRMIA chapter meeting.

## Upper bounds for early exercisable option

A detailed description of the algorithm can be found in the paper: Iterating cancellable snowballs and related exotics

Bender's Algorithm can be represented in ThetaScript:

```%% The model American computes an approximation
%% of the price "P" of a continuously exercisable put
%% option based on 50 exercise dates.
model American
import K	"Strike"
import T	"Maturity time"
export P_LS	"Option Value (Least-Squares)"
export V_max
export M_pi "Martingale"
export U
export ret

% Return option price approximations
P_LS = E(V!)
P_Bender = E(V_max!)

% Initialize process parameters
n = 50;        % number of time-steps
S = 100;       % Asset price
sigma = 0.4;   % Volatility
r = 0.05;      % Interest-rate
EUR = 1;       % Disount factor
W = 0          % Wiener process
fork
loop inf
Theta @dt
dW = sqrt(@dt) * randn()
W = W + dW
S = S * exp( (r-0.5*sigma^2)*@dt + sigma*dW)
EUR = EUR * exp(-r *@dt)
end
end
% End of stochastic process

% Begin Least-Squares Monte-Carlo
fork
loop n
Theta T/n
if E(V!) < (K-S)*EUR
V = (K-S)*EUR
end
end
V = max(K-S,0)*EUR
end
% End of Least-Squares Monte-Carlo

% Begin Bender's upper bound
M_pi = 0
V_max = V_max!
fork
loop n
U = E(ret!)
ret = (W! - W)/(T/n) * V!
M_pi = M_pi + U * (W! - W)*EUR
Theta T/n
V_max = max(V_max!, max(K-S,0)*EUR - M_pi)
end
V_max = V - M_pi
end
% End of Bender's upper bound
end```