/** * Copyright (C) 2015 - present by OpenGamma Inc. and the OpenGamma group of companies * * Please see distribution for license. */ package com.opengamma.strata.product.credit.type; import static com.opengamma.strata.basics.date.BusinessDayConventions.FOLLOWING; import static com.opengamma.strata.basics.date.HolidayCalendarIds.CHZU; import static com.opengamma.strata.basics.date.HolidayCalendarIds.EUTA; import static com.opengamma.strata.basics.date.HolidayCalendarIds.GBLO; import static com.opengamma.strata.basics.date.HolidayCalendarIds.USNY; import com.opengamma.strata.basics.currency.Currency; import com.opengamma.strata.basics.date.BusinessDayAdjustment; import com.opengamma.strata.basics.date.DayCounts; import com.opengamma.strata.basics.schedule.Frequency; import com.opengamma.strata.basics.schedule.RollConventions; import com.opengamma.strata.basics.schedule.StubConvention; /** * Market standard CDS conventions. * <p> * See ISDA CDS documentation for more details. */ final class StandardCdsConventions { /** * The North-American USD convention. */ public static final CdsConvention USD_NORTH_AMERICAN = ImmutableCdsConvention.builder() .name("USD-NorthAmerican") .currency(Currency.USD) .dayCount(DayCounts.ACT_360) .businessDayAdjustment(BusinessDayAdjustment.of(FOLLOWING, USNY)) .paymentFrequency(Frequency.P3M) .rollConvention(RollConventions.DAY_20) .payAccruedOnDefault(true) .stubConvention(StubConvention.SHORT_INITIAL) .stepInDays(1) .settleLagDays(3) .build(); /** * The European EUR convention. */ public static final CdsConvention EUR_EUROPEAN = ImmutableCdsConvention.builder() .name("EUR-European") .currency(Currency.EUR) .dayCount(DayCounts.ACT_360) .businessDayAdjustment(BusinessDayAdjustment.of(FOLLOWING, EUTA)) .paymentFrequency(Frequency.P3M) .rollConvention(RollConventions.DAY_20) .payAccruedOnDefault(true) .stubConvention(StubConvention.SHORT_INITIAL) .stepInDays(1) .settleLagDays(3) .build(); /** * The European GBP convention. */ public static final CdsConvention GBP_EUROPEAN = ImmutableCdsConvention.builder() .name("GBP-European") .currency(Currency.GBP) .dayCount(DayCounts.ACT_360) .businessDayAdjustment(BusinessDayAdjustment.of(FOLLOWING, GBLO)) .paymentFrequency(Frequency.P3M) .rollConvention(RollConventions.DAY_20) .payAccruedOnDefault(true) .stubConvention(StubConvention.SHORT_INITIAL) .stepInDays(1) .settleLagDays(3) .build(); /** * The European CHF convention. */ public static final CdsConvention CHF_EUROPEAN = ImmutableCdsConvention.builder() .name("CHF-European") .currency(Currency.CHF) .dayCount(DayCounts.ACT_360) .businessDayAdjustment(BusinessDayAdjustment.of(FOLLOWING, CHZU)) .paymentFrequency(Frequency.P3M) .rollConvention(RollConventions.DAY_20) .payAccruedOnDefault(true) .stubConvention(StubConvention.SHORT_INITIAL) .stepInDays(1) .settleLagDays(3) .build(); /** * The European USD convention. */ public static final CdsConvention USD_EUROPEAN = ImmutableCdsConvention.builder() .name("USD-European") .currency(Currency.USD) .dayCount(DayCounts.ACT_360) .businessDayAdjustment(BusinessDayAdjustment.of(FOLLOWING, GBLO.combinedWith(USNY))) .paymentFrequency(Frequency.P3M) .rollConvention(RollConventions.DAY_20) .payAccruedOnDefault(true) .stubConvention(StubConvention.SHORT_INITIAL) .stepInDays(1) .settleLagDays(3) .build(); }