/**
* Copyright (C) 2011 - present by OpenGamma Inc. and the OpenGamma group of companies
*
* Please see distribution for license.
*/
package com.opengamma.financial.analytics.ircurve;
import java.util.LinkedHashMap;
import java.util.Map;
import com.opengamma.core.id.ExternalSchemes;
import com.opengamma.util.time.Tenor;
/**
* Helper.
*/
public class TestYieldCurveDefinitionAndSpecificationProvider {
public static CurveSpecificationBuilderConfiguration buildOldTestCurveConfiguration() {
final Map<Tenor, CurveInstrumentProvider> cashInstrumentProviders = new LinkedHashMap<>();
cashInstrumentProviders.put(Tenor.ofDays(1), new StaticCurveInstrumentProvider(ExternalSchemes.bloombergTickerSecurityId("US00O/N Curncy")));
cashInstrumentProviders.put(Tenor.ofDays(7), new StaticCurveInstrumentProvider(ExternalSchemes.bloombergTickerSecurityId("US0001W Curncy")));
final Map<Tenor, CurveInstrumentProvider> fraInstrumentProviders = new LinkedHashMap<>();
final Object[][] tenorsTickersFRAs = new Object[][] { {Tenor.THREE_MONTHS, "USFR00C Curncy"}, {Tenor.SIX_MONTHS, "USFR0CF Curncy"}};
for (final Object[] tenorsTickersFRA : tenorsTickersFRAs) {
final Tenor tenor = (Tenor) tenorsTickersFRA[0];
final String ticker = (String) tenorsTickersFRA[1];
fraInstrumentProviders.put(tenor, new StaticCurveInstrumentProvider(ExternalSchemes.bloombergTickerSecurityId(ticker)));
}
final Map<Tenor, CurveInstrumentProvider> rateInstrumentProviders = new LinkedHashMap<>();
final Object[][] tenorsTickers = new Object[][] { {Tenor.ONE_MONTH, "US0001M Index"}, {Tenor.THREE_MONTHS, "US0003M Index"}};
for (final Object[] tenorsTicker : tenorsTickers) {
final Tenor tenor = (Tenor) tenorsTicker[0];
final String ticker = (String) tenorsTicker[1];
rateInstrumentProviders.put(tenor, new StaticCurveInstrumentProvider(ExternalSchemes.bloombergTickerSecurityId(ticker)));
}
final Map<Tenor, CurveInstrumentProvider> futureInstrumentProviders = new LinkedHashMap<>();
futureInstrumentProviders.put(Tenor.ofMonths(12), new BloombergFutureCurveInstrumentProvider("ED", "Curncy"));
final Map<Tenor, CurveInstrumentProvider> swapInstrumentProviders = new LinkedHashMap<>();
final int[] availableYears = {1, 2};
for (final int i : availableYears) {
swapInstrumentProviders.put(Tenor.ofYears(i), new StaticCurveInstrumentProvider(ExternalSchemes.bloombergTickerSecurityId("USSW" + i + " Curncy")));
}
final Map<Tenor, CurveInstrumentProvider> basisSwapInstrumentProviders = new LinkedHashMap<>();
final Map<Tenor, CurveInstrumentProvider> tenorSwapInstrumentProviders = new LinkedHashMap<>();
final Map<Tenor, CurveInstrumentProvider> oisSwapInstrumentProviders = new LinkedHashMap<>();
return new CurveSpecificationBuilderConfiguration(cashInstrumentProviders, fraInstrumentProviders, null, rateInstrumentProviders, null, null, null, null, futureInstrumentProviders, null,
swapInstrumentProviders, basisSwapInstrumentProviders, tenorSwapInstrumentProviders, oisSwapInstrumentProviders, null, null, null, null, null);
}
public static CurveSpecificationBuilderConfiguration buildTestUSDCurveConfiguration() {
final Map<Tenor, CurveInstrumentProvider> cashInstrumentProviders = new LinkedHashMap<>();
cashInstrumentProviders.put(Tenor.ofDays(1), new StaticCurveInstrumentProvider(ExternalSchemes.bloombergTickerSecurityId("US00O/N Curncy")));
cashInstrumentProviders.put(Tenor.ofDays(7), new StaticCurveInstrumentProvider(ExternalSchemes.bloombergTickerSecurityId("US0001W Curncy")));
final Map<Tenor, CurveInstrumentProvider> fra3MInstrumentProviders = new LinkedHashMap<>();
final Object[][] tenorsTickers3MFRAs = new Object[][] { {Tenor.THREE_MONTHS, "USFR00C Curncy"}, {Tenor.SIX_MONTHS, "USFR0CF Curncy"}};
for (final Object[] tenorsTickers3MFRA : tenorsTickers3MFRAs) {
final Tenor tenor = (Tenor) tenorsTickers3MFRA[0];
final String ticker = (String) tenorsTickers3MFRA[1];
fra3MInstrumentProviders.put(tenor, new StaticCurveInstrumentProvider(ExternalSchemes.bloombergTickerSecurityId(ticker)));
}
final Map<Tenor, CurveInstrumentProvider> fra6MInstrumentProviders = new LinkedHashMap<>();
final Object[][] tenorsTickers6MFRAs = new Object[][] { {Tenor.SIX_MONTHS, "USFR00F Curncy"}, {Tenor.NINE_MONTHS, "USFR0CI Curncy"}};
for (final Object[] tenorsTickers6MFRA : tenorsTickers6MFRAs) {
final Tenor tenor = (Tenor) tenorsTickers6MFRA[0];
final String ticker = (String) tenorsTickers6MFRA[1];
fra3MInstrumentProviders.put(tenor, new StaticCurveInstrumentProvider(ExternalSchemes.bloombergTickerSecurityId(ticker)));
}
final Map<Tenor, CurveInstrumentProvider> liborInstrumentProviders = new LinkedHashMap<>();
final Object[][] tenorsTickers = new Object[][] { {Tenor.ONE_MONTH, "US0001M Index"}, {Tenor.THREE_MONTHS, "US0003M Index"}};
for (final Object[] tenorsTicker : tenorsTickers) {
final Tenor tenor = (Tenor) tenorsTicker[0];
final String ticker = (String) tenorsTicker[1];
liborInstrumentProviders.put(tenor, new StaticCurveInstrumentProvider(ExternalSchemes.bloombergTickerSecurityId(ticker)));
}
final Map<Tenor, CurveInstrumentProvider> futureInstrumentProviders = new LinkedHashMap<>();
futureInstrumentProviders.put(Tenor.ofMonths(12), new BloombergFutureCurveInstrumentProvider("ED", "Curncy"));
final Map<Tenor, CurveInstrumentProvider> swap3MInstrumentProviders = new LinkedHashMap<>();
final int[] availableYears = {1, 2};
for (final int i : availableYears) {
swap3MInstrumentProviders.put(Tenor.ofYears(i), new StaticCurveInstrumentProvider(ExternalSchemes.bloombergTickerSecurityId("USSW" + i + " Curncy")));
}
final Map<Tenor, CurveInstrumentProvider> basisSwapInstrumentProviders = new LinkedHashMap<>();
final Map<Tenor, CurveInstrumentProvider> tenorSwapInstrumentProviders = new LinkedHashMap<>();
final Map<Tenor, CurveInstrumentProvider> oisSwapInstrumentProviders = new LinkedHashMap<>();
return new CurveSpecificationBuilderConfiguration(cashInstrumentProviders, fra3MInstrumentProviders, fra6MInstrumentProviders, liborInstrumentProviders, null, null, null,
futureInstrumentProviders, null, null, swap3MInstrumentProviders, basisSwapInstrumentProviders, tenorSwapInstrumentProviders, oisSwapInstrumentProviders, null, null, null, null, null);
}
public static CurveSpecificationBuilderConfiguration buildTestEURCurveConfiguration() {
final Map<Tenor, CurveInstrumentProvider> cashInstrumentProviders = new LinkedHashMap<>();
cashInstrumentProviders.put(Tenor.ofDays(7), new StaticCurveInstrumentProvider(ExternalSchemes.bloombergTickerSecurityId("EUR001W Curncy")));
final Map<Tenor, CurveInstrumentProvider> fra3MInstrumentProviders = new LinkedHashMap<>();
final Object[][] tenorsTickers3MFRAs = new Object[][] { {Tenor.THREE_MONTHS, "EUFR00C Curncy"}, {Tenor.SIX_MONTHS, "EUFR0CF Curncy"}};
for (final Object[] tenorsTickers3MFRA : tenorsTickers3MFRAs) {
final Tenor tenor = (Tenor) tenorsTickers3MFRA[0];
final String ticker = (String) tenorsTickers3MFRA[1];
fra3MInstrumentProviders.put(tenor, new StaticCurveInstrumentProvider(ExternalSchemes.bloombergTickerSecurityId(ticker)));
}
final Map<Tenor, CurveInstrumentProvider> fra6MInstrumentProviders = new LinkedHashMap<>();
final Object[][] tenorsTickers6MFRAs = new Object[][] { {Tenor.SIX_MONTHS, "EUFR00F Curncy"}, {Tenor.NINE_MONTHS, "EUFR0CI Curncy"}};
for (final Object[] tenorsTickers6MFRA : tenorsTickers6MFRAs) {
final Tenor tenor = (Tenor) tenorsTickers6MFRA[0];
final String ticker = (String) tenorsTickers6MFRA[1];
fra3MInstrumentProviders.put(tenor, new StaticCurveInstrumentProvider(ExternalSchemes.bloombergTickerSecurityId(ticker)));
}
final Map<Tenor, CurveInstrumentProvider> liborInstrumentProviders = new LinkedHashMap<>();
final Object[][] tenorsLiborTickers = new Object[][] { {Tenor.ONE_WEEK, "EU0003W Index"}, {Tenor.ONE_MONTH, "EU0001M Index"}};
for (final Object[] tenorsLiborTicker : tenorsLiborTickers) {
final Tenor tenor = (Tenor) tenorsLiborTicker[0];
final String ticker = (String) tenorsLiborTicker[1];
liborInstrumentProviders.put(tenor, new StaticCurveInstrumentProvider(ExternalSchemes.bloombergTickerSecurityId(ticker)));
}
final Map<Tenor, CurveInstrumentProvider> euriborInstrumentProviders = new LinkedHashMap<>();
final Object[][] tenorsEuriborTickers = new Object[][] { {Tenor.ONE_WEEK, "EUR003W Index"}, {Tenor.ONE_MONTH, "EUR001M Index"}};
for (final Object[] tenorsEuriborTicker : tenorsEuriborTickers) {
final Tenor tenor = (Tenor) tenorsEuriborTicker[0];
final String ticker = (String) tenorsEuriborTicker[1];
euriborInstrumentProviders.put(tenor, new StaticCurveInstrumentProvider(ExternalSchemes.bloombergTickerSecurityId(ticker)));
}
final Map<Tenor, CurveInstrumentProvider> futureInstrumentProviders = new LinkedHashMap<>();
futureInstrumentProviders.put(Tenor.ofMonths(12), new BloombergFutureCurveInstrumentProvider("ER", "Curncy"));
final Map<Tenor, CurveInstrumentProvider> swap3MInstrumentProviders = new LinkedHashMap<>();
final int[] available3MYears = {1, 2};
for (final int i : available3MYears) {
swap3MInstrumentProviders.put(Tenor.ofYears(i), new StaticCurveInstrumentProvider(ExternalSchemes.bloombergTickerSecurityId("EUSW" + i + "V3 Curncy")));
}
final Map<Tenor, CurveInstrumentProvider> swap6MInstrumentProviders = new LinkedHashMap<>();
final int[] available6MYears = {1, 2};
for (final int i : available6MYears) {
swap3MInstrumentProviders.put(Tenor.ofYears(i), new StaticCurveInstrumentProvider(ExternalSchemes.bloombergTickerSecurityId("EUSA" + i + " Curncy")));
}
final Map<Tenor, CurveInstrumentProvider> basisSwapInstrumentProviders = new LinkedHashMap<>();
final Map<Tenor, CurveInstrumentProvider> tenorSwapInstrumentProviders = new LinkedHashMap<>();
final Map<Tenor, CurveInstrumentProvider> oisSwapInstrumentProviders = new LinkedHashMap<>();
return new CurveSpecificationBuilderConfiguration(cashInstrumentProviders, fra3MInstrumentProviders, fra6MInstrumentProviders, liborInstrumentProviders, euriborInstrumentProviders, null, null,
null, futureInstrumentProviders, swap6MInstrumentProviders, swap3MInstrumentProviders, basisSwapInstrumentProviders, tenorSwapInstrumentProviders, oisSwapInstrumentProviders, null, null, null,
null, null);
}
}