State processes and their role in design and implementation of financial models

Similar documents
1.1 Basic Financial Derivatives: Forward Contracts and Options

Market interest-rate models

CONTINUOUS TIME PRICING AND TRADING: A REVIEW, WITH SOME EXTRA PIECES

Lecture Notes for Chapter 6. 1 Prototype model: a one-step binomial tree

Lecture 5: Review of interest rate models

Risk Neutral Measures

Crashcourse Interest Rate Models

Lecture 17. The model is parametrized by the time period, δt, and three fixed constant parameters, v, σ and the riskless rate r.

European call option with inflation-linked strike

Monte Carlo Simulations

θ(t ) = T f(0, T ) + σ2 T

1 Interest Based Instruments

1 Mathematics in a Pill 1.1 PROBABILITY SPACE AND RANDOM VARIABLES. A probability triple P consists of the following components:

Forwards and Futures. Chapter Basics of forwards and futures Forwards

Numerical schemes for SDEs

THE USE OF NUMERAIRES IN MULTI-DIMENSIONAL BLACK- SCHOLES PARTIAL DIFFERENTIAL EQUATIONS. Hyong-chol O *, Yong-hwa Ro **, Ning Wan*** 1.

Term Structure Lattice Models

The Use of Importance Sampling to Speed Up Stochastic Volatility Simulations

Stochastic modelling of electricity markets Pricing Forwards and Swaps

AMH4 - ADVANCED OPTION PRICING. Contents

BIRKBECK (University of London) MSc EXAMINATION FOR INTERNAL STUDENTS MSc FINANCIAL ENGINEERING DEPARTMENT OF ECONOMICS, MATHEMATICS AND STATIS- TICS

M.I.T Fall Practice Problems

Time-changed Brownian motion and option pricing

EFFICIENT MONTE CARLO ALGORITHM FOR PRICING BARRIER OPTIONS

INTEREST RATES AND FX MODELS

Valuation of derivative assets Lecture 8

Stochastic Processes and Stochastic Calculus - 9 Complete and Incomplete Market Models

Economathematics. Problem Sheet 1. Zbigniew Palmowski. Ws 2 dw s = 1 t

LIBOR models, multi-curve extensions, and the pricing of callable structured derivatives

TEST OF BOUNDED LOG-NORMAL PROCESS FOR OPTIONS PRICING

DERIVATIVE SECURITIES Lecture 5: Fixed-income securities

The stochastic calculus

Change of Measure (Cameron-Martin-Girsanov Theorem)

Fixed-Income Options

Constructing Markov models for barrier options

Lecture 4. Finite difference and finite element methods

Pricing Barrier Options under Local Volatility

A Hybrid Commodity and Interest Rate Market Model

3.4 Copula approach for modeling default dependency. Two aspects of modeling the default times of several obligors

Analytical formulas for local volatility model with stochastic. Mohammed Miri

Interest rate models in continuous time

Lecture on Interest Rates

Robust Pricing and Hedging of Options on Variance

FINANCIAL OPTION ANALYSIS HANDOUTS

Risk Neutral Valuation

Tangent Lévy Models. Sergey Nadtochiy (joint work with René Carmona) Oxford-Man Institute of Quantitative Finance University of Oxford.

STOCHASTIC CALCULUS AND BLACK-SCHOLES MODEL

IMPA Commodities Course : Forward Price Models

Libor Market Model Version 1.0

Application of Stochastic Calculus to Price a Quanto Spread

MFE Course Details. Financial Mathematics & Statistics

******************************* The multi-period binomial model generalizes the single-period binomial model we considered in Section 2.

Youngrok Lee and Jaesung Lee

Equity correlations implied by index options: estimation and model uncertainty analysis

A No-Arbitrage Theorem for Uncertain Stock Model

Introduction to Financial Mathematics

Stochastic Differential Equations in Finance and Monte Carlo Simulations

Credit Risk : Firm Value Model

Introduction to Probability Theory and Stochastic Processes for Finance Lecture Notes

Advanced Stochastic Processes.

Institute of Actuaries of India. Subject. ST6 Finance and Investment B. For 2018 Examinationspecialist Technical B. Syllabus

AN ANALYTICALLY TRACTABLE UNCERTAIN VOLATILITY MODEL

Partial differential approach for continuous models. Closed form pricing formulas for discretely monitored models

IEOR E4703: Monte-Carlo Simulation

Practical example of an Economic Scenario Generator

