class BondFuturesOptionPremiumTransactionDefinition implements InstrumentDefinition<BondFuturesOptionPremiumTransaction> {

  public static BondFuturesOptionPremiumTransactionDefinition fromTradePrice(final BondFuturesOptionPremiumSecurityDefinition underlyingOption, final int quantity,
      final ZonedDateTime premiumDate, final double tradePrice) {
    ArgumentChecker.notNull(underlyingOption, "underlying option");
    final double premiumAmount = tradePrice * underlyingOption.getUnderlyingFuture().getNotional() * quantity;
    return new BondFuturesOptionPremiumTransactionDefinition(underlyingOption, quantity, premiumDate, premiumAmount);
  }

  public  BondFuturesOptionPremiumTransactionDefinition(final BondFuturesOptionPremiumSecurityDefinition underlyingOption, final int quantity,
      final ZonedDateTime premiumDate, final double premiumAmount);

}