Skip to main content

Derivatives SBE Order Entry Messages

InstrumentInfoRequest

FieldNameTypeLengthDescription
InstrumentInfoRequest10340Request all instrument available
1correlationIdint648

InstrumentInfo

Sent in response to InstrumentInfoRequest message, and later when the status of an instrument changes.

FieldNameTypeLengthDescription
InstrumentInfo20380Information about an instrument
1correlationIdint648requestId for correlation
2instrumentIdint324Numeric instrumentId
3securityTypeuint81SecurityType
0 = FUTURES
1 = OPTIONS
4statusuint810 = PRE_OPEN
1 = READY_TO_TRADE
2 = TRADING_HALTED
3 = PAUSE
4 = CLOSE
5 = PRE_OPEN_NO_CANCEL
6 = EXPIRED
`7 = FORBIDDEN
5isLastMessageint810 = not last instrument info
1 = last instrument info for requestId"
5reservedint81
6symbolString3232Instrument symbol

SetAccount

Send SetAccount message to set the account to be used for subsequent NewOrder messages.

FieldNameTypeLengthDescription
SetAccount10556Set the current account
1correlationIdint648Client-assigned ID
2accountString16160-padded ASCII string

SetTrader

Send SetTrader message to set the trader to be used for subsequent NewOrder messages.

FieldNameTypeLengthDescription
SetTrader10656Set the current trader
1correlationIdint648Client-assigned ID
2traderString16160-padded ASCII string

SetAck

Sent in response to SetAcount and SetTrader messages.

FieldNameTypeLengthDescription
SetAck20540Acknowledgment of Set request
1correlationIdint648Client-assigned ID

NewOrder

Used to enter an order in the system.

FieldNameTypeLengthDescription
NewOrder11068Place a new order
1clientOrderIdint648Numeric client order ID
2correlationIdint648Client-assigned ID
3limitPriceint648Price with 9 decimal places
4quantityint324Quantity with 0 decimal places
5instrumentIdint324Numeric instrumentId
6sideint811 = BUY
-1 = SELL
7flagsint811= Post Only
8goodTilDateuint162(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

NewIocOrder

Used to enter an IOC Order.

FieldNameTypeLengthDescription
NewIocOrder11169Place a new IOC order
1clientOrderIdint648Numeric client order ID
2correlationIdint648Client-assigned ID
3limitPriceint648Price with 9 decimal places
4quantityint324Quantity with 0 decimal places
5minQtyInt324Minimum quantity for the order to be executed; values > 1
6instrumentIdint324Numeric instrumentId
7sideint811 = BUY
-1 = SELL

OrderEntered

OrderEntered messages are sent in response to a NewOrder message if successful.

FieldNameTypeLengthDescription
OrderEntered21080NewOrder acknowledgement
1transactTimeint648Nanoseconds since epoch
2execIdint648Exchange-assigned event ID (akin to execId in FIX)
3clientOrderIdint648Numeric client order ID
4correlationIdint648Return the client-assigned ID
5orderIdint648Numeric exchange-assigned order ID
6receiveTimeint648Nanoseconds since Unix epoch when we received the NewOrder message on gateway.

ReplaceOrder

The ReplaceOrder message allows you to alter the price and quantity of an order in a single message. This is more efficient than canceling an existing order and immediately succeeding it with a new orderRequest to modify an order. The order is canceled if newQuantity is less than or equal the current total filled quantity.

FieldNameTypeLengthDescription
ReplaceOrder12067Replace an order
1clientOrderIdint648Numeric client order ID
2correlationIdint648Client-assigned ID
3newLimitPriceint648Price with 9 decimal places
4newQuantityint324Quantity with 0 decimal places
5instrumentIdint324Numeric instrumentId
6goodTilDateuint162Required if timeInForce = 1
The trade date that a GTD order should be expired on, in the count of days since 1970-01-01 (ISO)
7timeInForceint810 = “DAY” - Good for trading day
1 = “GOOD_TILL_DATE” - Good until the specified date

OrderReject

OrderReject messages are sent in response to NewOrder and ReplaceOrder if the request is rejected.

FieldNameTypeLengthDescription
OrderReject221112Reject message for NewOrder and ReplaceOrder
1transactTimeint648Nanoseconds since epoch
2clientOrderIdint648Client order ID
3correlationIdint648Return the client-assigned ID
4orderIdint648Exchange assigned order ID Set to 0 if order is unknown
5rejectReasonuint811 = ERROR
2 = INVALID_INSTRUMENT
3 = CL_ORD_ID_IN_USE
8 = VALIDATION_FAILURE
9 = UNKNOWN_ORDER
6detailschar47Null (0) padded string

OrderReplaced

This message acknowledges the receipt and acceptance of a valID ReplaceOrder.

FieldNameTypeLengthDescription
OrderReplaced22092Reply to ReplaceOrder after success
1transactTimeint648Nanoseconds since epoch
2execIdint648Exchange-assigned event ID
3clientOrderIdint648Client order ID
4correlationIdint648Return the client-assigned ID
5orderIdint648Exchange-assigned order ID
6receiveTimeint648Nanoseconds since Unix epoch when we received the replace/update message on gateway.
7totalFilledint324Filled amount
8availableQtyint324Remaining quantity available for matching
9instrumentIdint324

CancelOrder

The CancelOrder message is used to request that an order be canceled.

FieldNameTypeLengthDescription
CancelOrder13052Cancel an Order
1clientOrderIdint648Numeric client order ID
2correlationIdint648Client-assigned ID
3instrumentIdint324instrumentId

OrderCanceled

An OrderCanceled message informs you that an order has been canceled. This could be acknowledging a CancelOrder message, or it could be the result of the order timing out or being canceled automatically.

FieldNameTypeLengthDescription
OrderCanceled23081Sent when an order is canceled
1transactTimeint648Nanoseconds since epoch
2execIdint648Exchange-assigned event ID
3clientOrderIdint648Client order ID
4correlationIdint648Return the client-assigned ID
5orderIdint648Exchange-assigned order ID
6receiveTimeint648Nanoseconds since Unix epoch when we received the cancel message on gateway.
Null value = 0x8000000000000000L for unsolicited cancels
6totalFilledint324Filled amount
7instrumentIdint324Numeric instrumentId
8cancelReasonuint810 = 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

CancelOrderReject

A CancelOrderReject message may be sent in response to a CancelOrder if the cancel cannot be accepted at this time.

FieldNameTypeLengthDescription
CancelOrderReject23388Reject message for order replace
1transactTimeint648Nanoseconds since epoch
2clientOrderIdint648Client order ID
3correlationIdint648Return the client-assigned ID
4orderIdint648Exchange assigned order ID
5rejectReasonuint811 = ERROR
2 = UNKNOWN_ORDER
3 = ORDER_FILLED
6detailschar23Null (0) padded string

MassCancelOrder

The MassCancelOrder message is used to cancel multiple orders matching various optional criteria. Use it to cancels buys with limit prices at or above the specified limit, or sells with limit prices at or below the specified limit.

  • If limitPrice is defined, instrumentId and side are required, otherwise, they are optional.
  • The 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.
  • The requestTradingLock flag can be used to thereafter reject subsequent orders until a TradingUnlock request is sent.

OrderCanceled messages are sent for each order canceled, followed by a MassCancelOrderAck message.

FieldNameTypeLengthDescription
MassCancelOrder13155Cancel multiple Orders
1correlationIdint648Client-assigned ID
2limitPriceint648Optional. Null value = 0x8000000000000000L
3instrumentIdint324Required if limitPrice exists, otherwise optional. Null value = 0x80000000
4sideint81Required if limitPrice exists, otherwise optional.
-128 = both sides
1 = BUY
-1 = SELL
5currentSessionOnlyint811 = orders of current session only
0 = orders of all sessions of Firm
6requestTradingLockint811 = lock trading for all sessions under cancel scope
0 = just cancel orders without engaging trading lock

MassCancelOrderAck

The MassCancelOrderAck message is sent in response to a MassCancelOrder message following OrderCanceled messages for each canceled order. If a tradingLock was requested, the scope of sessions affected are reported as well.

FieldNameTypeLengthDescription
MassCancelOrderAck23162Acknowledgement of MassCancelOrder request.
1transactTimeint648Nanoseconds since epoch
2execIdint648Exchange-assigned event ID
3correlationIdint648Client-assigned ID
4canceledCountint324Total number of orders canceled
5onlyCurrentSessionint811 = only current session affected
0 = all sessions under Firm affected
6tradingLockAppliedint811 = trading lock applied
0 = not applied

MassCancelOrderReject

A MassCancelOrderReject message may be sent in response to a MassCancelOrder if the mass cancel cannot be accepted at this time.

FieldNameTypeLengthDescription
MassCancelOrderReject23280Reject message for order replace
1transactTimeint648Nanoseconds since epoch
2correlationIdint648Return the client-assigned ID
3errorMessagechar32Null (0) padded string

UnlockTrading

Sent to unlock trading after a MassCancelOrder has been sent when the flag 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.

FieldNameTypeLengthDescription
UnlockTrading13241Unlock Client Requested Trading Lock
1correlationIdint648Client-assigned ID
2currentSessionOnlyint811 = unlock trading for current session only
0 = unlock trading for all sessions of Firm

UnlockTradingAck

An UnlockTradingAck message reports the result of an unlock trading request, including the number of users affected.

FieldNameTypeLengthDescription
UnlockTradingAck23460Acknowledgement of UnlockTrading
1transactTimeint648Nanoseconds since epoch
2execIdint648Exchange-assigned event ID
3correlationIdint648Client-assigned ID
4numUsersAffectedint324Total number of users unlocked

UnlockTradingReject

Reports a reject of a requested trading unlock.

FieldNameTypeLengthDescription
UnlockTradingReject23580Reject of UnlockTrading
1transactTimeint648Nanoseconds since epoch
2correlationIdint648Client-assigned ID
3errorMessagechar32Null (0) padded string

OrderFilled

An OrderFilled message informs you that all or part of an outright order has been executed.

FieldNameTypeLengthDescription
OrderFilled240113Sent when an order is partially or fully filled
1transactTimeint648Nanoseconds since epoch
2execIdint648Exchange-assigned event ID
3matchIdint648Transaction ID representing match, shared by all fills within match
4clientOrderIdint648Client order ID
5correlationIdint648Return the client-assigned ID
6orderIdint648Exchange assigned order ID
7filledVwapint648Filled VWAP with 9 decimal places
8totalFilledint324Filled amount
9availableQtyint324Remaining quantity available for matching
10fillPriceint648Price filled with 9 decimals
11fillQtyint324Fill quantity
12instrumentIdint324Numeric instrumentId
13isAggressoruint810 - False
1 - True

SpreadOrderFilled

A SpreadOrderFilled message informs you that all or part of a spread order has been executed.

FieldNameTypeLengthDescription
SpreadOrderFilled241129Sent when an order is partially or fully filled
1transactTimeint648Nanoseconds since epoch
2execIdint648Exchange-assigned event ID
3matchIdint648Transaction ID representing match, shared by all fills within match
4clientOrderIdint648Client order ID
5correlationIdint648Return the client-assigned ID
6orderIdint648Exchange assigned order ID
7filledVwapint648Filled VWAP with 9 decimal places
8totalFilledint324Filled amount
9availableQtyint324Remaining quantity available for matching
10fillPriceint648Price filled with 9 decimals
11leg1fillPriceint648Price filled with 9 decimals on underlying leg 1
12leg2fillPriceint648Price filled with 9 decimals on underlying leg 2
13fillQtyint324Fill quantity
14instrumentIdint324Numeric instrumentId
15isAggressoruint810 - False
1 - True

LastExecIdRequest

Send this message to request the 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.

FieldNameTypeLengthDescription
LastExecIdRequest15040Request execId of last event sent to user
1correlationIdint648Client-assigned ID

LastExecId

Sent in response to LastExecIdRequest.

FieldNameTypeLengthDescription
LastExecId25056Response to LastExecIdRequest
1timestampint648Nanoseconds since epoch
2lastExecIdint648ExecId of last event sent to this user.
3correlationIdint648Client-assigned ID

EventResendRequest

Send this message to request order events, in the specified range, be resent. As this is an application-level request, resent messages will have new sequence numbers and the resend flag in the message will not be set. Rejects (and any other message that does not contain an execId) are not resent.

FieldNameTypeLengthDescription
EventResendRequest15256Response to LastExecIdRequest
1correlationIdint648Client-assigned ID
2beginExecIdint648Lower bound (inclusive) of execIds.
3endExecIdint648Upper bound (inclusive) of execIds if positive. Resend all events up the last known event if non-positive.

EventResentComplete

Sent in response to a successful EventResendRequest following all resent events.

FieldNameTypeLengthDescription
EventResendComplete25244Sent on fulfillment of an EventResendRequest
1correlationIdint648Client-assigned ID
2resentEventCountint324Total number of events resent.

EventResendReject

Sent in response to an EventResendRequest if the request cannot be fulfilled.

FieldNameTypeLengthDescription
EventResendReject25364Reject an EventResendRequest
1correlationIdint648Client-assigned ID
2rejectReasonuint811 = BEGIN_EXEC_ID_TOO_SMALL
2 = END_EXEC_ID_TOO_LARGE
3 = RESEND_ALREADY_IN_PROGRESS
4 = TOO_MANY_RESEND_REQUESTS
5 = SERVER_ERROR
3detailschar55Null (0) padded string

Default Session Values

During session creation, the following values are hard-coded for the Liquidity Provider.

NameTypeDefault ValueDescription
CustOrderCapacityChar(1)22 = PROPRIETARY. CTI represents a proprietary account
ManualOrderIndicatorBoolean(1)NN = AUTOMATIC. Message is generated by automated trading logic.
OrderCapacityInt(1)11 = PRINCIPAL. Order placed by the firm or principal.
CustOrderHandlingInstString(1)YY = ELECTRONIC. Order is delivered electronically.

Was this helpful?