On Using Shadow Prices in Portfolio optimization with Transaction Costs

Theoretical Problems in Credit Portfolio Modeling 2

Stochastic Dynamical Systems and SDE s. An Informal Introduction

Monte-Carlo Pricing under a Hybrid Local Volatility model

On the Ross recovery under the single-factor spot rate model

Risk, Return, and Ross Recovery

RMSC 4005 Stochastic Calculus for Finance and Risk. 1 Exercises. (c) Let X = {X n } n=0 be a {F n }-supermartingale. Show that.

Toward a coherent Monte Carlo simulation of CVA

Stochastic Calculus for Finance

The Uncertain Volatility Model

Structural Models of Credit Risk and Some Applications

2 f. f t S 2. Delta measures the sensitivityof the portfolio value to changes in the price of the underlying

Martingale Measure TA

Derivative Securities Fall 2012 Final Exam Guidance Extended version includes full semester

Chapter 15: Jump Processes and Incomplete Markets. 1 Jumps as One Explanation of Incomplete Markets

Arbitrage, Martingales, and Pricing Kernels

The Black-Scholes Model

Path-dependent inefficient strategies and how to make them efficient.

1 The continuous time limit

Illiquidity, Credit risk and Merton s model

FE610 Stochastic Calculus for Financial Engineers. Stevens Institute of Technology

Interest Rate Volatility

Lecture 7: Computation of Greeks

Advanced Topics in Derivative Pricing Models. Topic 4 - Variance products and volatility derivatives

IEOR E4703: Monte-Carlo Simulation

Lecture Note 8 of Bus 41202, Spring 2017: Stochastic Diffusion Equation & Option Pricing

Interest Rate Modeling

Stochastic Volatility

Utility Indifference Pricing and Dynamic Programming Algorithm

King s College London

Path Dependent British Options

MFE Course Details. Financial Mathematics & Statistics

Mathematics of Finance Final Preparation December 19. To be thoroughly prepared for the final exam, you should

MSc Financial Mathematics

STOCHASTIC INTEGRALS

Transcription:

State processes and their role in design and implementation of financial models Dmitry Kramkov Carnegie Mellon University, Pittsburgh, USA Implementing Derivative Valuation Models, FORC, Warwick, February 24 1 / 37

Outline Introduction State processes: theory Design of cfl Pricing of path-dependent derivatives Models with identical state process Choosing the right financial model 2 / 37

Financial Computing with C++ : a course in MSCF Goals of the course: Theoretical : review and expand the knowledge of the basic topics: 1. Object Oriented Programming with C++ 2. Arbitrage-Free Pricing of Derivatives 3. Stochastic Calculus 4. Numerical Analysis Practical : improve the ability to use C++ (speak C++!) for practical financial computations. Case study: cfl (Library for the course Financial Computing) 3 / 37

Final exam Students are given 3 hours to price 3 derivative securities. In the final exam for 2005 students had to price: 1. BOOST (Banking on Overall Stability Option) 2. Ratchet Bond 3. Target Inverse Floater Swap Results for Pittsburgh s section: # of solved problems 3 2 1 0 # of students 3 9 1 12 4 / 37

BOOST : Banking On Overall Stability N : notional amount. L < U : lower and upper barriers. (t i ) 1 i m : barrier times The option terminates at the first barrier time, when the price of the stock hits either of the barriers, that is, at the barrier time t i, which index is given by i = min{1 i m : S(t i ) > U or S(t i ) < L}. At the exit time t i the holder of the option receives the payoff N i 1 m (the product of the notional amount on the percentage of the barrier times that the price of the stock spends inside two barriers). 5 / 37

Ratchet bond N : notional c : initial coupon rate d : reset value for the coupon rate (d < c). δt : interval of time between the payments given as year fraction. m : total number of coupon payments. L : the redemption price of the bond as percentage of the notional. Typically, L < 1. After coupon payment the issuer can reset the coupon rate from the original (higher) value c to the (lower) reset value d. However, later the holder can sell the bond back to the issuer for the redemption value LN. 6 / 37

Target Redemption Inverse Floater δt : interval of time between the payments given as year fraction. m : maximal number of payments N : notional amount. R : strike fixed rate. Q : the total coupon paid to a client as percentage of the notional. We pay inverse float coupon (= Nδt max(r Libor, 0)) to the client and receive Libor until the total coupon reaches the threshold QN. Then the trade is terminated. Note that the total coupon paid to the client over the time of the trade equals exactly QN. 7 / 37

