/** * Constructor of the future option transaction from details. * * @param underlyingOption The underlying option future security. * @param quantity The quantity of the transaction. Can be positive or negative. * @param premiumDate The transaction date. * @param tradePrice The transaction price. */ public InterestRateFutureOptionPremiumTransactionDefinition( final InterestRateFutureOptionPremiumSecurityDefinition underlyingOption, final int quantity, final ZonedDateTime premiumDate, final double tradePrice) { ArgChecker.notNull(underlyingOption, "underlying option"); ArgChecker.notNull(premiumDate, "premium date"); _underlyingOption = underlyingOption; _quantity = quantity; _tradePrice = tradePrice; final double premiumAmount = _tradePrice * _underlyingOption.getUnderlyingFuture().getNotional() * _underlyingOption.getUnderlyingFuture().getPaymentAccrualFactor(); _premium = new PaymentFixedDefinition(underlyingOption.getCurrency(), premiumDate, premiumAmount); }