StandardCDXManager.java
- package org.drip.service.env;
- /*
- * -*- mode: java; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*-
- */
- /*!
- * Copyright (C) 2020 Lakshmi Krishnamurthy
- * Copyright (C) 2019 Lakshmi Krishnamurthy
- * Copyright (C) 2018 Lakshmi Krishnamurthy
- * Copyright (C) 2017 Lakshmi Krishnamurthy
- * Copyright (C) 2016 Lakshmi Krishnamurthy
- * Copyright (C) 2015 Lakshmi Krishnamurthy
- * Copyright (C) 2014 Lakshmi Krishnamurthy
- * Copyright (C) 2013 Lakshmi Krishnamurthy
- * Copyright (C) 2012 Lakshmi Krishnamurthy
- *
- * This file is part of DROP, an open-source library targeting analytics/risk, transaction cost analytics,
- * asset liability management analytics, capital, exposure, and margin analytics, valuation adjustment
- * analytics, and portfolio construction analytics within and across fixed income, credit, commodity,
- * equity, FX, and structured products. It also includes auxiliary libraries for algorithm support,
- * numerical analysis, numerical optimization, spline builder, model validation, statistical learning,
- * and computational support.
- *
- * https://lakshmidrip.github.io/DROP/
- *
- * DROP is composed of three modules:
- *
- * - DROP Product Core - https://lakshmidrip.github.io/DROP-Product-Core/
- * - DROP Portfolio Core - https://lakshmidrip.github.io/DROP-Portfolio-Core/
- * - DROP Computational Core - https://lakshmidrip.github.io/DROP-Computational-Core/
- *
- * DROP Product Core implements libraries for the following:
- * - Fixed Income Analytics
- * - Loan Analytics
- * - Transaction Cost Analytics
- *
- * DROP Portfolio Core implements libraries for the following:
- * - Asset Allocation Analytics
- * - Asset Liability Management Analytics
- * - Capital Estimation Analytics
- * - Exposure Analytics
- * - Margin Analytics
- * - XVA Analytics
- *
- * DROP Computational Core implements libraries for the following:
- * - Algorithm Support
- * - Computation Support
- * - Function Analysis
- * - Model Validation
- * - Numerical Analysis
- * - Numerical Optimizer
- * - Spline Builder
- * - Statistical Learning
- *
- * Documentation for DROP is Spread Over:
- *
- * - Main => https://lakshmidrip.github.io/DROP/
- * - Wiki => https://github.com/lakshmiDRIP/DROP/wiki
- * - GitHub => https://github.com/lakshmiDRIP/DROP
- * - Repo Layout Taxonomy => https://github.com/lakshmiDRIP/DROP/blob/master/Taxonomy.md
- * - Javadoc => https://lakshmidrip.github.io/DROP/Javadoc/index.html
- * - Technical Specifications => https://github.com/lakshmiDRIP/DROP/tree/master/Docs/Internal
- * - Release Versions => https://lakshmidrip.github.io/DROP/version.html
- * - Community Credits => https://lakshmidrip.github.io/DROP/credits.html
- * - Issues Catalog => https://github.com/lakshmiDRIP/DROP/issues
- * - JUnit => https://lakshmidrip.github.io/DROP/junit/index.html
- * - Jacoco => https://lakshmidrip.github.io/DROP/jacoco/index.html
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- *
- * You may obtain a copy of the License at
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- *
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
- /**
- * <i>StandardCDXManager</i> implements the creation and the static details of the all the NA, EU, SovX,
- * EMEA, and ASIA standardized CDS indices. It exposes the following functionality:
- *
- * <br><br>
- * <ul>
- * <li>
- * Retrieve the full set of pre-set/pre-loaded CDX names/descriptions.
- * </li>
- * <li>
- * Retrieve all the CDX's given an index name.
- * </li>
- * <li>
- * Get the index, index series, and the effective/maturity dates for a given CDX.
- * </li>
- * <li>
- * Get all the on-the-runs for an index, date, and tenor.
- * </li>
- * <li>
- * Retrieve the full basket product corresponding to NA/EU/ASIA IG/HY/EM and other available
- * standard CDX.
- * </li>
- * <li>
- * Build a custom CDX product.
- * </li>
- * </ul>
- *
- * <br><br>
- * <ul>
- * <li><b>Module </b> = <a href = "https://github.com/lakshmiDRIP/DROP/tree/master/ComputationalCore.md">Computational Core Module</a></li>
- * <li><b>Library</b> = <a href = "https://github.com/lakshmiDRIP/DROP/tree/master/ComputationSupportLibrary.md">Computation Support</a></li>
- * <li><b>Project</b> = <a href = "https://github.com/lakshmiDRIP/DROP/tree/master/src/main/java/org/drip/service/README.md">Environment, Product/Definition Containers, and Scenario/State Manipulation APIs</a></li>
- * <li><b>Package</b> = <a href = "https://github.com/lakshmiDRIP/DROP/tree/master/src/main/java/org/drip/service/env/README.md">Library Module Loader Environment Manager</a></li>
- * </ul>
- * <br><br>
- *
- * @author Lakshmi Krishnamurthy
- */
- public class StandardCDXManager {
- private static org.drip.analytics.support.CaseInsensitiveTreeMap<org.drip.product.definition.BasketProduct>
- _mapStandardCDX = null;
- private static org.drip.analytics.support.CaseInsensitiveTreeMap<org.drip.product.params.StandardCDXParams>
- _mapStandardCDXParams = null;
- private static
- org.drip.analytics.support.CaseInsensitiveTreeMap<java.util.Map<org.drip.analytics.date.JulianDate,
- java.lang.Integer>> _mmIndexFirstCouponSeries = null;
- private static org.drip.analytics.support.CaseInsensitiveTreeMap<java.util.Map<java.lang.Integer,
- org.drip.analytics.date.JulianDate>> _mmIndexSeriesFirstCoupon = null;
- private static final boolean SetupStandardCDXParams()
- {
- _mapStandardCDXParams = new
- org.drip.analytics.support.CaseInsensitiveTreeMap<org.drip.product.params.StandardCDXParams>();
- try {
- _mapStandardCDXParams.put ("CDX.NA.IG", new org.drip.product.params.StandardCDXParams (125,
- "USD", 0.01));
- _mapStandardCDXParams.put ("CDX.NA.HY", new org.drip.product.params.StandardCDXParams (100,
- "USD", 0.05));
- _mapStandardCDXParams.put ("CDX.NA.HVOL", new org.drip.product.params.StandardCDXParams (30,
- "USD", 0.01));
- _mapStandardCDXParams.put ("CDX.NA.HIVOL", new org.drip.product.params.StandardCDXParams (30,
- "USD", 0.01));
- _mapStandardCDXParams.put ("CDX.NA.XO", new org.drip.product.params.StandardCDXParams (35, "USD",
- 0.034));
- _mapStandardCDXParams.put ("CDX.NA.HY.BB", new org.drip.product.params.StandardCDXParams (40,
- "USD", 0.05));
- _mapStandardCDXParams.put ("CDX.NA.HY.B", new org.drip.product.params.StandardCDXParams (37,
- "USD", 0.05));
- _mapStandardCDXParams.put ("ITRX.EU.IG", new org.drip.product.params.StandardCDXParams (125,
- "EUR", 0.01));
- _mapStandardCDXParams.put ("ITRAXX.EU.IG", new org.drip.product.params.StandardCDXParams (125,
- "EUR", 0.01));
- _mapStandardCDXParams.put ("ITRX.EU.HVOL", new org.drip.product.params.StandardCDXParams (30,
- "EUR", 0.01));
- _mapStandardCDXParams.put ("ITRAXX.EU.HVOL", new org.drip.product.params.StandardCDXParams (30,
- "EUR", 0.01));
- _mapStandardCDXParams.put ("ITRX.EU.XO", new org.drip.product.params.StandardCDXParams (50,
- "EUR", 0.05));
- _mapStandardCDXParams.put ("ITRAXX.EU.XO", new org.drip.product.params.StandardCDXParams (50,
- "EUR", 0.05));
- _mapStandardCDXParams.put ("ITRX.EU.NONFIN", new org.drip.product.params.StandardCDXParams (50,
- "EUR", 0.05));
- _mapStandardCDXParams.put ("ITRAXX.EU.NONFIN", new org.drip.product.params.StandardCDXParams (50,
- "EUR", 0.05));
- _mapStandardCDXParams.put ("ITRX.EU.FINSNR", new org.drip.product.params.StandardCDXParams (20,
- "EUR", 0.01));
- _mapStandardCDXParams.put ("ITRAXX.EU.FINSNR", new org.drip.product.params.StandardCDXParams (20,
- "EUR", 0.01));
- _mapStandardCDXParams.put ("ITRX.EU.FINSUB", new org.drip.product.params.StandardCDXParams (20,
- "EUR", 0.01));
- _mapStandardCDXParams.put ("ITRAXX.EU.FINSUB", new org.drip.product.params.StandardCDXParams (20,
- "EUR", 0.01));
- return true;
- } catch (java.lang.Exception e) {
- e.printStackTrace();
- }
- return false;
- }
- private static final boolean UpdateIndexMaps (
- final java.util.Map<org.drip.analytics.date.JulianDate, java.lang.Integer> mapDateSeries,
- final java.util.Map<java.lang.Integer, org.drip.analytics.date.JulianDate> mapSeriesDate,
- final org.drip.analytics.date.JulianDate dt,
- final int iSeries)
- {
- mapDateSeries.put (dt, iSeries);
- mapSeriesDate.put (iSeries, dt);
- return true;
- }
- private static final boolean PresetNA_IG_HY_HVOL_HYBB_HYBSeries()
- {
- java.util.Map<org.drip.analytics.date.JulianDate, java.lang.Integer> mapDateSeries = new
- java.util.TreeMap<org.drip.analytics.date.JulianDate, java.lang.Integer>();
- java.util.Map<java.lang.Integer, org.drip.analytics.date.JulianDate> mapSeriesDate = new
- java.util.TreeMap<java.lang.Integer, org.drip.analytics.date.JulianDate>();
- UpdateIndexMaps (mapDateSeries, mapSeriesDate, org.drip.analytics.date.DateUtil.CreateFromYMD
- (2014, 6, 20), 22);
- UpdateIndexMaps (mapDateSeries, mapSeriesDate, org.drip.analytics.date.DateUtil.CreateFromYMD
- (2013, 12, 20), 21);
- UpdateIndexMaps (mapDateSeries, mapSeriesDate, org.drip.analytics.date.DateUtil.CreateFromYMD
- (2013, 6, 20), 20);
- UpdateIndexMaps (mapDateSeries, mapSeriesDate, org.drip.analytics.date.DateUtil.CreateFromYMD
- (2012, 12, 20), 19);
- UpdateIndexMaps (mapDateSeries, mapSeriesDate, org.drip.analytics.date.DateUtil.CreateFromYMD
- (2012, 6, 20), 18);
- UpdateIndexMaps (mapDateSeries, mapSeriesDate, org.drip.analytics.date.DateUtil.CreateFromYMD
- (2011, 12, 20), 17);
- UpdateIndexMaps (mapDateSeries, mapSeriesDate, org.drip.analytics.date.DateUtil.CreateFromYMD
- (2011, 6, 20), 16);
- UpdateIndexMaps (mapDateSeries, mapSeriesDate, org.drip.analytics.date.DateUtil.CreateFromYMD
- (2010, 12, 20), 15);
- UpdateIndexMaps (mapDateSeries, mapSeriesDate, org.drip.analytics.date.DateUtil.CreateFromYMD
- (2010, 6, 20), 14);
- UpdateIndexMaps (mapDateSeries, mapSeriesDate, org.drip.analytics.date.DateUtil.CreateFromYMD
- (2009, 12, 20), 13);
- UpdateIndexMaps (mapDateSeries, mapSeriesDate, org.drip.analytics.date.DateUtil.CreateFromYMD
- (2009, 6, 20), 12);
- UpdateIndexMaps (mapDateSeries, mapSeriesDate, org.drip.analytics.date.DateUtil.CreateFromYMD
- (2008, 12, 20), 11);
- UpdateIndexMaps (mapDateSeries, mapSeriesDate, org.drip.analytics.date.DateUtil.CreateFromYMD
- (2008, 6, 20), 10);
- UpdateIndexMaps (mapDateSeries, mapSeriesDate, org.drip.analytics.date.DateUtil.CreateFromYMD
- (2007, 12, 20), 9);
- UpdateIndexMaps (mapDateSeries, mapSeriesDate, org.drip.analytics.date.DateUtil.CreateFromYMD
- (2007, 6, 20), 8);
- UpdateIndexMaps (mapDateSeries, mapSeriesDate, org.drip.analytics.date.DateUtil.CreateFromYMD
- (2006, 12, 20), 7);
- UpdateIndexMaps (mapDateSeries, mapSeriesDate, org.drip.analytics.date.DateUtil.CreateFromYMD
- (2006, 6, 20), 6);
- UpdateIndexMaps (mapDateSeries, mapSeriesDate, org.drip.analytics.date.DateUtil.CreateFromYMD
- (2005, 12, 20), 5);
- UpdateIndexMaps (mapDateSeries, mapSeriesDate, org.drip.analytics.date.DateUtil.CreateFromYMD
- (2005, 6, 20), 4);
- UpdateIndexMaps (mapDateSeries, mapSeriesDate, org.drip.analytics.date.DateUtil.CreateFromYMD
- (2004, 12, 20), 3);
- UpdateIndexMaps (mapDateSeries, mapSeriesDate, org.drip.analytics.date.DateUtil.CreateFromYMD
- (2004, 6, 20), 2);
- UpdateIndexMaps (mapDateSeries, mapSeriesDate, org.drip.analytics.date.DateUtil.CreateFromYMD
- (2003, 12, 20), 1);
- _mmIndexFirstCouponSeries.put ("CDX.NA.IG", mapDateSeries);
- _mmIndexSeriesFirstCoupon.put ("CDX.NA.IG", mapSeriesDate);
- _mmIndexFirstCouponSeries.put ("CDX.NA.HY", mapDateSeries);
- _mmIndexSeriesFirstCoupon.put ("CDX.NA.HY", mapSeriesDate);
- _mmIndexFirstCouponSeries.put ("CDX.NA.HVOL", mapDateSeries);
- _mmIndexSeriesFirstCoupon.put ("CDX.NA.HVOL", mapSeriesDate);
- _mmIndexFirstCouponSeries.put ("CDX.NA.HIVOL", mapDateSeries);
- _mmIndexSeriesFirstCoupon.put ("CDX.NA.HIVOL", mapSeriesDate);
- _mmIndexFirstCouponSeries.put ("CDX.NA.HY.B", mapDateSeries);
- _mmIndexSeriesFirstCoupon.put ("CDX.NA.HY.B", mapSeriesDate);
- _mmIndexFirstCouponSeries.put ("CDX.NA.HY.BB", mapDateSeries);
- _mmIndexSeriesFirstCoupon.put ("CDX.NA.HY.BB", mapSeriesDate);
- return true;
- }
- private static final boolean PresetNAXOSeries()
- {
- java.util.Map<org.drip.analytics.date.JulianDate, java.lang.Integer> mapDateSeries = new
- java.util.TreeMap<org.drip.analytics.date.JulianDate, java.lang.Integer>();
- java.util.Map<java.lang.Integer, org.drip.analytics.date.JulianDate> mapSeriesDate = new
- java.util.TreeMap<java.lang.Integer, org.drip.analytics.date.JulianDate>();
- UpdateIndexMaps (mapDateSeries, mapSeriesDate, org.drip.analytics.date.DateUtil.CreateFromYMD
- (2014, 6, 20), 16);
- UpdateIndexMaps (mapDateSeries, mapSeriesDate, org.drip.analytics.date.DateUtil.CreateFromYMD
- (2013, 12, 20), 15);
- UpdateIndexMaps (mapDateSeries, mapSeriesDate, org.drip.analytics.date.DateUtil.CreateFromYMD
- (2013, 6, 20), 14);
- UpdateIndexMaps (mapDateSeries, mapSeriesDate, org.drip.analytics.date.DateUtil.CreateFromYMD
- (2012, 12, 20), 13);
- UpdateIndexMaps (mapDateSeries, mapSeriesDate, org.drip.analytics.date.DateUtil.CreateFromYMD
- (2012, 6, 20), 12);
- UpdateIndexMaps (mapDateSeries, mapSeriesDate, org.drip.analytics.date.DateUtil.CreateFromYMD
- (2011, 12, 20), 11);
- UpdateIndexMaps (mapDateSeries, mapSeriesDate, org.drip.analytics.date.DateUtil.CreateFromYMD
- (2011, 6, 20), 10);
- UpdateIndexMaps (mapDateSeries, mapSeriesDate, org.drip.analytics.date.DateUtil.CreateFromYMD
- (2010, 12, 20), 9);
- UpdateIndexMaps (mapDateSeries, mapSeriesDate, org.drip.analytics.date.DateUtil.CreateFromYMD
- (2010, 6, 20), 8);
- UpdateIndexMaps (mapDateSeries, mapSeriesDate, org.drip.analytics.date.DateUtil.CreateFromYMD
- (2009, 12, 20), 7);
- UpdateIndexMaps (mapDateSeries, mapSeriesDate, org.drip.analytics.date.DateUtil.CreateFromYMD
- (2009, 6, 20), 6);
- UpdateIndexMaps (mapDateSeries, mapSeriesDate, org.drip.analytics.date.DateUtil.CreateFromYMD
- (2008, 12, 20), 5);
- UpdateIndexMaps (mapDateSeries, mapSeriesDate, org.drip.analytics.date.DateUtil.CreateFromYMD
- (2008, 6, 20), 4);
- UpdateIndexMaps (mapDateSeries, mapSeriesDate, org.drip.analytics.date.DateUtil.CreateFromYMD
- (2007, 12, 20), 3);
- UpdateIndexMaps (mapDateSeries, mapSeriesDate, org.drip.analytics.date.DateUtil.CreateFromYMD
- (2007, 6, 20), 2);
- UpdateIndexMaps (mapDateSeries, mapSeriesDate, org.drip.analytics.date.DateUtil.CreateFromYMD
- (2006, 12, 20), 1);
- _mmIndexFirstCouponSeries.put ("CDX.NA.XO", mapDateSeries);
- _mmIndexSeriesFirstCoupon.put ("CDX.NA.XO", mapSeriesDate);
- return true;
- }
- private static final boolean PresetEMSeries()
- {
- java.util.Map<org.drip.analytics.date.JulianDate, java.lang.Integer> mapDateSeries = new
- java.util.TreeMap<org.drip.analytics.date.JulianDate, java.lang.Integer>();
- java.util.Map<java.lang.Integer, org.drip.analytics.date.JulianDate> mapSeriesDate = new
- java.util.TreeMap<java.lang.Integer, org.drip.analytics.date.JulianDate>();
- UpdateIndexMaps (mapDateSeries, mapSeriesDate, org.drip.analytics.date.DateUtil.CreateFromYMD
- (2014, 6, 20), 21);
- UpdateIndexMaps (mapDateSeries, mapSeriesDate, org.drip.analytics.date.DateUtil.CreateFromYMD
- (2013, 12, 20), 20);
- UpdateIndexMaps (mapDateSeries, mapSeriesDate, org.drip.analytics.date.DateUtil.CreateFromYMD
- (2013, 6, 20), 19);
- UpdateIndexMaps (mapDateSeries, mapSeriesDate, org.drip.analytics.date.DateUtil.CreateFromYMD
- (2012, 12, 20), 18);
- UpdateIndexMaps (mapDateSeries, mapSeriesDate, org.drip.analytics.date.DateUtil.CreateFromYMD
- (2012, 6, 20), 17);
- UpdateIndexMaps (mapDateSeries, mapSeriesDate, org.drip.analytics.date.DateUtil.CreateFromYMD
- (2011, 12, 20), 16);
- UpdateIndexMaps (mapDateSeries, mapSeriesDate, org.drip.analytics.date.DateUtil.CreateFromYMD
- (2011, 6, 20), 15);
- UpdateIndexMaps (mapDateSeries, mapSeriesDate, org.drip.analytics.date.DateUtil.CreateFromYMD
- (2010, 12, 20), 14);
- UpdateIndexMaps (mapDateSeries, mapSeriesDate, org.drip.analytics.date.DateUtil.CreateFromYMD
- (2010, 6, 20), 13);
- UpdateIndexMaps (mapDateSeries, mapSeriesDate, org.drip.analytics.date.DateUtil.CreateFromYMD
- (2009, 12, 20), 12);
- UpdateIndexMaps (mapDateSeries, mapSeriesDate, org.drip.analytics.date.DateUtil.CreateFromYMD
- (2009, 6, 20), 11);
- UpdateIndexMaps (mapDateSeries, mapSeriesDate, org.drip.analytics.date.DateUtil.CreateFromYMD
- (2008, 12, 20), 10);
- UpdateIndexMaps (mapDateSeries, mapSeriesDate, org.drip.analytics.date.DateUtil.CreateFromYMD
- (2008, 6, 20), 9);
- UpdateIndexMaps (mapDateSeries, mapSeriesDate, org.drip.analytics.date.DateUtil.CreateFromYMD
- (2007, 12, 20), 8);
- UpdateIndexMaps (mapDateSeries, mapSeriesDate, org.drip.analytics.date.DateUtil.CreateFromYMD
- (2007, 6, 20), 7);
- UpdateIndexMaps (mapDateSeries, mapSeriesDate, org.drip.analytics.date.DateUtil.CreateFromYMD
- (2006, 12, 20), 6);
- UpdateIndexMaps (mapDateSeries, mapSeriesDate, org.drip.analytics.date.DateUtil.CreateFromYMD
- (2006, 6, 20), 5);
- UpdateIndexMaps (mapDateSeries, mapSeriesDate, org.drip.analytics.date.DateUtil.CreateFromYMD
- (2005, 12, 20), 4);
- UpdateIndexMaps (mapDateSeries, mapSeriesDate, org.drip.analytics.date.DateUtil.CreateFromYMD
- (2005, 6, 20), 3);
- UpdateIndexMaps (mapDateSeries, mapSeriesDate, org.drip.analytics.date.DateUtil.CreateFromYMD
- (2004, 12, 20), 2);
- UpdateIndexMaps (mapDateSeries, mapSeriesDate, org.drip.analytics.date.DateUtil.CreateFromYMD
- (2004, 6, 20), 1);
- _mmIndexFirstCouponSeries.put ("CDX.EM", mapDateSeries);
- _mmIndexSeriesFirstCoupon.put ("CDX.EM", mapSeriesDate);
- return true;
- }
- private static final boolean PresetEUSeries()
- {
- java.util.Map<org.drip.analytics.date.JulianDate, java.lang.Integer> mapDateSeries = new
- java.util.TreeMap<org.drip.analytics.date.JulianDate, java.lang.Integer>();
- java.util.Map<java.lang.Integer, org.drip.analytics.date.JulianDate> mapSeriesDate = new
- java.util.TreeMap<java.lang.Integer, org.drip.analytics.date.JulianDate>();
- UpdateIndexMaps (mapDateSeries, mapSeriesDate, org.drip.analytics.date.DateUtil.CreateFromYMD
- (2014, 6, 20), 20);
- UpdateIndexMaps (mapDateSeries, mapSeriesDate, org.drip.analytics.date.DateUtil.CreateFromYMD
- (2013, 12, 20), 19);
- UpdateIndexMaps (mapDateSeries, mapSeriesDate, org.drip.analytics.date.DateUtil.CreateFromYMD
- (2013, 6, 20), 18);
- UpdateIndexMaps (mapDateSeries, mapSeriesDate, org.drip.analytics.date.DateUtil.CreateFromYMD
- (2012, 12, 20), 17);
- UpdateIndexMaps (mapDateSeries, mapSeriesDate, org.drip.analytics.date.DateUtil.CreateFromYMD
- (2012, 6, 20), 16);
- UpdateIndexMaps (mapDateSeries, mapSeriesDate, org.drip.analytics.date.DateUtil.CreateFromYMD
- (2011, 12, 20), 15);
- UpdateIndexMaps (mapDateSeries, mapSeriesDate, org.drip.analytics.date.DateUtil.CreateFromYMD
- (2011, 6, 20), 14);
- UpdateIndexMaps (mapDateSeries, mapSeriesDate, org.drip.analytics.date.DateUtil.CreateFromYMD
- (2010, 12, 20), 13);
- UpdateIndexMaps (mapDateSeries, mapSeriesDate, org.drip.analytics.date.DateUtil.CreateFromYMD
- (2010, 6, 20), 12);
- UpdateIndexMaps (mapDateSeries, mapSeriesDate, org.drip.analytics.date.DateUtil.CreateFromYMD
- (2009, 12, 20), 11);
- UpdateIndexMaps (mapDateSeries, mapSeriesDate, org.drip.analytics.date.DateUtil.CreateFromYMD
- (2009, 6, 20), 10);
- UpdateIndexMaps (mapDateSeries, mapSeriesDate, org.drip.analytics.date.DateUtil.CreateFromYMD
- (2008, 12, 20), 9);
- UpdateIndexMaps (mapDateSeries, mapSeriesDate, org.drip.analytics.date.DateUtil.CreateFromYMD
- (2008, 6, 20), 8);
- UpdateIndexMaps (mapDateSeries, mapSeriesDate, org.drip.analytics.date.DateUtil.CreateFromYMD
- (2007, 12, 20), 7);
- UpdateIndexMaps (mapDateSeries, mapSeriesDate, org.drip.analytics.date.DateUtil.CreateFromYMD
- (2007, 6, 20), 6);
- UpdateIndexMaps (mapDateSeries, mapSeriesDate, org.drip.analytics.date.DateUtil.CreateFromYMD
- (2006, 12, 20), 5);
- UpdateIndexMaps (mapDateSeries, mapSeriesDate, org.drip.analytics.date.DateUtil.CreateFromYMD
- (2006, 6, 20), 4);
- UpdateIndexMaps (mapDateSeries, mapSeriesDate, org.drip.analytics.date.DateUtil.CreateFromYMD
- (2005, 12, 20), 3);
- UpdateIndexMaps (mapDateSeries, mapSeriesDate, org.drip.analytics.date.DateUtil.CreateFromYMD
- (2005, 6, 20), 2);
- UpdateIndexMaps (mapDateSeries, mapSeriesDate, org.drip.analytics.date.DateUtil.CreateFromYMD
- (2004, 12, 20), 1);
- _mmIndexFirstCouponSeries.put ("ITRX.EU.IG", mapDateSeries);
- _mmIndexSeriesFirstCoupon.put ("ITRX.EU.IG", mapSeriesDate);
- _mmIndexFirstCouponSeries.put ("ITRX.EU.HVOL", mapDateSeries);
- _mmIndexSeriesFirstCoupon.put ("ITRX.EU.HVOL", mapSeriesDate);
- _mmIndexFirstCouponSeries.put ("ITRX.EU.HIVOL", mapDateSeries);
- _mmIndexSeriesFirstCoupon.put ("ITRX.EU.HIVOL", mapSeriesDate);
- _mmIndexFirstCouponSeries.put ("ITRX.EU.XO", mapDateSeries);
- _mmIndexSeriesFirstCoupon.put ("ITRX.EU.XO", mapSeriesDate);
- _mmIndexFirstCouponSeries.put ("ITRX.EU.FINSNR", mapDateSeries);
- _mmIndexSeriesFirstCoupon.put ("ITRX.EU.FINSNR", mapSeriesDate);
- _mmIndexFirstCouponSeries.put ("ITRX.EU.FINSUB", mapDateSeries);
- _mmIndexSeriesFirstCoupon.put ("ITRX.EU.FINSUB", mapSeriesDate);
- _mmIndexFirstCouponSeries.put ("ITRX.EU.NONFIN", mapDateSeries);
- _mmIndexSeriesFirstCoupon.put ("ITRX.EU.NONFIN", mapSeriesDate);
- return true;
- }
- public static final boolean InitStandardCDXSeries()
- {
- if (null != _mapStandardCDX) return true;
- _mapStandardCDX = new
- org.drip.analytics.support.CaseInsensitiveTreeMap<org.drip.product.definition.BasketProduct>();
- _mmIndexFirstCouponSeries = new
- org.drip.analytics.support.CaseInsensitiveTreeMap<java.util.Map<org.drip.analytics.date.JulianDate,
- java.lang.Integer>>();
- _mmIndexSeriesFirstCoupon = new
- org.drip.analytics.support.CaseInsensitiveTreeMap<java.util.Map<java.lang.Integer,
- org.drip.analytics.date.JulianDate>>();
- if (!PresetNA_IG_HY_HVOL_HYBB_HYBSeries()) {
- System.out.println ("Cannot initialize NA_IG_HY_HVOL_HYBB_HYB");
- return false;
- }
- if (!PresetNAXOSeries()) {
- System.out.println ("Cannot initialize NA_XO");
- return false;
- }
- if (!PresetEMSeries()) {
- System.out.println ("Cannot initialize EM");
- return false;
- }
- if (!PresetEUSeries()) {
- System.out.println ("Cannot initialize EU");
- return false;
- }
- if (!SetupStandardCDXParams()) {
- System.out.println ("Cannot setup standard CDX Params!");
- return false;
- }
- return org.drip.product.creator.CDXRefDataHolder.InitFullCDXRefDataSet();
- }
- private static final org.drip.product.definition.BasketProduct ConstructCDX (
- final java.lang.String strTenor,
- final org.drip.analytics.date.JulianDate dtFirstCoupon,
- final double dblCoupon,
- final java.lang.String strIR,
- final int iNumComponents,
- final java.lang.String strCDXName)
- {
- java.lang.String[] astrCC = new java.lang.String[iNumComponents];
- for (int i = 0; i < iNumComponents; ++i)
- astrCC[i] = "CC" + (i + 1);
- return org.drip.product.creator.CDSBasketBuilder.MakeCDX (dtFirstCoupon.subtractTenor ("3M"),
- dtFirstCoupon.addTenor (strTenor), dblCoupon, strIR, astrCC, strCDXName);
- }
- private static final org.drip.product.definition.BasketProduct ConstructCDXEM (
- final java.lang.String strTenor,
- final org.drip.analytics.date.JulianDate dtFirstCoupon,
- final java.lang.String strCDXName)
- {
- return org.drip.product.creator.CDSBasketBuilder.MakeCDX (dtFirstCoupon.subtractTenor ("3M"),
- dtFirstCoupon.addTenor (strTenor), 0.05, "USD", new java.lang.String[] {"ARG", "VEN", "BRA",
- "MAL", "COL", "HUN", "IND", "PAN", "PER", "SAF", "PHI", "TUR", "RUS", "UKR", "MEX"}, new
- double[] {0.06, 0.08, 0.13, 0.04, 0.08, 0.03, 0.05, 0.03, 0.05, 0.03, 0.06, 0.11, 0.13,
- 0.03, 0.09}, strCDXName);
- }
- private static final org.drip.product.definition.BasketProduct MakePresetStandardCDX (
- final java.lang.String strIndex,
- final int iSeries,
- final java.lang.String strTenor)
- {
- if (null == strIndex || strIndex.isEmpty() || null == strTenor || strTenor.isEmpty()) return null;
- org.drip.product.params.CDXIdentifier cdxID = null;
- try {
- cdxID = new org.drip.product.params.CDXIdentifier (iSeries, 1, strIndex, strTenor);
- } catch (java.lang.Exception e) {
- e.printStackTrace();
- }
- if (null == cdxID) return null;
- java.lang.String strCDXCode = cdxID.getCode();
- if (null == strCDXCode || strCDXCode.isEmpty()) return null;
- org.drip.product.definition.BasketProduct cdx = _mapStandardCDX.get (strCDXCode);
- if (null != cdx) return cdx;
- java.util.Map<java.lang.Integer, org.drip.analytics.date.JulianDate> mapSeriesFirstCoupon =
- _mmIndexSeriesFirstCoupon.get (strIndex);
- if (null == mapSeriesFirstCoupon) return null;
- org.drip.analytics.date.JulianDate dtFirstCoupon = mapSeriesFirstCoupon.get (iSeries);
- if (null == dtFirstCoupon) return null;
- if ("CDX.EM".equalsIgnoreCase (strIndex))
- cdx = ConstructCDXEM (strTenor, dtFirstCoupon, strCDXCode);
- else {
- org.drip.product.params.StandardCDXParams cdxParams = _mapStandardCDXParams.get (strIndex);
- if (null != cdxParams)
- cdx = ConstructCDX (strTenor, dtFirstCoupon, cdxParams._dblCoupon, cdxParams._strCurrency,
- cdxParams._iNumComponents, strCDXCode);
- }
- _mapStandardCDX.put (strCDXCode, cdx);
- return cdx;
- }
- private static final org.drip.product.definition.BasketProduct MakePreLoadedStandardCDX (
- final java.lang.String strIndex,
- final int iSeries,
- final java.lang.String strTenor)
- {
- if (null == strIndex || strIndex.isEmpty() || null == strTenor || strTenor.isEmpty()) return null;
- org.drip.product.params.CDXIdentifier cdxID = null;
- try {
- cdxID = new org.drip.product.params.CDXIdentifier (iSeries, 1, strIndex, strTenor);
- } catch (java.lang.Exception e) {
- e.printStackTrace();
- }
- if (null == cdxID) return null;
- java.lang.String strCDXCode = cdxID.getCode();
- if (null == strCDXCode || strCDXCode.isEmpty()) return null;
- org.drip.product.params.CDXRefDataParams cdxrdb =
- org.drip.product.creator.CDXRefDataHolder._mapCDXRefData.get (strCDXCode);
- if (null == cdxrdb) return null;
- java.lang.String[] astrCC = new java.lang.String[cdxrdb._iOriginalComponentCount];
- for (int i = 0; i < cdxrdb._iOriginalComponentCount; ++i)
- astrCC[i] = "CC" + (i + 1);
- return org.drip.product.creator.CDSBasketBuilder.MakeCDX (cdxrdb._dtMaturity.subtractTenor
- (cdxrdb._iIndexLifeSpan + "Y"), cdxrdb._dtMaturity, cdxrdb._dblCoupon, cdxrdb._strCurrency,
- astrCC, cdxrdb._strIndexClass + "." + cdxrdb._strIndexGroupName + "." +
- cdxrdb._iIndexLifeSpan + "Y." + cdxrdb._iIndexSeries + "." + cdxrdb._iIndexVersion);
- }
- private static final org.drip.product.definition.BasketProduct GetPresetOnTheRun (
- final java.lang.String strIndex,
- final org.drip.analytics.date.JulianDate dt,
- final java.lang.String strTenor)
- {
- if (null == dt || null == strIndex || strIndex.isEmpty() || null == strTenor || strTenor.isEmpty())
- return null;
- java.util.Map<org.drip.analytics.date.JulianDate, java.lang.Integer> mapFirstCouponSeries =
- _mmIndexFirstCouponSeries.get (strIndex);
- org.drip.analytics.date.JulianDate dtFirstCoupon = dt.nextCreditIMM (3);
- if (null == dtFirstCoupon || null == mapFirstCouponSeries) return null;
- if (null == mapFirstCouponSeries.get (dtFirstCoupon))
- dtFirstCoupon = dtFirstCoupon.nextCreditIMM (3);
- if (null == dtFirstCoupon || null == mapFirstCouponSeries.get (dtFirstCoupon)) return null;
- return MakePresetStandardCDX (strIndex, mapFirstCouponSeries.get (dtFirstCoupon), strTenor);
- }
- private static final org.drip.product.definition.BasketProduct GetPreLoadedOnTheRun (
- final java.lang.String strIndex,
- final org.drip.analytics.date.JulianDate dt,
- final java.lang.String strTenor)
- {
- if (null == dt || null == strIndex || strIndex.isEmpty() || null == strTenor || strTenor.isEmpty())
- return null;
- java.util.Map<org.drip.analytics.date.JulianDate, java.lang.Integer> mapFirstCouponSeries =
- org.drip.product.creator.CDXRefDataHolder._mmCDXRDBFirstCouponSeries.get (strIndex);
- org.drip.analytics.date.JulianDate dtFirstCoupon = dt.nextCreditIMM (3);
- if (null == dtFirstCoupon || null == mapFirstCouponSeries) return null;
- if (null == mapFirstCouponSeries.get (dtFirstCoupon))
- dtFirstCoupon = dtFirstCoupon.nextCreditIMM (3);
- if (null == dtFirstCoupon || null == mapFirstCouponSeries.get (dtFirstCoupon)) return null;
- return MakePreLoadedStandardCDX (strIndex, mapFirstCouponSeries.get (dtFirstCoupon), strTenor);
- }
- private static final boolean DumpIndexDetails (
- final java.lang.String strCDXCoverageFile)
- {
- if (null == strCDXCoverageFile || strCDXCoverageFile.isEmpty()) return false;
- java.io.BufferedWriter bw = null;
- try {
- bw = new java.io.BufferedWriter (new java.io.FileWriter (strCDXCoverageFile));
- bw.write ("\n , Index Name, Description, Issue Date, Maturity Date, Frequency, Coupon\n");
- } catch (java.lang.Exception e) {
- e.printStackTrace();
- try {
- bw.close();
- } catch (java.lang.Exception e1) {
- e1.printStackTrace();
- }
- return false;
- }
- for (java.util.Map.Entry<java.lang.String, org.drip.product.params.CDXRefDataParams> meCDXRefData :
- org.drip.product.creator.CDXRefDataHolder._mapCDXRefData.entrySet()) {
- org.drip.product.params.CDXRefDataParams cdxrdb = meCDXRefData.getValue();
- if (null == cdxrdb) continue;
- java.lang.String strIndexDetails = " , " + meCDXRefData.getKey() + ", " + cdxrdb._strIndexName +
- ", " + cdxrdb._dtIssue + ", " + cdxrdb._dtMaturity + ", " + cdxrdb._iFrequency + ", " + (int)
- (10000. * cdxrdb._dblCoupon) + "\n";
- try {
- bw.write (strIndexDetails);
- } catch (java.lang.Exception e) {
- e.printStackTrace();
- try {
- bw.close();
- } catch (java.lang.Exception e1) {
- e1.printStackTrace();
- }
- }
- }
- try {
- bw.close();
- } catch (java.lang.Exception e) {
- e.printStackTrace();
- }
- return true;
- }
- /**
- * Create a standard CDX from the index code, the index series, and the tenor.
- *
- * @param strIndex The Index Code (CDX.NA.IG, CDX.NA.HY, etc)
- * @param iSeries Index Series Number
- * @param strTenor The specific tenor - typical common ones are 3Y, 5Y, 7Y, and 10Y
- *
- * @return The CDX Basket Product
- */
- public static final org.drip.product.definition.BasketProduct MakeStandardCDX (
- final java.lang.String strIndex,
- final int iSeries,
- final java.lang.String strTenor)
- {
- org.drip.product.definition.BasketProduct bpCDX = MakePresetStandardCDX (strIndex, iSeries,
- strTenor);
- if (null != bpCDX) return bpCDX;
- return MakePreLoadedStandardCDX (strIndex, iSeries, strTenor);
- }
- /**
- * Retrieve the on-the-run for the index and tenor corresponding to the specified date
- *
- * @param strIndex CDX/ITRAXX index
- * @param dt Specified date
- * @param strTenor Tenor
- *
- * @return CDX/ITRAXX Basket Product
- */
- public static final org.drip.product.definition.BasketProduct GetOnTheRun (
- final java.lang.String strIndex,
- final org.drip.analytics.date.JulianDate dt,
- final java.lang.String strTenor)
- {
- org.drip.product.definition.BasketProduct bpCDX = GetPresetOnTheRun (strIndex, dt, strTenor);
- if (null != bpCDX) return bpCDX;
- return GetPreLoadedOnTheRun (strIndex, dt, strTenor);
- }
- /**
- * Retrieve a set of all the pre-set CDX index names
- *
- * @return Set of the pre-set CDX index names
- */
- public static final java.util.Set<java.lang.String> GetPresetIndexNames()
- {
- return _mmIndexFirstCouponSeries.keySet();
- }
- /**
- * Retrieve a set of all the pre-loaded CDX index names
- *
- * @return Set of the pre-loaded CDX index names
- */
- public static final java.util.Set<java.lang.String> GetPreLoadedIndexNames()
- {
- return org.drip.product.creator.CDXRefDataHolder._mmCDXRDBFirstCouponSeries.keySet();
- }
- /**
- * Retrieve the comprehensive set of pre-set and pre-loaded CDX index names
- *
- * @return Set of the pre-set and the pre-loaded CDX index names
- */
- public static final java.util.Set<java.lang.String> GetCDXNames()
- {
- java.util.Set<java.lang.String> setstrIndex = new java.util.HashSet<java.lang.String>();
- setstrIndex.addAll (GetPreLoadedIndexNames());
- setstrIndex.addAll (GetPresetIndexNames());
- return setstrIndex;
- }
- /**
- * Return the full set of pre-set CDX series/first coupon date pairs for the given CDX
- *
- * @param strCDXName CDX Name
- *
- * @return Map of the CDX series/first coupon dates
- */
- public static final java.util.Map<org.drip.analytics.date.JulianDate, java.lang.Integer>
- GetPresetCDXSeriesMap (
- final java.lang.String strCDXName)
- {
- if (null == strCDXName || strCDXName.isEmpty()) return null;
- return _mmIndexFirstCouponSeries.get (strCDXName);
- }
- /**
- * Return the full set of pre-loaded CDX series/first coupon date pairs for the given CDX
- *
- * @param strCDXName CDX Name
- *
- * @return Map of the CDX series/first coupon dates
- */
- public static final java.util.Map<org.drip.analytics.date.JulianDate, java.lang.Integer>
- GetPreLoadedCDXSeriesMap (
- final java.lang.String strCDXName)
- {
- if (null == strCDXName || strCDXName.isEmpty()) return null;
- return org.drip.product.creator.CDXRefDataHolder._mmCDXRDBFirstCouponSeries.get (strCDXName);
- }
- /**
- * Return the full set of CDX series/first coupon date pairs for the given CDX
- *
- * @param strCDXName CDX Name
- *
- * @return Map of the CDX series/first coupon dates
- */
- public static final java.util.Map<org.drip.analytics.date.JulianDate, java.lang.Integer> GetCDXSeriesMap(
- final java.lang.String strCDXName)
- {
- if (null == strCDXName || strCDXName.isEmpty()) return null;
- java.util.Map<org.drip.analytics.date.JulianDate, java.lang.Integer> mapFirstCouponSeries = new
- java.util.HashMap<org.drip.analytics.date.JulianDate, java.lang.Integer>();
- java.util.Map<org.drip.analytics.date.JulianDate, java.lang.Integer> mapPresetFirstCouponSeries =
- GetPresetCDXSeriesMap (strCDXName);
- if (null != mapPresetFirstCouponSeries) mapFirstCouponSeries.putAll (mapPresetFirstCouponSeries);
- java.util.Map<org.drip.analytics.date.JulianDate, java.lang.Integer> mapPreLoadedFirstCouponSeries =
- GetPreLoadedCDXSeriesMap (strCDXName);
- if (null != mapPreLoadedFirstCouponSeries)
- mapFirstCouponSeries.putAll (mapPreLoadedFirstCouponSeries);
- return mapFirstCouponSeries;
- }
- /**
- * Retrieve the name/description map for all the pre-set CDS indices
- *
- * @return Name/description map for all the pre-set CDS indices
- */
- public static final org.drip.analytics.support.CaseInsensitiveTreeMap<java.lang.String>
- GetPresetCDXDescriptions()
- {
- org.drip.analytics.support.CaseInsensitiveTreeMap<java.lang.String> mapCDXDescr = new
- org.drip.analytics.support.CaseInsensitiveTreeMap<java.lang.String>();
- for (java.util.Map.Entry<java.lang.String, org.drip.product.params.StandardCDXParams> meCDXRefData :
- _mapStandardCDXParams.entrySet())
- mapCDXDescr.put (meCDXRefData.getKey(), meCDXRefData.getKey());
- return mapCDXDescr;
- }
- /**
- * Retrieve the name/description map for all the pre-loaded CDS indices
- *
- * @return Name/description map for all the pre-loaded CDS indices
- */
- public static final org.drip.analytics.support.CaseInsensitiveTreeMap<java.lang.String>
- GetPreLoadedCDXDescriptions()
- {
- org.drip.analytics.support.CaseInsensitiveTreeMap<java.lang.String> mapCDXDescr = new
- org.drip.analytics.support.CaseInsensitiveTreeMap<java.lang.String>();
- for (java.util.Map.Entry<java.lang.String, org.drip.product.params.CDXRefDataParams> meCDXRefData :
- org.drip.product.creator.CDXRefDataHolder._mapCDXRefData.entrySet())
- mapCDXDescr.put (meCDXRefData.getKey(), meCDXRefData.getValue()._strIndexName);
- return mapCDXDescr;
- }
- /**
- * Retrieve the name/description map for all the CDS indices
- *
- * @return Name/description map for all the CDS indices
- */
- public static final org.drip.analytics.support.CaseInsensitiveTreeMap<java.lang.String>
- GetCDXDescriptions()
- {
- org.drip.analytics.support.CaseInsensitiveTreeMap<java.lang.String> mapCDXDescr = new
- org.drip.analytics.support.CaseInsensitiveTreeMap<java.lang.String>();
- mapCDXDescr.putAll (GetPreLoadedCDXDescriptions());
- mapCDXDescr.putAll (GetPresetCDXDescriptions());
- return mapCDXDescr;
- }
- public static final void main (
- final java.lang.String[] astrArgs)
- throws java.lang.Exception
- {
- if (!InitStandardCDXSeries()) System.out.println ("Cannot initialize InitStandardCDXSeries!");
- DumpIndexDetails ("C:\\CreditAnalytics\\docs\\CDXCoverage.csv");
- }
- }