Design of pricing library Models: Black... Hull-White... Derivatives: Boost option... Ratchet Bond Target Redemption Inverse Floater... Basic goal of design: re-usability. 1. Tools of C++: inheritance, templates,... 2. Basic concepts of Arbitrage-Free Pricing Theory: rollback operator, state process,.... 8 / 37

Rollback operator V s : the value of this payoff at s Rollback V t : a payoff at t Risk-neutral pricing: t V s = R s [V t ] = E s [V t exp( r u du)] s where (r t ): short-term interest rate P : (money market) martingale measure 9 / 37

State processes Main Idea: efficient storage scheme for relevant random variables. Remark The storage scheme should be adapted to the type of the derivative security. Definition A process (X t ) 0 t T is called a state process if for all s < t and any deterministic function f = f (x) there is a deterministic function g = g(x) such that g(x s ) = R s [f (X t )]. 10 / 37

State and Markov processes Theorem The following conditions are equivalent: 1. X is a state process 2. We have 2.1 X is a Markov process under the money market martingale measure P 2.2 For any time t the short term interest rate r t is determined by X t, that is, r t = h(x t, t), t > 0, for some deterministic function h = h(x, t) 11 / 37

Some standard examples 1. Black and Scholes model: ds t = S t (q t dt + σ t dw t ), Here (S t ) is a state process. 2. Commodity model with mean-reversion: ds t = S t [(θ t λ t ln S t )dt + σ t dw t ] Here (S t ) is a state process. 3. Hull and White model for interest rates: dr t = (θ t λ t r t )dt + σ t dw t Here (r t ) is a state process. 12 / 37

Implementation of a financial model 1. The specification of a state process X (the choice of the state process is determined by the type of derivative security). 2. The implementation of the following operations for random variables from the families {f (X t ) : f = f (x)}, t > 0 2.1 For given time t: all arithmetic and functional operations 2.2 Between two times s < t: rollback operator. Example Standard implementation of Black and Scholes model allows us to operate at time t with random variables of the form {f (S t ) : f = f (x)} 13 / 37

A model in cfl library Basic components: 1. (t i ) 0 i M : sorted vector of event times given as year fractions. Event times: all times needed to price a particular derivative security (exericse times, barrier times, reset times,... ). Numerical efficiency: create the vector of event times with a smallest size. 2. X = (X 0,..., X d 1 ): (d-dimensional) state process. At an event time t i we operate with random variables: X ti = {f (X ti ) : f = f (x)} represented by the class cfl::slice 14 / 37

cfl::slice There are 2 types of operations for cfl::slice: 1. At given event time t i : all possible arithmetic, functional, etc.. For example, if uspot: cfl::slice for the spot price S(t i ) at t i dk: double for a cash amount K at t i then Slice ucall = max(uspot - dk, 0.); creates cfl::slice for the payoff max(s(t i ) K, 0) of the call option with strike K and maturity t i. 15 / 37

cfl::slice There are 2 types of operations for cfl::slice: 2. Between two event times t i < t j : only rollback operator. The value of this payoff at t i Rollback A payoff at t j Algorithm for pricing of standard call:... //two event times: 0 (initial) and 1 (maturity) Slice ucall = max(umodel.spot(1) - dk, 0); ucall.rollback(0); 16 / 37

Program flow 1. Basic objects of the type cfl::slice such as 1.1 spot prices 1.2 discount factors, etc. are created by an implementation of a particular financial model 2. We then manipulate these basic objects using the provided operators and functions: 2.1 for given event time: all arithmetic and functional operations; 2.2 between two event times: rollback operator. 17 / 37

