package org.marketcetera.trade; import org.marketcetera.util.misc.ClassVersion; import java.util.Date; import java.math.BigDecimal; /* $License$ */ /** * Represents an execution report of an order. Instances of this * message can be created via * {@link Factory#createExecutionReport(quickfix.Message, BrokerID, Originator, UserID, UserID)}. * <p> * The enum attributes of this type have a null value, in case a value * is not specified for that attribute / field in the underlying FIX Message. * However, if the attribute / field has a value that does not have a * corresponding value in the Enum type, the sentinel value <code>Unknown</code> * is returned to indicate that the value is set but is not currently * expressible through the current API. * * @author anshul@marketcetera.com * @version $Id: ExecutionReport.java 16841 2014-02-20 19:59:04Z colin $ * @since 1.0.0 */ @ClassVersion("$Id: ExecutionReport.java 16841 2014-02-20 19:59:04Z colin $") public interface ExecutionReport extends TradeMessage, ReportBase { /** * Time of execution / order creation in UTC. * * @return the time of execution / order creation. */ public Date getTransactTime(); /** * The status of this execution report. * * @return status of this execution report. */ public ExecutionType getExecutionType(); /** * Unique identifier of execution as assigned by the * Broker. * * @return the unique identifier of the execution. */ public String getExecutionID(); /** * The Side for this report. * * @return the side for the report. */ public Side getSide(); /** * Returns the instrument being traded. * * @return the instrument being traded. */ public Instrument getInstrument(); /** * Quantity of shares bought or sold. * * @return quantity of shares bought or sold. */ public BigDecimal getLastQuantity(); /** * Price of last fill. * * @return the price of last fill. */ public BigDecimal getLastPrice(); /** * Market of execution for the last fill. * * @return Market of execution for the last fill. */ public String getLastMarket(); /** * Number of shares ordered. * * @return number of shares ordered. */ public BigDecimal getOrderQuantity(); /** * Number of shares displayed on order. * * @return number of shares ordered. */ public BigDecimal getOrderDisplayQuantity(); /** * The quantity open for further execution. * * @return the quantity open for further execution. */ public BigDecimal getLeavesQuantity(); /** * Total number of shares filled. * * @return total number of shares filled. */ public BigDecimal getCumulativeQuantity(); /** * Calculated average price of all fills on this order. * * @return calculated average price of all fills in this order. */ public BigDecimal getAveragePrice(); /** * The account for this report. * * @return the account for this report. */ public String getAccount(); /** * The order type of the order. * * @return the order type. */ public OrderType getOrderType(); /** * The Time in Force value for the order. * * @return the time in force value for the order. */ public TimeInForce getTimeInForce(); /** * Gets the order capacity value for this order. * * @return the order capacity value. */ public OrderCapacity getOrderCapacity(); /** * Gets the position effect for this order. * * @return the position effect value. */ public PositionEffect getPositionEffect(); /** * Returns whether this message is cancelable. * * @return whether the message is cancelable. */ public boolean isCancelable(); /** * The price, if specified in the order * * @return price, if specified in the order */ public BigDecimal getPrice(); }