Skip to content

API Data Mappings

Basic Market Data

Market data messages are normalized to book and trade objects. Nanoconda softwarre builds the book and provides snapshot of top 10 levels in onbook() callback. Trade Statistics (ex. VWAP, OHLC)is included inside trade object.

Basic Security Updates

Any other instrument updates, such as statuses are normalized to security object and a onsecurity() callback will be raised for any real-time security update.

Basic Order Entry Usage

Please refer to Order Entry page for basic usage of the API.

CME

Trading Status

Normalized to secirity::status field

Exchange Name Exchange Code Nanoconda Status
HALT 2 securityStatus::HALT
NOT_AVAILATBLE_FOR_TRADING 18 securityStatus::HALT
CLOSE 4 securityStatus::CLOSE
READY_TO_TRADE 17 securityStatus::OPEN
NEW_PRICE_INDICATION 15 securityStatus::OPEN
PRE_OPEN 21 securityStatus::PRE_OPEN
PRE_CROSS 24 securityStatus::PRE_OPEN
CROSS 25 securityStatus::PRE_OPEN
POST_CLOSE 26 securityStatus::POST_CLOSE

Other statuses are ignored.

Market Data (MDP3)

Messages

Exchange Message Nanoconda Callback
MDInstrumentDefinitionFuture54 onsecurity()
MDIncrementalRefreshBook46 onbook(), onbookorder()
MDIncrementalRefreshOrderBook47 onbookorder()
MDIncrementalRefreshTradeSummary48 ontrade(), ontradebust(), onbookorder()
MDIncrementalRefreshSessionStatistics51 ontradestatistics()

Fields

Exchange Field Nanoconda Field Nanoconda Callback
HighLimitPrice security::highLimitBand onsecurity
LowLimitPrice security::lowLimitBand onsecurity
SettlementPrice security::settlementPrice onsecurity
ClearedVolume security::clearedVolume onsecurity
OpenInterest security::openInterest onsecurity
minPriceIncrement security::tickSize onsecurity
unitOfMeasureQty security::multiplier onsecurity
Asset security::underlyingId onsecurity
OpenPrice trade::open ontrade
LastPrice trade::lastPrice ontrade
TradingSessionHighPrice trade::high ontrade
TradingSessionLowPrice trade::low ontrade
SessionHighBid trade::bestbid.price ontrade
SessionLowOffer trade::bestask.price ontrade
ElectronicVolume trade::totalVol ontrade
VWAP trade::vwap ontrade
FixingPrice trade::vwap ontrade
TransactTime transactiontime ontrade / onbook / onbookorder
SendingTime exchangetime ontrade / onbook / onbookorder
MatchEventIndicator lastEvent ontrade / onbook / onbookorder

Detailed Message Mappings

CME Trade Summary

CME Doc: MDP 3.0 - Market Data Incremental Refresh - Trade Summary

Tag FIX Name Description Nanoconda Field
60 TransactTime Start of event processing time in number of nanoseconds since Unix epoch trade::transactiontime, bookorder::transactiontime
5799 MatchEventIndicator Bitmap field of eight Boolean type indicators reflecting the end of updates for a given Globex event. trade::lastEvent, bookorder::lastEvent
268 NoMDEntries Number of Trade Summary entries ontrade() for each Entry
270 MDEntryPx Trade price trade::lastPrice, bookorder::price
271 MDEntrySize Market Data entry size. For EBS, the value always set to zero. trade::lastSize
48 SecurityID Security ID as defined by CME security::exchangeSecurityId, mapped to trade::symbolId and bookorder::symbolId
83 RptSeq Sequence number per instrument update. trade::symbolseqno
346 NumberOfOrders The total number of real orders per instrument that participated in a match step within a match event. For EBS, the value always set to zero. trade::numOrders
5797 AggressorSide Indicates which side is the aggressor or if there is no aggressor
1 — bid aggressor
2 — ask aggressor
trade::aggressor, bookorder::aggressing set to 1 on aggrssing order
37705 NoOrderIDEntries Number of OrderID entries. This repeating group is not used for EBS Market and the value is always set to zero. onbookorder() for each Entry with OU_FILL updatetype
32 LastQty The quantity transacted bookorder::quantity
37 OrderID Unique order identifier as assigned by the exchange bookorder::orderId

