NewOrReplaceOrder newOrReplaceOrder = (NewOrReplaceOrder)inOrder; if(newOrReplaceOrder.getPegToMidpoint()) { Event marketData = requestMarketDataSnapshot(newOrReplaceOrder.getInstrument(), Content.TOP_OF_BOOK, null); if(marketData == null) { throw new IllegalArgumentException("No market data available for " + newOrReplaceOrder.getInstrument().getFullSymbol()); AskEvent ask = topOfBook.getAsk(); if(bid == null || ask == null) { throw new IllegalArgumentException("Insufficient liquidity to peg-to-midpoint for " + newOrReplaceOrder.getInstrument().getFullSymbol());