Code for BOOST (Banking on Overall Stability) option... Model umodel(rdata, ueventtimes, dinterval, dquality); int itime = umodel.eventtimes().size()-1; Slice uoption = umodel.cash(itime, dnotional); while (itime > 0) { //uoption = value to continue Slice uind = indicator(umodel.spot(itime), dlowerbarrier)* indicator(dupperbarrier, umodel.spot(itime)); uoption *= uind; double dpayoff = dnotional*(itime-1.)/rbarriertimes.size(); uoption += dpayoff*(1. - uind); itime--; uoption.rollback(itime); }... 18 / 37

Code for Ratchet Bond... Model umodel(rdata, utimes, dinterval, dquality); int itime = utimes.size()-1; //last minus one coupon time double doriginalcoupon = dnotional * rbond.rate * dperiod; double dresetcoupon = dnotional * dresetcouponrate * dperiod; double dredemptvalue = dredemptionprice * dnotional; Slice ubondbeforereset = umodel.discount(itime,dmaturity) * (dnotional + doriginalcoupon); Slice ubondafterreset = umodel.discount(itime,dmaturity) * (dnotional + dresetcoupon); while (itime > 0) { ubondafterreset = max(ubondafterreset, dredemptvalue); ubondbeforereset = min(ubondafterreset, ubondbeforereset); ubondafterreset+= dresetcoupon; ubondbeforereset+=doriginalcoupon; itime--; ubondbeforereset.rollback(itime); ubondafterreset.rollback(itime); }... 19 / 37

Pricing of path-dependent derivatives Assume that we have standard implementation of some interest rate model, that is, at any time t we can work with random variables: {f (B(t, T )) : f = f (x) T > t} where B(t, T ) is a discount factor with maturity T. Using this implementation we can price different standard and barrier, European and American options. However, we are not able to handle Path-Dependent derivatives such as Target Redemption Inverse Floater. Solution: extend the dimension of the model by adding new component Y to the original state process. 20 / 37

General framework Assume that we are given an implementation of a financial model corresponding to a particular choice of a state process X, that is, for random variables from the sets X t = {f (X t ) : f = f (x)}, t > 0 the following operations are implemented: 1. for given time t all arithmetic and functional 2. between two times s < t rollback, that is for any f = f (x) we know how to compute g = g(x) such that g(x s ) = R s (f (X t )) 21 / 37

General framework Consider also a stochastic process Y which values change at reset times t 1,..., t N : Y t 0 t 1 t 2 t N 1 t N 22 / 37

Main Theorem on Path-Dependence Question: is (X, Y ) a state process? Theorem Assume that for any reset time t i+1 there is a deterministic function G i+1 = G i+1 (x, y) ( reset function) such that Then (X, Y ) is a state process. Y ti+1 = G i+1 (X ti+1, Y ti ) Remark The value of Y at a reset time t is determined by the value of the original state process X at t and the value of Y before t. 23 / 37

Implementation in cfl library 1. We start with standard implementation of the model determined by the basic state process X. 2. To price a path dependent derivative security we add another state process Y determined by 2.1 reset times: t 1,..., t N 2.2 reset functions: (G i ) 1 i N Y ti+1 = G i+1 (X ti+1, Y ti ). 3. Classes for path dependent processes: 3.1 Interface class cfl::iresetvalues (describes reset functions). 3.2 Concrete class cfl::pathdependent (is related to cfl::iresetvalues through pimpl idiom). 24 / 37

Code for Target Redemption Inverse Floater class TotalNextCoupon: public IResetValues { public: TotalNextCoupon(const Model & rmodel, double dcaprate, double dperiod) :m_dcaprate(dcaprate), m_dperiod(dperiod), m_rmodel(rmodel) {} Slice resetvalues(unsigned itime, double dbeforereset) const { return dbeforereset + m_dperiod * max(m_dcaprate - rate(m_rmodel, itime, m_dperiod),0.); } private: const Model & m_rmodel; double m_dcaprate, m_dperiod; }; PathDependent totalnextcoupon(const Model & rmodel, const std::vector<unsigned> & rresetindexes, double dcaprate, double dperiod) { return PathDependent(new TotalNextCoupon(rModel, dcaprate, dperiod), rresetindexes, 0., 0.); } 25 / 37

Code for Target Redemption Inverse Floater... Model umodel(rdata, utimes, dinterval, dquality); //standard model std::vector<unsigned> uresetindexes(utimes.size(),0); std::transform(uresetindexes.begin(), uresetindexes.end()-1, uresetindexes.begin()+1, std::bind1st(std::plus<unsigned>(),1)); unsigned istate = umodel.addstate(totalnextcoupon(umodel,uresetindexes,dcaprate,dperiod)); //extended model int itime = utimes.size()-1; //last minus one payment Slice uswap = umodel.cash(itime, 0.); while (itime >= 0) { //uswap = current value of all payments after the next payment time Slice unextcoupon = max(dcaprate-rate(umodel,itime,dperiod),0)*dperiod; Slice utotalnextcoupon = umodel.state(itime, istate); Slice utotalcoupontoday = utotalnextcoupon - unextcoupon; Slice uindcontinuenexttime = indicator(dmaxcoupon, utotalnextcoupon); if (itime == utimes.size()-1) { uindcontinuenexttime = umodel.cash(itime, 0.); } unextcoupon *= uindcontinuenexttime; unextcoupon += (1. - uindcontinuenexttime)*(dmaxcoupon-utotalcoupontoday); Slice uindcontinuetoday = indicator(dmaxcoupon, utotalcoupontoday); double dnextpaymenttime = umodel.eventtimes()[itime] + dperiod; Slice udiscount = umodel.discount(itime, dnextpaymenttime); uswap -= uindcontinuetoday*(unextcoupon*udiscount - (1. - udiscount)); itime--; if (itime >=0) { uswap.rollback(itime); } } uswap *= rswap.notional;... 26 / 37

Models with identical state process Consider two financial models A and B such that They have the same state process X. The model A has been implemented for the state process X ( old model) The model B is new. Goal: implement B in terms of A. Main difficulty: implement R B in terms of R A. 27 / 37

Rollback density Definition We call Z = (Z t ) a rollback density of B with respect to A (notation: Z = drb dr A ) if for any s < t and any payoff ξ at t R B s [ξ] = 1 Z s R A s [Z t ξ] Remark The concept of rollback density for two financial models is closely related to the concept of Radon-Nikodym derivative for two probability measures. 28 / 37

Rollback density Denote d A (s, T ): discount factor in model A for maturity T computed at s < T. d B (s, T ): discount factor in model B for maturity T computed at s < T. Theorem A rollback density process of the model B with respect to the model A is given by: Z s = drb s dr A s = d A (s, T ) d B (s, T ). 29 / 37

Rollback density for similar models If the models A and B share the same state process X then for any s > 0 there are deterministic functions f s = f s (x) and g s = g s (x) such that It follows that d A (s, T ) = f s (X s ) d B (s, T ) = g s (X s ) Z s = drb s dr A s = d A (s, T ) d B (s, T ) = f s(x s ) g s (X s ) = h s(x s ) 30 / 37

Implementation of similar models Therefore, given the implementation of the model A associated with the state process X we can easily provide the implementation of the model B for the same state process. Indeed, if ξ = φ(x t ) is a payoff at time t (φ = φ(x)), then R B s [φ(x t )] = 1 h s (X s ) RA s [h t (X t )φ(x t )] 31 / 37

Key example: Brownian motion A popular choice of a state process for many one-factor models is X t = where t 0 σ(u)dw u σ = σ(t): deterministic volatility W = (W t ) t 0 : standard Brownian motion This process appears, for example, in 1. Black model 2. Hull and White model 3. Black-Karachinski model 4. Black-Derman-Toy model etc.. 32 / 37

Brownian model in cfl In cfl an artificial Brownian model has been defined, where interest rate is 0 and, hence, R s [ ] = E s [ ]. This model has been used then to implement Black and Hull-White models. This is great for testing! Brownian 6 Black::Model HullWhite::Model 33 / 37

Multi-factor FX model Problem: price FX swaption where domestic currency pays fixed and foreign currency pays float. We need 2 factors: 1. FX rate S 2. Domestic short term interest rate r Naive simplest model: (Black + Hull-White) ds t = S t ((r t q)dt + σdw t ) dr t = (θ(t) λr t )dt + κdb t where B and W are standard Brownian motions with constant correlation ρ: ρ = B, W t (= dbdw ) B, B t W, W t dt 34 / 37

Multi-factor FX model Looks fine. However, one can show that in this case state processes are given by X t = W t Y t = t 0 e λs db s The correlation coefficient between X and Y is time-dependent: X, Y t = ρ X, X t Y, Y t t 0 eλu du t 0 e2λu du t const. Hence, we can not choose state processes to be two independent Brownian motions. 35 / 37

Multi-factor FX model Better model: ds t = S t ((r t q)dt + σe λt dw t ) dr t = (θ(t) λr t )dt + κdb t In this case state processes are given by X t = t 0 e λs dw s Y t = t 0 e λs db s and X, Y t X, X t Y, Y t = ρ = const Easy to implement as we can choose state processes to be two independent Brownian motions. 36 / 37

Summary The concept of state process facilitates greatly the building of powerful object-oriented pricing libraries: Centerpiece of design Elegant implementation of path dependent derivatives Cross model implementation Important role in selection of right financial models. 37 / 37