• The market data updates are time-sliced; they are snapshots of the ECNs order book.Updates are sent every 250ms.
• An EXCHANGE_BEST value is provided. It is translated from the BEST entry.
• DEALABLE and DEALABLEPLUS entries are translated to pure LEVEL entries. Where the two-level book contains no prices or amounts, we provide pure entries with zero-level amounts.
• REGULAR entry is translated to an amount constraint (AMOUNT_CONS). It represents the price at which there is a cumulative amount of liquidity available; the specific cumulative amount depends on the currency pair.
• OUTSIDE entry is translated to a spread constraint (SPREAD_CONS). It represents the cumulative amount of liquidity at a specific spread/offset from DEALABLE. Again, the specific offset depends on the currency pair.
• LOCAL entry is translated to the best local price (LOCAL_BEST). It represents the best price placed on the same trading floor (under the same dealing code.)
• PAID entry is the worst (highest) offer hit in the last time interval (time-slice); it is mapped to the WORST_TRADE element on the bid side.
• GIVEN entry is the worst (lowest) bid lifted in the last time interval (time-slice); it is mapped to the WORST_TRADE element on the offer side.
• EBS is the only ECN that sends a TradeID value along with each trade capture. ExecID values are usually used to uniquely identify each fill. However, in this case, TradeID values can also be used to uniquely identify fills, with the added benefit of also being the same identifier sent to the back office. Therefore, we have chosen to populate exTradeID field with TradeID instead of the execID.
• on EBS Ai, FIX tag 1003 (TradeID) maps to exTradeID, and FIX tag 17 (ExecID) maps to exPendingID. Some customers use exTradeID to reconcile with STP and some use exPendingID as well.
• PAID and GIVEN is mapped to the WORST_TRADE and may be seen in the MktDataMessage example below, it is associated with the specific timeExchange.
2015-12-10 17:00:04 172,131 <MktDataMessage (mvd=(fmID=(marketID=1 feedID=32) timeExchange=1449766804171000000 timeArrival=1449766804171986828timeHandler=1449766804172112422 timeEnhanced=0 timeApiServer=0 timeApiClient=0 isSnapshot=F mdEntryList=[(price=121450000000 amount=-9223372036854775805 updateAction=NEW element=WORST_TRADE side=BID source=1 numberOfOrders=-1 components="") (price=121445000000 amount=-9223372036854775805 updateAction=CHANGE element=EXCHANGE_BEST side=BID source=1 numberOfOrders=-1 components="") (price=121455000000 amount=0 updateAction=DELETE element=LEVEL side=BID source=1 numberOfOrders=0 components="") (price=121450000000 amount=0 updateAction=DELETE |
• On EBS Ai, timeExchange corresponds to sending time on the AI message. The value is always populated except when isSnapshot is true. In this case, MarketFactory generates the snapshot – it is based on the content of order book as we see it at that moment. This occurs when a new user connects or if a snapshot is requested.
• EBS Ai data is provided in "views"
Price Update Spread (for EBSMarket pairs) Amount Full amount (for EBSMarketspairs )