@Override
public AgricultureFuture toDerivative(final ZonedDateTime date, final Double referencePrice) {
ArgumentChecker.inOrderOrEqual(date, this.getExpiryDate(), "date", "expiry date");
final double timeToFixing = TimeCalculator.getTimeBetween(date, this.getExpiryDate());
final double timeToSettlement = TimeCalculator.getTimeBetween(date, this.getSettlementDate());
return new AgricultureFuture(timeToFixing, getUnderlying(), getUnitAmount(), getFirstDeliveryDate(), getLastDeliveryDate(), getAmount(), getUnitName(), getSettlementType(),
timeToSettlement, referencePrice, getCurrency());
}