//TODO fix the next two lines - it's here to avoid double-multiplying when stuff is scaled at the position level
final int quantity = 1;
final double premium = -trade.getPremium() * Math.signum(trade.getQuantity().doubleValue());
final ZonedDateTime tradeDate = trade.getTradeDate().atTime(trade.getTradeTime()).atZoneSameInstant(ZoneOffset.UTC); //TODO get the real time zone
final BondFutureOptionPremiumSecurityDefinition underlyingOption = (BondFutureOptionPremiumSecurityDefinition) securityDefinition;
return new BondFutureOptionPremiumTransactionDefinition(underlyingOption, quantity, tradeDate, premium);
}