final DayCount dayCount = indexConvention.getDayCount();
final int publicationLag = indexConvention.getPublicationLag();
final IndexON index = new IndexON(indexConvention.getName(), currency, dayCount, publicationLag);
final double paymentAccrualFactor = 1 / 12.;
final Calendar calendar = CalendarUtils.getCalendar(_regionSource, _holidaySource, indexConvention.getRegionCalendar());
final ExchangeTradedInstrumentExpiryCalculator expiryCalculator = ExchangeTradedInstrumentExpiryCalculatorFactory.getCalculator(expiryCalculatorName);
final ZonedDateTime startDate = _valuationTime.plus(rateFuture.getStartTenor().getPeriod());
final LocalTime time = startDate.toLocalTime();
final ZoneId timeZone = startDate.getZone();
final ZonedDateTime expiryDate = ZonedDateTime.of(expiryCalculator.getExpiryDate(rateFuture.getFutureNumber(), startDate.toLocalDate(), calendar), time, timeZone);
final FederalFundsFutureSecurityDefinition securityDefinition = FederalFundsFutureSecurityDefinition.from(expiryDate,
index, 1, paymentAccrualFactor, "", calendar);
final FederalFundsFutureTransactionDefinition transactionDefinition = new FederalFundsFutureTransactionDefinition(securityDefinition, 1, _valuationTime, price);
return transactionDefinition;
}