public IOrderTracker prepareOrder(Order order) throws UnsupportedOrderType, IncompleteOrderInstructions {
if (!(order instanceof LimitOrder))
throw new UnsupportedOrderType("Order type not supported by exchange: " + order);
LimitOrder limitOrder = (LimitOrder) order;
if(limitOrder.getQuantity()<=0.0)
throw new IncompleteOrderInstructions("Invalid quantity given: " + limitOrder.getQuantity());
if(limitOrder.getLimitPrice() == null)
throw new IncompleteOrderInstructions("No limit price given.");
if(limitOrder.getLimitPrice() <= 0.0)
throw new IncompleteOrderInstructions("Invalid negative limit price given.");
VirtualOrderTracker tracker = new VirtualOrderTracker(limitOrder);
return tracker;
}