Ember REST/WS API Reference
General Concepts
Deltix Trading API is influenced by the FIX Protocol and native APIs of various trading systems that Deltix has previously worked with. It is designed to provide a high-level normalized format suitable to interact with 99% of trading venues.
- REST API endpoints can be used for order entry operations, as well as for synchronous retrieval of information like list of active orders or order status information.
- WebSocket API offers bidirectional private WebSocket channels. This API can be used to access full set of Ember operations (order entry and positions).
Ember REST/WS API is not intended for use over Public Internet. Deltix offers an alternative CryptoWebGUI API of CryptoCortex for internet-facing retail API access.
All requests and responses are `application/json`` content type and follow typical HTTP response status codes for success and failure. For example, client can use REST or WebSocket to submit new order using OrderNewRequest:
{
"orderId":"11336866712",
"timestamp":"2020-12-15T17:34:26.839Z",
"side":"BUY",
"quantity":100,
"symbol":"ESZ21",
"orderType":"MARKET",
"destinationId":"CME"
}
For each order request client will receive a series of order events. For example, there following event notifies about a trade:
{
"$type":"OrderTradeReportEvent",
"tradePrice":6543.21,
"tradeQuantity":10,
"orderId":"11337484174",
"correlationOrderId":"11337484174",
"externalOrderId":"EX:SAMPLE:11337484174",
"orderStatus":"COMPLETELY_FILLED",
"eventId":"2",
"side":"BUY",
"quantity":10,
"orderType":"LIMIT",
"limitPrice":6543.21,
"exchangeId":"FILL",
"account":"GOLD",
"cumulativeQuantity":10,
"averagePrice":6543.21,
"remainingQuantity":0,
"displayQuantity":1,
"timeInForce":"DAY",
"sequence":26,
"symbol":"ESZ20",
"instrumentType":"FUTURE",
"timestamp":"2020-12-15T17:44:44.283Z",
"sourceId":"CME",
"destinationId":"JSONCLIENT1"
}
Encryption
TLS Encryption is required for production API gateways.
API Keys
Before you can send requests you must create an API key. API key is placed in the HTTP header of each request and to sign request payload.
Request signing
All REST requests must contain the following headers:
HTTP Header | Content |
---|---|
X-API-KEY | Public API key |
X-SIGNATURE | The HMAC-SHA384 signature in HEX encoding |
The X-SIGNATURE
header is generated by creating a HMAC-SHA384 using secret key and request body, in hex encoding. See example below.
const Axios = require('axios');
const Crypto = require('crypto')
const API_KEY = 'w6AcfksrG7GiEFoN'
const SECRET = '*****************************'
var order = JSON.stringify({
orderId: "11336866712",
timestamp: "2020-12-15T17:34:26.839Z",
side: "BUY",
quantity: 100,
symbol: "ESZ21",
orderType: "MARKET",
destinationId: "CME"
});
var signature = CryptoJS.HmacSHA384(order, SECRET).toString(); // Hex format
Axios.post('http://localhost:8988/api/v1/order/new', order,
{
headers: {
"Content-Type": "application/json",
"X-API-KEY": API_KEY,
"X-SIGNATURE": signature,
}
}
).then((response) => {
console.log(response.data);
})
.catch((error) => {
console.error(error);
});
Python version:
import requests
import json
import hashlib
import hmac
import datetime
import uuid
API_KEY = 'w6AcfksrG7GiEFoN'
SECRET = '*****************************'
order = json.dumps({
"orderId": uuid.uuid4().hex,
"timestamp": datetime.datetime.utcnow().isoformat(),
"side": "BUY",
"quantity": 100,
"symbol": "ESZ21",
"orderType": "MARKET",
"destinationId": "CME"
});
signature = hmac.new(SECRET.encode('utf-8'), order.encode('utf-8'), hashlib.sha384).hexdigest()
headers = {
"Content-Type": "application/json",
"X-API-KEY": API_KEY,
"X-SIGNATURE": signature,
}
response = requests.post('http://localhost:8988/api/v1/order/new', data = order, headers=headers)
print("Server responded with [%s] %s" % (response.status_code, response.text))
Identity
The API follows ideas of FIX protocol when it comes to identifying orders and requests.
Order Identification
Client Order ID
The client provides an order ID with each request. This textual identifier must be unique in the scope of a single API client.
Each order modification request client provides a new order ID and must specify the original order ID. Once the change is approved, the working order will be identified by the replacement order ID. In case of the replace reject, the order keeps its original identity. Users familiar with the FIX protocol will recognize this approach. For the convenience of handling the large chain of cancellation replaces requests, the API supports Correlation Order ID. This optional attribute matches the ID of the first order in the replacement chain.
Client Order ID uniqueness
It is the responsibility of a client to prevent duplicate Client Order identifiers. Deltix side performs limited checking for duplicates. For each client Deltix keeps track of all active and the N recent inactive orders which will be used for a duplicate check. To prevent accidental re-submission of a large batch of orders Deltix side also checks timestamps of inbound order requests. Requests that are older than 15 seconds are rejected.
External Order ID
Trading Venues may assign their identifiers to the orders, represented as an "external order ID". These identifiers are unique only in the scope of each trading venue (identified by Destination ID and Exchange).
An external order ID is typically reported with order events and may or may not change each time the order is amended using CancelReplaceRequest.
Request Identification
To distinguish repeated attempts to cancel the same order, each CancelRequest is identified by a Request ID. This required identifier is subsequently reported in the ACK / NACK events OrderCancelEvent and OrderCancelRejectEvent cancel events.
Order submission, cancellation, and modification requests are identified by order ID.
Symbology
API uses symbology defined in Deltix Security Metadata. Each client implementation may decide which symbology should be used.
Order Routing
Each order may specify a destination (for example “TWAP” execution algorithm, “CME” trading connector, or “SIMULATOR”). Alternatively, Ember can be configured to route orders automatically.
Limits
Each Ember installation accessible via this API can have different risk limits configured. For example, system may define maximum order sizes, limit position sizes, or throttle request frequency.
Basic Data Types
Text fields
API supports UTF-8 encoding, but all textual fields must use ASCII character set.
Alphanumeric text fields
There is one special type of text fields. For efficiency Ember uses INT64 internally to identify exchanges or order destinations. As result fields EXCHANGE, DESTINATION are limited to 10 characters in ASCII range 0x20..0x5F
(punctuation chars, upper case letters, and digits).
Decimal fields
Decimal fields like prices and quantities can be accepted as JSON numbers or as text values in input messages. In some cases textual representation addresses loss of precision and ambiguity with JSON floating-point numbers. In output messages all prices and quantities are represented as JSON numbers.
Custom Attributes
While Deltix has attempted to represent the most common order attributes as JSON message fields, for some advanced cases custom attributes should be used to supply extended order information. Each trading message can carry a list of custom attributes. Each attribute is identified by numeric key and stores the text value. For example, here we provide FIX Parties component block as a list of custom attributes:
"attributes":[
{
"key":453, // NoPartyID=1
"value":"1"
},
{
"key":448, // PartyID
"value":"AAA"
},
{
"key":452, // Party Role
"value":"3" // ‘3’ = Client ID
}
]
HTTP response codes
Successful requests return HTTP status code 200. In case of a problem the following HTTP status codes are used:
Status code | Reason |
---|---|
400 Bad request | Invalid request format. |
401 Unauthorized | Invalid API Key. |
403 Forbidden | You do not have access to the requested resource. |
404 Not found | Unknown API entry point or Order not found. |
500 Internal server error | General problem on server side. |
503 Service unavailable | Downstream service is not available or overloaded. |
504 Gateway timeout | Server side operation timed. |
REST API: Order Entry
Typically, each order API request is asynchronous. Each request results in one or more response messages communicated via private WebSocket feed. For example, order submission may result in several order event messages: order acknowledgement, order partial fill, and order cancellation. One exception is /api/v1/order/status
REST query that synchronously retrieves current order status information into HTTP response.
Submit new order
Order is subject to Risk Checks that are configured in Ember OMS (for example, order and position size checks, or rate limit).
Order types depend on destination, most destinations support MARKET and LIMIT orders.
HTTP REQUEST | POST /api/v1/order/new |
---|---|
Payload (body) | OrderNewRequest |
Response (WebSocket) | One or several of OrderPendingNewEvent, OrderRejectEvent, OrderNewEvent, OrderCancelEvent, OrderTradeReportEvent, etc. according to lifecycle of given order. |
Permissions | This endpoint requires ORDER_ENTRY permission. |
Cancel an order
You can request order cancellation immediately after order placement.
HTTP REQUEST | POST /api/v1/order/cancel |
---|---|
Payload (body) | OrderCancelRequest. |
Response (WebSocket feed) | Either OrderCancelEvent (ACK) or OrderCancelRejectEvent (NAK). Some destination may report OrderCancelPendingEvent prior to ACK/NACK. |
Permissions | This endpoint requires ORDER_ENTRY permission. |
Modify an order
You can request order modification (also known as Cancel-Replace workflow) immediately after order placement. Each active order may have multiple modification requests pending. Each modification request uses unique order ID and identifies a predecessor order.
Ember follows Cancel-Replace workflows described by the FIX Protocol.
HTTP REQUEST | POST /api/v1/order/replace |
---|---|
Payload (body) | OrderReplaceRequest. |
Response (WebSocket feed) | Either OrderNewEvent (ACK) or OrderReplaceRejectEvent (NAK). Some destination may report OrderReplacePendingEvent prior to ACK/NACK. |
Permissions | This endpoint requires ORDER_ENTRY permission. |
Query order state
You can request about order status immediately after order submission. Order may have multiple modification requests pending.
You may use identity of any of the active order modification requests in cancel-replace chain (as well as Correlation Order ID) to query the status.
HTTP REQUEST | POST /api/v1/order/status |
---|---|
Payload (body) | OrderStatusRequest. |
Response (body) | OrderStatusEvent. In case when ember cannot locate order by given ID you will receive 404 error. |
Permissions | This endpoint does not require any permissions. |
List active orders
You can request list of active orders.
HTTP REQUEST | POST /api/v1/orders |
---|---|
Payload (body) | OrderMassStatusRequest. |
Response (body) | A series of OrderStatusEvent messages, with the last message flagged as isLast=true. If there are no active orders matching request parameter the response will contain an empty list. |
Permissions | This endpoint does not require any permissions. |
Discard an order
In rare special cases order destination is not available or incapable of confirming order cancellation. This request will simply mark order as cancelled in Deltix OMS. It will not send cancel request to order destination (use Cancel request for all normal scenarios).
HTTP REQUEST | POST /api/v1/order/discard |
---|---|
Payload (body) | OrderDiscardRequest. |
Response (WebSocket feed) | Currently this operation does not trigger any response message. |
Permissions | This endpoint requires ORDER_ENTRY permission. |
REST API: Positions
List positions
You can request list positions for specific projection.
HTTP REQUEST | POST /api/v1/positions |
---|---|
Payload (body) | PositionRequest. |
Response (body) | A series of PositionReport messages, with the last message flagged as isLast=true. |
Permissions | This endpoint does not require any permissions. |
Adjust position
You can adjust size, average cost, and realized P&L of individual position. Size can be adjusted to absolute value or using provided delta.
HTTP REQUEST | POST /api/v1/position/adjust |
---|---|
Payload (body) | PositionSnapshot. |
Response (body) | Currently this operation does not trigger any response message. |
Permissions | This endpoint requires POSITION_ADJUSTMENT permission. |
WebSocket API
You can use WebSocket API to receive acknowledgment for requests made via REST API. For example, you may receive OrderNewEvent or OrderRejectEvent in response to OrderNewRequest.
You can also use WebSocket API in bi-directional fashion, without REST API. You can simply send your requests to WebSocket channel. And of course you can listen to WebSocket feed if you simply want to be notified of trading activity that happens on server (e.g. when order come via FIX).
Each API key is associated with a specific order source (client or SourceID in Ember terminology). WebSocket client will only receive events for orders of the same source (same client) as API key.
WebSocket API does not require any SUBSCRIBE messages. As soon as you authenticate you will start receiving events from Ember OMS.
Each message sent and received via the Ember's WebSocket channel is encoded in JSON format, format of requests is exactly the same as used by REST API.
Authentication
Before you can send any WebSocket requests you need to authenticate using special message:
Field | Description |
---|---|
$type | AuthRequest |
timestamp | Timestamp of this request in ISO 8601 format (e.g. 2011-12-19T15:28:46.493Z ) |
salt | UUID of this request |
signature | Request signature is generated by creating a HMAC-SHA384 using secret key and concatenated payload string: API_KEY + '/' + salt + '/' + timestamp . |
apiKey | Your public API key |
WebSocket Example
const WebSocket = require('ws')
const Crypto = require('crypto')
const { v4: GUID } = require('uuid');
const API_KEY = 'w6AcfksrG7GiEFoN'
const SECRET = '*****************************'
const salt = GUID();
const now = new Date();
const data = API_KEY + '/' + salt + '/' + now.toISOString();
const signature = Crypto.createHmac('sha384', SECRET).update(data).digest('hex');
const auth_request = {
$type: 'AuthRequest',
apiKey: API_KEY,
signature: signature,
salt: salt,
timestamp: now
};
const order = {
$type: 'OrderNewRequest',
orderId: GUID(),
timestamp: now,
side: 'BUY',
quantity: 100,
symbol: 'BTC/USD',
orderType: 'MARKET',
destinationId: 'SIM',
exchangeId: 'FILL'
};
const wss = new WebSocket('ws://localhost:8988/api/v1') // Use wss:// for PROD
wss.on('message', (msg) => console.log(JSON.parse(msg)))
wss.on('open', () => {
wss.send(JSON.stringify(auth_request)); // Step 1: Authenticate
wss.send(JSON.stringify(order)); // Step 2: send order
})
Python:
import time
import json
import hashlib
import hmac
import datetime
import uuid
import websocket
API_KEY = 'w6AcfksrG7GiEFoN'
SECRET = '*****************************'
salt = uuid.uuid4().hex
timestamp = datetime.datetime.utcnow().isoformat()[:-3] + 'Z' # timestamp format workaround
data = API_KEY + '/' + salt + '/' + timestamp
signature = hmac.new(SECRET.encode('utf-8'), data.encode('utf-8'), hashlib.sha384).hexdigest()
auth_request = {
"$type": 'AuthRequest',
"apiKey": API_KEY,
"salt": salt,
"timestamp": timestamp,
"signature": signature
}
order = {
"$type": 'OrderNewRequest',
"orderId": uuid.uuid4().hex,
"timestamp": timestamp,
"side": 'BUY',
"quantity": 100,
"symbol": 'BTCUSD',
"orderType": 'MARKET',
"destinationId": 'SIM',
"exchangeId": 'FILL'
}
ws = websocket.create_connection("ws://localhost:8988/api/v1")
ws.send(json.dumps(auth_request)) # Step 1: Authenticate
result = ws.recv()
if json.loads(result)["success"]:
ws.send(json.dumps(order)) # Step 2: send order
result = ws.recv()
print(result)
ws.close()
Expected format of response to AuthRequest is the following:
{
'$type': 'AuthResponse',
message: 'Authenticated session is established',
success: true,
timestamp: '2021-12-15T00:14:06.705Z'
}
Order requests via Websocket
Field $type
should be the first field in any WebSocket request:
{
"$type":"OrderNewRequest",
...
}
The value of $type
field should correspond to a request name described in Message Types section of this document.
Order events via Websocket
Order events published to WebSocket feed communicate order changes via the following attributes:
Attribute | Description |
---|---|
$type | Event type. Describe what was the change that triggered this message, similar to ExecType(150) in FIX Protocol. See Order Entry Responses section for a complete list of order events. |
status | Current order state |
cumulativeQuantity | Order quantity that executed so far. |
remainingQuantity | Order quantity that remains on the market. |
As with trading requests, ember trading events have direct parallel to messages in the FIX Protocol:
- All events have
orderId
property. (For most events this attribute comes from FIX tag ClOrdId(11), with exception of CancelPending and Cancelled events that get order Id from tag OrigClOrdId(41)). - Events that correspond to replacement request have
originalOrderID
attribute. (The value attribute corresponds to FIX tag OrigClOrdId(41).) - Events that report status of order cancellation request have
requestId
attribute. (Depending on message type and exec type it comes either from tag 41 or 11). - Each order event type represents a different kind of event:
- FIX ExecutionReport(8) messages with each ExecType(150) value corresponds to some order event type. For example, OrderRejectedEvent corresponds to ExecutionReport with ExecType(150)=8 / Rejected
- FIX CancelReject(9) messages are represented by OrderCancelRejectEvent and OrderCancelReplaceRejectEvent (depending on value of tag CxlRejResponseTo(434))
Please refer to Volume 4 of FIX 4.4 Specification for additional information.
Message Types
This section defines Ember message types used by REST endpoints as well as WebSocket feed
Order Entry API messages
Requests
OrderNewRequest
Used by API clients submit trading orders to execution venues.
Corresponds to NewOrderSingle(35=D) in FIX Protocol.
Field | Description | Type | Required |
---|---|---|---|
account | Order Trading Account | String | N |
attributes | Custom attributes. Each attribute is a pair of integer key and text value. We recommend tag numbers of FIX protocol as attribute keys where possible. | Array of [CustomAttribute] | N |
clearingAccount | Order Clearing Account | String | N |
clearingBroker | Clearing Broker (Central Counter Party) Since version 1.8. | String | N |
currency | Identifies currency used for prices in alphanumeric encoding. Wherever possible Deltix uses ISO 4217 currency codes. Crypto currencies use Centralized Security Master codes (for example, Bitcoin is "BTC" rather than "XBT"). | String ALPHANUMERIC(10) | N |
destinationId | Identifies message final destination (trading connector). | String ALPHANUMERIC(10) | N |
discretionOffset | The presence of DiscretionOffset on an order indicates that the trader wishes to display one price but will accept trades at another price. For example a SELL order with limit price 50.00, and discretion offset -0.25 means that the order should be displayed as an offer for 50.00, but will match any bid greater than or equal to 49.75. Roughly corresponds to FIX tag DiscretionOffset(389). Since version 1.8. | String DECIMAL | N |
displayQuantity | Can be used for iceberg orders. "MaxShow/DisplaySize" order quantity in fixed-point representation. | String DECIMAL | N |
exchangeId | Final execution venue (exchange, ECN, etc), usually represented by MIC code | String ALPHANUMERIC(10) | N |
expireTime | Order Expiration time. Required for TimeInForce.GOOD_TILL_DATE orders. May also be used for DAY order in some cases. | String TIMESTAMP | N |
instrumentType | Security type / Asset Class.
| String ENUM | N |
limitPrice | Limit price. Required for LIMIT or LIMIT_STOP orders (and some custom orders). Negative prices are allowed (e.g. for calendar spreads of FUTURE oil prices). | String DECIMAL | N |
minQuantity | Optional attribute supported by some execution venues. Minimum quantity allowed for execution, in fixed-point representation. | String DECIMAL | N |
moduleKey | Used by QuantOffice orders to identify strategy that placed this order. Other clients can use this as custom field for order tagging and position tracking. Since version 1.7. | String | N |
orderId | Unique identifier for Order as assigned by (broker, exchange, ECN). Uniqueness must be guaranteed for each order source. Firms which accept multi-day orders should consider embedding a date within the OrderID field to assure uniqueness across days. | String | Y |
orderType |
| String ENUM | Y |
parentOrderId | Identifies parent algo-order. | String | N |
party | Desrcibes business entity involved in this transaction (Counter Party) Since version 1.8. | String | N |
pegDifference | Peg Difference for Pegged order types. Optional - implied value is zero. Amount (signed) added to the price of the peg for a pegged order. | String DECIMAL | N |
portfolioKey | Used by QuantOffice orders to identify portfolio this order belongs to. Other clients can use this as custom field for order tagging and position tracking. Since version 1.7. | String | N |
quantity | Order quantity in fixed-point representation. Order Quantity is required for order entry requests and optional for cancel request. | String DECIMAL | N |
quoteId | Identifies quote/rate we want to deal with. May be required for some FX trading destinations. Quote ID usually comes from Bid/Ask Quote IDs of market data feed. Corresponds to FIX tag 117. | String | N |
sequence | Message sequence number (set by Execution Server OMS for downstream messages) | Number INT64 | N |
settlementDate | Settlement Date of the instrument (value date) in the local timezone of destination execution venue. Since version 1.8. | String TIMESTAMP | N |
settlementType | Indicates Order Settlement Period. Note SettlementDate (if present) overrides this value. If both fields are skipped, default settlement type is "regular". Corresponds to tag SettlType(63) FIX 5.0. Some examples: '0' = SPOT; '1' = T+0,TODAY; '2' = T+1,TOMORROW; 'W2' = two weeks, 'Y1' = one year. Since version 1.9. | String | N |
side | Order side.
| String ENUM | Y |
stopPrice | Order stop price. Required for STOP and LIMIT_STOP orders (and some custom orders). Negative prices are allowed (e.g. for calendar spreads of FUTURE oil prices). | String DECIMAL | N |
symbol | Idetifies trading instrument. | String | Y |
timeInForce | Usually (but not always) required attribute that specifies how long the order remains in effect
| String ENUM | Y |
timestamp | Message timestamp (in epoch time). Similar to tag TransactTime(60) in FIX ExecutionReport. | String TIMESTAMP | Y |
traderGroup | Assigned by Deltix Trading Node and identifies single group that order's Trader belongs to. Helps to filter out orders available in order reports. | String | N |
traderId | User who submitted this order (manually or automatically) | String | N |
userData | User-defined cookie that will be reported back in order events. For example, order reason. Sometimes custom order attributes are sometimes too heavy. | String | N |
OrderCancelRequest
Requests the cancellation of all of the remaining quantity of an existing order.
Note that the Order Cancel/Replace Request(35=G) should be used to partially cancel (reduce) an order).
The request will only be accepted if the order can successfully be pulled back from the exchange floor without executing.
Corresponds to OrderCancelRequest(35=F) in FIX Protocol.
Field | Description | Type | Required |
---|---|---|---|
account | Order Trading Account | String | N |
attributes | Custom attributes. Each attribute is a pair of integer key and text value. We recommend tag numbers of FIX protocol as attribute keys where possible. | Array of [CustomAttribute] | N |
clearingAccount | Order Clearing Account | String | N |
clearingBroker | Clearing Broker (Central Counter Party) Since version 1.8. | String | N |
correlationOrderId | Matches orderId of the first order request in this cancel-replace chain. API users can skip this field when submitting replace request - OMS will set it automatically before routing request to destination | String | N |
destinationId | Identifies message final destination (trading connector). | String ALPHANUMERIC(10) | N |
exchangeId | Final execution venue (exchange, ECN, etc), usually represented by MIC code | String ALPHANUMERIC(10) | N |
externalOrderId | External Order ID assigned to the order by execution venue. Similar to tag OrderID(37) in FIX ExecutionReport. | String | N |
instrumentType | Security type / Asset Class.
| String ENUM | N |
orderId | Unique identifier for Order as assigned by (broker, exchange, ECN). Uniqueness must be guaranteed for each order source. Firms which accept multi-day orders should consider embedding a date within the OrderID field to assure uniqueness across days. | String | Y |
orderType |
| String ENUM | Y |
party | Desrcibes business entity involved in this transaction (Counter Party) Since version 1.8. | String | N |
quantity | Order quantity in fixed-point representation. Order Quantity is required for order entry requests and optional for cancel request. | String DECIMAL | N |
reason | Cancellation reason. | String | N |
requestId | Cancel Request identifier. Could be used to match Cancel Ack/Reject messages to corresponding Cancel Requests. Corresponds to tag ClOrdID(11) in context of OrderCancelRequest(35=F) in FIX Protocol. Cancel Request ID is required for Execution Server. | String | Y |
sequence | Message sequence number (set by Execution Server OMS for downstream messages) | Number INT64 | N |
side | Order side.
| String ENUM | Y |
symbol | Idetifies trading instrument. | String | Y |
timestamp | Message timestamp (in epoch time). Similar to tag TransactTime(60) in FIX ExecutionReport. | String TIMESTAMP | Y |
traderGroup | Assigned by Deltix Trading Node and identifies single group that order's Trader belongs to. Helps to filter out orders available in order reports. | String | N |
traderId | User who submitted this order (manually or automatically) | String | N |
OrderReplaceRequest
The order replace request is used to change the parameters of an existing order. Replace request should not be used to cancel remaining quantity of working order. Use CancelOrderRequest for that purpose.
Replacement request must contain all attributes of original order (including attributes that are not modified).
This is also true for order quantity - replacement request should not take into account already filled quantity (if any).
This request is similar to Order Cancel/Replace Request (35=G) in FIX Protocol.
Field | Description | Type | Required |
---|---|---|---|
account | Order Trading Account | String | N |
attributes | Custom attributes. Each attribute is a pair of integer key and text value. We recommend tag numbers of FIX protocol as attribute keys where possible. | Array of [CustomAttribute] | N |
clearingAccount | Order Clearing Account | String | N |
clearingBroker | Clearing Broker (Central Counter Party) Since version 1.8. | String | N |
correlationOrderId | Matches orderId of the first order request in this cancel-replace chain. This tag can be used instead of OriginalOrderId to identify cancel replace order chain. API users can skip this field when submitting replace request - OMS will set it automatically before routing request to destination | String | N |
currency | Identifies currency used for prices in alphanumeric encoding. Wherever possible Deltix uses ISO 4217 currency codes. Crypto currencies use Centralized Security Master codes (for example, Bitcoin is "BTC" rather than "XBT"). | String ALPHANUMERIC(10) | N |
destinationId | Identifies message final destination (trading connector). | String ALPHANUMERIC(10) | N |
discretionOffset | The presence of DiscretionOffset on an order indicates that the trader wishes to display one price but will accept trades at another price. For example a SELL order with limit price 50.00, and discretion offset -0.25 means that the order should be displayed as an offer for 50.00, but will match any bid greater than or equal to 49.75. Roughly corresponds to FIX tag DiscretionOffset(389). Since version 1.8. | String DECIMAL | N |
displayQuantity | Can be used for iceberg orders. "MaxShow/DisplaySize" order quantity in fixed-point representation. | String DECIMAL | N |
exchangeId | Final execution venue (exchange, ECN, etc), usually represented by MIC code | String ALPHANUMERIC(10) | N |
expireTime | Order Expiration time. Required for TimeInForce.GOOD_TILL_DATE orders. May also be used for DAY order in some cases. | String TIMESTAMP | N |
externalOrderId | External Order ID assigned to the order by execution venue. Similar to tag OrderID(37) in FIX ExecutionReport. | String | N |
instrumentType | Security type / Asset Class.
| String ENUM | N |
limitPrice | Limit price. Required for LIMIT or LIMIT_STOP orders (and some custom orders). Negative prices are allowed (e.g. for calendar spreads of FUTURE oil prices). | String DECIMAL | N |
minQuantity | Optional attribute supported by some execution venues. Minimum quantity allowed for execution, in fixed-point representation. | String DECIMAL | N |
orderId | Unique identifier for Order as assigned by (broker, exchange, ECN). Uniqueness must be guaranteed for each order source. Firms which accept multi-day orders should consider embedding a date within the OrderID field to assure uniqueness across days. | String | Y |
orderType |
| String ENUM | Y |
originalOrderId | Identifier of the previous order (this can be NewOrderRequest or another ReplaceOrderRequest) that this modification request applies to. Similar to tag OrigClOrdId(41) in FIX OrderCancelReplace message. | String | Y |
parentOrderId | Identifies parent algo-order. | String | N |
party | Desrcibes business entity involved in this transaction (Counter Party) Since version 1.8. | String | N |
pegDifference | Peg Difference for Pegged order types. Optional - implied value is zero. Amount (signed) added to the price of the peg for a pegged order. | String DECIMAL | N |
quantity | Order quantity in fixed-point representation. Order Quantity is required for order entry requests and optional for cancel request. | String DECIMAL | N |
quoteId | Identifies quote/rate we want to deal with. May be required for some FX trading destinations. Quote ID usually comes from Bid/Ask Quote IDs of market data feed. Corresponds to FIX tag 117. | String | N |
sequence | Message sequence number (set by Execution Server OMS for downstream messages) | Number INT64 | N |
side | Order side.
| String ENUM | Y |
stopPrice | Order stop price. Required for STOP and LIMIT_STOP orders (and some custom orders). Negative prices are allowed (e.g. for calendar spreads of FUTURE oil prices). | String DECIMAL | N |
symbol | Idetifies trading instrument. | String | Y |
timeInForce | Usually (but not always) required attribute that specifies how long the order remains in effect
| String ENUM | Y |
timestamp | Message timestamp (in epoch time). Similar to tag TransactTime(60) in FIX ExecutionReport. | String TIMESTAMP | Y |
traderGroup | Assigned by Deltix Trading Node and identifies single group that order's Trader belongs to. Helps to filter out orders available in order reports. | String | N |
traderId | User who submitted this order (manually or automatically) | String | N |
userData | User-defined cookie that will be reported back in order events. For example, order reason. Sometimes custom order attributes are sometimes too heavy. Unfortunately we cannot place this common attribute into OrderEntryRequest and avoid journal format breakdown. WARNING: You cannot replace order's user data if User Data is used in one of risk projections. Since version 1.8. | String | N |
OrderMassCancelRequest
Cancels all orders
Field | Description | Type | Required |
---|---|---|---|
account | If provided limits cancellation to orders that belong to given account | String | N |
attributes | Custom attributes. Each attribute is a pair of integer key and text value. We recommend tag numbers of FIX protocol as attribute keys where possible. | Array of [CustomAttribute] | N |
cancelType |
| String ENUM | Y |
destinationId | Identifies message final destination (trading connector). | String ALPHANUMERIC(10) | N |
exchangeId | If provided limits cancellation to orders that were sent to given exchange | String ALPHANUMERIC(10) | N |
instrumentType | Security type / Asset Class.
| String ENUM | N |
reason | Cancellation reason. | String | N |
requestId | Cancel Request identifier. Could be used to match Cancel Ack/Reject messages to corresponding Cancel Requests. Corresponds to tag ClOrdID(11) in context of OrderCancelRequest(35=F) in FIX Protocol. Cancel Request ID is required for Execution Server. | String | Y |
sequence | Message sequence number (set by Execution Server OMS for downstream messages) | Number INT64 | N |
symbol | Idetifies trading instrument. | String | Y |
timestamp | Message timestamp (in epoch time). Similar to tag TransactTime(60) in FIX ExecutionReport. | String TIMESTAMP | Y |
traderId | If provided limits cancellation to orders that belong to given trader | String | N |
OrderMassStatusRequest
Batch version of OrderStatusEvents for all active orders that match given filter (account, trader, exchange)
Field | Description | Type | Required |
---|---|---|---|
account | If provided status request will be only sent for orders that belong to given account | String | N |
attributes | Custom attributes. Each attribute is a pair of integer key and text value. We recommend tag numbers of FIX protocol as attribute keys where possible. | Array of [CustomAttribute] | N |
destinationId | Identifies message final destination (trading connector). | String ALPHANUMERIC(10) | N |
exchangeId | If provided status request will be only sent for orders that belong to given exchange | String ALPHANUMERIC(10) | N |
instrumentType | Security type / Asset Class.
| String ENUM | N |
requestId | Optional identifier of OrderStatusRequest. Similar to tag OrdStatusReqID(790) in FIX OrderStatusRequest(35=H) message. Since version 1.8. | String | N |
sequence | Message sequence number (set by Execution Server OMS for downstream messages) | Number INT64 | N |
symbol | Idetifies trading instrument. | String | Y |
timestamp | Message timestamp (in epoch time). Similar to tag TransactTime(60) in FIX ExecutionReport. | String TIMESTAMP | Y |
traderId | If provided status request will be only sent for orders that belong to given trader | String | N |
OrderStatusRequest
Request information about current state of given order.
Field | Description | Type | Required |
---|---|---|---|
account | Order Account (optional) | String | N |
attributes | Custom attributes. Each attribute is a pair of integer key and text value. We recommend tag numbers of FIX protocol as attribute keys where possible. | Array of [CustomAttribute] | N |
correlationOrderId | Matches orderId of the first order request in this cancel-replace chain. API users can skip this field when submitting replace request - OMS will set it automatically before routing request to destination | String | N |
destinationId | Identifies message final destination (trading connector). | String ALPHANUMERIC(10) | N |
externalOrderId | External Order ID assigned to the order by execution venue. Similar to tag OrderID(37) in FIX ExecutionReport. | String | N |
instrumentType | Security type / Asset Class.
| String ENUM | N |
orderId | Identifies order Similar to tag ClOrdId(11) in FIX OrderCancelReplace message. | String | Y |
requestId | Optional identifier of OrderStatusRequest. Similar to tag OrdStatusReqID(790) in FIX OrderStatusRequest(35=H) message. Since version 1.8. | String | N |
sequence | Message sequence number (set by Execution Server OMS for downstream messages) | Number INT64 | N |
side | Order side (optional)
| String ENUM | N |
symbol | Idetifies trading instrument. | String | Y |
timestamp | Message timestamp (in epoch time). Similar to tag TransactTime(60) in FIX ExecutionReport. | String TIMESTAMP | Y |
traderId | Order owner (optional) | String | N |
Responses
OrderCancelEvent
Cancel confirmation event: Order has been cancelled or expired. Order reached final state and no longer active.
Corresponds to ExecutionReport(8) with ExecType(150)=Cancelled | Expired.
Field | Description | Type | Required |
---|---|---|---|
account | Trading Account. | String | N |
attributes | Custom attributes. Each attribute is a pair of integer key and text value. We recommend tag numbers of FIX protocol as attribute keys where possible. | Array of [CustomAttribute] | N |
averagePrice | Average fill price for currently executed shares for chain of orders. Corresponds to FIX tag AvgPx(6). This field is undefined if and only if cumulative quantity is undefined. (Since some instruments are executed with negative prices or sometimes even with price equal to zero there is no way to represent 'undefined' value other than binding this field to Cumulative Quantity). | String DECIMAL | N |
cancelType | Classifies order cancellation reason.
| String ENUM | N |
clearingAccount | Clearing Account | String | N |
clearingBroker | Clearing Broker Since version 1.8. | String | N |
correlationOrderId | Matches orderId of the first order request in cancel-replace chain of orders. | String | N |
cumulativeQuantity | Currently executed number of contracts for chain of orders. Corresponds to FIX tag CumQty(14). | String DECIMAL | N |
currency | Identifies currency used for prices in alphanumeric encoding. Wherever possible Deltix uses ISO 4217 currency codes. Crypto currencies use Centralized Security Master codes (for example, Bitcoin is "BTC" rather than "XBT"). | String ALPHANUMERIC(10) | N |
destinationId | Identifies message final destination (trading connector). | String ALPHANUMERIC(10) | N |
displayQuantity | "MaxShow/DisplaySize" order quantity in fixed-point representation. Can be used for iceberg orders. Set to -1 when not defined. | String DECIMAL | N |
eventId | Identifies event in scope of single order or cancel replace chain. This attribute can be used to detect duplicate events (e.g. duplicate fills). | String | N |
exchangeId | Final execution venue (exchange, ECN, etc), usually represented by MIC code | String ALPHANUMERIC(10) | N |
expireTime | Order expiration time (when applicable according to Time In Force) | String TIMESTAMP | N |
externalOrderId | External Order ID assigned to the order by execution venue. Similar to tag OrderID(37) in FIX ExecutionReport. | String | N |
instrumentType | Security type / Asset Class.
| String ENUM | Y |
limitPrice | Order limit price (when applicable according to order type) | String DECIMAL | N |
minQuantity | Minimum quantity allowed for execution, in fixed-point representation. Optional attribute supported by some execution venues. Set to -1 when not defined. | String DECIMAL | N |
moduleKey | Used by QuantOffice orders to identify strategy that placed this order. Other clients can use this as custom field for order tagging and position tracking. Since version 1.7. | String | N |
orderId | Order ID. Identifies order described by this event Similar to tag ClOrdId(11) in FIX ExecutionReport (except for CancelPending/CancelRejected/Cancelled messages that pass order od from tag 41). | String | Y |
orderStatus | Describes current state of order, if known. Similar to tag OrderStatus(39) in FIX ExecutionReport.
| String ENUM | N |
orderType | Order Type.
| String ENUM | N |
originalTimestamp | Exchange-provided event time (optional). This is in contrast to .timestamp field which records moment of time when Ember trade connector received this event. Since version 1.7. | String TIMESTAMP | N |
parentOrderId | Identifies parent algo-order. | String | N |
parentSourceId | Identifies source of parent algo-order. | String ALPHANUMERIC(10) | N |
party | Desrcibes business entity involved in this transaction Since version 1.8. | String | N |
portfolioKey | Used by QuantOffice orders to identify portfolio this order belongs to. Other clients can use this as custom field for order tagging and position tracking. Since version 1.7. | String | N |
quantity | Order quantity in fixed-point representation. | String DECIMAL | N |
reason | Textual Order cancellation reason. | String | N |
remainingQuantity | Quantity open for further execution. Corresponds to FIX tag LeavesQty(151). Reflects the cumulative result of all versions of an order in cancel-replace chain. (If the order status is Canceled or Rejected or CompletelyFilled (the order is no longer active) then LeavesQty (151) could be 0, otherwise LeavesQty (151) = OrderQty (38) - CumQty (14).) | String DECIMAL | N |
requestId | Identifies Cancel Request that initiated this event. Will be provided when cancel reject is sent in response for explicit cancel request. | String | N |
sequence | Message sequence number (set by Execution Server OMS for downstream messages) | Number INT64 | N |
sequenceNumber | Event sequence number, if known. Similar to tag MsgSeqNum(34) in FIX ExecutionReport. Note: behavior of this field depends on event source. For example, some sources maintain monotonously increasing session-wide sequence number, while others may keep different sequences for different instruments. Sequence numbers are reset periodically (daily or weekly). | Number INT32 | N |
side | Order Side.
| String ENUM | N |
sourceId | Identifies message source (e.g. FIX Sender Comp ID or trading connector). For internal orders source identifies source Anvil component (e.g. "TWAP" algo). Source is used for ID uniqueness. | String ALPHANUMERIC(10) | Y |
stopPrice | Order stop price (when applicable according to order type) | String DECIMAL | N |
symbol | Idetifies trading instrument. | String | Y |
timeInForce | Order Time-In-Force (TIF) condition
| String ENUM | N |
timestamp | Message timestamp (in epoch time). Similar to tag TransactTime(60) in FIX ExecutionReport. | String TIMESTAMP | Y |
traderGroup | Assigned by Deltix Trading Node and identifies single group that order's Trader belongs to. Helps to filter out orders available in order reports. | String | N |
traderId | User who submitted this order (manually or automatically) | String | N |
userData | User-defined cookie that was specified on order. For example, order reason. Sometimes custom order attributes are sometimes too heavy. | String | N |
OrderCancelRejectEvent
This event is issued by execution venue when previously issued Cancel request cannot be honored.
Field OrderStatus communicates current state of the order.
Optional Message field may provide rejection reason.
This event corresponds to FIX CancelRejected(9) message with CxlRejResponseTo(434)= reject of cancel request(1).
Field | Description | Type | Required |
---|---|---|---|
account | Trading Account. | String | N |
attributes | Custom attributes. Each attribute is a pair of integer key and text value. We recommend tag numbers of FIX protocol as attribute keys where possible. | Array of [CustomAttribute] | N |
averagePrice | Average fill price for currently executed shares for chain of orders. Corresponds to FIX tag AvgPx(6). This field is undefined if and only if cumulative quantity is undefined. (Since some instruments are executed with negative prices or sometimes even with price equal to zero there is no way to represent 'undefined' value other than binding this field to Cumulative Quantity). | String DECIMAL | N |
clearingAccount | Clearing Account | String | N |
clearingBroker | Clearing Broker Since version 1.8. | String | N |
correlationOrderId | Matches orderId of the first order request in cancel-replace chain of orders. | String | N |
cumulativeQuantity | Currently executed number of contracts for chain of orders. Corresponds to FIX tag CumQty(14). | String DECIMAL | N |
currency | Identifies currency used for prices in alphanumeric encoding. Wherever possible Deltix uses ISO 4217 currency codes. Crypto currencies use Centralized Security Master codes (for example, Bitcoin is "BTC" rather than "XBT"). | String ALPHANUMERIC(10) | N |
deltixRejectCode | Deltix-spec rejection code Internal OMS uses reject codes in range [0...9999]. Risk Rules use reject codes in range [10000...19999]. Trading Connectors and simulators use reject codes in range [20000...29999]. | Number INT32 | N |
destinationId | Identifies message final destination (trading connector). | String ALPHANUMERIC(10) | N |
displayQuantity | "MaxShow/DisplaySize" order quantity in fixed-point representation. Can be used for iceberg orders. Set to -1 when not defined. | String DECIMAL | N |
eventId | Identifies event in scope of single order or cancel replace chain. This attribute can be used to detect duplicate events (e.g. duplicate fills). | String | N |
exchangeId | Final execution venue (exchange, ECN, etc), usually represented by MIC code | String ALPHANUMERIC(10) | N |
expireTime | Order expiration time (when applicable according to Time In Force) | String TIMESTAMP | N |
externalOrderId | External Order ID assigned to the order by execution venue. Similar to tag OrderID(37) in FIX ExecutionReport. | String | N |
instrumentType | Security type / Asset Class.
| String ENUM | Y |
limitPrice | Order limit price (when applicable according to order type) | String DECIMAL | N |
minQuantity | Minimum quantity allowed for execution, in fixed-point representation. Optional attribute supported by some execution venues. Set to -1 when not defined. | String DECIMAL | N |
moduleKey | Used by QuantOffice orders to identify strategy that placed this order. Other clients can use this as custom field for order tagging and position tracking. Since version 1.7. | String | N |
orderId | Order ID. Identifies order described by this event Similar to tag ClOrdId(11) in FIX ExecutionReport (except for CancelPending/CancelRejected/Cancelled messages that pass order od from tag 41). | String | Y |
orderStatus | Describes current state of order, if known. Similar to tag OrderStatus(39) in FIX ExecutionReport.
| String ENUM | N |
orderType | Order Type.
| String ENUM | N |
originalTimestamp | Exchange-provided event time (optional). This is in contrast to .timestamp field which records moment of time when Ember trade connector received this event. Since version 1.7. | String TIMESTAMP | N |
parentOrderId | Identifies parent algo-order. | String | N |
parentSourceId | Identifies source of parent algo-order. | String ALPHANUMERIC(10) | N |
party | Desrcibes business entity involved in this transaction Since version 1.8. | String | N |
portfolioKey | Used by QuantOffice orders to identify portfolio this order belongs to. Other clients can use this as custom field for order tagging and position tracking. Since version 1.7. | String | N |
quantity | Order quantity in fixed-point representation. | String DECIMAL | N |
reason | Provides rejection reason. | String | N |
remainingQuantity | Quantity open for further execution. Corresponds to FIX tag LeavesQty(151). Reflects the cumulative result of all versions of an order in cancel-replace chain. (If the order status is Canceled or Rejected or CompletelyFilled (the order is no longer active) then LeavesQty (151) could be 0, otherwise LeavesQty (151) = OrderQty (38) - CumQty (14).) | String DECIMAL | N |
requestId | Identifies cancel request that has been rejected by this event. | String | N |
sequence | Message sequence number (set by Execution Server OMS for downstream messages) | Number INT64 | N |
sequenceNumber | Event sequence number, if known. Similar to tag MsgSeqNum(34) in FIX ExecutionReport. Note: behavior of this field depends on event source. For example, some sources maintain monotonously increasing session-wide sequence number, while others may keep different sequences for different instruments. Sequence numbers are reset periodically (daily or weekly). | Number INT32 | N |
side | Order Side.
| String ENUM | N |
sourceId | Identifies message source (e.g. FIX Sender Comp ID or trading connector). For internal orders source identifies source Anvil component (e.g. "TWAP" algo). Source is used for ID uniqueness. | String ALPHANUMERIC(10) | Y |
stopPrice | Order stop price (when applicable according to order type) | String DECIMAL | N |
symbol | Idetifies trading instrument. | String | Y |
timeInForce | Order Time-In-Force (TIF) condition
| String ENUM | N |
timestamp | Message timestamp (in epoch time). Similar to tag TransactTime(60) in FIX ExecutionReport. | String TIMESTAMP | Y |
traderGroup | Assigned by Deltix Trading Node and identifies single group that order's Trader belongs to. Helps to filter out orders available in order reports. | String | N |
traderId | User who submitted this order (manually or automatically) | String | N |
userData | User-defined cookie that was specified on order. For example, order reason. Sometimes custom order attributes are sometimes too heavy. | String | N |
vendorRejectCode | Vendor-spec rejection code | Number INT32 | N |
OrderNewEvent
This event confirms that order became active on destination execution venue.
Usually this event communicates that order reached destination and is working.
Note: that some execution venues skip this event and may send FILLs immediately.
Corresponds to ExecutionReport(8) with ExecType(150)=New.
Field | Description | Type | Required |
---|---|---|---|
account | Trading Account. | String | N |
attributes | Custom attributes. Each attribute is a pair of integer key and text value. We recommend tag numbers of FIX protocol as attribute keys where possible. | Array of [CustomAttribute] | N |
averagePrice | Average fill price for currently executed shares for chain of orders. Corresponds to FIX tag AvgPx(6). This field is undefined if and only if cumulative quantity is undefined. (Since some instruments are executed with negative prices or sometimes even with price equal to zero there is no way to represent 'undefined' value other than binding this field to Cumulative Quantity). | String DECIMAL | N |
clearingAccount | Clearing Account | String | N |
clearingBroker | Clearing Broker Since version 1.8. | String | N |
correlationOrderId | Matches orderId of the first order request in cancel-replace chain of orders. | String | N |
cumulativeQuantity | Currently executed number of contracts for chain of orders. Corresponds to FIX tag CumQty(14). | String DECIMAL | N |
currency | Identifies currency used for prices in alphanumeric encoding. Wherever possible Deltix uses ISO 4217 currency codes. Crypto currencies use Centralized Security Master codes (for example, Bitcoin is "BTC" rather than "XBT"). | String ALPHANUMERIC(10) | N |
destinationId | Identifies message final destination (trading connector). | String ALPHANUMERIC(10) | N |
displayQuantity | "MaxShow/DisplaySize" order quantity in fixed-point representation. Can be used for iceberg orders. Set to -1 when not defined. | String DECIMAL | N |
eventId | Identifies event in scope of single order or cancel replace chain. This attribute can be used to detect duplicate events (e.g. duplicate fills). | String | N |
exchangeId | Final execution venue (exchange, ECN, etc), usually represented by MIC code | String ALPHANUMERIC(10) | N |
expireTime | Order expiration time (when applicable according to Time In Force) | String TIMESTAMP | N |
externalOrderId | External Order ID assigned to the order by execution venue. Similar to tag OrderID(37) in FIX ExecutionReport. | String | N |
instrumentType | Security type / Asset Class.
| String ENUM | Y |
limitPrice | Order limit price (when applicable according to order type) | String DECIMAL | N |
minQuantity | Minimum quantity allowed for execution, in fixed-point representation. Optional attribute supported by some execution venues. Set to -1 when not defined. | String DECIMAL | N |
moduleKey | Used by QuantOffice orders to identify strategy that placed this order. Other clients can use this as custom field for order tagging and position tracking. Since version 1.7. | String | N |
orderId | Order ID. Identifies order described by this event Similar to tag ClOrdId(11) in FIX ExecutionReport (except for CancelPending/CancelRejected/Cancelled messages that pass order od from tag 41). | String | Y |
orderStatus | Describes current state of order, if known. Similar to tag OrderStatus(39) in FIX ExecutionReport.
| String ENUM | N |
orderType | Order Type.
| String ENUM | N |
originalTimestamp | Exchange-provided event time (optional). This is in contrast to .timestamp field which records moment of time when Ember trade connector received this event. Since version 1.7. | String TIMESTAMP | N |
parentOrderId | Identifies parent algo-order. | String | N |
parentSourceId | Identifies source of parent algo-order. | String ALPHANUMERIC(10) | N |
party | Desrcibes business entity involved in this transaction Since version 1.8. | String | N |
portfolioKey | Used by QuantOffice orders to identify portfolio this order belongs to. Other clients can use this as custom field for order tagging and position tracking. Since version 1.7. | String | N |
quantity | Order quantity in fixed-point representation. | String DECIMAL | N |
remainingQuantity | Quantity open for further execution. Corresponds to FIX tag LeavesQty(151). Reflects the cumulative result of all versions of an order in cancel-replace chain. (If the order status is Canceled or Rejected or CompletelyFilled (the order is no longer active) then LeavesQty (151) could be 0, otherwise LeavesQty (151) = OrderQty (38) - CumQty (14).) | String DECIMAL | N |
sequence | Message sequence number (set by Execution Server OMS for downstream messages) | Number INT64 | N |
sequenceNumber | Event sequence number, if known. Similar to tag MsgSeqNum(34) in FIX ExecutionReport. Note: behavior of this field depends on event source. For example, some sources maintain monotonously increasing session-wide sequence number, while others may keep different sequences for different instruments. Sequence numbers are reset periodically (daily or weekly). | Number INT32 | N |
side | Order Side.
| String ENUM | N |
sourceId | Identifies message source (e.g. FIX Sender Comp ID or trading connector). For internal orders source identifies source Anvil component (e.g. "TWAP" algo). Source is used for ID uniqueness. | String ALPHANUMERIC(10) | Y |
stopPrice | Order stop price (when applicable according to order type) | String DECIMAL | N |
symbol | Idetifies trading instrument. | String | Y |
timeInForce | Order Time-In-Force (TIF) condition
| String ENUM | N |
timestamp | Message timestamp (in epoch time). Similar to tag TransactTime(60) in FIX ExecutionReport. | String TIMESTAMP | Y |
traderGroup | Assigned by Deltix Trading Node and identifies single group that order's Trader belongs to. Helps to filter out orders available in order reports. | String | N |
traderId | User who submitted this order (manually or automatically) | String | N |
userData | User-defined cookie that was specified on order. For example, order reason. Sometimes custom order attributes are sometimes too heavy. | String | N |
OrderPendingCancelEvent
This event confirms receipt of Cancel request. Does NOT indicate that the order has been cancelled.
Corresponds to ExecutionReport(8) with ExecType(150)=Pending Cancel.
Field | Description | Type | Required |
---|---|---|---|
account | Trading Account. | String | N |
attributes | Custom attributes. Each attribute is a pair of integer key and text value. We recommend tag numbers of FIX protocol as attribute keys where possible. | Array of [CustomAttribute] | N |
averagePrice | Average fill price for currently executed shares for chain of orders. Corresponds to FIX tag AvgPx(6). This field is undefined if and only if cumulative quantity is undefined. (Since some instruments are executed with negative prices or sometimes even with price equal to zero there is no way to represent 'undefined' value other than binding this field to Cumulative Quantity). | String DECIMAL | N |
clearingAccount | Clearing Account | String | N |
clearingBroker | Clearing Broker Since version 1.8. | String | N |
correlationOrderId | Matches orderId of the first order request in cancel-replace chain of orders. | String | N |
cumulativeQuantity | Currently executed number of contracts for chain of orders. Corresponds to FIX tag CumQty(14). | String DECIMAL | N |
currency | Identifies currency used for prices in alphanumeric encoding. Wherever possible Deltix uses ISO 4217 currency codes. Crypto currencies use Centralized Security Master codes (for example, Bitcoin is "BTC" rather than "XBT"). | String ALPHANUMERIC(10) | N |
destinationId | Identifies message final destination (trading connector). | String ALPHANUMERIC(10) | N |
displayQuantity | "MaxShow/DisplaySize" order quantity in fixed-point representation. Can be used for iceberg orders. Set to -1 when not defined. | String DECIMAL | N |
eventId | Identifies event in scope of single order or cancel replace chain. This attribute can be used to detect duplicate events (e.g. duplicate fills). | String | N |
exchangeId | Final execution venue (exchange, ECN, etc), usually represented by MIC code | String ALPHANUMERIC(10) | N |
expireTime | Order expiration time (when applicable according to Time In Force) | String TIMESTAMP | N |
externalOrderId | External Order ID assigned to the order by execution venue. Similar to tag OrderID(37) in FIX ExecutionReport. | String | N |
instrumentType | Security type / Asset Class.
| String ENUM | Y |
limitPrice | Order limit price (when applicable according to order type) | String DECIMAL | N |
minQuantity | Minimum quantity allowed for execution, in fixed-point representation. Optional attribute supported by some execution venues. Set to -1 when not defined. | String DECIMAL | N |
moduleKey | Used by QuantOffice orders to identify strategy that placed this order. Other clients can use this as custom field for order tagging and position tracking. Since version 1.7. | String | N |
orderId | Order ID. Identifies order described by this event Similar to tag ClOrdId(11) in FIX ExecutionReport (except for CancelPending/CancelRejected/Cancelled messages that pass order od from tag 41). | String | Y |
orderStatus | Describes current state of order, if known. Similar to tag OrderStatus(39) in FIX ExecutionReport.
| String ENUM | N |
orderType | Order Type.
| String ENUM | N |
originalTimestamp | Exchange-provided event time (optional). This is in contrast to .timestamp field which records moment of time when Ember trade connector received this event. Since version 1.7. | String TIMESTAMP | N |
parentOrderId | Identifies parent algo-order. | String | N |
parentSourceId | Identifies source of parent algo-order. | String ALPHANUMERIC(10) | N |
party | Desrcibes business entity involved in this transaction Since version 1.8. | String | N |
portfolioKey | Used by QuantOffice orders to identify portfolio this order belongs to. Other clients can use this as custom field for order tagging and position tracking. Since version 1.7. | String | N |
quantity | Order quantity in fixed-point representation. | String DECIMAL | N |
reason | Cancellation reason. | String | N |
remainingQuantity | Quantity open for further execution. Corresponds to FIX tag LeavesQty(151). Reflects the cumulative result of all versions of an order in cancel-replace chain. (If the order status is Canceled or Rejected or CompletelyFilled (the order is no longer active) then LeavesQty (151) could be 0, otherwise LeavesQty (151) = OrderQty (38) - CumQty (14).) | String DECIMAL | N |
requestId | Identifies cancel request that has been rejected by this event. May be skipped in case of unsolicited cancel. | String | N |
sequence | Message sequence number (set by Execution Server OMS for downstream messages) | Number INT64 | N |
sequenceNumber | Event sequence number, if known. Similar to tag MsgSeqNum(34) in FIX ExecutionReport. Note: behavior of this field depends on event source. For example, some sources maintain monotonously increasing session-wide sequence number, while others may keep different sequences for different instruments. Sequence numbers are reset periodically (daily or weekly). | Number INT32 | N |
side | Order Side.
| String ENUM | N |
sourceId | Identifies message source (e.g. FIX Sender Comp ID or trading connector). For internal orders source identifies source Anvil component (e.g. "TWAP" algo). Source is used for ID uniqueness. | String ALPHANUMERIC(10) | Y |
stopPrice | Order stop price (when applicable according to order type) | String DECIMAL | N |
symbol | Idetifies trading instrument. | String | Y |
timeInForce | Order Time-In-Force (TIF) condition
| String ENUM | N |
timestamp | Message timestamp (in epoch time). Similar to tag TransactTime(60) in FIX ExecutionReport. | String TIMESTAMP | Y |
traderGroup | Assigned by Deltix Trading Node and identifies single group that order's Trader belongs to. Helps to filter out orders available in order reports. | String | N |
traderId | User who submitted this order (manually or automatically) | String | N |
userData | User-defined cookie that was specified on order. For example, order reason. Sometimes custom order attributes are sometimes too heavy. | String | N |
OrderPendingNewEvent
This is order ACK event: the order has been received by destination venue (getBroker, getExchange, ECN) but not yet accepted for execution.
Some execution venues skip it (and report OrderNewEvent or even TradeReport as the first event).
Corresponds to ExecutionReport(8) with ExecType(150)=Pending New.
Field | Description | Type | Required |
---|---|---|---|
account | Trading Account. | String | N |
attributes | Custom attributes. Each attribute is a pair of integer key and text value. We recommend tag numbers of FIX protocol as attribute keys where possible. | Array of [CustomAttribute] | N |
averagePrice | Average fill price for currently executed shares for chain of orders. Corresponds to FIX tag AvgPx(6). This field is undefined if and only if cumulative quantity is undefined. (Since some instruments are executed with negative prices or sometimes even with price equal to zero there is no way to represent 'undefined' value other than binding this field to Cumulative Quantity). | String DECIMAL | N |
clearingAccount | Clearing Account | String | N |
clearingBroker | Clearing Broker Since version 1.8. | String | N |
correlationOrderId | Matches orderId of the first order request in cancel-replace chain of orders. | String | N |
cumulativeQuantity | Currently executed number of contracts for chain of orders. Corresponds to FIX tag CumQty(14). | String DECIMAL | N |
currency | Identifies currency used for prices in alphanumeric encoding. Wherever possible Deltix uses ISO 4217 currency codes. Crypto currencies use Centralized Security Master codes (for example, Bitcoin is "BTC" rather than "XBT"). | String ALPHANUMERIC(10) | N |
destinationId | Identifies message final destination (trading connector). | String ALPHANUMERIC(10) | N |
displayQuantity | "MaxShow/DisplaySize" order quantity in fixed-point representation. Can be used for iceberg orders. Set to -1 when not defined. | String DECIMAL | N |
eventId | Identifies event in scope of single order or cancel replace chain. This attribute can be used to detect duplicate events (e.g. duplicate fills). | String | N |
exchangeId | Final execution venue (exchange, ECN, etc), usually represented by MIC code | String ALPHANUMERIC(10) | N |
expireTime | Order expiration time (when applicable according to Time In Force) | String TIMESTAMP | N |
externalOrderId | External Order ID assigned to the order by execution venue. Similar to tag OrderID(37) in FIX ExecutionReport. | String | N |
instrumentType | Security type / Asset Class.
| String ENUM | Y |
limitPrice | Order limit price (when applicable according to order type) | String DECIMAL | N |
minQuantity | Minimum quantity allowed for execution, in fixed-point representation. Optional attribute supported by some execution venues. Set to -1 when not defined. | String DECIMAL | N |
moduleKey | Used by QuantOffice orders to identify strategy that placed this order. Other clients can use this as custom field for order tagging and position tracking. Since version 1.7. | String | N |
orderId | Order ID. Identifies order described by this event Similar to tag ClOrdId(11) in FIX ExecutionReport (except for CancelPending/CancelRejected/Cancelled messages that pass order od from tag 41). | String | Y |
orderStatus | Describes current state of order, if known. Similar to tag OrderStatus(39) in FIX ExecutionReport.
| String ENUM | N |
orderType | Order Type.
| String ENUM | N |
originalTimestamp | Exchange-provided event time (optional). This is in contrast to .timestamp field which records moment of time when Ember trade connector received this event. Since version 1.7. | String TIMESTAMP | N |
parentOrderId | Identifies parent algo-order. | String | N |
parentSourceId | Identifies source of parent algo-order. | String ALPHANUMERIC(10) | N |
party | Desrcibes business entity involved in this transaction Since version 1.8. | String | N |
portfolioKey | Used by QuantOffice orders to identify portfolio this order belongs to. Other clients can use this as custom field for order tagging and position tracking. Since version 1.7. | String | N |
quantity | Order quantity in fixed-point representation. | String DECIMAL | N |
remainingQuantity | Quantity open for further execution. Corresponds to FIX tag LeavesQty(151). Reflects the cumulative result of all versions of an order in cancel-replace chain. (If the order status is Canceled or Rejected or CompletelyFilled (the order is no longer active) then LeavesQty (151) could be 0, otherwise LeavesQty (151) = OrderQty (38) - CumQty (14).) | String DECIMAL | N |
sequence | Message sequence number (set by Execution Server OMS for downstream messages) | Number INT64 | N |
sequenceNumber | Event sequence number, if known. Similar to tag MsgSeqNum(34) in FIX ExecutionReport. Note: behavior of this field depends on event source. For example, some sources maintain monotonously increasing session-wide sequence number, while others may keep different sequences for different instruments. Sequence numbers are reset periodically (daily or weekly). | Number INT32 | N |
side | Order Side.
| String ENUM | N |
sourceId | Identifies message source (e.g. FIX Sender Comp ID or trading connector). For internal orders source identifies source Anvil component (e.g. "TWAP" algo). Source is used for ID uniqueness. | String ALPHANUMERIC(10) | Y |
stopPrice | Order stop price (when applicable according to order type) | String DECIMAL | N |
symbol | Idetifies trading instrument. | String | Y |
timeInForce | Order Time-In-Force (TIF) condition
| String ENUM | N |
timestamp | Message timestamp (in epoch time). Similar to tag TransactTime(60) in FIX ExecutionReport. | String TIMESTAMP | Y |
traderGroup | Assigned by Deltix Trading Node and identifies single group that order's Trader belongs to. Helps to filter out orders available in order reports. | String | N |
traderId | User who submitted this order (manually or automatically) | String | N |
userData | User-defined cookie that was specified on order. For example, order reason. Sometimes custom order attributes are sometimes too heavy. | String | N |
OrderPendingReplaceEvent
This event confirms receipt of CancelReplace request. Does NOT indicate that the order has been replaced.
Corresponds to ExecutionReport(8) with ExecType(150)=Pending Replace.
Field | Description | Type | Required |
---|---|---|---|
account | Trading Account. | String | N |
attributes | Custom attributes. Each attribute is a pair of integer key and text value. We recommend tag numbers of FIX protocol as attribute keys where possible. | Array of [CustomAttribute] | N |
averagePrice | Average fill price for currently executed shares for chain of orders. Corresponds to FIX tag AvgPx(6). This field is undefined if and only if cumulative quantity is undefined. (Since some instruments are executed with negative prices or sometimes even with price equal to zero there is no way to represent 'undefined' value other than binding this field to Cumulative Quantity). | String DECIMAL | N |
clearingAccount | Clearing Account | String | N |
clearingBroker | Clearing Broker Since version 1.8. | String | N |
correlationOrderId | Matches orderId of the first order request in cancel-replace chain of orders. | String | N |
cumulativeQuantity | Currently executed number of contracts for chain of orders. Corresponds to FIX tag CumQty(14). | String DECIMAL | N |
currency | Identifies currency used for prices in alphanumeric encoding. Wherever possible Deltix uses ISO 4217 currency codes. Crypto currencies use Centralized Security Master codes (for example, Bitcoin is "BTC" rather than "XBT"). | String ALPHANUMERIC(10) | N |
destinationId | Identifies message final destination (trading connector). | String ALPHANUMERIC(10) | N |
displayQuantity | "MaxShow/DisplaySize" order quantity in fixed-point representation. Can be used for iceberg orders. Set to -1 when not defined. | String DECIMAL | N |
eventId | Identifies event in scope of single order or cancel replace chain. This attribute can be used to detect duplicate events (e.g. duplicate fills). | String | N |
exchangeId | Final execution venue (exchange, ECN, etc), usually represented by MIC code | String ALPHANUMERIC(10) | N |
expireTime | Order expiration time (when applicable according to Time In Force) | String TIMESTAMP | N |
externalOrderId | External Order ID assigned to the order by execution venue. Similar to tag OrderID(37) in FIX ExecutionReport. | String | N |
instrumentType | Security type / Asset Class.
| String ENUM | Y |
limitPrice | Order limit price (when applicable according to order type) | String DECIMAL | N |
minQuantity | Minimum quantity allowed for execution, in fixed-point representation. Optional attribute supported by some execution venues. Set to -1 when not defined. | String DECIMAL | N |
moduleKey | Used by QuantOffice orders to identify strategy that placed this order. Other clients can use this as custom field for order tagging and position tracking. Since version 1.7. | String | N |
orderId | Order ID. Identifies order described by this event Similar to tag ClOrdId(11) in FIX ExecutionReport (except for CancelPending/CancelRejected/Cancelled messages that pass order od from tag 41). | String | Y |
orderStatus | Describes current state of order, if known. Similar to tag OrderStatus(39) in FIX ExecutionReport.
| String ENUM | N |
orderType | Order Type.
| String ENUM | N |
originalOrderId | Identifies original order (order that is about to be replaced). Set from FIX Tag OrgClOrdId(41). Note that ID of replacement order is returned by OrderEvent::OrderId method. | String | Y |
originalTimestamp | Exchange-provided event time (optional). This is in contrast to .timestamp field which records moment of time when Ember trade connector received this event. Since version 1.7. | String TIMESTAMP | N |
parentOrderId | Identifies parent algo-order. | String | N |
parentSourceId | Identifies source of parent algo-order. | String ALPHANUMERIC(10) | N |
party | Desrcibes business entity involved in this transaction Since version 1.8. | String | N |
portfolioKey | Used by QuantOffice orders to identify portfolio this order belongs to. Other clients can use this as custom field for order tagging and position tracking. Since version 1.7. | String | N |
quantity | Order quantity in fixed-point representation. | String DECIMAL | N |
remainingQuantity | Quantity open for further execution. Corresponds to FIX tag LeavesQty(151). Reflects the cumulative result of all versions of an order in cancel-replace chain. (If the order status is Canceled or Rejected or CompletelyFilled (the order is no longer active) then LeavesQty (151) could be 0, otherwise LeavesQty (151) = OrderQty (38) - CumQty (14).) | String DECIMAL | N |
sequence | Message sequence number (set by Execution Server OMS for downstream messages) | Number INT64 | N |
sequenceNumber | Event sequence number, if known. Similar to tag MsgSeqNum(34) in FIX ExecutionReport. Note: behavior of this field depends on event source. For example, some sources maintain monotonously increasing session-wide sequence number, while others may keep different sequences for different instruments. Sequence numbers are reset periodically (daily or weekly). | Number INT32 | N |
side | Order Side.
| String ENUM | N |
sourceId | Identifies message source (e.g. FIX Sender Comp ID or trading connector). For internal orders source identifies source Anvil component (e.g. "TWAP" algo). Source is used for ID uniqueness. | String ALPHANUMERIC(10) | Y |
stopPrice | Order stop price (when applicable according to order type) | String DECIMAL | N |
symbol | Idetifies trading instrument. | String | Y |
timeInForce | Order Time-In-Force (TIF) condition
| String ENUM | N |
timestamp | Message timestamp (in epoch time). Similar to tag TransactTime(60) in FIX ExecutionReport. | String TIMESTAMP | Y |
traderGroup | Assigned by Deltix Trading Node and identifies single group that order's Trader belongs to. Helps to filter out orders available in order reports. | String | N |
traderId | User who submitted this order (manually or automatically) | String | N |
userData | User-defined cookie that was specified on order. For example, order reason. Sometimes custom order attributes are sometimes too heavy. | String | N |
OrderRejectEvent
Order is rejected (no further executions are possible). Order reached final state and no longer active.
This event can be issued in response for NewOrderRequest, but neither for Replace Order Request, nor for Cancel Request.
Corresponds to ExecutionReport(8) with ExecType(150)=Rejected.
Field | Description | Type | Required |
---|---|---|---|
account | Trading Account. | String | N |
attributes | Custom attributes. Each attribute is a pair of integer key and text value. We recommend tag numbers of FIX protocol as attribute keys where possible. | Array of [CustomAttribute] | N |
averagePrice | Average fill price for currently executed shares for chain of orders. Corresponds to FIX tag AvgPx(6). This field is undefined if and only if cumulative quantity is undefined. (Since some instruments are executed with negative prices or sometimes even with price equal to zero there is no way to represent 'undefined' value other than binding this field to Cumulative Quantity). | String DECIMAL | N |
clearingAccount | Clearing Account | String | N |
clearingBroker | Clearing Broker Since version 1.8. | String | N |
correlationOrderId | Matches orderId of the first order request in cancel-replace chain of orders. | String | N |
cumulativeQuantity | Currently executed number of contracts for chain of orders. Corresponds to FIX tag CumQty(14). | String DECIMAL | N |
currency | Identifies currency used for prices in alphanumeric encoding. Wherever possible Deltix uses ISO 4217 currency codes. Crypto currencies use Centralized Security Master codes (for example, Bitcoin is "BTC" rather than "XBT"). | String ALPHANUMERIC(10) | N |
deltixRejectCode | Deltix-spec rejection code. See DeltixRejectCodes. | Number INT32 | N |
destinationId | Identifies message final destination (trading connector). | String ALPHANUMERIC(10) | N |
displayQuantity | "MaxShow/DisplaySize" order quantity in fixed-point representation. Can be used for iceberg orders. Set to -1 when not defined. | String DECIMAL | N |
eventId | Identifies event in scope of single order or cancel replace chain. This attribute can be used to detect duplicate events (e.g. duplicate fills). | String | N |
exchangeId | Final execution venue (exchange, ECN, etc), usually represented by MIC code | String ALPHANUMERIC(10) | N |
expireTime | Order expiration time (when applicable according to Time In Force) | String TIMESTAMP | N |
externalOrderId | External Order ID assigned to the order by execution venue. Similar to tag OrderID(37) in FIX ExecutionReport. | String | N |
instrumentType | Security type / Asset Class.
| String ENUM | Y |
limitPrice | Order limit price (when applicable according to order type) | String DECIMAL | N |
minQuantity | Minimum quantity allowed for execution, in fixed-point representation. Optional attribute supported by some execution venues. Set to -1 when not defined. | String DECIMAL | N |
moduleKey | Used by QuantOffice orders to identify strategy that placed this order. Other clients can use this as custom field for order tagging and position tracking. Since version 1.7. | String | N |
orderId | Order ID. Identifies order described by this event Similar to tag ClOrdId(11) in FIX ExecutionReport (except for CancelPending/CancelRejected/Cancelled messages that pass order od from tag 41). | String | Y |
orderStatus | Describes current state of order, if known. Similar to tag OrderStatus(39) in FIX ExecutionReport.
| String ENUM | N |
orderType | Order Type.
| String ENUM | N |
originalTimestamp | Exchange-provided event time (optional). This is in contrast to .timestamp field which records moment of time when Ember trade connector received this event. Since version 1.7. | String TIMESTAMP | N |
parentOrderId | Identifies parent algo-order. | String | N |
parentSourceId | Identifies source of parent algo-order. | String ALPHANUMERIC(10) | N |
party | Desrcibes business entity involved in this transaction Since version 1.8. | String | N |
portfolioKey | Used by QuantOffice orders to identify portfolio this order belongs to. Other clients can use this as custom field for order tagging and position tracking. Since version 1.7. | String | N |
quantity | Order quantity in fixed-point representation. | String DECIMAL | N |
reason | Rejection message from execution side. | String | N |
remainingQuantity | Quantity open for further execution. Corresponds to FIX tag LeavesQty(151). Reflects the cumulative result of all versions of an order in cancel-replace chain. (If the order status is Canceled or Rejected or CompletelyFilled (the order is no longer active) then LeavesQty (151) could be 0, otherwise LeavesQty (151) = OrderQty (38) - CumQty (14).) | String DECIMAL | N |
sequence | Message sequence number (set by Execution Server OMS for downstream messages) | Number INT64 | N |
sequenceNumber | Event sequence number, if known. Similar to tag MsgSeqNum(34) in FIX ExecutionReport. Note: behavior of this field depends on event source. For example, some sources maintain monotonously increasing session-wide sequence number, while others may keep different sequences for different instruments. Sequence numbers are reset periodically (daily or weekly). | Number INT32 | N |
side | Order Side.
| String ENUM | N |
sourceId | Identifies message source (e.g. FIX Sender Comp ID or trading connector). For internal orders source identifies source Anvil component (e.g. "TWAP" algo). Source is used for ID uniqueness. | String ALPHANUMERIC(10) | Y |
stopPrice | Order stop price (when applicable according to order type) | String DECIMAL | N |
symbol | Idetifies trading instrument. | String | Y |
timeInForce | Order Time-In-Force (TIF) condition
| String ENUM | N |
timestamp | Message timestamp (in epoch time). Similar to tag TransactTime(60) in FIX ExecutionReport. | String TIMESTAMP | Y |
traderGroup | Assigned by Deltix Trading Node and identifies single group that order's Trader belongs to. Helps to filter out orders available in order reports. | String | N |
traderId | User who submitted this order (manually or automatically) | String | N |
userData | User-defined cookie that was specified on order. For example, order reason. Sometimes custom order attributes are sometimes too heavy. | String | N |
vendorRejectCode | Vendor-spec rejection reason (for example https://www.cmegroup.com/confluence/display/EPICSANDBOX/iLink+Reject+Codes ). This field must be filled if reject comes from execution venue (vendor) otherwise it will be set to MIN_INTEGER (Integer.MIN_VALUE). If vendor does not provide reject codes this field will be set to zero. | Number INT32 | N |
OrderReplaceEvent
Order has been modified. This is positive ACK event for OrderReplaceRequest.
Corresponds to ExecutionReport(8) with ExecType(150)=Replaced.
Field | Description | Type | Required |
---|---|---|---|
account | Trading Account. | String | N |
attributes | Custom attributes. Each attribute is a pair of integer key and text value. We recommend tag numbers of FIX protocol as attribute keys where possible. | Array of [CustomAttribute] | N |
averagePrice | Average fill price for currently executed shares for chain of orders. Corresponds to FIX tag AvgPx(6). This field is undefined if and only if cumulative quantity is undefined. (Since some instruments are executed with negative prices or sometimes even with price equal to zero there is no way to represent 'undefined' value other than binding this field to Cumulative Quantity). | String DECIMAL | N |
clearingAccount | Clearing Account | String | N |
clearingBroker | Clearing Broker Since version 1.8. | String | N |
correlationOrderId | Matches orderId of the first order request in cancel-replace chain of orders. | String | N |
cumulativeQuantity | Currently executed number of contracts for chain of orders. Corresponds to FIX tag CumQty(14). | String DECIMAL | N |
currency | Identifies currency used for prices in alphanumeric encoding. Wherever possible Deltix uses ISO 4217 currency codes. Crypto currencies use Centralized Security Master codes (for example, Bitcoin is "BTC" rather than "XBT"). | String ALPHANUMERIC(10) | N |
destinationId | Identifies message final destination (trading connector). | String ALPHANUMERIC(10) | N |
displayQuantity | "MaxShow/DisplaySize" order quantity in fixed-point representation. Can be used for iceberg orders. Set to -1 when not defined. | String DECIMAL | N |
eventId | Identifies event in scope of single order or cancel replace chain. This attribute can be used to detect duplicate events (e.g. duplicate fills). | String | N |
exchangeId | Final execution venue (exchange, ECN, etc), usually represented by MIC code | String ALPHANUMERIC(10) | N |
expireTime | Order expiration time (when applicable according to Time In Force) | String TIMESTAMP | N |
externalOrderId | External Order ID assigned to the order by execution venue. Similar to tag OrderID(37) in FIX ExecutionReport. | String | N |
instrumentType | Security type / Asset Class.
| String ENUM | Y |
limitPrice | Order limit price (when applicable according to order type) | String DECIMAL | N |
minQuantity | Minimum quantity allowed for execution, in fixed-point representation. Optional attribute supported by some execution venues. Set to -1 when not defined. | String DECIMAL | N |
moduleKey | Used by QuantOffice orders to identify strategy that placed this order. Other clients can use this as custom field for order tagging and position tracking. Since version 1.7. | String | N |
orderId | Order ID. Identifies order described by this event Similar to tag ClOrdId(11) in FIX ExecutionReport (except for CancelPending/CancelRejected/Cancelled messages that pass order od from tag 41). | String | Y |
orderStatus | Describes current state of order, if known. Similar to tag OrderStatus(39) in FIX ExecutionReport.
| String ENUM | N |
orderType | Order Type.
| String ENUM | N |
originalOrderId | Identifies original order (order that has been replaced). Set from FIX Tag OrgClOrdId(41). | String | Y |
originalTimestamp | Exchange-provided event time (optional). This is in contrast to .timestamp field which records moment of time when Ember trade connector received this event. Since version 1.7. | String TIMESTAMP | N |
parentOrderId | Identifies parent algo-order. | String | N |
parentSourceId | Identifies source of parent algo-order. | String ALPHANUMERIC(10) | N |
party | Desrcibes business entity involved in this transaction Since version 1.8. | String | N |
portfolioKey | Used by QuantOffice orders to identify portfolio this order belongs to. Other clients can use this as custom field for order tagging and position tracking. Since version 1.7. | String | N |
quantity | Order quantity in fixed-point representation. | String DECIMAL | N |
remainingQuantity | Quantity open for further execution. Corresponds to FIX tag LeavesQty(151). Reflects the cumulative result of all versions of an order in cancel-replace chain. (If the order status is Canceled or Rejected or CompletelyFilled (the order is no longer active) then LeavesQty (151) could be 0, otherwise LeavesQty (151) = OrderQty (38) - CumQty (14).) | String DECIMAL | N |
sequence | Message sequence number (set by Execution Server OMS for downstream messages) | Number INT64 | N |
sequenceNumber | Event sequence number, if known. Similar to tag MsgSeqNum(34) in FIX ExecutionReport. Note: behavior of this field depends on event source. For example, some sources maintain monotonously increasing session-wide sequence number, while others may keep different sequences for different instruments. Sequence numbers are reset periodically (daily or weekly). | Number INT32 | N |
side | Order Side.
| String ENUM | N |
sourceId | Identifies message source (e.g. FIX Sender Comp ID or trading connector). For internal orders source identifies source Anvil component (e.g. "TWAP" algo). Source is used for ID uniqueness. | String ALPHANUMERIC(10) | Y |
stopPrice | Order stop price (when applicable according to order type) | String DECIMAL | N |
symbol | Idetifies trading instrument. | String | Y |
timeInForce | Order Time-In-Force (TIF) condition
| String ENUM | N |
timestamp | Message timestamp (in epoch time). Similar to tag TransactTime(60) in FIX ExecutionReport. | String TIMESTAMP | Y |
traderGroup | Assigned by Deltix Trading Node and identifies single group that order's Trader belongs to. Helps to filter out orders available in order reports. | String | N |
traderId | User who submitted this order (manually or automatically) | String | N |
userData | User-defined cookie that was specified on order. For example, order reason. Sometimes custom order attributes are sometimes too heavy. | String | N |
OrderReplaceRejectEvent
This event is issued by execution venue when previously issued CancelReplace request cannot be honored.
This is NACK event for OrderReplaceRequest.
Original order may or may not be active as a result of rejected replacement attempt.
Optional fields OrderStatus and RemainingQuantity communicate current state of the original order.
This event corresponds to FIX CancelRejected(9) message with CxlRejResponseTo(434)= reject of cancel-replace request(2).
Field | Description | Type | Required |
---|---|---|---|
account | Trading Account. | String | N |
attributes | Custom attributes. Each attribute is a pair of integer key and text value. We recommend tag numbers of FIX protocol as attribute keys where possible. | Array of [CustomAttribute] | N |
averagePrice | Average fill price for currently executed shares for chain of orders. Corresponds to FIX tag AvgPx(6). This field is undefined if and only if cumulative quantity is undefined. (Since some instruments are executed with negative prices or sometimes even with price equal to zero there is no way to represent 'undefined' value other than binding this field to Cumulative Quantity). | String DECIMAL | N |
clearingAccount | Clearing Account | String | N |
clearingBroker | Clearing Broker Since version 1.8. | String | N |
correlationOrderId | Matches orderId of the first order request in cancel-replace chain of orders. | String | N |
cumulativeQuantity | Currently executed number of contracts for chain of orders. Corresponds to FIX tag CumQty(14). | String DECIMAL | N |
currency | Identifies currency used for prices in alphanumeric encoding. Wherever possible Deltix uses ISO 4217 currency codes. Crypto currencies use Centralized Security Master codes (for example, Bitcoin is "BTC" rather than "XBT"). | String ALPHANUMERIC(10) | N |
deltixRejectCode | Deltix-spec rejection code. See DeltixRejectCodes. | Number INT32 | N |
destinationId | Identifies message final destination (trading connector). | String ALPHANUMERIC(10) | N |
displayQuantity | "MaxShow/DisplaySize" order quantity in fixed-point representation. Can be used for iceberg orders. Set to -1 when not defined. | String DECIMAL | N |
eventId | Identifies event in scope of single order or cancel replace chain. This attribute can be used to detect duplicate events (e.g. duplicate fills). | String | N |
exchangeId | Final execution venue (exchange, ECN, etc), usually represented by MIC code | String ALPHANUMERIC(10) | N |
expireTime | Order expiration time (when applicable according to Time In Force) | String TIMESTAMP | N |
externalOrderId | External Order ID assigned to the order by execution venue. Similar to tag OrderID(37) in FIX ExecutionReport. | String | N |
instrumentType | Security type / Asset Class.
| String ENUM | Y |
limitPrice | Order limit price (when applicable according to order type) | String DECIMAL | N |
minQuantity | Minimum quantity allowed for execution, in fixed-point representation. Optional attribute supported by some execution venues. Set to -1 when not defined. | String DECIMAL | N |
moduleKey | Used by QuantOffice orders to identify strategy that placed this order. Other clients can use this as custom field for order tagging and position tracking. Since version 1.7. | String | N |
orderId | Order ID. Identifies order described by this event Similar to tag ClOrdId(11) in FIX ExecutionReport (except for CancelPending/CancelRejected/Cancelled messages that pass order od from tag 41). | String | Y |
orderStatus | Describes current state of order, if known. Similar to tag OrderStatus(39) in FIX ExecutionReport.
| String ENUM | N |
orderType | Order Type.
| String ENUM | N |
originalOrderId | Order ID of the original order. Set from FIX Tag OrgClOrdId(41). | String | Y |
originalTimestamp | Exchange-provided event time (optional). This is in contrast to .timestamp field which records moment of time when Ember trade connector received this event. Since version 1.7. | String TIMESTAMP | N |
parentOrderId | Identifies parent algo-order. | String | N |
parentSourceId | Identifies source of parent algo-order. | String ALPHANUMERIC(10) | N |
party | Desrcibes business entity involved in this transaction Since version 1.8. | String | N |
portfolioKey | Used by QuantOffice orders to identify portfolio this order belongs to. Other clients can use this as custom field for order tagging and position tracking. Since version 1.7. | String | N |
quantity | Order quantity in fixed-point representation. | String DECIMAL | N |
reason | Provides rejection reason. | String | N |
remainingQuantity | Quantity open for further execution. Corresponds to FIX tag LeavesQty(151). Reflects the cumulative result of all versions of an order in cancel-replace chain. (If the order status is Canceled or Rejected or CompletelyFilled (the order is no longer active) then LeavesQty (151) could be 0, otherwise LeavesQty (151) = OrderQty (38) - CumQty (14).) | String DECIMAL | N |
sequence | Message sequence number (set by Execution Server OMS for downstream messages) | Number INT64 | N |
sequenceNumber | Event sequence number, if known. Similar to tag MsgSeqNum(34) in FIX ExecutionReport. Note: behavior of this field depends on event source. For example, some sources maintain monotonously increasing session-wide sequence number, while others may keep different sequences for different instruments. Sequence numbers are reset periodically (daily or weekly). | Number INT32 | N |
side | Order Side.
| String ENUM | N |
sourceId | Identifies message source (e.g. FIX Sender Comp ID or trading connector). For internal orders source identifies source Anvil component (e.g. "TWAP" algo). Source is used for ID uniqueness. | String ALPHANUMERIC(10) | Y |
stopPrice | Order stop price (when applicable according to order type) | String DECIMAL | N |
symbol | Idetifies trading instrument. | String | Y |
timeInForce | Order Time-In-Force (TIF) condition
| String ENUM | N |
timestamp | Message timestamp (in epoch time). Similar to tag TransactTime(60) in FIX ExecutionReport. | String TIMESTAMP | Y |
traderGroup | Assigned by Deltix Trading Node and identifies single group that order's Trader belongs to. Helps to filter out orders available in order reports. | String | N |
traderId | User who submitted this order (manually or automatically) | String | N |
userData | User-defined cookie that was specified on order. For example, order reason. Sometimes custom order attributes are sometimes too heavy. | String | N |
vendorRejectCode | Vendor-spec rejection reason (for example https://www.cmegroup.com/confluence/display/EPICSANDBOX/iLink+Reject+Codes ). This field must be filled if reject comes from execution venue (vendor) otherwise it will be set to MIN_INTEGER (Integer.MIN_VALUE). If vendor does not provide reject codes this field will be set to zero. | Number INT32 | N |
OrderRestateEvent
Restated (ExecutionRpt sent unsolicited by client
Somewhat similar to unsolicited OrderStatusEvent. Communicates current status of an order.
Corresponds to ExecutionReport(8) with ExecType(150)=D [Restated].
Field | Description | Type | Required |
---|---|---|---|
account | Trading Account. | String | N |
attributes | Custom attributes. Each attribute is a pair of integer key and text value. We recommend tag numbers of FIX protocol as attribute keys where possible. | Array of [CustomAttribute] | N |
averagePrice | Average fill price for currently executed shares for chain of orders. Corresponds to FIX tag AvgPx(6). This field is undefined if and only if cumulative quantity is undefined. (Since some instruments are executed with negative prices or sometimes even with price equal to zero there is no way to represent 'undefined' value other than binding this field to Cumulative Quantity). | String DECIMAL | N |
clearingAccount | Clearing Account | String | N |
clearingBroker | Clearing Broker Since version 1.8. | String | N |
correlationOrderId | Matches orderId of the first order request in cancel-replace chain of orders. | String | N |
cumulativeQuantity | Currently executed number of contracts for chain of orders. Corresponds to FIX tag CumQty(14). | String DECIMAL | N |
currency | Identifies currency used for prices in alphanumeric encoding. Wherever possible Deltix uses ISO 4217 currency codes. Crypto currencies use Centralized Security Master codes (for example, Bitcoin is "BTC" rather than "XBT"). | String ALPHANUMERIC(10) | N |
destinationId | Identifies message final destination (trading connector). | String ALPHANUMERIC(10) | N |
displayQuantity | "MaxShow/DisplaySize" order quantity in fixed-point representation. Can be used for iceberg orders. Set to -1 when not defined. | String DECIMAL | N |
eventId | Identifies event in scope of single order or cancel replace chain. This attribute can be used to detect duplicate events (e.g. duplicate fills). | String | N |
exchangeId | Final execution venue (exchange, ECN, etc), usually represented by MIC code | String ALPHANUMERIC(10) | N |
execRestatementReason | identify reason for order restatement
| String ENUM | Y |
expireTime | Order expiration time (when applicable according to Time In Force) | String TIMESTAMP | N |
externalOrderId | External Order ID assigned to the order by execution venue. Similar to tag OrderID(37) in FIX ExecutionReport. | String | N |
instrumentType | Security type / Asset Class.
| String ENUM | Y |
limitPrice | Order limit price (when applicable according to order type) | String DECIMAL | N |
minQuantity | Minimum quantity allowed for execution, in fixed-point representation. Optional attribute supported by some execution venues. Set to -1 when not defined. | String DECIMAL | N |
moduleKey | Used by QuantOffice orders to identify strategy that placed this order. Other clients can use this as custom field for order tagging and position tracking. Since version 1.7. | String | N |
orderId | Order ID. Identifies order described by this event Similar to tag ClOrdId(11) in FIX ExecutionReport (except for CancelPending/CancelRejected/Cancelled messages that pass order od from tag 41). | String | Y |
orderStatus | Describes current state of order, if known. Similar to tag OrderStatus(39) in FIX ExecutionReport.
| String ENUM | N |
orderType | Order Type.
| String ENUM | N |
originalTimestamp | Exchange-provided event time (optional). This is in contrast to .timestamp field which records moment of time when Ember trade connector received this event. Since version 1.7. | String TIMESTAMP | N |
parentOrderId | Identifies parent algo-order. | String | N |
parentSourceId | Identifies source of parent algo-order. | String ALPHANUMERIC(10) | N |
party | Desrcibes business entity involved in this transaction Since version 1.8. | String | N |
portfolioKey | Used by QuantOffice orders to identify portfolio this order belongs to. Other clients can use this as custom field for order tagging and position tracking. Since version 1.7. | String | N |
quantity | Order quantity in fixed-point representation. | String DECIMAL | N |
remainingQuantity | Quantity open for further execution. Corresponds to FIX tag LeavesQty(151). Reflects the cumulative result of all versions of an order in cancel-replace chain. (If the order status is Canceled or Rejected or CompletelyFilled (the order is no longer active) then LeavesQty (151) could be 0, otherwise LeavesQty (151) = OrderQty (38) - CumQty (14).) | String DECIMAL | N |
sequence | Message sequence number (set by Execution Server OMS for downstream messages) | Number INT64 | N |
sequenceNumber | Event sequence number, if known. Similar to tag MsgSeqNum(34) in FIX ExecutionReport. Note: behavior of this field depends on event source. For example, some sources maintain monotonously increasing session-wide sequence number, while others may keep different sequences for different instruments. Sequence numbers are reset periodically (daily or weekly). | Number INT32 | N |
side | Order Side.
| String ENUM | N |
sourceId | Identifies message source (e.g. FIX Sender Comp ID or trading connector). For internal orders source identifies source Anvil component (e.g. "TWAP" algo). Source is used for ID uniqueness. | String ALPHANUMERIC(10) | Y |
stopPrice | Order stop price (when applicable according to order type) | String DECIMAL | N |
symbol | Idetifies trading instrument. | String | Y |
timeInForce | Order Time-In-Force (TIF) condition
| String ENUM | N |
timestamp | Message timestamp (in epoch time). Similar to tag TransactTime(60) in FIX ExecutionReport. | String TIMESTAMP | Y |
traderGroup | Assigned by Deltix Trading Node and identifies single group that order's Trader belongs to. Helps to filter out orders available in order reports. | String | N |
traderId | User who submitted this order (manually or automatically) | String | N |
userData | User-defined cookie that was specified on order. For example, order reason. Sometimes custom order attributes are sometimes too heavy. | String | N |
OrderStatusEvent
Communicates current status of an order. Usually comes in response to Order Status request. Indicates that the event contains no new information, only summary information regarding order status.
Use Order Extractor to retrieve new order parameters.
Corresponds to ExecutionReport(8) with ExecType(150)=Order Status.
Field | Description | Type | Required |
---|---|---|---|
account | Trading Account. | String | N |
attributes | Custom attributes. Each attribute is a pair of integer key and text value. We recommend tag numbers of FIX protocol as attribute keys where possible. | Array of [CustomAttribute] | N |
averagePrice | Average fill price for currently executed shares for chain of orders. Corresponds to FIX tag AvgPx(6). This field is undefined if and only if cumulative quantity is undefined. (Since some instruments are executed with negative prices or sometimes even with price equal to zero there is no way to represent 'undefined' value other than binding this field to Cumulative Quantity). | String DECIMAL | N |
clearingAccount | Clearing Account | String | N |
clearingBroker | Clearing Broker Since version 1.8. | String | N |
commissionCurrency | Identifies currency used for commission in alphanumeric encoding. Wherever possible Deltix uses ISO 4217 currency codes. Crypto currencies use Centralized Security Master codes (for example, Bitcoin is "BTC" rather than "XBT"). Since version 1.7. | String ALPHANUMERIC(10) | N |
correlationOrderId | Matches orderId of the first order request in cancel-replace chain of orders. | String | N |
cumulativeQuantity | Currently executed number of contracts for chain of orders. Corresponds to FIX tag CumQty(14). | String DECIMAL | N |
currency | Identifies currency used for prices in alphanumeric encoding. Wherever possible Deltix uses ISO 4217 currency codes. Crypto currencies use Centralized Security Master codes (for example, Bitcoin is "BTC" rather than "XBT"). | String ALPHANUMERIC(10) | N |
destinationId | Identifies message final destination (trading connector). | String ALPHANUMERIC(10) | N |
displayQuantity | "MaxShow/DisplaySize" order quantity in fixed-point representation. Can be used for iceberg orders. Set to -1 when not defined. | String DECIMAL | N |
eventId | Identifies event in scope of single order or cancel replace chain. This attribute can be used to detect duplicate events (e.g. duplicate fills). | String | N |
exchangeId | Final execution venue (exchange, ECN, etc), usually represented by MIC code | String ALPHANUMERIC(10) | N |
expireTime | Order expiration time (when applicable according to Time In Force) | String TIMESTAMP | N |
externalOrderId | External Order ID assigned to the order by execution venue. Similar to tag OrderID(37) in FIX ExecutionReport. | String | N |
instrumentType | Security type / Asset Class.
| String ENUM | Y |
lastReport | Can be used when responding to an Order Mass Status Request to indicate that this is the last Execution Reports which will be returned as a result of the request. Similar to FIX tag LastRptRequested(912). | Boolean | Y |
limitPrice | Order limit price (when applicable according to order type) | String DECIMAL | N |
minQuantity | Minimum quantity allowed for execution, in fixed-point representation. Optional attribute supported by some execution venues. Set to -1 when not defined. | String DECIMAL | N |
moduleKey | Used by QuantOffice orders to identify strategy that placed this order. Other clients can use this as custom field for order tagging and position tracking. Since version 1.7. | String | N |
orderId | Order ID. Identifies order described by this event Similar to tag ClOrdId(11) in FIX ExecutionReport (except for CancelPending/CancelRejected/Cancelled messages that pass order od from tag 41). | String | Y |
orderStatus | Describes current state of order, if known. Similar to tag OrderStatus(39) in FIX ExecutionReport.
| String ENUM | N |
orderType | Order Type.
| String ENUM | N |
orderUnknown | This flag is set when order status request is rejected for unknown order (in this case orderId will point correspond to unknown order ID and status will be set to OrderStatus::REJECTED). | Boolean | Y |
originalOrderId | Identifies original order (order that has been replaced). Set from FIX Tag OrgClOrdId(41). | String | N |
originalTimestamp | Exchange-provided event time (optional). This is in contrast to .timestamp field which records moment of time when Ember trade connector received this event. Since version 1.7. | String TIMESTAMP | N |
parentOrderId | Identifies parent algo-order. | String | N |
parentSourceId | Identifies source of parent algo-order. | String ALPHANUMERIC(10) | N |
party | Desrcibes business entity involved in this transaction Since version 1.8. | String | N |
portfolioKey | Used by QuantOffice orders to identify portfolio this order belongs to. Other clients can use this as custom field for order tagging and position tracking. Since version 1.7. | String | N |
quantity | Order quantity in fixed-point representation. | String DECIMAL | N |
remainingQuantity | Quantity open for further execution. Corresponds to FIX tag LeavesQty(151). Reflects the cumulative result of all versions of an order in cancel-replace chain. (If the order status is Canceled or Rejected or CompletelyFilled (the order is no longer active) then LeavesQty (151) could be 0, otherwise LeavesQty (151) = OrderQty (38) - CumQty (14).) | String DECIMAL | N |
requestId | Optional identifier of OrderStatusRequest used to trigger this event. Similar to tag OrdStatusReqID(790) in FIX ExecutionReport(35=8) message. Since version 1.8. | String | N |
sequence | Message sequence number (set by Execution Server OMS for downstream messages) | Number INT64 | N |
sequenceNumber | Event sequence number, if known. Similar to tag MsgSeqNum(34) in FIX ExecutionReport. Note: behavior of this field depends on event source. For example, some sources maintain monotonously increasing session-wide sequence number, while others may keep different sequences for different instruments. Sequence numbers are reset periodically (daily or weekly). | Number INT32 | N |
side | Order Side.
| String ENUM | N |
sourceId | Identifies message source (e.g. FIX Sender Comp ID or trading connector). For internal orders source identifies source Anvil component (e.g. "TWAP" algo). Source is used for ID uniqueness. | String ALPHANUMERIC(10) | Y |
stopPrice | Order stop price (when applicable according to order type) | String DECIMAL | N |
symbol | Idetifies trading instrument. | String | Y |
timeInForce | Order Time-In-Force (TIF) condition
| String ENUM | N |
timestamp | Message timestamp (in epoch time). Similar to tag TransactTime(60) in FIX ExecutionReport. | String TIMESTAMP | Y |
totalCommission | Since version 1.7. | String DECIMAL | N |
traderGroup | Assigned by Deltix Trading Node and identifies single group that order's Trader belongs to. Helps to filter out orders available in order reports. | String | N |
traderId | User who submitted this order (manually or automatically) | String | N |
userData | User-defined cookie that was specified on order. For example, order reason. Sometimes custom order attributes are sometimes too heavy. | String | N |
OrderTradeCancelEvent
Used to cancel an execution which has been reported in error. 'Trade Bust' of previously reported trade.
Corresponds to ExecutionReport(8) with ExecType(150)=Trade Cancel.
Field | Description | Type | Required |
---|---|---|---|
account | Trading Account. | String | N |
aggressorSide | When set marks our side of the order as active (aggressor, taker) rather than passive (liquidity maker).
| String ENUM | N |
attributes | Custom attributes. Each attribute is a pair of integer key and text value. We recommend tag numbers of FIX protocol as attribute keys where possible. | Array of [CustomAttribute] | N |
averagePrice | Average fill price for currently executed shares for chain of orders. Corresponds to FIX tag AvgPx(6). This field is undefined if and only if cumulative quantity is undefined. (Since some instruments are executed with negative prices or sometimes even with price equal to zero there is no way to represent 'undefined' value other than binding this field to Cumulative Quantity). | String DECIMAL | N |
clearingAccount | Clearing Account | String | N |
clearingBroker | Clearing Broker Since version 1.8. | String | N |
correlationOrderId | Matches orderId of the first order request in cancel-replace chain of orders. | String | N |
cumulativeQuantity | Currently executed number of contracts for chain of orders. Corresponds to FIX tag CumQty(14). | String DECIMAL | N |
currency | Identifies currency used for prices in alphanumeric encoding. Wherever possible Deltix uses ISO 4217 currency codes. Crypto currencies use Centralized Security Master codes (for example, Bitcoin is "BTC" rather than "XBT"). | String ALPHANUMERIC(10) | N |
destinationId | Identifies message final destination (trading connector). | String ALPHANUMERIC(10) | N |
displayQuantity | "MaxShow/DisplaySize" order quantity in fixed-point representation. Can be used for iceberg orders. Set to -1 when not defined. | String DECIMAL | N |
eventId | Identifies event in scope of single order or cancel replace chain. This attribute can be used to detect duplicate events (e.g. duplicate fills). | String | N |
exchangeId | Final execution venue (exchange, ECN, etc), usually represented by MIC code | String ALPHANUMERIC(10) | N |
expireTime | Order expiration time (when applicable according to Time In Force) | String TIMESTAMP | N |
externalOrderId | External Order ID assigned to the order by execution venue. Similar to tag OrderID(37) in FIX ExecutionReport. | String | N |
instrumentType | Security type / Asset Class.
| String ENUM | Y |
limitPrice | Order limit price (when applicable according to order type) | String DECIMAL | N |
minQuantity | Minimum quantity allowed for execution, in fixed-point representation. Optional attribute supported by some execution venues. Set to -1 when not defined. | String DECIMAL | N |
moduleKey | Used by QuantOffice orders to identify strategy that placed this order. Other clients can use this as custom field for order tagging and position tracking. Since version 1.7. | String | N |
multiLegReportingType | Indicates what an Order Event represents (e.g. used with multi-leg securities, such as option strategies, spreads, etc.). If this field is omitted, assume SINGLE_SECURITY type.
| String ENUM | N |
orderId | Order ID. Identifies order described by this event Similar to tag ClOrdId(11) in FIX ExecutionReport (except for CancelPending/CancelRejected/Cancelled messages that pass order od from tag 41). | String | Y |
orderStatus | Describes current state of order, if known. Similar to tag OrderStatus(39) in FIX ExecutionReport.
| String ENUM | N |
orderType | Order Type.
| String ENUM | N |
originalTimestamp | Exchange-provided event time (optional). This is in contrast to .timestamp field which records moment of time when Ember trade connector received this event. Since version 1.7. | String TIMESTAMP | N |
parentOrderId | Identifies parent algo-order. | String | N |
parentSourceId | Identifies source of parent algo-order. | String ALPHANUMERIC(10) | N |
party | Desrcibes business entity involved in this transaction Since version 1.8. | String | N |
portfolioKey | Used by QuantOffice orders to identify portfolio this order belongs to. Other clients can use this as custom field for order tagging and position tracking. Since version 1.7. | String | N |
quantity | Order quantity in fixed-point representation. | String DECIMAL | N |
referenceEventId | Refers to execution that has been cancelled. Points to previously reported trade event identified by OrderEvent::EventId. Similar to ExecRefId(19) FIX tag | String | Y |
remainingQuantity | Quantity open for further execution. Corresponds to FIX tag LeavesQty(151). Reflects the cumulative result of all versions of an order in cancel-replace chain. (If the order status is Canceled or Rejected or CompletelyFilled (the order is no longer active) then LeavesQty (151) could be 0, otherwise LeavesQty (151) = OrderQty (38) - CumQty (14).) | String DECIMAL | N |
sequence | Message sequence number (set by Execution Server OMS for downstream messages) | Number INT64 | N |
sequenceNumber | Event sequence number, if known. Similar to tag MsgSeqNum(34) in FIX ExecutionReport. Note: behavior of this field depends on event source. For example, some sources maintain monotonously increasing session-wide sequence number, while others may keep different sequences for different instruments. Sequence numbers are reset periodically (daily or weekly). | Number INT32 | N |
settlementDate | Specific date of trade settlement (expressed in local time at place of settlement). | String TIMESTAMP | N |
side | Order Side.
| String ENUM | N |
sourceId | Identifies message source (e.g. FIX Sender Comp ID or trading connector). For internal orders source identifies source Anvil component (e.g. "TWAP" algo). Source is used for ID uniqueness. | String ALPHANUMERIC(10) | Y |
stopPrice | Order stop price (when applicable according to order type) | String DECIMAL | N |
symbol | Idetifies trading instrument. | String | Y |
timeInForce | Order Time-In-Force (TIF) condition
| String ENUM | N |
timestamp | Message timestamp (in epoch time). Similar to tag TransactTime(60) in FIX ExecutionReport. | String TIMESTAMP | Y |
tradeDate | Indicates date of trade referenced. Absence of this field indicates current day (expressed in local time at place of trade). | String TIMESTAMP | N |
tradePrice | Price of this (last) fill. Corresponds to FIX tag LastPx(31). This field is required. Note: some trading venues report current AveragePrice instead of last trade price. Once event is processed by OMS trade price can be calculated. Negative prices are allowed (e.g. for calendar spreads of FUTURE oil prices). | String DECIMAL | N |
tradeQuantity | Quantity (e.g. shares) bought/sold on this (last) fill. Corresponds to FIX tag LastQty(32). This field is required. Note: some trading venues report current CumulativeQuantity instead of last trade quantity. Once event is processed by OMS trade quantity can be calculated. | String DECIMAL | N |
traderGroup | Assigned by Deltix Trading Node and identifies single group that order's Trader belongs to. Helps to filter out orders available in order reports. | String | N |
traderId | User who submitted this order (manually or automatically) | String | N |
userData | User-defined cookie that was specified on order. For example, order reason. Sometimes custom order attributes are sometimes too heavy. | String | N |
OrderTradeCorrectEvent
Correction of previously reported trade. Used to modify an incorrectly reported fill.
Corresponds to ExecutionReport(8) with ExecType(150)=Trade Correction.
Field | Description | Type | Required |
---|---|---|---|
account | Trading Account. | String | N |
aggressorSide | When set marks our side of the order as active (aggressor, taker) rather than passive (liquidity maker).
| String ENUM | N |
attributes | Custom attributes. Each attribute is a pair of integer key and text value. We recommend tag numbers of FIX protocol as attribute keys where possible. | Array of [CustomAttribute] | N |
averagePrice | Average fill price for currently executed shares for chain of orders. Corresponds to FIX tag AvgPx(6). This field is undefined if and only if cumulative quantity is undefined. (Since some instruments are executed with negative prices or sometimes even with price equal to zero there is no way to represent 'undefined' value other than binding this field to Cumulative Quantity). | String DECIMAL | N |
clearingAccount | Clearing Account | String | N |
clearingBroker | Clearing Broker Since version 1.8. | String | N |
commission | Commission charged by execution venue for this transaction (NULL if unknown) Since version 1.7. | String DECIMAL | N |
commissionCurrency | Identifies currency used for commission in alphanumeric encoding. Wherever possible Deltix uses ISO 4217 currency codes. Crypto currencies use Centralized Security Master codes (for example, Bitcoin is "BTC" rather than "XBT"). Since version 1.7. | String ALPHANUMERIC(10) | N |
correlationOrderId | Matches orderId of the first order request in cancel-replace chain of orders. | String | N |
cumulativeQuantity | Currently executed number of contracts for chain of orders. Corresponds to FIX tag CumQty(14). | String DECIMAL | N |
currency | Identifies currency used for prices in alphanumeric encoding. Wherever possible Deltix uses ISO 4217 currency codes. Crypto currencies use Centralized Security Master codes (for example, Bitcoin is "BTC" rather than "XBT"). | String ALPHANUMERIC(10) | N |
destinationId | Identifies message final destination (trading connector). | String ALPHANUMERIC(10) | N |
displayQuantity | "MaxShow/DisplaySize" order quantity in fixed-point representation. Can be used for iceberg orders. Set to -1 when not defined. | String DECIMAL | N |
eventId | Identifies event in scope of single order or cancel replace chain. This attribute can be used to detect duplicate events (e.g. duplicate fills). | String | N |
exchangeId | Final execution venue (exchange, ECN, etc), usually represented by MIC code | String ALPHANUMERIC(10) | N |
expireTime | Order expiration time (when applicable according to Time In Force) | String TIMESTAMP | N |
externalOrderId | External Order ID assigned to the order by execution venue. Similar to tag OrderID(37) in FIX ExecutionReport. | String | N |
instrumentType | Security type / Asset Class.
| String ENUM | Y |
limitPrice | Order limit price (when applicable according to order type) | String DECIMAL | N |
minQuantity | Minimum quantity allowed for execution, in fixed-point representation. Optional attribute supported by some execution venues. Set to -1 when not defined. | String DECIMAL | N |
moduleKey | Used by QuantOffice orders to identify strategy that placed this order. Other clients can use this as custom field for order tagging and position tracking. Since version 1.7. | String | N |
multiLegReportingType | Indicates what an Order Event represents (e.g. used with multi-leg securities, such as option strategies, spreads, etc.). If this field is omitted, assume SINGLE_SECURITY type.
| String ENUM | N |
orderId | Order ID. Identifies order described by this event Similar to tag ClOrdId(11) in FIX ExecutionReport (except for CancelPending/CancelRejected/Cancelled messages that pass order od from tag 41). | String | Y |
orderStatus | Describes current state of order, if known. Similar to tag OrderStatus(39) in FIX ExecutionReport.
| String ENUM | N |
orderType | Order Type.
| String ENUM | N |
originalTimestamp | Exchange-provided event time (optional). This is in contrast to .timestamp field which records moment of time when Ember trade connector received this event. Since version 1.7. | String TIMESTAMP | N |
parentOrderId | Identifies parent algo-order. | String | N |
parentSourceId | Identifies source of parent algo-order. | String ALPHANUMERIC(10) | N |
party | Desrcibes business entity involved in this transaction Since version 1.8. | String | N |
portfolioKey | Used by QuantOffice orders to identify portfolio this order belongs to. Other clients can use this as custom field for order tagging and position tracking. Since version 1.7. | String | N |
quantity | Order quantity in fixed-point representation. | String DECIMAL | N |
referenceEventId | Refers to execution that has been corrected. Points to previously reported trade event identified by OrderEvent::EventId. Similar to ExecRefId(19) FIX tag | String | Y |
remainingQuantity | Quantity open for further execution. Corresponds to FIX tag LeavesQty(151). Reflects the cumulative result of all versions of an order in cancel-replace chain. (If the order status is Canceled or Rejected or CompletelyFilled (the order is no longer active) then LeavesQty (151) could be 0, otherwise LeavesQty (151) = OrderQty (38) - CumQty (14).) | String DECIMAL | N |
sequence | Message sequence number (set by Execution Server OMS for downstream messages) | Number INT64 | N |
sequenceNumber | Event sequence number, if known. Similar to tag MsgSeqNum(34) in FIX ExecutionReport. Note: behavior of this field depends on event source. For example, some sources maintain monotonously increasing session-wide sequence number, while others may keep different sequences for different instruments. Sequence numbers are reset periodically (daily or weekly). | Number INT32 | N |
settlementDate | Specific date of trade settlement (expressed in local time at place of settlement). | String TIMESTAMP | N |
side | Order Side.
| String ENUM | N |
sourceId | Identifies message source (e.g. FIX Sender Comp ID or trading connector). For internal orders source identifies source Anvil component (e.g. "TWAP" algo). Source is used for ID uniqueness. | String ALPHANUMERIC(10) | Y |
stopPrice | Order stop price (when applicable according to order type) | String DECIMAL | N |
symbol | Idetifies trading instrument. | String | Y |
timeInForce | Order Time-In-Force (TIF) condition
| String ENUM | N |
timestamp | Message timestamp (in epoch time). Similar to tag TransactTime(60) in FIX ExecutionReport. | String TIMESTAMP | Y |
tradeDate | Indicates date of trade referenced. Absence of this field indicates current day (expressed in local time at place of trade). | String TIMESTAMP | N |
tradePrice | Price of this (last) fill. Corresponds to FIX tag LastPx(31). This field is required. Note: some trading venues report current AveragePrice instead of last trade price. Once event is processed by OMS trade price can be calculated. Negative prices are allowed (e.g. for calendar spreads of FUTURE oil prices). | String DECIMAL | N |
tradeQuantity | Quantity (e.g. shares) bought/sold on this (last) fill. Corresponds to FIX tag LastQty(32). This field is required. Note: some trading venues report current CumulativeQuantity instead of last trade quantity. Once event is processed by OMS trade quantity can be calculated. | String DECIMAL | N |
traderGroup | Assigned by Deltix Trading Node and identifies single group that order's Trader belongs to. Helps to filter out orders available in order reports. | String | N |
traderId | User who submitted this order (manually or automatically) | String | N |
userData | User-defined cookie that was specified on order. For example, order reason. Sometimes custom order attributes are sometimes too heavy. | String | N |
OrderTradeReportEvent
Reports normal fill (partial fill or complete fill depending on RemainingQty and OrderStatus fields).
Corresponds to ExecutionReport(8) with ExecType(150)=Trade.
Field | Description | Type | Required |
---|---|---|---|
account | Trading Account. | String | N |
aggressorSide | When set marks our side of the order as active (aggressor, taker) rather than passive (liquidity maker).
| String ENUM | N |
attributes | Custom attributes. Each attribute is a pair of integer key and text value. We recommend tag numbers of FIX protocol as attribute keys where possible. | Array of [CustomAttribute] | N |
averagePrice | Average fill price for currently executed shares for chain of orders. Corresponds to FIX tag AvgPx(6). This field is undefined if and only if cumulative quantity is undefined. (Since some instruments are executed with negative prices or sometimes even with price equal to zero there is no way to represent 'undefined' value other than binding this field to Cumulative Quantity). | String DECIMAL | N |
clearingAccount | Clearing Account | String | N |
clearingBroker | Clearing Broker Since version 1.8. | String | N |
commission | Commission charged by execution venue for this transaction (NULL if unknown). Expressed in monetary units. | String DECIMAL | N |
commissionCurrency | Identifies currency used for commission in alphanumeric encoding. Wherever possible Deltix uses ISO 4217 currency codes. Crypto currencies use Centralized Security Master codes (for example, Bitcoin is "BTC" rather than "XBT"). | String ALPHANUMERIC(10) | N |
correlationOrderId | Matches orderId of the first order request in cancel-replace chain of orders. | String | N |
counterPartyOrderId | String | N | |
counterPartySourceId | String ALPHANUMERIC(10) | N | |
cumulativeQuantity | Currently executed number of contracts for chain of orders. Corresponds to FIX tag CumQty(14). | String DECIMAL | N |
currency | Identifies currency used for prices in alphanumeric encoding. Wherever possible Deltix uses ISO 4217 currency codes. Crypto currencies use Centralized Security Master codes (for example, Bitcoin is "BTC" rather than "XBT"). | String ALPHANUMERIC(10) | N |
destinationId | Identifies message final destination (trading connector). | String ALPHANUMERIC(10) | N |
displayQuantity | "MaxShow/DisplaySize" order quantity in fixed-point representation. Can be used for iceberg orders. Set to -1 when not defined. | String DECIMAL | N |
eventId | Identifies event in scope of single order or cancel replace chain. This attribute can be used to detect duplicate events (e.g. duplicate fills). | String | N |
exchangeId | Final execution venue (exchange, ECN, etc), usually represented by MIC code | String ALPHANUMERIC(10) | N |
expireTime | Order expiration time (when applicable according to Time In Force) | String TIMESTAMP | N |
externalOrderId | External Order ID assigned to the order by execution venue. Similar to tag OrderID(37) in FIX ExecutionReport. | String | N |
instrumentType | Security type / Asset Class.
| String ENUM | Y |
limitPrice | Order limit price (when applicable according to order type) | String DECIMAL | N |
minQuantity | Minimum quantity allowed for execution, in fixed-point representation. Optional attribute supported by some execution venues. Set to -1 when not defined. | String DECIMAL | N |
moduleKey | Used by QuantOffice orders to identify strategy that placed this order. Other clients can use this as custom field for order tagging and position tracking. Since version 1.7. | String | N |
multiLegReportingType | Indicates what an Order Event represents (e.g. used with multi-leg securities, such as option strategies, spreads, etc.). If this field is omitted, assume SINGLE_SECURITY type.
| String ENUM | N |
orderId | Order ID. Identifies order described by this event Similar to tag ClOrdId(11) in FIX ExecutionReport (except for CancelPending/CancelRejected/Cancelled messages that pass order od from tag 41). | String | Y |
orderStatus | Describes current state of order, if known. Similar to tag OrderStatus(39) in FIX ExecutionReport.
| String ENUM | N |
orderType | Order Type.
| String ENUM | N |
originalTimestamp | Exchange-provided event time (optional). This is in contrast to .timestamp field which records moment of time when Ember trade connector received this event. Since version 1.7. | String TIMESTAMP | N |
parentOrderId | Identifies parent algo-order. | String | N |
parentSourceId | Identifies source of parent algo-order. | String ALPHANUMERIC(10) | N |
party | Desrcibes business entity involved in this transaction Since version 1.8. | String | N |
portfolioKey | Used by QuantOffice orders to identify portfolio this order belongs to. Other clients can use this as custom field for order tagging and position tracking. Since version 1.7. | String | N |
quantity | Order quantity in fixed-point representation. | String DECIMAL | N |
remainingQuantity | Quantity open for further execution. Corresponds to FIX tag LeavesQty(151). Reflects the cumulative result of all versions of an order in cancel-replace chain. (If the order status is Canceled or Rejected or CompletelyFilled (the order is no longer active) then LeavesQty (151) could be 0, otherwise LeavesQty (151) = OrderQty (38) - CumQty (14).) | String DECIMAL | N |
sequence | Message sequence number (set by Execution Server OMS for downstream messages) | Number INT64 | N |
sequenceNumber | Event sequence number, if known. Similar to tag MsgSeqNum(34) in FIX ExecutionReport. Note: behavior of this field depends on event source. For example, some sources maintain monotonously increasing session-wide sequence number, while others may keep different sequences for different instruments. Sequence numbers are reset periodically (daily or weekly). | Number INT32 | N |
settlementDate | Specific date of trade settlement (expressed in local time at place of settlement). | String TIMESTAMP | N |
side | Order Side.
| String ENUM | N |
sourceId | Identifies message source (e.g. FIX Sender Comp ID or trading connector). For internal orders source identifies source Anvil component (e.g. "TWAP" algo). Source is used for ID uniqueness. | String ALPHANUMERIC(10) | Y |
stopPrice | Order stop price (when applicable according to order type) | String DECIMAL | N |
symbol | Idetifies trading instrument. | String | Y |
timeInForce | Order Time-In-Force (TIF) condition
| String ENUM | N |
timestamp | Message timestamp (in epoch time). Similar to tag TransactTime(60) in FIX ExecutionReport. | String TIMESTAMP | Y |
tradeDate | Indicates date of trade referenced. Absence of this field indicates current day (expressed in local time at place of trade). | String TIMESTAMP | N |
tradePrice | Price of this (last) fill. Corresponds to FIX tag LastPx(31). This field is required. Note: some trading venues report current AveragePrice instead of last trade price. Once event is processed by OMS trade price can be calculated. Negative prices are allowed (e.g. for calendar spreads of FUTURE oil prices). | String DECIMAL | N |
tradeQuantity | Quantity (e.g. shares) bought/sold on this (last) fill. Corresponds to FIX tag LastQty(32). This field is required. Note: some trading venues report current CumulativeQuantity instead of last trade quantity. Once event is processed by OMS trade quantity can be calculated. | String DECIMAL | N |
traderGroup | Assigned by Deltix Trading Node and identifies single group that order's Trader belongs to. Helps to filter out orders available in order reports. | String | N |
traderId | User who submitted this order (manually or automatically) | String | N |
userData | User-defined cookie that was specified on order. For example, order reason. Sometimes custom order attributes are sometimes too heavy. | String | N |
SessionStatusEvent
Trade connector status event.
Field | Description | Type | Required |
---|---|---|---|
description | Textual description of connection status event (e.g. "Lost TCP/IP connection") | String | N |
destinationId | Identifies message final destination (trading connector). | String ALPHANUMERIC(10) | N |
instrumentType | Security type / Asset Class.
| String ENUM | Y |
sourceId | Identifies message source (e.g. FIX Sender Comp ID or trading connector). For internal orders source identifies source Anvil component (e.g. "TWAP" algo). Source is used for ID uniqueness. | String ALPHANUMERIC(10) | Y |
status | New status of connector.
| String ENUM | Y |
symbol | Idetifies trading instrument. | String | Y |
timestamp | Message timestamp (in epoch time). Similar to tag TransactTime(60) in FIX ExecutionReport. | String TIMESTAMP | Y |
Data structures
CustomAttribute
Field | Description | Type | Required |
---|---|---|---|
key | Attribute key. In many cases custom attribute keys may correspond to well known tags in FIX protocol. | Number INT32 | Y |
value | Attribute value. When attribute key is well-known FIX tag, corresponding custom attribute value must follow FIX type of that tag. | String | Y |
Position API messages
Requests
PositionRequest
Can be used to request position in one of configured projections.
Ember will respond to this request with one or many PositionReport messages, with last one flagged as isLast=true.
Field | Description | Type | Required |
---|---|---|---|
account | Optional filter that defines Order Account | String | N |
clearingBroker | Clearing Broker Since version 1.8. | String | N |
destinationId | Identifies message final destination (trading connector). | String ALPHANUMERIC(10) | N |
dst | Optional filter that defines Destination that owns this position (not to be confused with source/destination of position message | String ALPHANUMERIC(10) | N |
exchangeId | Final execution venue (exchange, ECN, etc), usually represented by MIC code | String ALPHANUMERIC(10) | N |
instrumentType | Security type / Asset Class.
| String ENUM | N |
moduleKey | Used by QuantOffice orders to identify strategy that placed this order. Other clients can use this as custom field for order tagging and position tracking. Since version 1.7. | String | N |
party | Desrcibes business entity involved in this transaction Since version 1.8. | String | N |
portfolioKey | Used by QuantOffice orders to identify portfolio this order belongs to. Other clients can use this as custom field for order tagging and position tracking. Since version 1.7. | String | N |
projection | Position Projection requested (e.g. "Account/Symbol" or "Exchange/Currency" or ""). See ProjectionKey enumeration for a set of supported projections keys. Note that Ember will only provide information about projections configured for specific deployment. See Position and Risk documentation for more information. | String | N |
requestId | Request identifier (will be returned back in PositionReport) | String | Y |
src | Optional filter that defines Source that owns this position (not to be confused with source/destination of position message | String ALPHANUMERIC(10) | N |
symbol | Idetifies trading instrument. | String | Y |
timestamp | Message timestamp (in epoch time). Similar to tag TransactTime(60) in FIX ExecutionReport. | String TIMESTAMP | Y |
traderGroup | Optional filter that defines User who submitted this order (manually or automatically) | String | N |
traderId | Optional filter that defines User who submitted this order (manually or automatically) | String | N |
userData | Optional filter that defines User-defined cookie that will be reported back in order events. For example, order reason. Sometimes custom order attributes are sometimes too heavy. | String | N |
PositionResetRequest
This special message is used to reset all time or daily positions to zero.
See also: PositionSnapshot for more control over position state.
Field | Description | Type | Required |
---|---|---|---|
destinationId | Identifies message final destination (trading connector). | String ALPHANUMERIC(10) | N |
instrumentType | Security type / Asset Class.
| String ENUM | N |
projection | WARNINIG: Not supported, reserved for the future. Identifies projection to reset positions in (e.g. "Account/Symbol"). Empty or null string for root level. | String | N |
symbol | Idetifies trading instrument. | String | Y |
timestamp | Message timestamp (in epoch time). Similar to tag TransactTime(60) in FIX ExecutionReport. | String TIMESTAMP | Y |
isDaily | If true, only daily position will be reset | Boolean | Y |
PositionSnapshot
This message is used to adjust position size in given projection path.
This message is also used internally for journal compaction (when historical trades from deep past are replaced with their position footprint).
See also: PositionReset
Field | Description | Type | Required |
---|---|---|---|
averageCost | When this field is set to NULL it will be ignored. However if this field is not NULL but NaN, | String DECIMAL | N |
destinationId | Identifies message final destination (trading connector). | String ALPHANUMERIC(10) | N |
instrumentType | Security type / Asset Class.
| String ENUM | N |
last | Marks the last message in a snapshot | Boolean | Y |
projectionPath | Position projection path (e.g. "Source[FIXTRADER1]/Account[GOLD]"). Empty for root level. | String | Y |
realizedPnL | When this field is set to NULL it will be ignored. However if this field is not NULL but NaN, | String DECIMAL | N |
relative | When this flag is set to true amounts specified in Size, AverageCost, and RealizedPnL will be added to current values. When this flag is set to false (default) specified amounts will serve as new values for Size, AverageCost, and RealizedPnL. | Boolean | Y |
size | Position Size | String DECIMAL | Y |
symbol | Idetifies trading instrument. | String | Y |
timestamp | Message timestamp (in epoch time). Similar to tag TransactTime(60) in FIX ExecutionReport. | String TIMESTAMP | Y |
Responses
PositionReport
Reports position entry requested by a PositionRequest. Each request may result in one or several response messages.
The last response message will be flagged as Last=true.
If requested position projection is not found system will return single PositionReport with Found=false flag.
Field | Description | Type | Required |
---|---|---|---|
account | Account that owns this position, when requested projection includes Accounts | String | N |
averageCost | String DECIMAL | N | |
destinationId | Identifies message final destination (trading connector). | String ALPHANUMERIC(10) | N |
dst | Destination that owns this position, when projection requested includes Destination (not to be confused with source/destination of position message | String ALPHANUMERIC(10) | N |
error | Error that may explain why position was not found | String | N |
exchangeId | Exchange that owns this position, when requested projection includes Exchange | String ALPHANUMERIC(10) | N |
found | Set to true when projection specified in the request is not found | Boolean | Y |
instrumentType | Security type / Asset Class.
| String ENUM | Y |
last | Marks the last message in series of reports associated with given Request ID | Boolean | Y |
marketValue | String DECIMAL | N | |
moduleKey | Used by QuantOffice orders to identify strategy that placed this order. Other clients can use this as custom field for order tagging and position tracking. Since version 1.7. | String | N |
openBuySize | Total unfilled size of all open BUY orders Since version 1.8. | String DECIMAL | N |
openSellSize | Total unfilled size of all open SELL orders Since version 1.8. | String DECIMAL | N |
portfolioKey | Used by QuantOffice orders to identify portfolio this order belongs to. Other clients can use this as custom field for order tagging and position tracking. Since version 1.7. | String | N |
projection | Projection (repeats projection value specified on request) | String | N |
realizedPnL | String DECIMAL | N | |
requestId | Correlates response to request | String | Y |
size | Position Size | String DECIMAL | N |
sourceId | Identifies message source (e.g. FIX Sender Comp ID or trading connector). For internal orders source identifies source Anvil component (e.g. "TWAP" algo). Source is used for ID uniqueness. | String ALPHANUMERIC(10) | Y |
src | Source that owns this position, when requested projection includes Source (not to be confused with source/destination of position message | String ALPHANUMERIC(10) | N |
symbol | Idetifies trading instrument. | String | Y |
timestamp | Message timestamp (in epoch time). Similar to tag TransactTime(60) in FIX ExecutionReport. | String TIMESTAMP | Y |
totalCommission | Since version 1.7. | String DECIMAL | N |
trader | Trader that owns this position, when requested projection includes Trader | String | N |
traderGroup | Trader Group that owns this position, when requested projection includes Trader Group | String | N |
unrealizedPnL | String DECIMAL | N | |
userData | Custom tag UserData that owns this position, when requested projection includes User Data (e.g. Identifies QuantOffice Strategy) | String | N |
Appendix: Market Data
While Ember itself offers OrderEntry/Positions API capabilities clients frequently need access to market data.
Deltix can provide market data via TimeBase (via Java/C++/C#/Python native clients) or via Websocket Data Hub documented below.
WebSocket Data Hub
WebSocket Data hub receives all connections on /websocket/v1
. For example: wss://market.myexchange.com/websocket/v1
.
Subscription request
Here is an example of subscription request for specific two instruments:
{
"type": "subscribe",
"products": [
"BTC/USD",
"ETH/USD"
],
"channel": "snapshot"
}
Unsubscription request
Here is an example of unsubscription request for specific instrument:
{
"type": "unsubscribe",
"products": [
"ETH/USD"
],
"channel": "snapshot"
}
Response payload (snapshot)
Sample of output message, a stream of these messages will be broadcasted over WebSocket with configured interval and market depth:
{
"type": "snapshot",
"product": "ETH/USD",
"timestamp": "2021-04-23T18:25:43.511000Z",
"asks": [
[4083.60, 0.2305],
[4083.61, 0.6051],
...
],
"bids": [
[4083.44, 1.3200],
[4083.45, 0.1250],
...
]
}
Please refer to Market Data Hub documentation for more information.