@Override public double initialGuess( LocalDate valuationDate, ObservableValues marketData, ValueType valueType) { if (ValueType.ZERO_RATE.equals(valueType)) { return marketData.getValue(rateKey); } return 0d; }
public static ObservableValues allQuotes( double[] dscOisQuotes, String[] dscIdValues, double[] fwd3MarketQuotes, String[] fwd3IdValue, double[] fwd6MarketQuotes, String[] fwd6IdValue) { /* All quotes for the curve calibration */ Map<ObservableKey, Double> allQuotes = new HashMap<>(); for (int i = 0; i < dscOisQuotes.length; i++) { allQuotes.put(QuoteKey.of(StandardId.of(SCHEME, dscIdValues[i])), dscOisQuotes[i]); } for (int i = 0; i < fwd3MarketQuotes.length; i++) { allQuotes.put(QuoteKey.of(StandardId.of(SCHEME, fwd3IdValue[i])), fwd3MarketQuotes[i]); } for (int i = 0; i < fwd6MarketQuotes.length; i++) { allQuotes.put(QuoteKey.of(StandardId.of(SCHEME, fwd6IdValue[i])), fwd6MarketQuotes[i]); } return ObservableValues.of(allQuotes); }
@Override public IborFixingDepositTrade trade(LocalDate valuationDate, ObservableValues marketData) { double fixedRate = marketData.getValue(rateKey) + spread; return template.toTrade(valuationDate, BuySell.BUY, 1d, fixedRate); }