Package com.opengamma.financial.convention

Source Code of com.opengamma.financial.convention.DKConventions

/**
* Copyright (C) 2011 - present by OpenGamma Inc. and the OpenGamma group of companies
*
* Please see distribution for license.
*/
package com.opengamma.financial.convention;

import static com.opengamma.core.id.ExternalSchemes.bloombergTickerSecurityId;
import static com.opengamma.core.id.ExternalSchemes.tullettPrebonSecurityId;
import static com.opengamma.financial.convention.InMemoryConventionBundleMaster.simpleNameSecurityId;

import org.threeten.bp.Period;

import com.opengamma.core.id.ExternalSchemes;
import com.opengamma.financial.convention.businessday.BusinessDayConvention;
import com.opengamma.financial.convention.businessday.BusinessDayConventionFactory;
import com.opengamma.financial.convention.daycount.DayCount;
import com.opengamma.financial.convention.daycount.DayCountFactory;
import com.opengamma.financial.convention.frequency.Frequency;
import com.opengamma.financial.convention.frequency.SimpleFrequencyFactory;
import com.opengamma.id.ExternalId;
import com.opengamma.id.ExternalIdBundle;
import com.opengamma.util.ArgumentChecker;
import com.opengamma.util.time.DateUtils;

/**
* Contains information used to construct standard versions of DKK instruments.
*/
public class DKConventions {

