Plain Vanilla Version 1.0 1 Introduction This plug-in provides Fairmat with the capability to price a plain vanilla swap or structured product with options like caps/floors, swaption and digital options using the Black model. Also Fairmat can computes the fair-value of a Cross Currency Swap or a Basis Cross Currency Swap. The available standard blocks are • Floating Leg; • Fixed Leg; • Cap; • Floor; • Digital (Cash or Nothing); • Floating Basis Currency; • Swaption. 2 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 (1), 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 1 2 Inside the Blocks (a) Parameters (b) Advance Figure 1: 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”. unique. “Market Data”, as you see from Figure 2, 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 3a, or recovered from a market data provider (this feature is available only with Fairmat Professional), as shown in Figure 3b. 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 (3), 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. 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 2 Inside the Blocks (a) Manual (b) Market Data Provider Figure 2: 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). 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 [?] and in [?]. 3 2 Inside the Blocks (a) Custom Discounting (b) Discounting Model Figure 3: This figures explain the custom discounting. 4 2 Inside the Blocks 2.1 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 N X Di (t0 )F ixi cvg(ti , ti+1 , dcb); (1) i=0 where Di is a discount factor, got from the discounting curve, F ixi is the fix rate and cvg is the coverage period between ti and ti+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 (Constant Parameter or Vector values/expression/dates); - Rate : the fix rate (Constant Parameter or Vector values/expression/dates); - Payment dates : payment dates of cash flows in annual terms (Vector values/expression/dates); - Cvg : the coverage period, in annual terms, of every payments with the right day count convention adjusted (Dates vector of differences transformation). - EndRepayment : identify the last repayment amount (used expecially for Cross Currency Swap) • Market Data - None (The discounting curve has automatically calculated by Fairmat, see also “Custom Discounting” in (2) ). 2.2 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 : N X Di (t0 )Ratei (t0 )cvg(ti , ti+1 , dcb); (2) i=0 where Di is a discount factor, got from the discounting curve, Ratei is the forward, or forward swap (if the underlying is CMS), rate and cvg is the coverage period between ti and ti+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 : 5 2 Inside the Blocks - Notional : the reference amount of every contract payments (Constant Parameter or Vector values/expression/dates); - Spread : the spread addicted to the float rate (Constant Parameter or Vector values/expression/dates); - Payment dates : payment dates of cash flows in annual terms (Vector values/expression/dates); - 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 of diff. trasf.); - Tenor : rate index period in annual terms (i.e. Euribor 6m = 0.5; CMS 10y = 10) (Constant Parameter). - Rate type : identify underlying type Short Rate (==0 or null) or Constant Maturity Swap rate (==1) or Quanto rate (==2); - Reset type : identify the right rate reset time Advance (==0 or null) or Arrears (==1); - End Repayment : identify the last repayment amount (used expecially for Cross Currency Swap) The Market Data inputs to set is : - Forwarding Curve : the zero rate curve that Fairmat use to compute the forward rate. If the Reset rate is in − arrears or there is an underlying CMS Rate or a quanto rate adjustment to Market Data you have to set: - ATM Volatilities : are the cap or swaption ATM volatilities (Flat if are quoted in the market, Spot if are already estimate) (Vector or Matrix values/expression/dates); - Maturity : are standard cap or swaption maturity, in annual terms (Vector values/expression/dates); - ATM Strikes : the ATM strikes rate of ATM Caps usually the forward rate. For CMS case these are Tenor Swap underlying the swaption (Vector values/expression/dates); - Accrual Period : the standard coverage period of caplets, in annual terms (Vector values/expression/dates). - Flat Volatilities : flag to estimate, with the stripping algorithm, spotforward volatilities from the flat volatilities (1 == to estimate; 0 or null == already estimated); 6 2 Inside the Blocks - Historical Rate : identify the rate already detected for the first payment date; - Quanto Adj : is the adjustment of the Ratei if the underlying is expressed in a different currency of the notional amount. The theoretical references are also differential swap in [?] (Vector values/expression/dates). 2.3 Cap/Floor The Cap and Floor blocks compute the value of a related option on interest rate with Black’s model ([?]), already defined as Standard Market Model (SMM). The formulas of Cap-Floor implemented in PV plug-in are Cap(0) = N X cvg(ti , ti+1 , dbc)Di (t0 )[Fi (t0 )N (d1 ) − KN (d2 )]; i=0 F loor(0) = N X cvg(ti , ti+1 , dbc)Di (t0 )[KN (−d2 ) − Fi (t0 )N (−d1 )]; (3) i=0 where N is the cumulative density of Normal(0,1) of d1 and d2 defined as d1 d2 log(Fi (t0 )/K) + (σi2 ti )/2 √ , σi t i √ = d1 − σi t i . = (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 (Constant Parameter or Vector values/expression/dates); - Cap/Floor Strike : the cap/floor strike of the contract (Constant Parameter or Vector values/expression/dates); - Payment dates : payment dates of cash flows in annual terms (Vector values/expression/dates); - 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 of diff. trasf.); - Tenor : rate index period in annual terms (i.e. Euribor 6m = 0.5; CMS 10y = 10) (Constant Parameter); - Rate type : identify underlying type Short Rate (==0 or null) or Constant Maturity Swap rate (==1) or Quanto rate (==2); 7 2 Inside the Blocks - Reset type : identify the right rate reset time Advance (==0 or null) or Arrears (==1); The Market Data to set is the : - Forwarding Curve : is the zero rate curve to compute the forward rate Ratei (Interpolation Function); - Volatilities : are the cap/swaption volatilities (Flat or Spot if are already estimate) (Matrix values/expression/dates); - Maturity : are standard cap/swaption maturities, in annual terms (Vector values/expression/dates); - Strikes : the strikes rate of caps associated to the different volatilities curves. For a CMS case are Tenor Swap of swap underlying the swaption (Vector values/expression/dates); - Accrual Period : the standard coverage period of caplets, in annual terms (Vector values/expression/dates). - Flat Volatilities : flag to estimate, with the stripping algorithm, spotforward volatilities from the flat volatilities (1 == to estimate; 0 or null == already estimated); - Historical Rate : identify the rate already detected for the first payment date; - Quanto Adj : is the adjustment of the Ratei if the underlying is expressed in different currency of the notional amount. For the theoretical reference see also differential swap in [?] (Vector values/expression/dates). 2.4 Digital option The Digital option (Cash or Nothing) 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’s interest rate model ([?]). The valuation formula of digital call is : DigCall(0) = N X cvg(ti , ti+1 , dbc)Di (t0 )QKN (d2 ) (5) i=0 while the formula of Digital floor is DigP ut(0) = N X cvg(ti , ti+1 , dbc)Di (t0 )QKN (−d2 ) i=0 8 (6) 2 Inside the Blocks where N is the cumulative density of Normal(0,1) d2 defined as d2 = log(Fi (t0 )/K) − (σi2 ti )/2 √ σi t i (7) The contract parameter inputs of a Digital block are - Notional : the reference amount of every contract payments (Constant Parameter or Vector values/expression/dates); - Threshold : is the value of K (Constant Parameter or Vector values/expression/dates); - Rate : is the value of Q (Constant Parameter or Vector values/expression/dates); - Type : define the type of option. Is 0== if cap type, 1==floor type (Constant Parameter); - Payment dates : payment dates of cash flows in annual terms (Vector values/expression/dates); - 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 of diff. trasf.); - Tenor : rate index period in annual terms (i.e. Euribor 6m = 0.5; CMS 10y = 10) (Constant Parameter); - Rate type : you could select input Short Rate (==0 or null) or Constant Maturity Swap rate (==1) or Quanto rate (==2); - Reset type : identify the right rate reset time Advance (==0 or null) or Arrears (==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 Ratei (Interpolation Function); - Volatilities : are the cap/swaption volatilities (Flat or Spot if are already estimate) (Matrix values/expression/dates); - Maturity : are standard cap/swaption maturities, in annual terms (Vector values/expression/dates); - Strikes : the strikes rate of caps associated to the different volatilities curves. For a CMS case are Tenor Swap of swap underlying the swaption (Vector values/expression/dates); 9 2 Inside the Blocks - Accrual Period : the standard coverage period of caplets, in annual terms (Vector values/expression/dates). - Flat Volatilities : flag to estimate, with the stripping algorithm, spotforward volatilities from the flat volatilities (1 == to estimate; 0 or null == already estimated); - Historical Rate : identify the rate already detected for the first payment date; - Quanto Adj : is the adjustment of the Ratei if the underlying is expressed in different currency of a notional amount. For the theoretical reference see also differential swap in [?] (Vector values/expression/dates). 2.5 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 []. 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 X ∗ τi (Ratei + sm )DFi∗ (t0) + DFm ; (8) i=0 with m = 1, ..., N . The recursive bootstrapping relation is Pm 1 − i=0 τi (Ratei + sm )DFi∗ (t0) ∗ ; DFm = 1 + τm (Ratem − sm ) (9) The contract parameters inputs of Floating Currency Basis Leg block are : - Notional : the reference amount of every contract payments (Constant Parameter or Vector values/expression/dates); - Spread : the spread addicted to the float rate (Constant Parameter or Vector values/expression/dates); - Payment dates : payment dates of cash flows in annual terms (Vector values/expression/dates); - 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 of diff. trasf.); - Tenor : rate index period in annual terms (i.e. Euribor 6m = 0.5; CMS 10y = 10) (Constant Parameter). 10 2 Inside the Blocks - Rate type : identify underlying type Short Rate (==0 or null) or Constant Maturity Swap rate (==1) or Quanto rate (==2); - Reset type : identify the right rate reset time Advance (==0 or null) or Arrears (==1); - End Repayment : identify the last repayment amount (Constant Parameter). 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. - ATM Volatilities : are the cap ATM volatilities (Flat if are quoted in the market, Spot if are already estimate) (Vector values/expression/dates); - Maturity : are standard cap maturity, in annual terms (Vector values/expression/dates); - ATM Strikes : the ATM strikes rate of ATM Caps usually the forward rate (Vector values/expression/dates); - Accrual Period : the standard coverage period of caplets, in annual terms (Vector values/expression/dates). - Flat Volatilities : flag to estimate, with the stripping algorithm, spotforward volatilities from the flat volatilities (1 == to estimate; 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 (es: Eur3 vs Libor3); - Swap Rate : identify the Swap Rate of local currency necessary for the forward adjustment calculation. 2.6 Swaption The Swaption block compute the value of related options on the interest rate with Black’s model ([?]), 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) = N X cvg(ti , ti+1 , dbc)Ann(t0 )[F sr(t0 )N (d1 ) − KN (d2 )]; i=0 (10) 11 2 Inside the Blocks while a Swaption that give to the holder the right to receive a Fix Rate and to pay a Fixed Rate is SwaptionRec(0) = N X cvg(ti , ti+1 , dbc)Ann(t0 )[KN (−d2 ) − F sr(t0 )N (−d1 )]; i=0 (11) where N is the cumulative density of Normal(0,1) of d1 and d2 defined as d1 d2 log(F sr(t0 )/K) + (σi2 ti )/2 √ , σi t i √ = d1 − σi ti . = (12) Swaption underlying could be a Short rate (Euribor-Libor) or a CMS rate. The contract parameters inputs of Cap-Floor Leg blocks are : - Notional : is the reference amount of every contract payments (Constant Parameter or Vector values/expression/dates); - Strike : is the Fixed Rate of the swaption (Constant Parameter or Vector values/expression/dates); - Maturity Option : is the start date, in annual terms, of the underlying swap (Constant Parameter). - Tenor Swap : is the maturity of the underlying swap (Constant Parameter). - Cvg : the coverage period in annual terms of fixed payments with the right day count convention adjusted (Dates vector of diff. trasf.); - Pay/Rec : identify the “point of view” of fix rate -1==pay or 1==receive (Constant Parameter); - Rate type : identify underlying type Short Rate (==0 or null) or Constant Maturity Swap rate (==1) or Quanto rate (==2); - Reset type : identify the right rate reset time Advance (==0 or null) or Arrears (==1); The Market Data to set are : - Forwarding Curve : is the zero rate curve to compute the forward rate Ratei (Interpolation Function); - Volatilities : are the Swaption volatilities (Matrix values/expression/dates); - Maturity : are standard option maturities, in annual terms (Vector values/expression/dates); - Tenor Swap : are the maturities (tenor) of the underlying swap associated to the different volatilities curves (Vector values/expression/dates); 12
© Copyright 2026 Paperzz