CreditProduct aims to define the functional and behavioral interfaces behind curves, products, and different parameter types (market, valuation, pricing, and product parameters). To facilitate this, it implements various day count conventions, holiday sets, period generators, and calculation outputs.

 

CreditProduct library achieves its design goal by implementing its functionality over several packages:

        Dates and holidays coverage: Covers a variety of day count conventions, 120+ holiday locations, as well as custom user-defined holidays

        Curve and analytics definitions: Defines the base functional interfaces for the variants of discount curves, credit curves, and FX curves

        Market Parameter definitions: Defines quotes, component/basket market parameters, and custom scenario parameters

        Valuation and Pricing Parameters: Defines valuation, settlement/work-out, and pricing parameters of different variants

        Product and product parameter definitions: Defines the product creation and behavior interfaces for Cash/EDF/IRS (all rates), bonds/CDS (credit), and basket bond/CDS, and their feature parameters.

        Output measures container: Defines generalized component and basket outputs, as well customized outputs for specific products

 

Download Source and the binary from the Downloads area.

 

Credit Product Library consists of the following 14 packages:

 

1.      Date & Time Manipulators: This contains functionality for creating, manipulating, and adjusting dates, as well as time instants (to nano-second granularity).

2.      Day-count Parameters, Conventions, and Date Adjustment Operations: This contains the functionality for day count generation and date adjustment according to specific rules. It also holds parameters needed for specific day count conventions.

3.      Location Specific Standard Holiday Set: This contains all the non-weekend holidays that correspond to a specific location jurisdiction, and its description. Each location implements it holidays in a separate class.

4.      Custom Holidays: This provides the ability to specify custom holidays, if the standard ones provided earlier are insufficient. Different types of holidays can be added variable, fixed, static, as well as weekends for a given location.

5.      Cash flow Period: This contains the cash flow period functionality, as well as place holders for the period related different curve factors.

6.      Analytics Support Utilities: This contains utility functions for manipulating the core Credit Product modules, generic utility functions, and a logger.

7.      Quotes, Market, and Scenario Parameters Definitions: This contains the classes that implement the definitions for all parameters except product feature parameters quotes, calibration parameters, market parameters, tweak parameters, and the scenario curves.

8.      Pricer Parameters: This contains the pricing parameters corresponding to a given product and model.

9.      Quoting Parameters: This contains the quoting parameters needed to interpret a product quote.

10.  Valuation Parameters: This contains all the non-market and non-product parameters needed for valuing a product at a given date.

11.  Product Definitions: This contains interface definitions for all products, along with definitions for credit, rates, and FX components and specific credit/rates/FX products, and baskets.

12.  Product Parameters: This contains the implementations of the features required for a complete construction of an instance of the product.

13.  Product RV and Batch Calculation Outputs: This contains the bulk results of pricing and relative value calculation for the products.

14.  Serializer: This interface defines the core object serialization methods serialization into and de-serialization out of byte arrays, as well as the object serializer version.