CME MBP and MBOFD

CME Doc: MDP 3.0 - Market Data Incremental Refresh - MBP and MBOFD

Tag FIX Name Description Nanoconda Field
60 TransactTime Start of event processing time in number of nanoseconds since Unix epoch book::transactiontime, bookorder::transactiontime
5799 MatchEventIndicator Bitmap field of eight Boolean type indicators reflecting the end of updates for a given CME Globex Event book::lastEvent, bookorder::lastEvent
268 NoMDEntries Number of entries in Market Data message onbookorder() for each entry (NoOrderIDEntries) and final onbook() for each message
→270 MDEntryPx Market Data entry price book -> pricelevel::price
→271 MDEntrySize Market Data entry size book-> pricelevel::qty
→48 SecurityID A unique instrument ID value across markets will not be reused until the next trade date following an instrument expiration or deletion. security::exchangeSecurityId, mapped to book::symbolId and bookorder::symbolId
→83 RptSeq Market Data entry sequence number per instrument update. book::symbolseqno
→346 NumberOfOrders In Book entry — aggregate number of orders at given price level pricelevel::orders
→1023 MDPriceLevel Aggregate book level book::buys[LVL] or book::sells[LVL]
37705 NoOrderIDEntries Repeating group of MBO book updates included in an event. Repeating group used for MBP and MBOFD combined updates. onbookorder() for each entry
→37 OrderID Unique ID assigned by CME Globex to identify orders bookorder::orderId
→37706 MDDisplayQty Visible quantity of an order to the market. Orders may have additional hidden display quantity bookorder::quantity
→37708 OrderUpdateAction Order book update action to be applied to the order referenced by OrderID bookorder::updatetype - OU_ADD, OU_UPD, OU_DEL

Order Entry (iLink 3.0)

Outgoing Messages

Nanoconda API Exchange Message Exchange Code Notes
dmasession::newOrder() NewOrderSingle 35=D iLink 3 New Order - Single
dmasession::cancelOrder() OrderCancelRequest 35=F iLink 3 Order Cancel Request
dmasession::modifyOrder() OrderCancelReplaceRequest 35=G iLink 3 Order Cancel Replace Request
dmasession::cancelAllOrders() OrderMassActionRequest 35=CA iLink 3 Order Mass Action Request

Incoming Messages

Exchange Message Nanoconda Callback Exchange Code Notes
BusinessReject onerror, onorderreject, oncancelreject, onmodifyreject 35=j iLink 3 Business Reject
ExecutionReportNew onorderack 35=8, 39=0 iLink 3 Execution Report - New Order
ExecutionReportCancel oncancelack 35=8, 39=4 iLink 3 Execution Report - Cancel
ExecutionReportModify onmodifyack 35=8, 39=5 iLink 3 Execution Report - Modify
ExecutionReportReject onorderreject 35=8, 39=8 iLink 3 Execution Report - Reject
OrderCancelReject oncancelreject 35=9,434=1 iLink 3 Order Cancel Reject
OrderCancelReplaceReject onmodifyreject 35=9, 434=2 iLink 3 Order Cancel Replace Reject
parseExecutionReportTradeOutright onfill 35=8, 39=1,2 iLink 3 Execution Report - Trade Outright
ExecutionReportTradeAddendumOutright onfillcorrection 35=8, 39=H,G iLink 3 Execution Report - Trade Addendum Outright
ExecutionReportElimination onout 35=8, 39=C iLink 3 Execution Report - Elimination

Fields

Nanoconda Field Exchange Field Notes
order::orderId CIOrdID Automatically Generated by API
order::exchangeOrderId OrderID
order::type = MKT OrdType = '1'
order::type = LMT OrdType = '2'
order::type = STP OrdType = '3'
order::type = SLMT OrdType = '4'
order::type = FAK OrdType = '2'; TimeInForce = 3
order::price Price
order::triggerPrice StopPx
order::quantity OrderQty
order::quantityDisplay DisplayQty
order::quantityMinimum MinQty
order::priceLast LastPx
order::quantityLast LastQty
order::quantityFilled CumQty
order::side Side 'B' => 1 , 'S' => 2
order::exchangeReason OrdRejReason, CxlRejReason
error::exchangeCode BusinessRejectReason