class BondFuturesOptionMarginSecurityDefinition extends FuturesSecurityDefinition<BondFuturesOptionMarginSecurity> {

  @Override
  public BondFuturesOptionMarginSecurity toDerivative(final ZonedDateTime date) {
    ArgumentChecker.notNull(date, "date");
    final double expirationTime = TimeCalculator.getTimeBetween(date, _expirationDate);
    final double lastTradingTime = TimeCalculator.getTimeBetween(date, getLastTradingDate());
    final BondFuturesSecurity underlyingFuture = _underlyingFuture.toDerivative(date);
    final BondFuturesOptionMarginSecurity option = new BondFuturesOptionMarginSecurity(underlyingFuture, lastTradingTime, expirationTime, _strike, _isCall);
    return option;
  }

  public  BondFuturesOptionMarginSecurityDefinition(final BondFuturesSecurityDefinition underlyingFuture, final ZonedDateTime lastTradingDate,
      final ZonedDateTime expirationDate, final double strike, final boolean isCall);

}