I have a vanilla IRS 6M fixed vs 3M USD Libor floating trade and I am building my Forward Curve as follows. From what I have learned from this forum, we do not add Cash Deposits to forward curve, also there is no 2 weeks or 1 Month node, the first one is a 3 Month ED future.
//Add the LIBOR fixing as the swap is off market, the start date is in the past BusinessDayAdjustment bda = BusinessDayAdjustment.of(FOLLOWING, USNY); TermDepositConvention convention = ImmutableTermDepositConvention.of("USD-Dep", USD, bda, ACT_360, DaysAdjustment.ofBusinessDays(0, USNY)); QuoteId quoteId = QuoteId.of(StandardId.of(SCHEME, "USD-Fixing-3M")); forwardCurveNodes.add( IborFixingDepositCurveNode.of(IborFixingDepositTemplate.of(USD_LIBOR_3M), quoteId)); builder.addValue(quoteId, 0.0170725); //Add the first ED Future IborFutureConvention futureConvention = ImmutableIborFutureConvention.of(USD_LIBOR_3M, DateSequences.QUARTERLY_IMM); quoteId = QuoteId.of(StandardId.of(SCHEME, "USD-ED1")); forwardCurveNodes.add(IborFutureCurveNode.of(IborFutureTemplate.of(YearMonth.of(2020, 3), futureConvention), quoteId)); builder.addValue(quoteId, 0.983429); //Add more ED futures and then par swaps start at 3Y mark
This works as expected and the NPV of the swap is very close to vendor’s NPV. Now, I need to get par sensitivities only for certain points of the curve (2W,1M,3M,6M,1Y,2Y…30Y). If I do the below, I get sensitivity to each node that was used to build the Fwd curve but I do not want that. How do I go about asking for only certain par rate sensitivities ? Is Linear Interpolation is good option to get 2W and 1M sensitivity?
SwapTradeCalculations swapTradeCalc = new SwapTradeCalculations(SWAP_PRICER); CurrencyParameterSensitivities ps = swapTradeCalc.pv01MarketQuoteBucketed(trade, result);