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.


From ThetaWiki
Revision as of 18:57, 19 December 2011 by WikiSysop (Talk | contribs)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

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
        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 of stochastic process
    % Begin Least-Squares Monte-Carlo
        loop n				          	
            Theta T/n				  
            if E(V!) < (K-S)*EUR
                V = (K-S)*EUR
        V = max(K-S,0)*EUR
    % End of Least-Squares Monte-Carlo
    % Begin Bender's upper bound
    M_pi = 0
    V_max = V_max!
        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)              
        V_max = V - M_pi
    % End of Bender's upper bound