  /**
   * Adds conventions for deposit, Libor and Cibor fixings, swaps and FRAs.
   * @param conventionMaster The convention master, not null
   */
  public static void addFixedIncomeInstrumentConventions(final ConventionBundleMaster conventionMaster) {
    ArgumentChecker.notNull(conventionMaster, "convention master");
    final BusinessDayConvention modified = BusinessDayConventionFactory.INSTANCE.getBusinessDayConvention("Modified Following");
    final BusinessDayConvention following = BusinessDayConventionFactory.INSTANCE.getBusinessDayConvention("Following");
    final DayCount act360 = DayCountFactory.INSTANCE.getDayCount("Actual/360");
    final DayCount thirty360 = DayCountFactory.INSTANCE.getDayCount("30/360");
    final Frequency annual = SimpleFrequencyFactory.INSTANCE.getFrequency(Frequency.ANNUAL_NAME);
    final Frequency semiAnnual = SimpleFrequencyFactory.INSTANCE.getFrequency(Frequency.SEMI_ANNUAL_NAME);
    final Frequency quarterly = SimpleFrequencyFactory.INSTANCE.getFrequency(Frequency.QUARTERLY_NAME);

    final ExternalId dk = ExternalSchemes.financialRegionId("DK");

    final ConventionBundleMasterUtils utils = new ConventionBundleMasterUtils(conventionMaster);

    utils.addConventionBundle(ExternalIdBundle.of(bloombergTickerSecurityId("CIBO01W Index"), simpleNameSecurityId("DKK CIBOR 1w"),
        tullettPrebonSecurityId("ASLIBDDK1WL")), "DKK CIBOR 1w", act360, following, Period.ofDays(7), 2, false, dk);
    utils.addConventionBundle(ExternalIdBundle.of(bloombergTickerSecurityId("CIBO02W Index"), simpleNameSecurityId("DKK CIBOR 2w"),
        tullettPrebonSecurityId("ASLIBDDK2WL")), "DKK CIBOR 2w", act360, following, Period.ofDays(14), 2, false, dk);
    utils.addConventionBundle(ExternalIdBundle.of(bloombergTickerSecurityId("CIBO01M Index"), simpleNameSecurityId("DKK CIBOR 1m"),
        tullettPrebonSecurityId("ASLIBDDK01L")), "DKK CIBOR 1m", act360, following, Period.ofMonths(1), 2, false, dk);
    utils.addConventionBundle(ExternalIdBundle.of(bloombergTickerSecurityId("CIBO02M Index"), simpleNameSecurityId("DKK CIBOR 2m"),
        tullettPrebonSecurityId("ASLIBDDK02L")), "DKK CIBOR 2m", act360, following, Period.ofMonths(2), 2, false, dk);
    utils.addConventionBundle(ExternalIdBundle.of(bloombergTickerSecurityId("CIBO03M Index"), simpleNameSecurityId("DKK CIBOR 3m"),
        tullettPrebonSecurityId("ASLIBDDK03L")), "DKK CIBOR 3m", act360, following, Period.ofMonths(3), 2, false, dk);
    utils.addConventionBundle(ExternalIdBundle.of(bloombergTickerSecurityId("CIBO04M Index"), simpleNameSecurityId("DKK CIBOR 4m"),
        tullettPrebonSecurityId("ASLIBDDK04L")), "DKK CIBOR 4m", act360, following, Period.ofMonths(4), 2, false, dk);
    utils.addConventionBundle(ExternalIdBundle.of(bloombergTickerSecurityId("CIBO05M Index"), simpleNameSecurityId("DKK CIBOR 5m"),
        tullettPrebonSecurityId("ASLIBDDK05L")), "DKK CIBOR 5m", act360, following, Period.ofMonths(5), 2, false, dk);
    utils.addConventionBundle(ExternalIdBundle.of(bloombergTickerSecurityId("CIBO06M Index"), simpleNameSecurityId("DKK CIBOR 6m"),
        tullettPrebonSecurityId("ASLIBDDK06L")), "DKK CIBOR 6m", act360, following, Period.ofMonths(6), 2, false, dk);
    utils.addConventionBundle(ExternalIdBundle.of(bloombergTickerSecurityId("CIBO07M Index"), simpleNameSecurityId("DKK CIBOR 7m"),
        tullettPrebonSecurityId("ASLIBDDK07L")), "DKK CIBOR 7m", act360, following, Period.ofMonths(7), 2, false, dk);
    utils.addConventionBundle(ExternalIdBundle.of(bloombergTickerSecurityId("CIBO08M Index"), simpleNameSecurityId("DKK CIBOR 8m"),
        tullettPrebonSecurityId("ASLIBDDK08L")), "DKK CIBOR 8m", act360, following, Period.ofMonths(8), 2, false, dk);
    utils.addConventionBundle(ExternalIdBundle.of(bloombergTickerSecurityId("CIBO09M Index"), simpleNameSecurityId("DKK CIBOR 9m"),
        tullettPrebonSecurityId("ASLIBDDK09L")), "DKK CIBOR 9m", act360, following, Period.ofMonths(9), 2, false, dk);
    utils.addConventionBundle(ExternalIdBundle.of(bloombergTickerSecurityId("CIBO09M Index"), simpleNameSecurityId("DKK CIBOR 10m"),
        tullettPrebonSecurityId("ASLIBDDK10L")), "DKK CIBOR 10m", act360, following, Period.ofMonths(10), 2, false, dk);
    utils.addConventionBundle(ExternalIdBundle.of(bloombergTickerSecurityId("CIBO09M Index"), simpleNameSecurityId("DKK CIBOR 11m"),
        tullettPrebonSecurityId("ASLIBDDK11L")), "DKK CIBOR 11m", act360, following, Period.ofMonths(11), 2, false, dk);
    utils.addConventionBundle(ExternalIdBundle.of(bloombergTickerSecurityId("CIBO09M Index"), simpleNameSecurityId("DKK CIBOR 1y"),
        tullettPrebonSecurityId("ASLIBDDK12L")), "DKK CIBOR 1y", act360, following, Period.ofYears(1), 2, false, dk);

    for (int i = 1; i < 3; i++) {
      final ExternalId tullett = tullettPrebonSecurityId("ASLIBDKK" + i + "WL");
      final String name = "DKK LIBOR " + i + "w";
      final ExternalId simple = simpleNameSecurityId(name);
      utils.addConventionBundle(ExternalIdBundle.of(tullett, simple), name, act360, following, Period.ofDays(i * 7), 2, false, dk);
    }

    for (int i = 1; i < 12; i++) {
      final ExternalId tullett = tullettPrebonSecurityId("ASLIBDKK" + (i < 10 ? "0" : "") + i + "L");
      final String name = "DKK LIBOR " + i + "m";
      final ExternalId simple = simpleNameSecurityId(name);
      utils.addConventionBundle(ExternalIdBundle.of(tullett, simple), name, act360, following, Period.ofMonths(i), 2, false, dk);
    }

    utils.addConventionBundle(ExternalIdBundle.of(tullettPrebonSecurityId("ASLIBDKK12L"), simpleNameSecurityId("DKK CIBOR 1y")),
        "DKK CIBOR 1y", act360, following, Period.ofYears(1), 2, false, dk);

    utils.addConventionBundle(ExternalIdBundle.of(bloombergTickerSecurityId("DKDR1T Curncy"), simpleNameSecurityId("DKK DEPOSIT 1d")), "DKK DEPOSIT 1d", act360,
        following, Period.ofDays(1), 0, false, dk);
    utils.addConventionBundle(ExternalIdBundle.of(bloombergTickerSecurityId("DKDR2T Curncy"), simpleNameSecurityId("DKK DEPOSIT 2d")), "DKK DEPOSIT 2d", act360,
        following, Period.ofDays(1), 1, false, dk);
    utils.addConventionBundle(ExternalIdBundle.of(bloombergTickerSecurityId("DKDR3T Curncy"), simpleNameSecurityId("DKK DEPOSIT 3d")), "DKK DEPOSIT 3d", act360,
        following, Period.ofDays(1), 2, false, dk);
    utils.addConventionBundle(ExternalIdBundle.of(bloombergTickerSecurityId("DKDR1Z Curncy"), simpleNameSecurityId("DKK DEPOSIT 1w")), "DKK DEPOSIT 1w", act360,
        following, Period.ofDays(7), 2, false, dk);
    utils.addConventionBundle(ExternalIdBundle.of(bloombergTickerSecurityId("DKDR2Z Curncy"), simpleNameSecurityId("DKK DEPOSIT 2w")), "DKK DEPOSIT 2w", act360,
        following, Period.ofDays(14), 2, false, dk);
    utils.addConventionBundle(ExternalIdBundle.of(bloombergTickerSecurityId("DKDR3Z Curncy"), simpleNameSecurityId("DKK DEPOSIT 3w")), "DKK DEPOSIT 3w", act360,
        following, Period.ofDays(21), 2, false, dk);
    utils.addConventionBundle(ExternalIdBundle.of(bloombergTickerSecurityId("DKDRA Curncy"), simpleNameSecurityId("DKK DEPOSIT 1m")), "DKK DEPOSIT 1m", act360,
        following, Period.ofMonths(1), 2, false, dk);
    utils.addConventionBundle(ExternalIdBundle.of(bloombergTickerSecurityId("DKDRB Curncy"), simpleNameSecurityId("DKK DEPOSIT 2m")), "DKK DEPOSIT 2m", act360,
        following, Period.ofMonths(2), 2, false, dk);
    utils.addConventionBundle(ExternalIdBundle.of(bloombergTickerSecurityId("DKDRC Curncy"), simpleNameSecurityId("DKK DEPOSIT 3m")), "DKK DEPOSIT 3m", act360,
        following, Period.ofMonths(3), 2, false, dk);
    utils.addConventionBundle(ExternalIdBundle.of(bloombergTickerSecurityId("DKDRD Curncy"), simpleNameSecurityId("DKK DEPOSIT 4m")), "DKK DEPOSIT 4m", act360,
        following, Period.ofMonths(4), 2, false, dk);
    utils.addConventionBundle(ExternalIdBundle.of(bloombergTickerSecurityId("DKDRE Curncy"), simpleNameSecurityId("DKK DEPOSIT 5m")), "DKK DEPOSIT 5m", act360,
        following, Period.ofMonths(5), 2, false, dk);
    utils.addConventionBundle(ExternalIdBundle.of(bloombergTickerSecurityId("DKDRF Curncy"), simpleNameSecurityId("DKK DEPOSIT 6m")), "DKK DEPOSIT 6m", act360,
        following, Period.ofMonths(6), 2, false, dk);
    utils.addConventionBundle(ExternalIdBundle.of(bloombergTickerSecurityId("DKDRG Curncy"), simpleNameSecurityId("DKK DEPOSIT 7m")), "DKK DEPOSIT 7m", act360,
        following, Period.ofMonths(7), 2, false, dk);
    utils.addConventionBundle(ExternalIdBundle.of(bloombergTickerSecurityId("DKDRH Curncy"), simpleNameSecurityId("DKK DEPOSIT 8m")), "DKK DEPOSIT 8m", act360,
        following, Period.ofMonths(8), 2, false, dk);
    utils.addConventionBundle(ExternalIdBundle.of(bloombergTickerSecurityId("DKDRI Curncy"), simpleNameSecurityId("DKK DEPOSIT 9m")), "DKK DEPOSIT 9m", act360,
        following, Period.ofMonths(9), 2, false, dk);
    utils.addConventionBundle(ExternalIdBundle.of(bloombergTickerSecurityId("DKDRJ Curncy"), simpleNameSecurityId("DKK DEPOSIT 10m")), "DKK DEPOSIT 10m", act360,
        following, Period.ofMonths(10), 2, false, dk);
    utils.addConventionBundle(ExternalIdBundle.of(bloombergTickerSecurityId("DKDRK Curncy"), simpleNameSecurityId("DKK DEPOSIT 11m")), "DKK DEPOSIT 11m", act360,
        following, Period.ofMonths(11), 2, false, dk);
    utils.addConventionBundle(ExternalIdBundle.of(bloombergTickerSecurityId("DKDR1 Curncy"), simpleNameSecurityId("DKK DEPOSIT 1y")), "DKK DEPOSIT 1y", act360,
        following, Period.ofYears(1), 2, false, dk);
    utils.addConventionBundle(ExternalIdBundle.of(bloombergTickerSecurityId("DKDR2 Curncy"), simpleNameSecurityId("DKK DEPOSIT 2y")), "DKK DEPOSIT 2y", act360,
        following, Period.ofYears(2), 2, false, dk);
    utils.addConventionBundle(ExternalIdBundle.of(bloombergTickerSecurityId("DKDR3 Curncy"), simpleNameSecurityId("DKK DEPOSIT 3y")), "DKK DEPOSIT 3y", act360,
        following, Period.ofYears(3), 2, false, dk);
    utils.addConventionBundle(ExternalIdBundle.of(bloombergTickerSecurityId("DKDR4 Curncy"), simpleNameSecurityId("DKK DEPOSIT 4y")), "DKK DEPOSIT 4y", act360,
        following, Period.ofYears(4), 2, false, dk);
    utils.addConventionBundle(ExternalIdBundle.of(bloombergTickerSecurityId("DKDR5 Curncy"), simpleNameSecurityId("DKK DEPOSIT 5y")), "DKK DEPOSIT 5y", act360,
        following, Period.ofYears(5), 2, false, dk);

    utils.addConventionBundle(ExternalIdBundle.of(simpleNameSecurityId("DKK_SWAP")), "DKK_SWAP", thirty360, modified, annual, 1, dk, act360,
        modified, semiAnnual, 1, simpleNameSecurityId("DKK CIBOR 6m"), dk, true);
    utils.addConventionBundle(ExternalIdBundle.of(simpleNameSecurityId("DKK_3M_SWAP")), "DKK_3M_SWAP", thirty360, modified, annual, 2, dk,
        act360, modified, quarterly, 2, simpleNameSecurityId("DKK CIBOR 3m"), dk, true);
    utils.addConventionBundle(ExternalIdBundle.of(simpleNameSecurityId("DKK_6M_SWAP")), "DKK_6M_SWAP", thirty360, modified, annual, 2, dk,
        act360, modified, semiAnnual, 2, simpleNameSecurityId("DKK CIBOR 6m"), dk, true);

    // Overnight Index Swap Convention have additional flag, publicationLag
    final Integer publicationLagON = 0;
    // Overnight-like rate
    utils.addConventionBundle(ExternalIdBundle.of(bloombergTickerSecurityId("DETNT/N Index"), simpleNameSecurityId("DKK T/N")),
        "DKK T/N", act360, following, Period.ofDays(1), 1, false, dk, publicationLagON);
    // OIS-like swap
    utils.addConventionBundle(ExternalIdBundle.of(simpleNameSecurityId("DKK_OIS_SWAP")), "DKK_OIS_SWAP", act360, modified, annual, 1, dk,
        act360, modified, annual, 1, simpleNameSecurityId("DKK T/N"), dk, true, publicationLagON);

    utils.addConventionBundle(ExternalIdBundle.of(simpleNameSecurityId("DKK_IBOR_INDEX")), "DKK_IBOR_INDEX", act360, following, 1, false);

    // FRA conventions stored as IRS
    utils.addConventionBundle(ExternalIdBundle.of(simpleNameSecurityId("DKK_3M_FRA")), "DKK_3M_FRA", thirty360, modified, annual, 2, dk, act360,
        modified, quarterly, 2, simpleNameSecurityId("DKK CIBOR 3m"), dk, true);
    utils.addConventionBundle(ExternalIdBundle.of(simpleNameSecurityId("DKK_6M_FRA")), "DKK_6M_FRA", thirty360, modified, annual, 2, dk, act360,
        modified, semiAnnual, 2, simpleNameSecurityId("DKK CIBOR 6m"), dk, true);
  }

