/**
* Copyright (C) 2015 - present by OpenGamma Inc. and the OpenGamma group of companies
*
* Please see distribution for license.
*/
package com.opengamma.strata.product.deposit.type;
import static com.opengamma.strata.basics.date.BusinessDayConventions.FOLLOWING;
import static com.opengamma.strata.basics.date.BusinessDayConventions.MODIFIED_FOLLOWING;
import static com.opengamma.strata.basics.date.DayCounts.ACT_360;
import static com.opengamma.strata.basics.date.DayCounts.ACT_365F;
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.DaysAdjustment;
/**
* Standard Term Deposit implementations.
* <p>
* See {@link TermDepositConventions} for the description of each.
*/
final class StandardTermDepositConventions {
// GBP with standard spot T+0
public static final TermDepositConvention GBP_DEPOSIT_T0 = ImmutableTermDepositConvention.of(
"GBP-Deposit-T0",
Currency.GBP,
BusinessDayAdjustment.of(MODIFIED_FOLLOWING, GBLO),
ACT_365F,
DaysAdjustment.ofCalendarDays(0, BusinessDayAdjustment.of(FOLLOWING, GBLO)));
// GBP Following - Used for ON and week tenors
public static final TermDepositConvention GBP_SHORT_DEPOSIT_T0 = ImmutableTermDepositConvention.of(
"GBP-ShortDeposit-T0",
Currency.GBP,
BusinessDayAdjustment.of(FOLLOWING, GBLO),
ACT_365F,
DaysAdjustment.ofBusinessDays(0, GBLO, BusinessDayAdjustment.of(FOLLOWING, GBLO)));
// GBP for T+1
public static final TermDepositConvention GBP_SHORT_DEPOSIT_T1 = ImmutableTermDepositConvention.of(
"GBP-ShortDeposit-T1",
Currency.GBP,
BusinessDayAdjustment.of(FOLLOWING, GBLO),
ACT_365F,
DaysAdjustment.ofBusinessDays(1, GBLO, BusinessDayAdjustment.of(FOLLOWING, GBLO)));
// EUR with standard spot T+2
public static final TermDepositConvention EUR_DEPOSIT_T2 = ImmutableTermDepositConvention.of(
"EUR-Deposit-T2",
Currency.EUR,
BusinessDayAdjustment.of(MODIFIED_FOLLOWING, EUTA),
ACT_360,
DaysAdjustment.ofBusinessDays(2, EUTA));
// EUR with value date T+0; used for O/N
public static final TermDepositConvention EUR_SHORT_DEPOSIT_T0 = ImmutableTermDepositConvention.of(
"EUR-ShortDeposit-T0",
Currency.EUR,
BusinessDayAdjustment.of(FOLLOWING, EUTA),
ACT_360,
DaysAdjustment.ofBusinessDays(0, EUTA, BusinessDayAdjustment.of(FOLLOWING, EUTA)));
// EUR with value date T+1; used for T/N
public static final TermDepositConvention EUR_SHORT_DEPOSIT_T1 = ImmutableTermDepositConvention.of(
"EUR-ShortDeposit-T1",
Currency.EUR,
BusinessDayAdjustment.of(FOLLOWING, EUTA),
ACT_360,
DaysAdjustment.ofBusinessDays(1, EUTA, BusinessDayAdjustment.of(FOLLOWING, EUTA)));
// EUR with standard spot T+2 for week tenors
public static final TermDepositConvention EUR_SHORT_DEPOSIT_T2 = ImmutableTermDepositConvention.of(
"EUR-ShortDeposit-T2",
Currency.EUR,
BusinessDayAdjustment.of(FOLLOWING, EUTA),
ACT_360,
DaysAdjustment.ofBusinessDays(2, EUTA, BusinessDayAdjustment.of(FOLLOWING, EUTA)));
// USD with standard spot T+2
public static final TermDepositConvention USD_DEPOSIT_T2 = ImmutableTermDepositConvention.of(
"USD-Deposit-T2",
Currency.USD,
BusinessDayAdjustment.of(MODIFIED_FOLLOWING, USNY),
ACT_360,
DaysAdjustment.ofBusinessDays(2, USNY, BusinessDayAdjustment.of(FOLLOWING, USNY)));
// USD with value date T+0; used for O/N
public static final TermDepositConvention USD_SHORT_DEPOSIT_T0 = ImmutableTermDepositConvention.of(
"USD-ShortDeposit-T0",
Currency.USD,
BusinessDayAdjustment.of(FOLLOWING, USNY),
ACT_360,
DaysAdjustment.ofBusinessDays(0, USNY, BusinessDayAdjustment.of(FOLLOWING, USNY)));
// USD with value date T+1; used for T/N
public static final TermDepositConvention USD_SHORT_DEPOSIT_T1 = ImmutableTermDepositConvention.of(
"USD-ShortDeposit-T1",
Currency.USD,
BusinessDayAdjustment.of(FOLLOWING, USNY),
ACT_360,
DaysAdjustment.ofBusinessDays(1, USNY, BusinessDayAdjustment.of(FOLLOWING, USNY)));
// USD with standard spot T+2 for week tenors
public static final TermDepositConvention USD_SHORT_DEPOSIT_T2 = ImmutableTermDepositConvention.of(
"USD-ShortDeposit-T2",
Currency.USD,
BusinessDayAdjustment.of(FOLLOWING, USNY),
ACT_360,
DaysAdjustment.ofBusinessDays(2, USNY, BusinessDayAdjustment.of(FOLLOWING, USNY)));
// CHF with standard spot T+2
public static final TermDepositConvention CHF_DEPOSIT_T2 = ImmutableTermDepositConvention.of(
"CHF-Deposit-T2",
Currency.CHF,
BusinessDayAdjustment.of(MODIFIED_FOLLOWING, CHZU),
ACT_360,
DaysAdjustment.ofBusinessDays(2, CHZU));
// CHF with value date T+0; used for O/N
public static final TermDepositConvention CHF_SHORT_DEPOSIT_T0 = ImmutableTermDepositConvention.of(
"CHF-ShortDeposit-T0",
Currency.CHF,
BusinessDayAdjustment.of(FOLLOWING, CHZU),
ACT_360,
DaysAdjustment.ofBusinessDays(0, CHZU, BusinessDayAdjustment.of(FOLLOWING, CHZU)));
// CHF with value date T+1; used for T/N
public static final TermDepositConvention CHF_SHORT_DEPOSIT_T1 = ImmutableTermDepositConvention.of(
"CHF-ShortDeposit-T1",
Currency.CHF,
BusinessDayAdjustment.of(FOLLOWING, CHZU),
ACT_360,
DaysAdjustment.ofBusinessDays(1, CHZU, BusinessDayAdjustment.of(FOLLOWING, CHZU)));
// CHF with standard spot T+2 for week tenors
public static final TermDepositConvention CHF_SHORT_DEPOSIT_T2 = ImmutableTermDepositConvention.of(
"CHF-ShortDeposit-T2",
Currency.CHF,
BusinessDayAdjustment.of(FOLLOWING, CHZU),
ACT_360,
DaysAdjustment.ofBusinessDays(2, CHZU));
//-------------------------------------------------------------------------
/**
* Restricted constructor.
*/
private StandardTermDepositConventions() {
}
}