final ZonedDateTime tradeDateTime = tradeDate.atStartOfDay(ZoneOffset.UTC);
final ZonedDateTime maturityDateTime = tradeDate.plus(maturity.getPeriod()).atStartOfDay(ZoneOffset.UTC);
final String counterparty = "CParty";
final SwapLeg fixedLeg = new FixedInterestRateLeg(swapConvention.getSwapFixedLegDayCount(),
swapConvention.getSwapFixedLegFrequency(),
swapConvention.getSwapFixedLegRegion(),
swapConvention.getSwapFixedLegBusinessDayConvention(),
new InterestRateNotional(ccy, notional),
false, fixedRate);
final FloatingInterestRateLeg floatingLeg = new FloatingInterestRateLeg(swapConvention.getSwapFloatingLegDayCount(),
swapConvention.getSwapFloatingLegFrequency(),
swapConvention.getSwapFloatingLegRegion(),
swapConvention.getSwapFloatingLegBusinessDayConvention(),
new InterestRateNotional(ccy, notional),
false, ExternalId.of(liborIdentifier.getScheme().toString(), liborIdentifier.getValue()),
FloatingRateType.IBOR);
// look up the value on our chosen trade date
final Double initialRate = getInitialRate(tradeDate, liborIdentifier);
floatingLeg.setInitialFloatingRate(initialRate);
final String fixedLegDescription = PortfolioLoaderHelper.RATE_FORMATTER.format(fixedRate);
final String floatingLegDescription = swapConvention.getSwapFloatingLegInitialRate().getValue();
SwapLeg payLeg;
String payLegDescription;
SwapLeg receiveLeg;
String receiveLegDescription;
if (isPayFixed) {
payLeg = fixedLeg;
payLegDescription = fixedLegDescription;
receiveLeg = floatingLeg;