CurveBuilder
Lakshmi Krishnamurthy v2.3 23 January 2014
CurveBuilder provides the functionality for highly customized discount, forward, credit, and FX curve construction, customized with wide variety of basis splines, calibration instrument types and measures.
CurveBuilder exposes the following functionality:
Basis Spline Library Extensions:
Segment/Stretch/Span Partitioned Formulation (along with Latent State Quantification Metric extraction form the observed Manifest Measure)
Segment Local Curvature + Length Penalty Setup (aka pseudo splines)
Best-Fit Penalizing Splines with Custom Penalty Order and arbitrary (but “well-behaved”) basis spline set
Penalty evaluated Regression Splines
Local Hermite Smoothing Schemes – Akima, Bessel, Hagan-West, Harmonic, Huynh-Le Floch, Hyman, Kruger, and Preuss schemes.
B Spline Functionality:
Raw/Processed Basis Hat Functions Implementation
Synthetic Monic Basis B Spline generation with shape control
B Spline Sequence build-out using multic segment basis function aggregation
Custom closed form cubic KLK Hyperbolic Tension
Incorporation of the B Spline basis onto the segment/stretch/span schematic setup and usage
Spline Based Discount Curve Build-Out:
Shape Preserving Discount Curve Build with and without turn list adjustment
Smoothing Discount Curve Build Pass with and without turn list adjustment
Transition Spline Based Discount Curve Construction
Estimation of the in-situ discount curve input quote Jacobian
Implementation of the discount curve build-out using standard schemes such as DENSE, DUALDENSE, and CUSTOMDENSE
Spline Based Forward Curve Build-Out:
Shape Preserving Forward Curve Build
Smoothing Forward Curve Build Pass
Linearized Forward Basis Calibrator Constraint setup for fix-float and float-float
Labeled correlated discount factor/forward rate merge sub-stretch setup
Manifest Measure/Quantification metric tweaked latent state construction and the corresponding Jacobian
CurveBuilder library achieves its design goal by implementing its functionality over several packages:
Latent State Representation Package: The latent state representation package implements the latent state, the quantification metric/manifest measure, its labels, the merge stretch and its manager.
Latent State Estimator Package: The latent state estimator package provides functionality to estimate the latent state, local/global state construction controls, constraint representation, and linear/non-linear calibrator routines.
Latent Curve State Package: The latent curve state package provides implementations of latent state representations of discount curve, forward curve, zero curve, credit curve, FX Basis curve, and FX forward curve.
Latent State Creator Package: The latent curve state package provides implementations of the constructor factories that create discount curve, forward curve, zero curve, credit curve, FX Basis curve, and FX forward curve.
Analytics Definition Package: The analytics definition package provides definitions of the generic curve, discount curve, forward curve, zero curve, credit curve, FX Basis curve, and FX forward curve, turns list, and their construction inputs.
Rates Analytics Package: The rates analytics package provides definitions of the discount curve, the forward curve, the zero curve, the discount factor and the forward rate estimators, the turns list, and their construction inputs.
Download CurveBuilder binary along with the complete DRIP source from the link here.
CurveBuilder is installed by simply placing the jar file it into the class-path.
CurveBuilder is part of DRIP – open suite analytics and trading/valuation system for fixed income products. Detailed documentation and downloads may be found here.
Usage
HaganWestForwardInterpolator.java illustrates using the Hagan and West (2006) Estimator.
ShapeDFZeroLocalSmooth.java demonstrates the usage of different local smoothing techniques involved in the discount curve creation.
ShapePreservingDFZeroSmooth.java demonstrates the usage of different shape preserving and smoothing techniques involved in the discount curve creation.
CustomDiscountCurveBuilder.java discount curve calibration and input instrument calibration quote recovery.
CustomDiscountCurveReconciler.java demonstrates the multi-stretch transition custom discount curve construction, turns application, discount factor extraction, and calibration quote recovery.
TemplatedDiscountCurveBuilder.java demonstrates the usage of the different pre-built Discount Curve Builders.
DiscountCurveQuoteSensitivity.java demonstrates the calculation of the discount curve sensitivity to the calibration instrument quotes.
CustomForwardCurveBuilder.java contains the sample demonstrating the full functionality behind creating highly customized spline based forward curves.
More samples are available in the examples folder and in the Samples section.
Licence
CurveBuilder is distributed under the Apache 2.0 licence - please see the attached Licence for details.
Curve Builder Documents