  //TODO all of the conventions named treasury need to be changed
  //TODO the ex-dividend days is wrong
  public static void addDKTreasuryBondConvention(final ConventionBundleMaster conventionMaster) {
    ArgumentChecker.notNull(conventionMaster, "convention master");
    final ConventionBundleMasterUtils utils = new ConventionBundleMasterUtils(conventionMaster);
    utils.addConventionBundle(ExternalIdBundle.of(simpleNameSecurityId("DK_TREASURY_BOND_CONVENTION")), "DK_TREASURY_BOND_CONVENTION", true,
        true, 30, 3, true);
  }

  //TODO all of the conventions named treasury need to be changed
  //TODO the ex-dividend days is wrong
  public static void addDKCorporateBondConvention(final ConventionBundleMaster conventionMaster) {
    ArgumentChecker.notNull(conventionMaster, "convention master");
    final ConventionBundleMasterUtils utils = new ConventionBundleMasterUtils(conventionMaster);
    utils.addConventionBundle(ExternalIdBundle.of(simpleNameSecurityId("DK_CORPORATE_BOND_CONVENTION")), "DK_CORPORATE_BOND_CONVENTION", true,
        true, 30, 3, true);
  }

}
TOP

Related Classes of com.opengamma.financial.convention.DKConventions

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.