Plain Vanilla - Black model Version 1.2 1 Introduction The Plain Vanilla plug-in provides Fairmat with the capability to price a plain vanilla swap or structured product with options like caps/floors, swaption and binary (digital) options using the Black model. Furthermore, the Plain Vanilla plug-in supports Cross Currency Swap and Cross Currency Basis Swap. Marked data can be either entered manually or retrieved using data provider. In the latter case, advanced features like quanto adjustments can be calculated automatically. The Plain Vanilla plug-in allows unbundling (decomposition in elementary parts) of complex or structured contract and the evaluation using static hedging. Following the Fairmat design those building blocks can be composed within the option map as you can see in Figure 1. Figure 1: Example of a complex contract decomposed using Plain Vanilla blocks. 2 The building blocks The available building blocks are: Floating Leg; Fixed Leg; 1
Cap; Floor; Digital (Cash or Nothing); Floating Basis Currency; Swaption. 2.1 Inside the Blocks Within each block there are 3 main tabs with which you can specify all the specific and market parameters of the contract and specify the discount curve : Contract Specification Market Data ; Custom Discounting. As you see from Figure 2, the panel Contract Specification contains two secondary panels: the Parameters panel defines the contract s specific parameters (i.e. reset and payment dates with a specific day count convention) and the Advanced panel allows to specify how many payments evaluate. This may be useful when the payoff of the contract changes over time and the payment dates vector is unique. Market Data, as you see from Figure 3, define the market values required for the assessment of the contract fair-value (i.e. Zero Rate curve, volatility surface etc.) at tab Manual Bindings. These input can be set manually, as shown in Figure 4a, or recovered from a market data provider (this feature is available only with Fairmat Professional), as shown in Figure 4b. To enable you to do this should select the tab Market Data, Market Data Provider on window menu Market Data Input and sub-tab Data Provider Bindings. The only input to set is Market (sector). The last main tab Custom Discounting, shown on Figure 4, enable you to impose a specific discount factor to the block, setting the namesake window selected Use a specific custom discounting. After this you need to specify, Discounting Model that sets the form of the discounting curve. It could be a constant value ( Use Constant Risk Free Rate ) or calculated with a deterministic formula (i.e. continuous or composite). 1 The default setting of the discount factor calculations are managed in Discounting, in the left main toolbar. These features are common to each block. The following sub-section provides explanation in detail of the blocks functionality, relative list of parameters and in brackets, a specification of Fairmat Parameters and Functions types. Over the fair-value, Plain Vanilla blocks (PV) computes the following Greeks:, Γ, ρ, Θ and v. Every time and quanto adjustments are estimated internally. All pricing and adjustment formulas are in [1] and in [2]. 1 Use Dynamic Term Structure exist only if is set a stochastic process. In any case, the use in this context, isn t recommended. 2
(a) Parameters (b) Advance Figure 2: List of parameters set in tab Parameters and the function Advance that makes it possible to set (true) or not (false) the evaluation and by-pass the effective payment dates set in Parameters. 3
(a) Manual (b) Market Data Provider Figure 3: List of market parameters set in tab Manual Data Bindings and the function Data Provider Bindings that makes it possible charge the market parameters through a market data provider (available only with Fairmat Professional). 4
(a) Custom Discounting (b) Discounting Model Figure 4: This figures explain the custom discounting. 5
2.2 Fixed Rate Leg The Fixed Rate Leg block computes the value of payments indexed at a fix rate, that could be a constant or a vector if there s change during that period. The evaluation formula is D i (t 0 )F ix i cvg(t i, t i+1, dcb); (1) where D i is a discount factor, got from the discounting curve, F ix i is the fix rate and cvg is the coverage period between t i and t i+1 with day count basis (30/360, Act360, ActAct, etc.). The inputs of Fixed Rate Leg block are : Contract Parameters : - Notional : the reference amount of every contract payments; - Rate : the fix rate; - Payment dates : payment dates of cash flows in annual terms; - Cvg : the coverage period, in annual terms, of every payments with the right day count convention adjusted (Dates Vector Diff. Calc.); - End Repayment : identify the last repayment amount. Market Data - None (The discounting curve has automatically calculated by Fairmat, see also Custom Discounting in (2.1) ). 2.3 Floating Rate Leg The Floating Rate Leg block computes the value of payments, indexed at the same floating rate that it could be a Short rate (Euribor, Libor etc.) or a Constant Maturity Swap rate (CMS) with the follow formula : D i (t 0 )Rate i (t 0 )cvg(t i, t i+1, dcb); (2) where D i is a discount factor, got from the discounting curve, Rate i is the forward, or forward swap (if the underlying is CMS), rate and cvg is the coverage period between t i and t i+1 with day count basis (30/360, Act/360, Act/Act, etc.). The evaluation is available for different country and related market convention (day count convention, accrual period etc.). The contract parameters inputs of the Floating Rate Leg block are : - Notional : the reference amount of every contract payments; 6
- Spread : the spread addicted to the float rate; - Payment dates : payment dates of cash flows in annual terms; - Reset dates : reset dates of underlying, in annual terms, adjusted with the right convention (Dates Vector Adjust. Transform.); - Cvg : the coverage period, in annual terms, of every payments with the right day count convention adjusted (Dates Vector Diff. Calc.); - Tenor : rate index period in annual terms (e.g. Euribor 6m = 0.5; CMS 10y = 10). - Rate type : identify the rate type underlying that could be a Short Rate or Constant Maturity Swap rate or Quanto rate (in case of differential swap) it is allocable as a Typed Scalar > Rate Type or with a Scalar setting respectively 0, 1 or 2; - Reset type : identify the right rate reset time in Advance or in Arrears and it is allocable as a Typed Scalar > Rate Type or with a Scalar setting respectively 0 or 1; - End Repayment : identify the last repayment amount. The Market Data inputs to set is : - Forwarding Curve : the zero rate curve that Fairmat use to compute the forward rate. If the Reset type is in Arrears or the rate underlying is a CMS rate, you have to set the follow Market Data: - ATM Volatilities : are the cap/swaption ATM volatilities (Flat or Spot); - Maturity : are standard cap or swaption maturities, in annual terms; - ATM Strike : the ATM strikes rate of ATM Caps usually the forward rate. For CMS case these are Tenor Swap underlying the swaption; - Accrual Period : in case of Short Rate is the standard coverage period of caplets, in case of CMS is the tenor of fix leg implied into the formula of CMS, both are in annual terms; - Volatility type : flag to estimate, with the stripping algorithm, spotforward volatilities from the flat volatilities (Spot or 1 == to estimate; Flat or 0 or null == already estimated); - Historical Rate : identify the rate already detected for the first payment date. Only if you have a differential swap, you have to allocated a vector of quanto adjustment into Quanto Adj. That input express the adjustment of the Rate i if the underlying is expressed in a different currency of the notional amount. The theoretical references see also [2]. 7
2.4 Cap/Floor The Cap and Floor blocks compute the value of a related option on interest rate with Black model [3], already defined as Standard Market Model (SMM). The formulas of Cap-Floor implemented in PV plug-in are Cap(0) = F loor(0) = cvg(t i, t i+1, dbc)d i (t 0 )[F i (t 0 )N (d 1 ) KN (d 2 )]; cvg(t i, t i+1, dbc)d i (t 0 )[KN ( d 2 ) F i (t 0 )N ( d 1 )]; (3) where N is the cumulative density of Normal(0,1) of d 1 and d 2 defined as d 1 = log(f i(t 0 )/K) + (σ 2 i t i)/2 σ i ti, d 2 = d 1 σ i ti. (4) Cap-floor underlying could be a Short rate (Euribor-Libor) or a CMS rate. The contract parameters inputs of Cap-Floor Leg blocks are : - Notional : the reference amount of every contract payments; - Cap/Floor Strike : the cap/floor strike of the contract; - Payment dates : payment dates of cash flows in annual terms; - Reset dates : reset dates of the underlying, in annual terms, adjusted with the right convention (Dates Vector Adjust. Transform.); - Cvg : the coverage period in annual terms of every payments with the right day count convention adjusted (Dates Vector Diff. Calc.); - Tenor : rate index period in annual terms (e.g. Euribor 6m = 0.5; CMS 10y = 10); - Rate type : identify the rate type underlying that could be a Short Rate or Constant Maturity Swap rate or Quanto rate (in case of differential swap) it is allocable as a Typed Scalar > Rate Type or with a Scalar setting respectively 0, 1 or 2; - Reset type : identify the right rate reset time in Advance or in Arrears and it is allocable as a Typed Scalar > Rate Type or with a Scalar setting respectively 0 or 1; The Market Data inputs can be insert manually selecting the tab Market Data, Manual, on window menu Market Data Input and sub-tab Manual Bindings. The inputs to set are : 8
- Forwarding Curve : is the zero rate curve to compute the forward rate Rate i (Interpolated Function); - Volatilities : are the cap/swaption volatilities (Matrix or Scalar); - Maturity : are standard cap/swaption maturities, in annual terms (Vector or Scalar); - Strike : the strikes rate of caps associated to the different volatilities curves. For a CMS case is Tenor Swap of swap underlying the swaption (Vector or Scalar); - Accrual Period : in case of Short Rate (Quanto) is the standard coverage period of caplets, in case of CMS is the tenor of fix leg implied into the formula of CMS, both are in annual terms (Scalar); - Volatility type : flag to estimate, with the stripping algorithm, spotforward volatilities from the flat volatilities (Spot or 1 == to estimate; Flat or 0 or null == already estimated); - Historical Rate : identify the rate already detected for the first payment date (Scalar). Only if you have a differential swap with cap or floor option (collar swap), you have to allocated a vector of quanto adjustment into Quanto Adj. That input express the adjustment of the Rate i if the underlying is expressed in a different currency of the notional amount. The theoretical references see also [2]. 2.5 Digital (Binary) option The Digital (Binary) option block computes the value of a digital call/put option that pay 0 if the value of F is under threshold K otherwise an amount Q. The evaluation formula is obtained from Black model ([3]). The valuation formula of digital call is : DigCall(0) = cvg(t i, t i+1, dbc)d i (t 0 )QKN (d 2 ) (5) while the formula of Digital floor is DigP ut(0) = cvg(t i, t i+1, dbc)d i (t 0 )QKN ( d 2 ) (6) where N is the cumulative density of Normal(0,1) d 2 defined as d 2 = log(f i(t 0 )/K) (σ 2 i t i)/2 σ i ti (7) The contract parameter inputs of a Digital block are 9
- Notional : the reference amount of every contract payments; - Threshold : is the value of K; - Rate : is the value of Q; - Type : define the type of option. Is 0== if cap type, 1==floor type (Scalar); - Payment dates : payment dates of cash flows in annual terms; - Reset dates : reset dates of the underlying, in annual terms, adjusted with the right convention (Dates Vector Adjust. Transform.); - Cvg : the coverage period in annual terms of every payments with the right day count convention adjusted (Dates Vector Diff. Calc.); - Tenor : rate index period in annual terms (e.g. Euribor 6m = 0.5; CMS 10y = 10); - Rate type : identify the rate type underlying that could be a Short Rate or Constant Maturity Swap rate or Quanto rate (in case of differential swap) it is allocable as a Typed Scalar > Rate Type or with a Scalar setting respectively 0, 1 or 2; - Reset type : identify the right rate reset time in Advance or in Arrears and it is allocable as a Typed Scalar > Rate Type or with a Scalar setting respectively 0 or 1; The Market Data inputs can be insert manually selecting the tab Market Data, Manual, on window menu Market Data Input and sub-tab Manual Bindings. The inputs to set are : - Forwarding Curve : is the zero rate curve to compute the forward rate Rate i (Interpolated Function); - Volatilities : are the cap/swaption volatilities (Matrix or Scalar); - Maturity : are standard cap/swaption maturities, in annual terms (Vector or Scalar); - Strike : the strikes rate of caps associated to the different volatilities curves. For a CMS case is Tenor Swap of swap underlying the swaption (Vector or Scalar); - Accrual Period : in case of Short Rate (Quanto) is the standard coverage period of caplets, in case of CMS is the tenor of fix leg implied into the formula of CMS, both are in annual terms (Scalar); - Volatility type : flag to estimate, with the stripping algorithm, spotforward volatilities from the flat volatilities (Spot or 1 == to estimate; Flat or 0 or null == already estimated); 10
- Historical Rate : identify the rate already detected for the first payment date (Scalar). Only if you have a differential swap with digital option (collar swap), you have to allocated a vector of quanto adjustment into Quanto Adj. That input express the adjustment of the Rate i if the underlying is expressed in a different currency of the notional amount. The theoretical references see also [2]. 2.6 Floating Currency Basis Leg The Floating Currency Basis Leg computes one leg of a cross currency basis Swap. The Internal Fairmat algorithm implements the procedure described by [4]. The procedure shows a bootstrap technique to give up the right discount factors adjusted for the Basis Currency Spread to discount the cash flows. The free arbitrage condition is expressed with the follow equation : 1 = m τ i (Rate i + s m )DFi (t0) + DFm; (8) with m = 1,..., N. The recursive bootstrapping relation is DFm = 1 m τ i(rate i + s m )DFi (t0) ; (9) 1 + τ m (Rate m s m ) The contract parameters inputs of Floating Currency Basis Leg block are : - Notional : the reference amount of every contract payments; - Spread : the spread addicted to the float rate; - Payment dates : payment dates of cash flows in annual terms; - Reset dates : reset dates of underlying, in annual terms, adjusted with the right convention (Dates Vector Adjust. Transform.); - Cvg : the coverage period, in annual terms, of every payments with the right day count convention adjusted (Dates Vector Diff. Calc.); - Tenor : rate index period in annual terms (e.g. Euribor 6m = 0.5; CMS 10y = 10); - Rate type : identify the rate type underlying that could be a Short Rate or Constant Maturity Swap rate and it is allocable as a Typed Scalar > Rate Type or with a Scalar setting respectively 0 or 1 ; - Reset type : identify the right rate reset time in Advance or in Arrears and it is allocable as a Typed Scalar > Rate Type or with a Scalar setting respectively 0 or 1; - End Repayment : identify the last repayment amount. 11
The Market Data inputs can be insert manually selecting the tab Market Data, Manual on window menu Market Data Input and sub-tab Manual Bindings. The inputs to set are : - Forwarding Curve : the zero rate curve that Fairmat use to compute the forward rate (Interpolated Function); - ATM Volatilities : are the cap ATM volatilities (Vector or Scalar); - Maturity : are standard cap maturity in annual terms (Vector); - ATM Strike : the ATM strikes rate of ATM Caps usually the forward rate (Vector); - Accrual Period : in case of Short Rate (Quanto) is the standard coverage period of caplets, in case of CMS is the tenor of fix leg implied into the formula of CMS, both are in annual terms; - Volatility type : flag to estimate, with the stripping algorithm, spotforward volatilities from the flat volatilities (Spot or 1 == to estimate; Flat or 0 or null == already estimated); - Historical Rate : identify the rate already detected for the first payment date; - Spread currency : identify the basis spread of an IR basis currency swap quoted (e.g. Eur3 vs Libor3); - Swap Rate : identify the Swap Rate of local currency necessary for the forward adjustment calculation. 2.7 Swaption The Swaption block compute the value of related options on the interest rate with Black model ([3]), already defined as Standard Market Model (SMM). The formulas of Swaption give to the holder the right to receive a Floating Rate and to pay a Fixed Rate is SwaptionP ay(0) = cvg(t i, t i+1, dbc)ann(t 0 )[F sr(t 0 )N (d 1 ) KN (d 2 )]; (10) while a Swaption that give to the holder the right to receive a Fix Rate and to pay a Fixed Rate is SwaptionRec(0) = cvg(t i, t i+1, dbc)ann(t 0 )[KN ( d 2 ) F sr(t 0 )N ( d 1 )]; (11) 12
3 Release notes - History where N is the cumulative density of Normal(0,1) of d 1 and d 2 defined as d 1 = log(f sr(t 0)/K) + (σ 2 i t i)/2 σ i ti, d 2 = d 1 σ i ti. (12) Swaption underlying could be a Short rate (Euribor-Libor) or a CMS rate. The contract parameters inputs of Swaption block are: - Notional : is the reference amount of every contract payments; - Strike : is the Fixed Rate of the swaption; - Maturity Option : is the start date, in annual terms, of the underlying swap; - Tenor Swap : is the maturity of the underlying swap; - Cvg : the coverage period in annual terms of fixed payments with the right day count convention adjusted (Dates Vector Diff. Calc.); - Pay/Rec : identify the point of view of swap, you can to set a Typed Scalar Contract Side that could be Pay or Receive that identifies if you pay or receive the fix rate; - Rate type : only a CMS rate; - Reset type : identify the right rate reset time that could be only Advance; The Market Data to set are : - Forwarding Curve : the zero rate curve that Fairmat use to compute the swap forward rate (Interpolated Function); - Volatilities : are the Swaption volatilities (Matrix or Scalar); - Maturity : are standard option maturities, in annual terms (Scalar); - Tenor Swap : are the maturities (tenor) of the underlying swap associated to the different volatilities curves (Scalar). 3 Release notes - History 3.1 Plain Vanilla 1.2 New features available with Plain Vanilla 1.2 are : Volatility can be defined as a scalar using Flat Volatility mode (see also Market Data); Improvements on bootstrap-stripping algorithm when calculating spotforward implied volatilities. 13
References 3.2 Plain Vanilla 1.1 New features available with Plain Vanilla 1.1 are : Full support for quanto adjustment (when used in conjunction with market data-provider like Bloomberg Professional and Fairmat.com data-link); Support for Zero rate curve with underling short rate Xibor with maturity 1, 3, 6, 12 Months on the EU, US, GB, CH and JP markets available when used in conjunction with Bloomberg Professional; Support for smart vector indexing: ambivalence between usage of a scalar and vector with a single component for any variable; Support for IAS-39 analysis; Ability of filtering reset and payment dates (see also the tab advanced on legs editing forms). References [1] Patrik S. Hagan. Convexity conundrums : Pricing cms swaps, caps and floor. 2006. [2] John C. Hull. Options, futures, and other derivatives. Prentice Hall, 7th ed. edition, 2006. [3] F. Black. The pricing of commodity contracts. Journal of Financial Economics, 3:167 179, 1976. [4] Boenkost W. and Schmidt W. M. Cross currency swap valuation. Working paper, HfB - Business School of Finance & Management, 2004. 14