@Override @SuppressWarnings("unchecked") public <R> R getValue(MarketDataId<R> id) { if (this.id.equals(id)) { return (R) value; } return underlying.getValue(id); }
private double marketPrice(MarketData marketData) { double price = marketData.getValue(rateId); ArgChecker.isTrue(price < 2, "Price must be in decimal form, such as 0.993 for a 0.7% rate, but was: {}", price); return price; }
@Override public <T> T getValue(MarketDataId<T> id) { Optional<T> value1 = underlying1.findValue(id); return value1.isPresent() ? value1.get() : underlying2.getValue(id); }
@Override public SwapTrade trade(double quantity, MarketData marketData, ReferenceData refData) { double fixedRate = marketData.getValue(rateId) + additionalSpread; BuySell buySell = quantity > 0 ? BuySell.SELL : BuySell.BUY; return template.createTrade(marketData.getValuationDate(), buySell, Math.abs(quantity), fixedRate, refData); }
@Override public SwapTrade trade(double quantity, MarketData marketData, ReferenceData refData) { double fixedRate = marketData.getValue(rateId) + additionalSpread; BuySell buySell = quantity > 0 ? BuySell.SELL : BuySell.BUY; return template.createTrade(marketData.getValuationDate(), buySell, Math.abs(quantity), fixedRate, refData); }
@Override public SwapTrade trade(double quantity, MarketData marketData, ReferenceData refData) { double fixedRate = marketData.getValue(rateId) + additionalSpread; BuySell buySell = quantity > 0 ? BuySell.SELL : BuySell.BUY; return template.createTrade(marketData.getValuationDate(), buySell, Math.abs(quantity), fixedRate, refData); }
@Override public SwapTrade trade(double quantity, MarketData marketData, ReferenceData refData) { double fixedRate = marketData.getValue(rateId) + additionalSpread; BuySell buySell = quantity > 0 ? BuySell.SELL : BuySell.BUY; return template.createTrade(marketData.getValuationDate(), buySell, Math.abs(quantity), fixedRate, refData); }
@Override public FraTrade trade(double quantity, MarketData marketData, ReferenceData refData) { double fixedRate = marketData.getValue(rateId) + additionalSpread; BuySell buySell = quantity > 0 ? BuySell.SELL : BuySell.BUY; return template.createTrade(marketData.getValuationDate(), buySell, Math.abs(quantity), fixedRate, refData); }
@Override public SwapTrade trade(double quantity, MarketData marketData, ReferenceData refData) { double fixedRate = marketData.getValue(rateId) + additionalSpread; BuySell buySell = quantity > 0 ? BuySell.SELL : BuySell.BUY; return template.createTrade(marketData.getValuationDate(), buySell, Math.abs(quantity), fixedRate, refData); }
@Override public TermDepositTrade trade(double quantity, MarketData marketData, ReferenceData refData) { double fixedRate = marketData.getValue(rateId) + additionalSpread; BuySell buySell = quantity > 0 ? BuySell.BUY : BuySell.SELL; return template.createTrade(marketData.getValuationDate(), buySell, Math.abs(quantity), fixedRate, refData); }
@Override public SwapTrade trade(double quantity, MarketData marketData, ReferenceData refData) { double fixedRate = marketData.getValue(rateId) + additionalSpread; BuySell buySell = quantity > 0 ? BuySell.SELL : BuySell.BUY; return template.createTrade(marketData.getValuationDate(), buySell, Math.abs(quantity), fixedRate, refData); }
@Override public FxSwapTrade trade(double quantity, MarketData marketData, ReferenceData refData) { FxRate fxRate = marketData.getValue(fxRateId); double rate = fxRate.fxRate(template.getCurrencyPair()); double fxPts = marketData.getValue(farForwardPointsId); BuySell buySell = quantity > 0 ? BuySell.BUY : BuySell.SELL; return template.createTrade(marketData.getValuationDate(), buySell, Math.abs(quantity), rate, fxPts, refData); }
@Override public double initialGuess(MarketData marketData, ValueType valueType) { if (ValueType.ZERO_RATE.equals(valueType) || ValueType.FORWARD_RATE.equals(valueType)) { return marketData.getValue(rateId); } if (ValueType.DISCOUNT_FACTOR.equals(valueType)) { double approximateMaturity = template.getPeriodToEnd().toTotalMonths() / 12.0d; return Math.exp(-approximateMaturity * marketData.getValue(rateId)); } return 0d; }
@Override public double initialGuess(MarketData marketData, ValueType valueType) { if (ValueType.ZERO_RATE.equals(valueType) || ValueType.FORWARD_RATE.equals(valueType)) { return marketData.getValue(rateId); } if (ValueType.DISCOUNT_FACTOR.equals(valueType)) { double approximateMaturity = template.getDepositPeriod().toTotalMonths() / 12.0d; return Math.exp(-approximateMaturity * marketData.getValue(rateId)); } return 0d; }
@Override public double initialGuess(MarketData marketData, ValueType valueType) { if (ValueType.ZERO_RATE.equals(valueType) || ValueType.FORWARD_RATE.equals(valueType)) { return marketData.getValue(rateId); } if (ValueType.DISCOUNT_FACTOR.equals(valueType)) { double approximateMaturity = template.getPeriodToStart().plus(template.getTenor()).toTotalMonths() / 12.0d; return Math.exp(-approximateMaturity * marketData.getValue(rateId)); } return 0d; }
@Override public double initialGuess(MarketData marketData, ValueType valueType) { if (ValueType.ZERO_RATE.equals(valueType)) { return marketData.getValue(rateId); } return 0d; }
public void test_combinedWith_noClashSame() { Map<MarketDataId<?>, Object> dataMap1 = ImmutableMap.of(ID1, VAL1); MarketData test1 = MarketData.of(VAL_DATE, dataMap1); Map<MarketDataId<?>, Object> dataMap2 = ImmutableMap.of(ID1, VAL1, ID2, VAL2); MarketData test2 = MarketData.of(VAL_DATE, dataMap2); MarketData test = test1.combinedWith(test2); assertEquals(test.getValue(ID1), VAL1); assertEquals(test.getValue(ID2), VAL2); assertEquals(test.getIds(), ImmutableSet.of(ID1, ID2)); }
public void test_combinedWith_noClash() { Map<MarketDataId<?>, Object> dataMap1 = ImmutableMap.of(ID1, VAL1); MarketData test1 = MarketData.of(VAL_DATE, dataMap1); Map<MarketDataId<?>, Object> dataMap2 = ImmutableMap.of(ID2, VAL2); MarketData test2 = MarketData.of(VAL_DATE, dataMap2); MarketData test = test1.combinedWith(test2); assertEquals(test.getValue(ID1), VAL1); assertEquals(test.getValue(ID2), VAL2); assertEquals(test.getIds(), ImmutableSet.of(ID1, ID2)); }
public void test_withValue() { Map<MarketDataId<?>, Object> dataMap = ImmutableMap.of(ID1, VAL1); MarketData test = MarketData.of(VAL_DATE, dataMap).withValue(ID1, VAL3); assertEquals(test.getValue(ID1), VAL3); }
@Override public DummyFraTrade trade(double quantity, MarketData marketData, ReferenceData refData) { double fixedRate = marketData.getValue(rateId) + spread; return DummyFraTrade.of(marketData.getValuationDate(), fixedRate); }