Field | Name | Type | Length | Description |
---|---|---|---|---|
InstrumentInfoRequest | 103 | 40 | Request all instrument available | |
1 | correlationId | int64 | 8 |
Field | Name | Type | Length | Description |
---|---|---|---|---|
InstrumentInfo | 203 | 80 | Information about an instrument | |
1 | correlationId | int64 | 8 | requestId for correlation |
2 | instrumentId | int32 | 4 | Numeric instrumentId |
3 | securityType | uint8 | 1 | SecurityType 0 = FUTURES 1 = OPTIONS |
4 | status | uint8 | 1 | 1 = PRE_OPEN 2 = PRE_OPEN_NO_CANCEL 3 = READY_TO_TRADE (aka, OPEN) 4 = TRADING_HALTED (aka, PAUSE) 3 = PAUSE 5 = CLOSE 6 = EXPIRED (aka, POST CLOSE) |
5 | isLastMessage | int8 | 1 | 0 = not last instrument info 1 = last instrument info for requestId” |
5 | reserved | int8 | 1 | |
6 | symbol | String32 | 32 | Instrument symbol |
Field | Name | Type | Length | Description |
---|---|---|---|---|
SetAccount | 105 | 56 | Set the current account | |
1 | correlationId | int64 | 8 | Client-assigned ID |
2 | account | String16 | 16 | 0-padded ASCII string |
Field | Name | Type | Length | Description |
---|---|---|---|---|
SetTrader | 106 | 56 | Set the current trader | |
1 | correlationId | int64 | 8 | Client-assigned ID |
2 | trader | String16 | 16 | 0-padded ASCII string |
Field | Name | Type | Length | Description |
---|---|---|---|---|
SetAck | 205 | 40 | Acknowledgment of Set request | |
1 | correlationId | int64 | 8 | Client-assigned ID |
Field | Name | Type | Length | Description |
---|---|---|---|---|
NewOrder | 110 | 68 | Place a new order | |
1 | clientOrderId | int64 | 8 | Numeric client order ID |
2 | correlationId | int64 | 8 | Client-assigned ID |
3 | limitPrice | int64 | 8 | Price with 9 decimal places |
4 | quantity | int32 | 4 | Quantity with 0 decimal places |
5 | instrumentId | int32 | 4 | Numeric instrumentId |
6 | side | int8 | 1 | 1 = BUY-1 = SELL |
7 | flags | int8 | 1 | 1 = Post Only |
8 | goodTilDate | uint16 | 2 | (Optional) The trade date that a GTD order should be expired on, in the count of days since 1970-01-0 (ISO). Null value = 0 for DAY order |
Field | Name | Type | Length | Description |
---|---|---|---|---|
NewIocOrder | 111 | 69 | Place a new IOC order | |
1 | clientOrderId | int64 | 8 | Numeric client order ID |
2 | correlationId | int64 | 8 | Client-assigned ID |
3 | limitPrice | int64 | 8 | Price with 9 decimal places |
4 | quantity | int32 | 4 | Quantity with 0 decimal places |
5 | minQty | Int32 | 4 | Minimum quantity for the order to be executed; values > 1 |
6 | instrumentId | int32 | 4 | Numeric instrumentId |
7 | side | int8 | 1 | 1 = BUY-1 = SELL |
Field | Name | Type | Length | Description |
---|---|---|---|---|
OrderEntered | 210 | 80 | NewOrder acknowledgement | |
1 | transactTime | int64 | 8 | Nanoseconds since epoch |
2 | execId | int64 | 8 | Exchange-assigned event ID (akin to execId in FIX) |
3 | clientOrderId | int64 | 8 | Numeric client order ID |
4 | correlationId | int64 | 8 | Return the client-assigned ID |
5 | orderId | int64 | 8 | Numeric exchange-assigned order ID |
6 | receiveTime | int64 | 8 | Nanoseconds since Unix epoch when we received the NewOrder message on gateway. |
newQuantity
is less than or equal the current total filled quantity.
Field | Name | Type | Length | Description |
---|---|---|---|---|
ReplaceOrder | 120 | 67 | Replace an order | |
1 | clientOrderId | int64 | 8 | Numeric client order ID |
2 | correlationId | int64 | 8 | Client-assigned ID |
3 | newLimitPrice | int64 | 8 | Price with 9 decimal places |
4 | newQuantity | int32 | 4 | Quantity with 0 decimal places |
5 | instrumentId | int32 | 4 | Numeric instrumentId |
6 | goodTilDate | uint16 | 2 | Required if timeInForce = 1 The trade date that a GTD order should be expired on, in the count of days since 1970-01-01 (ISO) |
7 | timeInForce | int8 | 1 | 0 = “DAY” - Good for trading day1 = “GOOD_TILL_DATE” - Good until the specified date |
Field | Name | Type | Length | Description |
---|---|---|---|---|
OrderReject | 221 | 112 | Reject message for NewOrder and ReplaceOrder | |
1 | transactTime | int64 | 8 | Nanoseconds since epoch |
2 | clientOrderId | int64 | 8 | Client order ID |
3 | correlationId | int64 | 8 | Return the client-assigned ID |
4 | orderId | int64 | 8 | Exchange assigned order ID Set to 0 if order is unknown |
5 | rejectReason | uint8 | 1 | 1 = ERROR 2 = INVALID_INSTRUMENT 3 = CL_ORD_ID_IN_USE 8 = VALIDATION_FAILURE9 = UNKNOWN_ORDER |
6 | details | char | 47 | Null (0) padded string |
Field | Name | Type | Length | Description |
---|---|---|---|---|
OrderReplaced | 220 | 92 | Reply to ReplaceOrder after success | |
1 | transactTime | int64 | 8 | Nanoseconds since epoch |
2 | execId | int64 | 8 | Exchange-assigned event ID |
3 | clientOrderId | int64 | 8 | Client order ID |
4 | correlationId | int64 | 8 | Return the client-assigned ID |
5 | orderId | int64 | 8 | Exchange-assigned order ID |
6 | receiveTime | int64 | 8 | Nanoseconds since Unix epoch when we received the replace/update message on gateway. |
7 | totalFilled | int32 | 4 | Filled amount |
8 | availableQty | int32 | 4 | Remaining quantity available for matching |
9 | instrumentId | int32 | 4 |
Field | Name | Type | Length | Description |
---|---|---|---|---|
CancelOrder | 130 | 52 | Cancel an Order | |
1 | clientOrderId | int64 | 8 | Numeric client order ID |
2 | correlationId | int64 | 8 | Client-assigned ID |
3 | instrumentId | int32 | 4 | instrumentId |
Field | Name | Type | Length | Description |
---|---|---|---|---|
OrderCanceled | 230 | 81 | Sent when an order is canceled | |
1 | transactTime | int64 | 8 | Nanoseconds since epoch |
2 | execId | int64 | 8 | Exchange-assigned event ID |
3 | clientOrderId | int64 | 8 | Client order ID |
4 | correlationId | int64 | 8 | Return the client-assigned ID |
5 | orderId | int64 | 8 | Exchange-assigned order ID |
6 | receiveTime | int64 | 8 | Nanoseconds since Unix epoch when we received the cancel message on gateway. Null value = 0x8000000000000000L for unsolicited cancels |
6 | totalFilled | int32 | 4 | Filled amount |
7 | instrumentId | int32 | 4 | Numeric instrumentId |
8 | cancelReason | uint8 | 1 | 0 = EXPIRED 1 = CANCELED_BY_USER 2 = SELF_MATCH_PREVENTION 3 = CLIENT_DISCONNECT 4 = PRICE_LIMIT 5 = ADMIN_CANCEL 6 = MASS_CANCEL 8 = ACTIVE_LIMIT_EXCEEDED |
Field | Name | Type | Length | Description |
---|---|---|---|---|
CancelOrderReject | 233 | 88 | Reject message for order replace | |
1 | transactTime | int64 | 8 | Nanoseconds since epoch |
2 | clientOrderId | int64 | 8 | Client order ID |
3 | correlationId | int64 | 8 | Return the client-assigned ID |
4 | orderId | int64 | 8 | Exchange assigned order ID |
5 | rejectReason | uint8 | 1 | 1 = ERROR 2 = UNKNOWN_ORDER 3 = ORDER_FILLED |
6 | details | char | 23 | Null (0) padded string |
limitPrice
is defined, instrumentId
and side
are required, otherwise, they are optional.currentSessionOnly
flag is used to specify that only orders submitted via the current session should be considered versus all sessions of the client’s firm.requestTradingLock
flag can be used to thereafter reject subsequent orders until a TradingUnlock request is sent.Field | Name | Type | Length | Description |
---|---|---|---|---|
MassCancelOrder | 131 | 55 | Cancel multiple Orders | |
1 | correlationId | int64 | 8 | Client-assigned ID |
2 | limitPrice | int64 | 8 | Optional. Null value = 0x8000000000000000L |
3 | instrumentId | int32 | 4 | Required if limitPrice exists, otherwise optional. Null value = 0x80000000 |
4 | side | int8 | 1 | Required if limitPrice exists, otherwise optional. -128 = both sides 1 = BUY -1 = SELL |
5 | currentSessionOnly | int8 | 1 | 1 = orders of current session only0 = orders of all sessions of Firm |
6 | requestTradingLock | int8 | 1 | 1 = lock trading for all sessions under cancel scope 0 = just cancel orders without engaging trading lock |
tradingLock
was requested, the scope of sessions affected are reported as well.
Field | Name | Type | Length | Description |
---|---|---|---|---|
MassCancelOrderAck | 231 | 62 | Acknowledgement of MassCancelOrder request. | |
1 | transactTime | int64 | 8 | Nanoseconds since epoch |
2 | execId | int64 | 8 | Exchange-assigned event ID |
3 | correlationId | int64 | 8 | Client-assigned ID |
4 | canceledCount | int32 | 4 | Total number of orders canceled |
5 | onlyCurrentSession | int8 | 1 | 1 = only current session affected 0 = all sessions under Firm affected |
6 | tradingLockApplied | int8 | 1 | 1 = trading lock applied 0 = not applied |
Field | Name | Type | Length | Description |
---|---|---|---|---|
MassCancelOrderReject | 232 | 80 | Reject message for order replace | |
1 | transactTime | int64 | 8 | Nanoseconds since epoch |
2 | correlationId | int64 | 8 | Return the client-assigned ID |
3 | errorMessage | char | 32 | Null (0) padded string |
requestTradingLock
.
This message disengages all client requested trading locks on all sessions under the firm unless currentSessionOnly
is set, in which case, it only disengages trading locks on the current session.
Trading locks reject all incoming orders until disengaged by either client through this message or exchange administrator.
Field | Name | Type | Length | Description |
---|---|---|---|---|
UnlockTrading | 132 | 41 | Unlock Client Requested Trading Lock | |
1 | correlationId | int64 | 8 | Client-assigned ID |
2 | currentSessionOnly | int8 | 1 | 1 = unlock trading for current session only 0 = unlock trading for all sessions of Firm |
Field | Name | Type | Length | Description |
---|---|---|---|---|
UnlockTradingAck | 234 | 60 | Acknowledgement of UnlockTrading | |
1 | transactTime | int64 | 8 | Nanoseconds since epoch |
2 | execId | int64 | 8 | Exchange-assigned event ID |
3 | correlationId | int64 | 8 | Client-assigned ID |
4 | numUsersAffected | int32 | 4 | Total number of users unlocked |
Field | Name | Type | Length | Description |
---|---|---|---|---|
UnlockTradingReject | 235 | 80 | Reject of UnlockTrading | |
1 | transactTime | int64 | 8 | Nanoseconds since epoch |
2 | correlationId | int64 | 8 | Client-assigned ID |
3 | errorMessage | char | 32 | Null (0) padded string |
Field | Name | Type | Length | Description |
---|---|---|---|---|
OrderFilled | 240 | 113 | Sent when an order is partially or fully filled | |
1 | transactTime | int64 | 8 | Nanoseconds since epoch |
2 | execId | int64 | 8 | Exchange-assigned event ID |
3 | matchId | int64 | 8 | Transaction ID representing match, shared by all fills within match |
4 | clientOrderId | int64 | 8 | Client order ID |
5 | correlationId | int64 | 8 | Return the client-assigned ID |
6 | orderId | int64 | 8 | Exchange assigned order ID |
7 | filledVwap | int64 | 8 | Filled VWAP with 9 decimal places |
8 | totalFilled | int32 | 4 | Filled amount |
9 | availableQty | int32 | 4 | Remaining quantity available for matching |
10 | fillPrice | int64 | 8 | Price filled with 9 decimals |
11 | fillQty | int32 | 4 | Fill quantity |
12 | instrumentId | int32 | 4 | Numeric instrumentId |
13 | isAggressor | uint8 | 1 | 0 - False 1 - True |
Field | Name | Type | Length | Description |
---|---|---|---|---|
SpreadOrderFilled | 241 | 129 | Sent when an order is partially or fully filled | |
1 | transactTime | int64 | 8 | Nanoseconds since epoch |
2 | execId | int64 | 8 | Exchange-assigned event ID |
3 | matchId | int64 | 8 | Transaction ID representing match, shared by all fills within match |
4 | clientOrderId | int64 | 8 | Client order ID |
5 | correlationId | int64 | 8 | Return the client-assigned ID |
6 | orderId | int64 | 8 | Exchange assigned order ID |
7 | filledVwap | int64 | 8 | Filled VWAP with 9 decimal places |
8 | totalFilled | int32 | 4 | Filled amount |
9 | availableQty | int32 | 4 | Remaining quantity available for matching |
10 | fillPrice | int64 | 8 | Price filled with 9 decimals |
11 | leg1fillPrice | int64 | 8 | Price filled with 9 decimals on underlying leg 1 |
12 | leg2fillPrice | int64 | 8 | Price filled with 9 decimals on underlying leg 2 |
13 | fillQty | int32 | 4 | Fill quantity |
14 | instrumentId | int32 | 4 | Numeric instrumentId |
15 | isAggressor | uint8 | 1 | 0 - False 1 - True |
execId
of the last (most recent) event sent by the trading system to this user/session. Can be used to determine if the client missed any events while disconnected. Also serves as a means of validating that the trading system is available and accepting requests.
Field | Name | Type | Length | Description |
---|---|---|---|---|
LastExecIdRequest | 150 | 40 | Request execId of last event sent to user | |
1 | correlationId | int64 | 8 | Client-assigned ID |
LastExecIdRequest
.
Field | Name | Type | Length | Description |
---|---|---|---|---|
LastExecId | 250 | 56 | Response to LastExecIdRequest | |
1 | timestamp | int64 | 8 | Nanoseconds since epoch |
2 | lastExecId | int64 | 8 | ExecId of last event sent to this user. |
3 | correlationId | int64 | 8 | Client-assigned ID |
Field | Name | Type | Length | Description |
---|---|---|---|---|
EventResendRequest | 152 | 56 | Response to LastExecIdRequest | |
1 | correlationId | int64 | 8 | Client-assigned ID |
2 | beginExecId | int64 | 8 | Lower bound (inclusive) of execIds. |
3 | endExecId | int64 | 8 | Upper bound (inclusive) of execIds if positive. Resend all events up the last known event if non-positive. |
Field | Name | Type | Length | Description |
---|---|---|---|---|
EventResendComplete | 252 | 44 | Sent on fulfillment of an EventResendRequest | |
1 | correlationId | int64 | 8 | Client-assigned ID |
2 | resentEventCount | int32 | 4 | Total number of events resent. |
Field | Name | Type | Length | Description |
---|---|---|---|---|
EventResendReject | 253 | 64 | Reject an EventResendRequest | |
1 | correlationId | int64 | 8 | Client-assigned ID |
2 | rejectReason | uint8 | 1 | 1 = BEGIN_EXEC_ID_TOO_SMALL2 = END_EXEC_ID_TOO_LARGE 3 = RESEND_ALREADY_IN_PROGRESS 4 = TOO_MANY_RESEND_REQUESTS 5 = SERVER_ERROR |
3 | details | char | 55 | Null (0) padded string |
Name | Type | Default Value | Description |
---|---|---|---|
CustOrderCapacity | Char(1) | 2 | 2 = PROPRIETARY. CTI represents a proprietary account |
ManualOrderIndicator | Boolean(1) | N | N = AUTOMATIC. Message is generated by automated trading logic. |
OrderCapacity | Int(1) | 1 | 1 = PRINCIPAL. Order placed by the firm or principal. |
CustOrderHandlingInst | String(1) | Y | Y = ELECTRONIC. Order is delivered electronically. |