/** * Get the message id used for the event at the given level of the bid book. * * @param inOrderbook an <code>OrderBook</code> value * @param inLevel an <code>int</code> value * @return a <code>long</code> value */ private long getBidIdFor(OrderBook inOrderbook, int inLevel) { return inOrderbook.getBidBook().get(inLevel-1).getMessageId(); } /**
/** * Create a new TopOfBook instance. * * @param inBidEvent a <code>BidEvent</code> value or <code>null</code> * @param inAskEvent an <code>AskEvent</code> value or <code>null</code> * @throws IllegalArgumentException if both the <code>BidEvent</code> and <code>AskEvent</code> * are specified but are not events for the same <code>Instrument</code> */ TopOfBook(BidEvent inBidEvent, AskEvent inAskEvent) { super(inBidEvent, inAskEvent); if(inBidEvent != null && inAskEvent != null) { if(!inBidEvent.getInstrument().equals(inAskEvent.getInstrument())) { throw new IllegalArgumentException(); } } } /**
bid); BigDecimal bidPrice = bid.getPrice(); BigDecimal bidSize = bid.getSize(); TradeEventBuilder<TradeEvent> tradeBuilder = TradeEventBuilder.tradeEvent(bid.getInstrument()).withEventType(EventType.UPDATE_FINAL) .withExchange(bid.getExchange()) .withPrice(tradePrice) .withSize(tradeSize) .withTradeDate(new Date(tradeTime)); if(bid.getInstrument() instanceof Option) { tradeBuilder.withExpirationType(getExpirationType((Option)bid.getInstrument())); tradeBuilder.withUnderlyingInstrument(inBook.getUnderlyingInstrument()); if(bid.getInstrument() instanceof Future) { tradeBuilder.withContractSize(100) .withDeliveryType(DeliveryType.PHYSICAL) new Date(tradeTime), bidSize.subtract(tradeSize)); bidCorrection.setEventType(EventType.UPDATE_FINAL); askCorrection = QuoteEventBuilder.delete(ask); askCorrection.setEventType(EventType.UPDATE_FINAL); bidCorrection.setEventType(EventType.UPDATE_FINAL); askCorrection = tradeSize.equals(askSize) ? QuoteEventBuilder.delete(ask) : QuoteEventBuilder.change(ask,
StringBuilder entry = new StringBuilder(); if(inShowExchange) { entry.append(" ").append(bid.getExchange()); //$NON-NLS-1$ entry.append(" ").append(bid.getSize()).append(" ").append(bid.getPrice()).append(" "); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ String line = entry.toString(); maxSize = Math.max(maxSize,
throw new IllegalArgumentException("Insufficient liquidity to peg-to-midpoint for " + newOrReplaceOrder.getInstrument().getFullSymbol()); BigDecimal totalPrice = bid.getPrice().add(ask.getPrice()); BigDecimal newPrice = totalPrice.divide(new BigDecimal(2)).setScale(6,RoundingMode.HALF_UP); newOrReplaceOrder.setPrice(newPrice);
getLatestUnderlyingBid().getSize(), getLatestUnderlyingBid().getPrice(), getLatestUnderlyingBid().getExchange())).append(nl); put.getLatestBid() != null) { BidEvent bid = put.getLatestBid(); table.addCell(bid.getSize().toPlainString()); table.addCell(String.format("%s %s", //$NON-NLS-1$ bid.getPrice().toPlainString(), bid.getExchange())); } else { table.addCell(none); call.getLatestBid() != null) { BidEvent bid = call.getLatestBid(); table.addCell(bid.getSize().toPlainString()); table.addCell(String.format("%s %s", //$NON-NLS-1$ bid.getPrice().toPlainString(), bid.getExchange())); } else { table.addCell(none);
/** * Get the message id used for the event at the given level of the bid book. * * @param inOrderbook an <code>OrderBook</code> value * @param inLevel an <code>int</code> value * @return a <code>long</code> value */ private long getBidIdFor(OrderBook inOrderbook, int inLevel) { return inOrderbook.getBidBook().get(inLevel-1).getMessageId(); } /**