Zero Curve
Zero curves can be created from offset points, derived from underlying instruments, or derived from underlying instruments with convexity adjustment to futures.
• | Zero curve from offset points |
• | Zero curve from underlying instruments |
• | Blended zero curve |
• | Zero curve with convexity adjustments |
• | Agency option adjusted spread curve |
• | Pricer configuration |
From the Calypso Navigator, navigate to Market Data > Interest Rate Curves > Zero Yield Curve (menu action marketdata.CurveZeroWindow
).
1. General Curve Information
• | The name of the curve is set upon saving. It will identify the curve throughout the system. |
• | The instance of the curve dictates the quote side of the underlying instruments to be used for generating the curve. |
– | The CLOSE instance uses CLOSE quotes. |
– | The LAST instance uses BID, MID, and ASK quotes. |
– | The OPEN instance uses OPEN quotes. |
• | By default, the curve is saved as of the current date and time. You can clear the Current checkbox and change the curve date and time as needed. |
• | You can change the precision of the discount factors using Utilities > Set Df Precision - Default is 8. |
Curve Update
You can use the scheduled task PROP_RATE_1BUSDAY to roll the quotes which are not liquid.
You can use the scheduled task GENERATE_CURVE to regenerate a curve as of the current valuation date.
Setup Information
The environment property INT_CURVE_INTERP_RATE_B impacts the zero curve.
• | If INT_CURVE_INTERP_RATE_B = Y (Default value), curves are interpolated on the zero rates. |
• | If INT_CURVE_INTERP_RATE_B = N, curves are interpolated on the discount factors. |
However, you can override the interpolation space at the curve level using the "Interp As" field in the curve definition window:
• | Default - Uses the value of environment property INT_CURVE_INTERP_RATE_B. |
• | Rate - Interpolates the curve on the zero rates, regardless of environment property INT_CURVE_INTERP_RATE_B. |
• | DiscountFactor - Interpolates the curves on the discount factors, regardless of environment property INT_CURVE_INTERP_RATE_B. |
Graph Panel
Once a curve is generated, you can select the Graph panel to view the curve in graphical form.
Curve Generation Monitoring
The debug category "CurveGenInputs" logs the inputs passed to the curve generator from the curve (underlyings, generator parameters, quotes, points, underlying market data items) and some information from the pricing environment, such as quotes and pricing parameters.
This debug category is supported for all yield curve generators, and only for a few other generators (FXPoints, Probability).
2. Generating Zero Curves From Offsets
Zero Curve from Offsets Quick Reference Configuration Requirements
Curve Generation 1. Click New to start a new curve. 2. Definition Panel — Select the following information to define the curve: currency, index, tenor, holidays, “Generate from instruments” should be unchecked, interpolator, interpolation space, generation algorithm, curve type set to “CurveZero”, Pricing Env. 3. Offsets Panel — Select the tenors and dates. 4. Points Panel — Click Generate to generate the points. Enter the zero rates. 5. Click Save, and enter a curve name. Pricer Configuration Assign the zero curve from offsets as a discount curve and/or as a forecast curve. |
2.1 Definition Panel
Click New to start a new curve.
Select the following to define the curve: currency, index, tenor, holidays, “Generate from instruments” should be unchecked, interpolator, interpolation space, generation algorithm, curve type set to “CurveZero”, Pricing Env.
Ⓘ [NOTE: You can click ... next to the "Discount Curve" field to select a discount curve for retrieving the discount factors - The zero curve will only compute the forward points]
2.2 Offsets Panel
Click the Offset tab, and select tenors and dates.
» | Select the offsets in the left panel, and click >> to add them to the Selection panel. |
» | Specific Tenors - You can add specific tenors to the list. Enter the number, select the type of tenor, and click Add Specific Tenor. |
» | Specific Dates - Alternatively, you can enter specific dates for the offsets and click Add to list them in the panel below. |
2.3 Points Panel
Click the Points tab, and click Generate to generate the point grid.
» | You can adjust the daycount and frequency as needed. The default values come from the selected rate index. You will be prompted to recalculate the zero rates or the discount factors. |
» | You can enter the zero rates manually, or copy and paste from an Excel spreadsheet. |
2.4 Save Curve
Click Save at the bottom of the window to save the curve. You will be prompted to enter a curve name.
3. Generating Derived Zero Curves
Zero Curve from Underlying Instruments Quick Reference Configuration Requirements
Curve Underlying Instruments You can use the following types of underlying instruments for building zero curves: Money Market, FRA, Future, Bond Future, Swap, Spread, Turn Rate, and Bond. To define underlying instruments, navigate to Configuration > Market Data > Curve Underlyings from the Calypso Navigator, or click New/Edit Underlying in the Underlying panel of the Curve window. Curve Generation 1. Click New to start a new curve. 2. Select the curve instance. 3. Definition Panel — Select the following information to define the curve: currency, index, tenor, “Generate from instruments” should be checked, interpolator, interpolation space, generation algorithm, curve type set to “CurveZero”, Pricing Env. 4. Underlying Panel — Select the underlying instruments. 5. Quotes Panel / Resets Panel — Enter / load quotes. 6. Points Panel — Click Generate to generate the points. 7. Click Save, and enter a curve name. Pricer Configuration Assign the zero curve as a discount curve and/or forecast curve. |
3.1 Definition Panel
Click New to start a new curve.
Select the following to define the curve: currency, index, tenor, holidays, “Generate from instruments” should be checked, interpolator, interpolation space, generation algorithm, curve type set to “CurveZero”, Pricing Env.
Ⓘ [NOTE: When a holiday calendar is set on the underlying instrument, the curve holiday calendar is ignored]
Ⓘ [NOTE: You can click ... next to the "Discount Curve" field to select a discount curve for retrieving the discount factors - The zero curve will only compute the forward points, and the discount curve will be used for discounting]
The generation algorithms are described in the Calypso Yield Curves Generation guide.
See Yield Curve Generation for details.
Ⓘ [NOTE: The yield curve generator BootstrapISDA replicates the ISDA C code discount factors to within 1.0e-9. With this curve generator, comparison with Markit is identical to 1 dollar. Because of rounding of cents may be different, sometimes Calypso results will round opposite to Markit and be off by Markit by 1 dollar, but usually the rounding is to the same number]
3.2 Underlying Panel
Click the Underlying tab, and select the underlying instruments.
» | Select an instrument type to display the list of available instruments. If none appear, you can click New/Edit Underlying to create new instruments. |
» | Select instruments from the list of available instruments on the left-hand side, and click >> to add them to the list of selected instruments on the right-hand side. |
You can exclude instruments from the curve generation if they are no longer needed.
You can set a priority when multiple instruments have the same maturity date. The lowest priority is 0. When two underlying instruments have the same end date, the one with the lowest priority is automatically removed, if the priority is set.
3.3 Quotes Panel
Click the Quotes tab.
» | You can click Refresh Quotes to load the quotes from the pricing environment selected in the Definition panel. If your market data server is running, quotes will be updated in real-time. |
» | You can also enter the quotes manually, and save them to the pricing environment. |
Quotes Parameters Details
Parameter |
Description |
|||||||||
---|---|---|---|---|---|---|---|---|---|---|
Extrapolation |
Select the method to extrapolate points outside of the curve.
|
|||||||||
Use Future Convexity |
If set to True, the system uses a RATE volatility surface to compute the convexity adjustments when you generate the curve points.
|
|||||||||
Use Manual Future Convexity |
Set to True to manually set the convexity adjustment for futures. Another option is to set the environment property USE_QUOTE_ADJUSTMENT to False, and set specific spread quotes for the convexity adjustments.
|
|||||||||
Use month end tenors for MM |
If set to True, the following rules are applied in the curve generation:
The default value is False. |
|||||||||
Generate on all flow points |
Set to True to generate curve points for each flow date of multi-period instruments, such as swaps. |
|||||||||
Use MMkt up to first future |
If set to True, money markets instruments with a maturity date after the first available future instrument, are not used in curve generation. The default value is False. |
|||||||||
Roll Method |
You can select the roll method. For example, you create a curve instance on T0. On T1 you price a trade.
|
|||||||||
Future Rolling Type Future Rolling Lag |
You can select the rolling method for futures:
Ⓘ [NOTE: This functionality is also compatible with FRA underlyings created from Date Rules. The default behavior for date-rule driven FRA underlyings is that they roll 1 day prior to expiry. You can use these parameters to specify a number of days the FRA underlyings roll before the expiry defined in the date rule.] |
|||||||||
Daily Average Swap Fast Approx |
When True, a fast approximation is used when generating a curve with daily averaging MM futures (e.g. FedFunds futures). When False, the curve is calibrated exactly to the daily average MM futures. In case 1, performance is better than in case 2. In case 2, round-trip pricing of daily average MM futures is better than in case 1. |
|||||||||
Use FX Reset |
Only available when the generator is BasisGlobal. Indicates whether the Spot Alternative FX reset should be used instead of the FX spot rate. The generator parameter value will be False by default to retain current functionality. When set to True:
|
The other parameters apply to the Global generator and are described in details in the Calypso Yield Curve Generation guide.
Resets Panel
You can choose Curve > Show Reset/Turn Tab to display / hide the Resets/turns panel.
The Resets area panel shows manual resets requirements for underlying instruments (cash quotes associated with a given underlying instrument). This applies when "Manual First Reset" is checked in the definition of the underlying instrument.
In the Turn Rates area, you can select turn rates that you have defined as underlying instruments and click to associate them with the curve. Then you can set the quotes and save.
Ⓘ [NOTE: If you hide the Resets/Turns panel, the required quotes are displayed in the Underlying panel, along with the quotes of the underlying instruments - For Turn Rates however, you need to use the Resets/Turns panel to associate them with the curve]
3.4 Points Panel
Click the Points tab. Click Generate to view the generated zero rates and discount factors.
» | You can adjust the daycount and frequency as needed. The default values come from the selected rate index. You will be prompted to recalculate the zero rates or the discount factors. |
» | You can modify the zero rates and discount factors. |
3.5 Save Curve
Click Save at the bottom of the window to save the curve. You will be prompted to enter a curve name.
4. Generating Blended Zero Curves
Blended zero curves can be used for collateral pricing.
Collateral pricing is the ability to select the discount curve based on the collateral agreement's collateral policy instead of the trade currency.
Blended Zero Curve Quick Reference You can build a cheapest-to-deliver collateral curve by blending up to three other collateral discount curves. Curve Generation 1. Click New to start a new curve. 2. Definition Panel — Select the generation algorithm "CTDCollateral", and select the discount curves. All the curves must be defined with the same currency but each curve can have underlying instruments in another currency. 3. Click Generate to generate the points. 4. Click Save, and enter a curve name. Pricer Configuration Assign the zero curve as a discount curve with the appropriate collateral policy. |
4.1 Definition Panel
Click New to start a new curve.
Select the following to define the curve: currency, index, tenor, holidays, “Generate from instruments”, interpolator, interpolation space, generation algorithm "CTDCollateral", curve type set to “CurveZero”, Pricing Env.
» | Select Curve 1, Curve 2, and optionally Curve 3. |
All the curves must be defined with the same currency but each curve can have underlying instruments in another currency.
» | Click Generate to generate the curve. |
4.2 Save Curve
Click Save at the bottom of the window to save the curve. You will be prompted to enter a curve name.
4.3 Pricer Configuration
In the Discount Curves panel, select the trade currency, the collateral policy, and the other criteria as needed.
Please refer to Calypso Collateral Pricing (Trade CSA) for complete setup details.
5. Generating Zero Curves with Convexity Adjustments
Zero Curve with Convexity Adjustments Quick Reference You can perform convexity adjustment using one of the following methods:
These methods are described below in details. Curve Generation 1. Generate a derived curve.
2. In the Quotes panel, select the type of convexity adjustment you want to perform, and enter / load the convexity adjustment values. 3. Click Save, and enter a name for the curve. Pricer Configuration Assign the zero curve as a discount/forecast curve. |
5.1 Quotes Panel
After you have defined a derived zero curve that contains future underlyings, click the Quotes tab. You can perform convexity adjustment using one of the following methods.
Convexity Adjustments from RATE Volatility Surface
Create a volatility surface for Future MM volatilities. The volatility surface may be a simple surface from offsets, using Black volatilities or basis point volatilities. From the Calypso Navigator, navigate to Market Data > Volatilities > Volatility Surface.
Register the volatility surface in the Pricer Configuration - Product Specific panel using PricerFutureMM and/or PricerFutureOptionMM and the FUT_CONVEXITY usage.
In the Quotes panel, of the zero cuve, set the following parameter.
» | Set the parameter “Use Future Convexity” to True. The system will use the assigned volatility surface to compute the convexity adjustments when you generate the curve points. You can see the convexity quotes in the Points panel. |
Manual Convexity Adjustments
» | Set the parameters “Use Future Convexity” AND “Use Manual Future Convexity" to true. |
» | Enter the future convexity adjustments in the field "Future Convexity". When you generate the curve, you can view the convexity quotes in the points panel. |
Convexity Adjustments from Spread Quotes
You can also elect to directly enter the convexity quotes.
Set the environment property "USE_QUOTE_ADJUSTMENT" to False (default is True).
The convexity quotes are created by appending “.convexity” to the future quotes, for example “Future.USD.CME.EURODOLLLAR.DEC.06.convexity”, and the quote type is a Spread expressed in basis points.
» | Enter / load the convexity quotes. |
5.2 Save Curve
Click Save at the bottom of the window to save the curve. You will be prompted to enter a curve name.
6. Generating Agency Option Adjusted Spread Curves
Agency Option Adjusted Spread (AOAS) curves are used to price European callable bonds.
AOAS Curve Quick Reference Configuration Requirements
Curve Generation 1. Click New to start a new curve. 2. Definition Panel — Select the following information to define the curve: currency, index, tenor, holidays, “Generate from instruments” should be checked, interpolator, interpolation space, generation algorithm set to "AgencyBootStrap", curve type set to “CurveZero”, Pricing Env. 3. Offsets Panel — Select the tenors and dates. 4. Points Panel — Click Generate to generate the points. Enter the zero rates. 5. Click Save, and enter a curve name. Pricer Configuration Assign the AOAS curve as a forecast curve. |
6.1 Definition Panel
Click New to start a new curve.
Select the following to define the curve: currency, index, tenor, holidays, “Generate from instruments” should be checked, interpolator, interpolation space, generation algorithm set to "AgencyBootStrap", curve type set to “CurveZero”, Pricing Env.
6.2 Underlying Panel
Click the Underlying tab, and select the underlying instruments: benchmark bonds.
Benchmark bonds are created using Configuration > Fixed Income > Benchmarks from the Calypso Navigator.
Refer to Calypso Fixed Income documentation for information on creating benchmark bonds.
» | Select instrument type "Bond" to display the list of available instruments. If none appear, you can click New/Edit Underlying to create new instruments. |
» | Select bond benchmarks from the list of available instruments on the left-hand side, and click >> to add them to the list of selected instruments on the right-hand side. |
You can exclude instruments from the curve generation if they are no longer needed.
You can set a priority when multiple instruments have the same maturity date. The lowest priority is 0.
6.3 Quotes Panel
Click the Quotes tab.
» | You can click Refresh Quotes to load the quotes from the pricing environment selected in the Definition panel. If your market data server is running, quotes will be updated in real-time. |
» | You can also enter the quotes manually, and save them to the pricing environment. |
Quotes Parameters Details
See Quotes Panel for details on the other parameters.
Parameter |
Description |
---|---|
Tension |
Should be set to "75.6" per SIFMA. |
Use Defined Spread Adjustments |
Set to True to enable the Spread Adjustments column in the Quotes panel. |
User Defined CM Yields |
Set to True to enable the Constant Maturity Yields column in the Quotes panel. |
6.4 Points Panel
Click the Points tab. Click Generate to view the generated zero rates and discount factors.
» | You can adjust the daycount and frequency as needed. The default values come from the selected rate index. You will be prompted to recalculate the zero rates or the discount factors. |
» | You can modify the zero rates and discount factors. |
6.5 Save Curve
Click Save at the bottom of the window to save the curve. You will be prompted to enter a curve name.
7. Pricer Configuration
From the Calypso Navigator, navigate to Market Data > Pricing Environment > Pricer Configuration, and click Load to select a pricer configuration name.
7.1 Discount Curves
Click the "Discount Curves" tab.
» | Select the parameters for which the curve applies, and select the curve. The parameters are described below. |
» | Click Add to add the curve to the pricer configuration. |
» | Then click Save to save the pricer configuration. |
Fields | Description | |||||||||
---|---|---|---|---|---|---|---|---|---|---|
Currency |
Select the currency for which the curve applies. |
|||||||||
Domiciliation |
Select the domiciliation for which the curve applies:
The domiciliation is based on the book attribute "Domiciliation". |
|||||||||
Collateral Policy |
Select the collateral policy for which the curve applies if any, or select NONE otherwise. If the pricing parameter COLLATERALIZED_PRICING is set to true, the system checks if the trade is associated with a CSA agreement. If it is, the system uses the collateral policy of the CSA agreement to select the discount curve accordingly. If the collateral policy is not set on the CSA agreement, the trade currency is used to select the discount curve. If COLLATERALIZED_PRICING is set to false, the collateral policy is not used.
|
|||||||||
Type |
Select the product type for which the curve applies, or ANY. |
|||||||||
Sub Type |
Select the product subtype for which the curve applies, or ANY. |
|||||||||
Extended Type |
Select the extended type for which the curve applies, or ANY. |
|||||||||
Rate Index |
Select the rate index for which the curve applies, or ANY. |
|||||||||
Tenor |
Select the rate index tenor for which the curve applies, or ANY. |
|||||||||
Market Data |
Select the curve. |
7.2 Forecast Curves
Click the "Forecast Curves" tab.
» | Select a currency, a product or ANY, a subtype or ANY, an index, a tenor or ANY. |
» | Click ... to select the curve. |
» | Click Add to add the curve to the pricer configuration. |
» | Click Save to save the pricer configuration. |
Zero curves used for forecasting equity forward prices using non-linear pricers (for Equity Derivatives trades) may be mapped using the FWD_PRICE_FOR usage in the Product Specific panel of the pricer configuration.