Multi-curve Package

A multi-curve package allows creating a set of zero curves that are generated simultaneously using a multi-curve generator that generates and saves multiple curves at once.

The curves of a multi-curve package are always generated and saved together anywhere in the system where a zero curve is generated: pricing, risk analyses, the GENERATE_CURVE scheduled task, the market data manager, etc. However, they are associated to the pricer configuration independently.

To build a multi-curve package, you can either copy configurations from existing curves and rename them, or configure new curves for the package in the Multicurve Package Generation window itself.

 Ⓘ   [NOTE: The curves of a multi-curve package cannot be modified in the Curve window]

 

Before you begin

In addition to the access permissions related to market data, the following access permissions are required by the Multicurve window.

CreateMulticurvePackage
ModifyMulticurvePackage
RemoveMulticurvePackage

 

1. Defining a Multi-curve Package

From the Calypso Navigator, navigate to Market Data > Multicurve Window (menu action marketdata.MultiCurvePackageGenerationWindow) to define multi-curve packages.

» You can click Load to load an existing package.

The existing packages are displayed.

Select a package and click Load.

You can modify and generate the package as needed.

» To create a new package: Click New and enter the fields described below.

Then perform the following steps:

1. Select each curve under the Package Name label, and define it in the Curve Definition tab.

2. Define the dependency between the curves in the Curve Dependencies tab.

3. Define generator parameters for each curve as needed in the Generator Parameters tab.

4. Select underlying instruments for each curve in the Select Underlyings tab.

5. Enter / review quotes for each curve in the Enter Quotes tab.

6. Enter / review resets and turn rates as needed for each curve in the Enter Resets/Turns tab.

7. Click Generate to generate the curves. For a new package, you will be prompted to enter a package name.

You can view the package summary in the Summary tab.
You can click View for each curve to display the generated curve.

8. Click Save to save the package.

The steps are described below.

 

Package Definition

Parameter

Description

Current

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.

Generation Algorithm

Select a multi-curve generator.

"DoubleGlobalM" - Generates and saves both a discount curve and a forecast curve at once.
"TripleGlobal" - Generates three curves simultaneously for cross-currency swaps: two forward curves and one cross-currency curve.

If the generator is not available for selection, please add it to the domain "MultiMDIGenerators".

Make sure that this generator is also available in the domain for zero curve generators "CurveZero.gen".

Instance Type

Select the instance of the curve. It 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.

Pricing Env

Select the Pricing Env to be used for retrieving market data.

 

Step 1 - Curve Definition tab - Select each curve under the Package Name label, and define it in the Curve Definition tab.

» Enter the curve name and the required information for each curve.

For new multi-curve packages, you can select the curve type: CurveZero or CurveBasis.

The CurveBasis acts as with a single curve, that is, it has one base curve over its entire length. You cannot have two basis curves where each has the other as base curve. There must always be a discount curve to spread from.

See Generating Derived Zero Curves for details on zero curves.

See Generating Basis Curves for details on basis curves.

» You can click Copy Configuration to copy the configuration from an existing curve. You will be prompted to select a curve.

 

Step 2 - Curve Dependencies tab - Define the dependency between the curves in the package, or with curves outside of the package.

 

DoubleGlobalM Generator

For the DoubleGlobalM generator, the system generates and saves both a discount curve and a forecast curve.

For the forecast curve, select the discount curve in the Discount Curve field. You can click ... to select a curve outside of the package.

You can also select a bond curve from the Bond Benchmark Curve field to be used with the SwapSpread curve underlying. The quote of the underlying (a spread) is added to the yield calculated from the bond curve and the benchmark bonds to get the swap quote.

For the discount curve, select the forecast curve in the Base Fwd Curve field. You can click ... to select a curve outside of the package.

 Ⓘ   [NOTE: Curves outside the package are NOT regenerated. They are only used by the package]

 

TripleGlobal Generator

For the TripleGlobal generator, the system generates three curves simultaneously for cross-currency swaps: two forward curves and one cross-currency curve.

For the cross currency curve:

Select a curve in base currency in the Base Fwd Curve field (it can be the forecast curve in base currency defined in the package).
Select a curve in foreign currency in the Foreign Fwd Curve field (it can be the forecast curve in foreign currency defined in the package).
Select a discount curve.

