@Override
public EnergyFuture 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 EnergyFuture(timeToFixing, getUnderlying(), getUnitAmount(), getFirstDeliveryDate(), getLastDeliveryDate(), getAmount(), getUnitName(), getSettlementType(), timeToSettlement,
referencePrice.doubleValue(), getCurrency());
}