GENERATE_CURVE

You can automate the process of updating Basis, Zero, FX Derived Zero, FX, Dividend, Probability, and Commodity (CurveCommodity, CurveCommoditySpread, and CurveZeroPreciousMetal) derived curves in a specified pricing environment or a given market data group by setting up the GENERATE_CURVE scheduled task.

You can use the scheduled task PROP_RATE_1BUSDAY to roll the quotes which are not liquid prior to rolling the curves.

On the topic of saving different instances of curves, see the task attribute ALWAYS_REGEN_CURVES.

Common Attributes

The Pricing Env is mandatory.

The other attributes have no effect except for Timezone, Valuation Time and Valuation Date Offset.

Task Attributes

CURVE_TYPES_FOR_EXCLUD_UNDERLY – List of comma-separated curve types that will exclude underlyings from the curve generation for which the quote is not known.

If CURVE_TYPES_FOR_EXCLUD_UNDERLY is empty – All curves will be generated using included underlyings (Included checkbox checked in the Underlying panel of the curve). If the quote is not available on the generation date, the quote from the previous instance of the curve will be rolled forward.

Otherwise, the curves will be generated using the quotes (from both Included and Excluded underlyings) that are available for that date, and no other quotes. If there are no quotes available on the date, then no curve will be generated by the scheduled task.

However, if only the ASK quote is missing and the BID quote is available, the scheduled task checks the attribute COPY_BID_TO_ASK_IF_MISSING. If this is true, the BID quote is copied to the ASK quote and the underlying instrument is used in the curve generation.

AUTO_INCLUDE_UNDERLY_WITH_QUOTES – Automatically includes underlyings in curve generation when the underlying’s quote has been made available. This attribute works in conjunction with the task attribute CURVE_TYPES_FOR_EXCLUD_UNDERLY so that underlyings that have been excluded due to missing quotes can be automatically included in curve generation when their quotes become available. The new task attribute is set to True or False.

When the CURVE_TYPES_FOR_EXCLUD_UNDERLY task attribute is populated with a curve type, the AUTO_INCLUDE_UNDERLY_WITH_QUOTES task attribute influences curve generation in the following ways:

When set to True – After running the scheduled task, an error in the log is generated for any missing quotes and the “Included” checkbox for the underlying in the curve window is automatically cleared. If and when quotes become available for the underlyings, the scheduled task will run without errors and the “Included” checkbox for those underlyings will automatically be selected, generating points for the curve.
When set to False – Behavior is the same as above when quotes are not available. However, if and when quotes do become available, the underlyings are still excluded from curve generation and no points are generated in the curve for those underlyings.
SAVE_CURVE_ON_GENERATION_EXCEPTIONS – You can set this to true for Curve Probability. If the survival probability generation fails at any point, then those tenors are not marked in the Points tab of the curve, but the CDS quotes for those tenors are retained in the Quotes tab.

Since the survival probabilities are already calculated, the trade can be priced and any pricer measure that does not perturb the curve (i.e. NPV, Accrual, B/E Rate) is computed.

However, if pricer measures that do perturb the curve are included, then an error message is thrown. An example of such a pricer measure is PV01_Credit.

USE_INSTANCE_FROM_PRICING_PARAMS – If true, any regenerated curve takes the INSTANCE_TYPE from the pricing environment (regardless of the original instance type of the curve). If false, the regenerated curve keeps its original instance type.
CURVE_TYPES – List of comma-separated curve types to be generated. Curve types are defined in the domain "marketDataType" and start with "Curve".

Example: CurveZero. Simple curves are automatically filtered out (except CurveRisky).

Market Data Group – You can select a market data group to generate the curves defined in that group only. Market Data Groups are created from the Calypso Navigator under Configuration > User Access Control > Access Permissions, Group Access panel.
Exclude Curve Generators – True or false. Set to true to exclude a set of curve generators from the process. All the curves with those curve generators will not be generated. The curve generators are set in a text file defined in the attribute "File Path and Name," or in the attribute "Exclude Curve Generators List" as a comma-separated list. The "Exclude Curve Generators List" takes priority over the text file if both are provided.
ALWAYS_REGEN_CURVES – By default, the scheduled task only regenerates and saves curves if the specified Valuation Date falls after the date of existing curve instances (ALWAYS_REGEN_CURVES is false). If you set ALWAYS_REGEN_CURVES to true, you can set up scheduled tasks to run at multiple times during the day; the task regenerates and saves the curves regardless of the timestamp of the existing curve instances.
File Path and Name – Text file that contains the list of curve generators to be exclude from the process. Only applies if "Exclude Curve Generator = true". This attribute is ignored if inputs are provided for the "Exclude Curve Generators List" attribute.

Example: File Path and Name=C:\CurveException.txt

Exclude Curve Generators List – Provides a field for creating a list of comma separated curve generator names to be excluded from the process. Only applies if "Exclude Curve Generator = true". This attribute takes priority over "File Path and Name."

 

This scheduled task can generate curves in any order as required by their dependencies, i.e. if an FX Derived Zero curve requires an underlying FX Forward curve and another Zero curve in order to generate, the scheduled task will update the required underlyings first.

Similarly, if a default probability curve needs a zero curve to generate, it will handle the dependency internally within the task. This can be observed if you log the category "GenerateCurve".