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