/** * Vanilla swap builder from the settlement date, a swap generator and other details of a swap. * * @param settlementDate The settlement date. * @param maturityDate The swap maturity date. * @param generator The swap generator. * @param notional The swap notional (identical on both legs) * @param fixedRate The swap fixed rate. * @param isPayer The payer flag of the fixed leg. * @return The vanilla swap. */ public static SwapFixedIborDefinition from( final ZonedDateTime settlementDate, final ZonedDateTime maturityDate, final GeneratorSwapFixedIbor generator, final double notional, final double fixedRate, final boolean isPayer) { ArgumentChecker.notNull(settlementDate, "Settlement date"); ArgumentChecker.notNull(maturityDate, "Maturity date"); ArgumentChecker.notNull(generator, "Swap generator"); final AnnuityCouponFixedDefinition fixedLeg = AnnuityCouponFixedDefinition.from( generator.getCurrency(), settlementDate, maturityDate, generator.getFixedLegPeriod(), generator.getCalendar(), generator.getFixedLegDayCount(), generator.getIborIndex().getBusinessDayConvention(), generator.getIborIndex().isEndOfMonth(), notional, fixedRate, isPayer); final AnnuityCouponIborDefinition iborLeg = AnnuityCouponIborDefinition.from( settlementDate, maturityDate, notional, generator.getIborIndex(), !isPayer, generator.getCalendar()); return new SwapFixedIborDefinition(fixedLeg, iborLeg); }
/** * Builder from the financial details. * * @param effectiveDate The underlying swap effective date (delivery date). * @param generator The swap generator. * @param tenor The underlying swap tenor. * @param notional The futures notional. * @param rate The underlying swap rate. * @return The futures. */ public static SwapFuturesPriceDeliverableSecurityDefinition from( final ZonedDateTime effectiveDate, final GeneratorSwapFixedIbor generator, final Period tenor, final double notional, final double rate) { ArgumentChecker.notNull(effectiveDate, "Effective date"); ArgumentChecker.notNull(generator, "Generator"); final ZonedDateTime lastTradingDate = ScheduleCalculator.getAdjustedDate( effectiveDate, -generator.getSpotLag(), generator.getCalendar()); final SwapFixedIborDefinition swap = SwapFixedIborDefinition.from(effectiveDate, tenor, generator, 1.0, rate, false); return new SwapFuturesPriceDeliverableSecurityDefinition(lastTradingDate, swap, notional); }