You can click ... to select a curve outside of the package.

 Ⓘ   [NOTE: Curves outside the package are NOT regenerated. They are only used by the package]

For the forecast curve in base currency, select the forecast curve in foreign currency in the Foreign Fwd Curve field, and a discount curve in the Discount Curve field. You can click ... to select a curve outside of the package.

For the forecast curve in foreign currency, select the forecast curve in base currency in the Base Fwd Curve field, and a discount curve in the Discount Curve field. You can click ... to select a curve outside of the package.

 

Step 3 - Generator Parameters tab - Define generator parameters for each curve as needed.

See Generating Derived Zero Curves for details on zero curves.

See Generating Basis Curves for details on basis curves.

 

Only one curve in the package can use the shaping method "Daily Forwards Spread". Unlike for a single curve, in the multi-curve this spread method is computed for the entire curve (the "100Y" choice), regardless of the user's choice. Thus it cannot be applied to only parts of the curve, as it can in the single curve window.

Also, daily points are not stored on the curve. This decreases memory requirements of the curve and increases speed. Instead, the points seen on the curve will be the union of the maturity dates of the curve underlying and all the points calculated on the shaping curve (the curve to which the spreads are added). The shaping curve is specified by the generator parameter of that name, and has choices of Base and Discount.

 

Initial Guess Strategy ( DoubleGlobalM Generator)

DoubleGlobalM generator generates two curves simultaneously, in two phases: in the initial guess phase, suitable trial curves are found for both curves, and in the optimization phase, the optimization algorithm is executed, using the trial curves from the initial phase as the initial guess.

This parameter adds flexibility to the initial guess phase. It can be set to: Single Trial Curve (default) or Distinct Trial Curves.

Single Trial Curve - One single curve is bootstrapped and used as the initial trial curve for both curves in the package.
The "Distinct Trial Curves" option introduces new behavior: two distinct trial curves are bootstrapped, one for each curve in the package. This option is not supported when the two curves in the package are Base Curve of each other, in which case an exception is thrown, as this type of mutual dependency makes it impossible to bootstrap the curves independently of each other.

There is a performance trade-off between the 2 strategies:

Single Trial Curve spends less time on the initial guess phase but since there is only one trial curve, it can happen that the initial guess is significantly off from the optimal curves, resulting in a longer optimization phase time.
Distinct Trial Curves spends more time on the initial phase, but that will be partially offset by a faster optimization, since there is a good chance that the distinct trial curves are closer to the optimal curves than in the single curve case.

 

Step 4 - Select Underlyings tab- Select underlying instruments for each curve.

See Generating Derived Zero Curves for details on zero curves.

See Generating Basis Curves for details on basis curves.

TIP: To open any of the underlyings from the Select Underlyings tab, press Ctrl and double-click the underlying.

 

Step 5 - Enter Quotes tab - Enter / review quotes for each curve.

 

Step 6 - Enter Resets/Turns tab - Enter / review resets and turn rates for each curve as needed.

 

Step 7 - Generate the curves.

Click Generate to generate the curves. For a new package, you will be prompted to enter a package name.

You can view the package summary in the Summary tab with the curve dependencies.

Here you can also make Day Count and Frequency settings for each curve in the package. Different curves can use different settings.

You can click View for each curve to display the generated curve.
To see a graph of points plotted for all curves in the package, see the Graph tab.

Use the "Show" drop-down to select the quote type.
You can click Add Curve to manually load dependent curves. Click Remove Curve to remove any curve from the graph.
Select the "Forwards Tenor" checkbox to display forwards. When the checkbox is selected you can choose the tenor from the drop-down.

 

Step 8 - Save.

Click Save to save the package.

 

2. Pricer Configuration

You need to assign each curve defined in the multi-curve package to a pricer configuration.

From the Calypso Navigator, navigate to Market Data > Pricing Environment > Pricer Configuration, and click Load to select a pricer configuration name.

 

2.1 Discount Curves

Select the "Discount Curves" panel to assign the discount curves.

» Select the parameters for which the curve applies, and select the curve.
» Click Add to add the curve to the pricer configuration.
» Then click Save to save the pricer configuration.

See Pricer Configuration for details on this panel.

 

2.2 Forecast Curves

Select the "Forecast Curves" panel to assign the forecast curves.

» 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.

See Pricer Configuration for details on this panel.