package com.opengamma.analytics.financial.instrument.bond;
import java.util.Collections;
import org.threeten.bp.ZonedDateTime;
import com.opengamma.analytics.financial.datasets.CalendarTarget;
import com.opengamma.analytics.financial.legalentity.CreditRating;
import com.opengamma.analytics.financial.legalentity.LegalEntity;
import com.opengamma.analytics.financial.legalentity.Region;
import com.opengamma.analytics.financial.legalentity.Sector;
import com.opengamma.financial.convention.calendar.Calendar;
import com.opengamma.financial.convention.daycount.DayCount;
import com.opengamma.financial.convention.daycount.DayCounts;
import com.opengamma.financial.convention.yield.YieldConvention;
import com.opengamma.financial.convention.yield.YieldConventionFactory;
import com.opengamma.util.i18n.Country;
import com.opengamma.util.money.Currency;
import com.opengamma.util.time.DateUtils;
public class BillDataSets {
private final static Currency EUR = Currency.EUR;
/** A holiday calendar */
private static final Calendar CALENDAR = new CalendarTarget("TARGET");
/** The day count */
private static final DayCount ACT360 = DayCounts.ACT_360;
/** The number of settlement days */
private static final int SETTLEMENT_DAYS = 2;
/** The yield convention */
private static final YieldConvention YIELD_CONVENTION = YieldConventionFactory.INSTANCE.getYieldConvention("INTEREST@MTY");
/** Belgian government name */
private final static String ISSUER_BEL_NAME = "BELGIUM GOVT";
/** German government name */
private final static String ISSUER_GER_NAME = "GERMANY GOVT";
/** Belgian government entity */
private final static LegalEntity ISSUER_BEL = new LegalEntity(null, ISSUER_BEL_NAME, Collections.singleton(CreditRating.of("A", "Custom", true)), Sector.of("Government"), Region.of("Belgium",
Country.BE, Currency.EUR));
/** German government entity */
private final static LegalEntity ISSUER_GER = new LegalEntity(null, ISSUER_GER_NAME, Collections.singleton(CreditRating.of("AA", "Custom", true)), Sector.of("Government"), Region.of("Germany",
Country.DE, Currency.EUR));
/** The maturity: BE0312710792 */
private final static ZonedDateTime END_DATE_BEL = DateUtils.getUTCDate(2014, 12, 18);
/** The maturity: DE0001119261 */
private final static ZonedDateTime END_DATE_GER = DateUtils.getUTCDate(2014, 12, 10);
/** The notional */
private final static double NOTIONAL = 1;
/** Bill definition: Belgium*/
private final static BillSecurityDefinition BILL_BEL_SEC_DEFINITION =
new BillSecurityDefinition(EUR, END_DATE_BEL, NOTIONAL, SETTLEMENT_DAYS, CALENDAR, YIELD_CONVENTION, ACT360, ISSUER_BEL);
/** Bill definition: Germany */
private final static BillSecurityDefinition BILL_GER_SEC_DEFINITION =
new BillSecurityDefinition(EUR, END_DATE_GER, NOTIONAL, SETTLEMENT_DAYS, CALENDAR, YIELD_CONVENTION, ACT360, ISSUER_GER);
/**
* Returns the definition of the Belgium Treasury Certificate 18-Dec-2014 - ISIN-BE0312710792
* Default notional of 1.
* @return The bill.
*/
public static BillSecurityDefinition billBel_20141218() {
return BILL_BEL_SEC_DEFINITION;
}
/**
* Returns the definition of the German Treasury Bill 10-Dec-2014 - ISIN-DE0001119261
* Default notional of 1.
* @return The bill.
*/
public static BillSecurityDefinition billGer_20141210() {
return BILL_GER_SEC_DEFINITION;
}
}