Nasdaq OUCH 5.0

Nasdaq OUCH

Order Entry Specification

The NASDAQ Group, Inc

Nasdaq OUCH 5.0

Message Set Overview

The following table lists all messages described in this report.

Name
Category
Description

AccountQueryRequest
AccountReporting
The Account Query Request message can be used when recovering state to request the next available UserRefNum that can be used for identifying new transactions.

AccountQueryResponse
AccountReporting
The Account Query Response message in sent in response to an Account Query Request to indicate the next available UserRefNum that can be used to identify new transactions.

MassCancelRequest
OrderMassHandling
The Mass Cancel Request message allows firms to initiate the cancellation of one or more orders that are currently booked at the exchange if they match the criteria specified in the request. If no optional criteria are specified then all orders for the specified firm on the account will be cancelled. Optional criteria can be specified in the Appendage field using the tags described below.

MassCancelResponse
OrderMassHandling
This message acknowledges the receipt of a valid Mass Cancel Request message. The data fields from the Mass Cancel Request message are echoed back in this message.

AIQCanceled
SingleGeneralOrderHandling

BrokenTrade
SingleGeneralOrderHandling
A Broken Trade Message informs you that an execution has been broken. The trade is no longer good and will not clear. The reason for the break is given.

CancelOrderRequest
SingleGeneralOrderHandling
The Cancel Order Message is used to request that an order be canceled or reduced. In the Cancel Order Message, you must specify the new “intended order size” for the order. The “intended order size” is the maximum number of shares that can be executed in total after the cancel is applied.

CancelPending
SingleGeneralOrderHandling
A Cancel Pending Message is sent in response to a cancel request for a cross order during a pre-cross late period signifying that it cannot be canceled at this time, but any unexecuted portion of this order will automatically be canceled immediately after the cross completes.

CancelReject
SingleGeneralOrderHandling
A Cancel Reject Message is sent in response to a partial cancel request (with non-zero “intended order size”) for a cross order during a pre-cross late period signifying that it cannot be partially canceled at this time. No automatic cancel will be scheduled for this order. Clients could repeat their request for any unexecuted portion of the order after the cross completes.

DisableOrderEntryRequest
SingleGeneralOrderHandling
The Disable Order Entry Request allows firms the ability to initiate the following requests to block submissions of new orders on a particular account.

DisableOrderEntryResponse
SingleGeneralOrderHandling
This message acknowledges the receipt of the Disable Order Entry Request message. The data fields from the Enter Order Message are echoed back in this message.

EnableOrderEntryRequest
SingleGeneralOrderHandling
The Enable Order Entry Request allows firms the ability to initiate the following requests to unblock submission of new orders on a particular account.

EnableOrderEntryResponse
SingleGeneralOrderHandling
This message acknowledges the receipt of the Enable Order Entry Request message. The data fields from the Enable Order Entry Request message are echoed back in this message.

EnterOrder
SingleGeneralOrderHandling

ModifyOrderRequest
SingleGeneralOrderHandling
The Modify Order Message is used to request modifications that will not affect order priority on the book. Since priority of the order does not change (exception noted), allowed modifications are restricted to only the ones specified in the message details below. Increasing share amount is not allowed and requests to do so will be ignored.

OrderAccepted
SingleGeneralOrderHandling
This message acknowledges the receipt and acceptance of a valid Enter Order Message. The data fields from the Enter Order Message are echoed back in this message. Note that the accepted values may differ from the entered values for some fields.

OrderCanceled
SingleGeneralOrderHandling
A Canceled Message informs you that an order has been reduced or canceled. This could be acknowledging a Cancel Order Message, or it could be the result of the order timing out or being canceled automatically.

OrderExecuted
SingleGeneralOrderHandling
An Executed Order Message informs you that all or part of an order has been executed.

OrderModified
SingleGeneralOrderHandling
An Order Modified Message is sent in response to an order modify request.

OrderPriorityUpdate
SingleGeneralOrderHandling
A Priority Update Message is sent whenever priority of the order has been changed by the system.

OrderReplaced
SingleGeneralOrderHandling
This message acknowledges the receipt and acceptance of a valid Replace Order Message. The data fields from the Replace Order Message are echoed back in this message. Note that the accepted values may differ from the entered values for some fields. You will receive one and only one of these two for each replacement.

OrderRestated
SingleGeneralOrderHandling
The Order Restated Message is sent to indicate that the system has modified an order as part of its order management.

Rejected
SingleGeneralOrderHandling
A Rejected Message may be sent in response to an Enter Order Message or Replace Order Message if the order or replace cannot be accepted at this time. The reason for the rejection is given.

ReplaceOrderRequest
SingleGeneralOrderHandling
The Replace Order Message allows you to alter most of the attributes of an order in a single message. This is more efficient than canceling an existing order and immediately succeeding it with a new order. Replacing an order always gives it a new timestamp for its time priority on the book. If you wish you simply partially cancel an order and retain its time priority, send a Cancel Order Message instead.

SystemEvent
SingleGeneralOrderHandling
System Event Messages signal events that affect the entire NASDAQ system.

AIQCanceled

Category: SingleGeneralOrderHandling

Message Functionality

The message usage documentation for AIQCanceled

Structure

Name
Mult.
Type
Description

Type
[0..1]
CodeSet
Canceled Order Message.

Timestamp
[1..1]
Timestamp
Expressed as nanoseconds since midnight.

UserRefNum
[1..1]
UserRefNum
The UserRefNum of the order being reduced.

DecrementShares
[1..1]
Numeric
The number of shares just decremented from the order. This number is incremental, not cumulative.

OrderCancelReason
[0..1]
CodeSet
Reason the order was reduced or canceled. For an AIQ Cancel message, this value will always be “Q”.

QuantityPreventedFromTrading
[1..1]
Integer
Shares that would have executed if the trade would have occurred. Depending on AIQ type and the sizes of orders in question the value for this field could either be the same or different than the Decrement Shares field. For “Decrement both” they are always the same. For “Cancel oldest” they will be different if the incoming order is smaller than the resting order.

ExecutionPrice
[1..1]
Price
Price at which the trade would have occurred.

LiquidityFlag
[1..1]
CodeSet
Liquidity flag the order would have received.

AIQStrategy
[1..1]
Alpha
AIQ strategy used on the cancelled order.

AppendageLength
[1..1]
Integer
The length of the remaining Optional Appendage field.

OptionalAppendage
[1..1]
TagValue
The available options supported on this message are: UserRefIdx

AccountQueryRequest

Category: AccountReporting

Message Functionality

The Account Query Request message can be used when recovering state to request the next available UserRefNum that can be used for identifying new transactions.

Structure

Name | Mult. | Type | Description
Type | [0..1] | CodeSet | Account Query Request Message.
AppendageLength | [1..1] | Integer | The length of the remaining Optional Appendage field.
OptionalAppendage | [1..1] | TagValue | The available options supported on this message are: UserRefIdx

AccountQueryResponse

Category: AccountReporting

Message Functionality

The Account Query Response message in sent in response to an Account Query Request to indicate the next available UserRefNum that can be used to identify new transactions.

Structure

Name | Mult. | Type | Description
Type | [0..1] | CodeSet | Account Query Response Message.
Timestamp | [1..1] | Timestamp | Expressed as nanoseconds since midnight.
NextUserRefNum | [1..1] | UserRefNum | The next available UserRefNum.
AppendageLength | [1..1] | Integer | The length of the remaining Optional Appendage field.
OptionalAppendage | [1..1] | TagValue | The available options supported on this message are: UserRefIdx

BrokenTrade

Category: SingleGeneralOrderHandling

Message Functionality

A Broken Trade Message informs you that an execution has been broken. The trade is no longer good and will not clear. The reason for the break is given.

You will always get an Executed Order Message prior to getting a Broken Trade Message for a given execution.

Structure

Name | Mult. | Type | Description
Type | [0..1] | CodeSet | Broken Trade Message.
Timestamp | [1..1] | Timestamp | Expressed as nanoseconds since midnight.
UserRefNum | [1..1] | UserRefNum | The UserRefNum of the order whose execution corresponding to given Match Number is being broken.
MatchNumber | [1..1] | Numeric | Match Number as transmitted in the Executed Order Message being broken.
BrokenTradeReason | [1..1] | CodeSet | The reason the trade was broken. The values currently supported are: E = Erroneous (trade deemed clearly erroneous) C = Consent (both parties agreed to break the trade) S = Supervisory (manually broken by supervisory) X = External (trade broken by an external third party)
ClOrdID | [1..1] | Alpha | Customer order identifier.
AppendageLength | [1..1] | Integer | The length of the remaining Optional Appendage field.
OptionalAppendage | [1..1] | TagValue | The available options supported on this message are: UserRefIdx

CancelOrderRequest

Category: SingleGeneralOrderHandling

Message Functionality

The Cancel Order Message is used to request that an order be canceled or reduced. In the Cancel Order Message, you must specify the new "intended order size" for the order. The "intended order size" is the maximum number of shares that can be executed in total after the cancel is applied.

To cancel the entire balance of an order, you would enter a Cancel Order Message with a Shares field of zero.

Note that the only acknowledgement to a Cancel Order Message is the resulting Canceled Order Message. There is no “too late to cancel” message since by the time you received it, you would already have gotten the execution. Superfluous Cancel Order Messages are silently ignored.

Structure

Name | Mult. | Type | Description
Type | [0..1] | CodeSet | Cancel Order Message.
UserRefNum | [1..1] | UserRefNum | The Order UserRefNum as was originally transmitted in an Enter Order Message.
Quantity | [1..1] | Integer | This is the new intended order size. This limits the maximum number of shares that can potentially be executed in total after the cancel is applied. Entering a zero here will cancel any remaining open shares on this order.
AppendageLength | [1..1] | Integer | The length of the remaining Optional Appendage field.
OptionalAppendage | [1..1] | TagValue | The available options supported on this message are: UserRefIdx

CancelPending

Category: SingleGeneralOrderHandling

Message Functionality

A Cancel Pending Message is sent in response to a cancel request for a cross order during a pre-cross late period signifying that it cannot be canceled at this time, but any unexecuted portion of this order will automatically be canceled immediately after the cross completes.

This message will only be sent once for a given UserRefNum. Duplicate cancel requests for the same UserRefNum will be ignored by OUCH.

Structure

Name | Mult. | Type | Description
Type | [0..1] | CodeSet | Cancel Pending Message.
Timestamp | [1..1] | Timestamp | Expressed as nanoseconds since midnight.
UserRefNum | [1..1] | UserRefNum | The UserRefNum of the order suffering the pending cancel.
AppendageLength | [1..1] | Integer | The length of the remaining Optional Appendage field.
OptionalAppendage | [1..1] | TagValue | The available options supported on this message are: UserRefIdx

CancelReject

Category: SingleGeneralOrderHandling

Message Functionality

A Cancel Reject Message is sent in response to a partial cancel request (with non-zero “intended order size”) for a cross order during a pre-cross late period signifying that it cannot be partially canceled at this time. No automatic cancel will be scheduled for this order. Clients could repeat their request for any unexecuted portion of the order after the cross completes.

This message will only be sent once for a given UserRefNum. Duplicate cancel requests for the same UserRefNum will be ignored by OUCH.

Structure

Name | Mult. | Type | Description
Type | [0..1] | CodeSet | Cancel Reject Message.
Timestamp | [1..1] | Timestamp | Expressed as nanoseconds since midnight.
UserRefNum | [1..1] | UserRefNum | The UserRefNum of the order that was cancel-rejected.
AppendageLength | [1..1] | Integer | The length of the remaining Optional Appendage field.
OptionalAppendage | [1..1] | TagValue | The available options supported on this message are: UserRefIdx

DisableOrderEntryRequest

Category: SingleGeneralOrderHandling

Message Functionality

The Disable Order Entry Request allows firms the ability to initiate the following requests to block submissions of new orders on a particular account.

Structure

Name | Mult. | Type | Description
Type | [0..1] | CodeSet | Identifies this message as a Disable Order Entry Request message type.
UserRefNum | [1..1] | UserRefNum | User Reference Numbers must be day-unique and strictly increasing for each Order Port.
Firm | [1..1] | Alpha | This field should contain all caps. Firm identifier for the order entry firm. One logical OUCH account can potentially enter orders for multiple firms in a Service Bureau configuration.
AppendageLength | [1..1] | Integer | The length of the remaining Optional Appendage field.
OptionalAppendage | [1..1] | TagValue | The available options supported on this message are: UserRefIdx

DisableOrderEntryResponse

Category: SingleGeneralOrderHandling

Message Functionality

This message acknowledges the receipt of the Disable Order Entry Request message. The data fields from the Enter Order Message are echoed back in this message.

Structure

Name | Mult. | Type | Description
Type | [0..1] | CodeSet | Identifies this message as a Disable Order Entry Request message type.
Timestamp | [1..1] | Timestamp | Expressed as nanoseconds since midnight.
UserRefNum | [1..1] | UserRefNum | The UserRefNum from the inbound message.
Firm | [1..1] | Alpha | This field should contain all caps. Firm identifier for the order entry firm. One logical OUCH account can potentially enter orders for multiple firms in a Service Bureau configuration.
AppendageLength | [1..1] | Integer | The length of the remaining Optional Appendage field.
OptionalAppendage | [1..1] | TagValue | The available options supported on this message are: UserRefIdx

EnableOrderEntryRequest

Category: SingleGeneralOrderHandling

Message Functionality

The Enable Order Entry Request allows firms the ability to initiate the following requests to unblock submission of new orders on a particular account.

Structure

Name | Mult. | Type | Description
Type | [0..1] | CodeSet | Identifies this message as a Enable Order Entry Request message type.
UserRefNum | [1..1] | UserRefNum | User Reference Numbers must be day-unique and strictly increasing for each Order Port.
Firm | [1..1] | Alpha | This field should contain all caps. Firm identifier for the order entry firm. One logical OUCH account can potentially enter orders for multiple firms in a Service Bureau configuration.
AppendageLength | [1..1] | Integer | The length of the remaining Optional Appendage field.
OptionalAppendage | [1..1] | TagValue | The available options supported on this message are: UserRefIdx

EnableOrderEntryResponse

Category: SingleGeneralOrderHandling

Message Functionality

This message acknowledges the receipt of the Enable Order Entry Request message. The data fields from the Enable Order Entry Request message are echoed back in this message.

Structure

Name | Mult. | Type | Description
Type | [0..1] | CodeSet | Identifies this message as a Disable Order Entry Request message type.
Timestamp | [1..1] | Timestamp | Expressed as nanoseconds since midnight.
UserRefNum | [1..1] | UserRefNum | The UserRefNum from the inbound message.
Firm | [1..1] | Alpha | This field should contain all caps. Firm identifier for the order entry firm. One logical OUCH account can potentially enter orders for multiple firms in a Service Bureau configuration.
AppendageLength | [1..1] | Integer | The length of the remaining Optional Appendage field.
OptionalAppendage | [1..1] | TagValue | The available options supported on this message are: UserRefIdx

EnterOrder

Category: SingleGeneralOrderHandling

Message Functionality

The message usage documentation for EnterOrder

Structure

Name | Mult. | Type | Description
Type | [0..1] | CodeSet | Identifies this message as Enter Order Message type.
UserRefNum | [1..1] | UserRefNum | UserRefNum must be day-unique and strictly increasing for each OUCH account.
Side | [1..1] | CodeSet | B = buy S = sell T = sell short E = sell short exempt
Quantity | [1..1] | Integer | Total number of shares. Must be greater than zero and less than 1,000,000.
Symbol | [1..1] | Alpha | Stock Symbol.
Price | [1..1] | Price | The price of the order. Please refer to the Data Types section for more clarification.
TimeInForce | [1..1] | CodeSet | Corresponds to TimeInForce (59) in Nasdaq FIX. 0 = Day (Market Hours) 3 = IOC 5 = GTX (Extended Hours) 6 = GTT (ExpireTime needs to be specified) E = After hours
Display | [1..1] | CodeSet | Y = visible N = hidden A = attributable
Capacity | [1..1] | CodeSet | A = agency P = principal R = riskless O = other
InterMarketSweepEligibility | [1..1] | CodeSet | Y = eligible N = not eligible
CrossType | [1..1] | CodeSet | N = continuous market O = opening cross (Nasdaq only) C = closing cross (Nasdaq only) H = halt/IPO (Nasdaq only) S = supplemental (Nasdaq only) R = retail (BX only) E = extended life (Nasdaq only) A = after hours close (Nasdaq only)
ClOrdID | [1..1] | Alpha | Customer order identifier. ClOrdID will not be checked for day-uniqueness for each OUCH account.
AppendageLength | [1..1] | Integer | The length of the remaining Optional Appendage field.
OptionalAppendage | [1..1] | TagValue | The available options supported on this message are: Firm MinQty CustomerType MaxFloor PriceType PegOffset Discretion DiscretionPrice DiscretionPriceType DiscretionPegOffset PostOnly RandomReserves Route ExpireTime TradeNow HandleInst GroupID SharesLocated UserRefIdx

MassCancelRequest

Category: OrderMassHandling

Message Functionality

The Mass Cancel Request message allows firms to initiate the cancellation of one or more orders that are currently booked at the exchange if they match the criteria specified in the request. If no optional criteria are specified then all orders for the specified firm on the account will be cancelled. Optional criteria can be specified in the Appendage field using the tags described below.

Structure

Name | Mult. | Type | Description
Type | [0..1] | CodeSet | Identifies this message as a Mass Cancel Request message type.
UserRefNum | [1..1] | UserRefNum | User Reference Numbers must be day-unique and strictly increasing for each Order Port.
Firm | [1..1] | Alpha | This field should contain all caps. Firm identifier for the order entry firm. One logical OUCH account can potentially enter orders for multiple firms in a Service Bureau configuration.
Symbol | [1..1] | Alpha | Presence = OptionalOptional, Space filled if not specified Symbol to mass cancel orders on.
AppendageLength | [1..1] | Integer | Length of entire optional appendage. Zero (0) if no appendage follows.
OptionalAppendage | [1..1] | TagValue | The available options supported on this message are: Side GroupID UserRefIdx

MassCancelResponse

Category: OrderMassHandling

Message Functionality

This message acknowledges the receipt of a valid Mass Cancel Request message. The data fields from the Mass Cancel Request message are echoed back in this message.

Structure

Name | Mult. | Type | Description
Type | [0..1] | CodeSet | Identifies this message as a Mass Cancel Request message type.
Timestamp | [1..1] | Timestamp | Expressed as nanoseconds since midnight.
UserRefNum | [1..1] | UserRefNum | The UserRefNum from the inbound message.
Firm | [1..1] | Alpha | This field should contain all caps. Firm identifier for the order entry firm. One logical OUCH account can potentially enter orders for multiple firms in a Service Bureau configuration.
Symbol | [1..1] | Alpha | Presence = OptionalOptional, Space filled if not specified. Symbol to mass cancel orders on.
AppendageLength | [1..1] | Integer | Length of entire optional appendage. Zero (0) if no appendage follows.
OptionalAppendage | [1..1] | TagValue | The available options supported on this message are: Side GroupID UserRefIdx

ModifyOrderRequest

Category: SingleGeneralOrderHandling

Message Functionality

The Modify Order Message is used to request modifications that will not affect order priority on the book. Since priority of the order does not change (exception noted), allowed modifications are restricted to only the ones specified in the message details below. Increasing share amount is not allowed and requests to do so will be ignored.

Structure

Name | Mult. | Type | Description
Type | [0..1] | CodeSet | Modify Order Message.
UserRefNum | [1..1] | UserRefNum | The Order UserRefNum as was originally transmitted in an Enter Order Message.
Side | [1..1] | CodeSet | The new side to be associated with the order. B = buy S = sell T = sell short E = sell short exempt Only the following modifications are allowed: S <-> E S <-> T E <-> T
Quantity | [1..1] | Integer | This is the new intended order size. This limits the maximum number of shares that can potentially be executed in total after the cancel is applied. Entering a zero here will cancel any remaining open shares on this order.
AppendageLength | [1..1] | Integer | The length of the remaining Optional Appendage field.
OptionalAppendage | [1..1] | TagValue | The available options supported on this message are: UserRefIdx

OrderAccepted

Category: SingleGeneralOrderHandling

Message Functionality

This message acknowledges the receipt and acceptance of a valid Enter Order Message. The data fields from the Enter Order Message are echoed back in this message. Note that the accepted values may differ from the entered values for some fields.

Accepted Messages normally come before any Executed Messages or Canceled Messages for an order. However, when the Order State field of an Accepted Message is Order Dead (“D”), no additional messages will be received for that order, as Order Dead means that the order was accepted and automatically canceled.

Structure

Name | Mult. | Type | Description
Type | [0..1] | CodeSet | Accepted Message Identifier.
Timestamp | [1..1] | Timestamp | Expressed as nanoseconds since midnight.
UserRefNum | [1..1] | UserRefNum | The order UserRefNum as entered.
Side | [1..1] | CodeSet | The side as entered.
Quantity | [1..1] | Integer | Total number of shares accepted.
Symbol | [1..1] | Alpha | Stock symbol as entered.
Price | [1..1] | Price | The accepted price of the order. Please note that the accepted price could potentially be different than the entered price if the order was re-priced by the exchange on entry. The accepted price will always be better than or equal to the entered price.
TimeInForce | [1..1] | CodeSet | The accepted Time in Force of the order. Please note that the accepted Time in Force may potentially be different than the entered Time in Force. The accepted Time in Force will always be equal to or shorter in scope than the entered Time in Force.
Display | [1..1] | CodeSet | Y = visible N = hidden A = attributable Z = conformant
OrderReferenceNumber | [1..1] | Numeric | The day-unique Order Reference Number assigned by NASDAQ to this order.
Capacity | [1..1] | CodeSet | The capacity specified on the order.
InterMarketSweepEligibility | [1..1] | CodeSet | Y = eligible N = not eligible
CrossType | [1..1] | CodeSet | The cross type as entered.
OrderState | [1..1] | CodeSet | L = Order Live D = Order Dead
ClOrdID | [1..1] | Alpha | Customer order identifier.
AppendageLength | [1..1] | Integer | The length of the remaining Optional Appendage field.
OptionalAppendage | [1..1] | TagValue | The available options supported on this message are: Firm MinQty CustomerType MaxFloor PriceType PegOffset Discretion DiscretionPrice DiscretionPegType DiscretionPegOffset PostOnly RandomReserves Route ExpireTime TradeNow HandleInst BBOWeightIndicator GroupID SharesLocated UserRefIdx

OrderCanceled

Category: SingleGeneralOrderHandling

Message Functionality

A Canceled Message informs you that an order has been reduced or canceled. This could be acknowledging a Cancel Order Message, or it could be the result of the order timing out or being canceled automatically.

Please note that a Canceled Message does not necessarily mean the entire order is dead; some portion of the order may still be alive.

Structure

Name | Mult. | Type | Description
Type | [0..1] | CodeSet | Canceled Order Message.
Timestamp | [1..1] | Timestamp | Expressed as nanoseconds since midnight.
UserRefNum | [1..1] | UserRefNum | The UserRefNum of the order being (partially) canceled.
Quantity | [1..1] | Integer | The number of shares being decremented from the order. This number is incremental, not cumulative.
OrderCancelReason | [1..1] | CodeSet | Reason the order was reduced or canceled.
AppendageLength | [1..1] | Integer | The length of the remaining Optional Appendage field.
OptionalAppendage | [1..1] | TagValue | The available options supported on this message are: UserRefIdx

OrderExecuted

Category: SingleGeneralOrderHandling

Message Functionality

An Executed Order Message informs you that all or part of an order has been executed.

Structure

Name | Mult. | Type | Description
Type | [0..1] | CodeSet | Order Executed Message.
Timestamp | [1..1] | Timestamp | Expressed as nanoseconds since midnight.
UserRefNum | [1..1] | UserRefNum | The UserRefNum of the order being executed.
Quantity | [1..1] | Integer | The incremental number of shares just executed.
Price | [1..1] | Price | The price at which the shares were executed.
LiquidityFlag | [1..1] | CodeSet | Liquidity flag the order would have received.
MatchNumber | [1..1] | Numeric | Assigned by the exchange to identify the trade. Both the buy and the sell executions participating in the trade will share the same match number.
AppendageLength | [1..1] | Integer | The length of the remaining Optional Appendage field.
OptionalAppendage | [1..1] | TagValue | Field is missing from the PDF spec The available options supported on this message are: UserRefIdx

OrderModified

Category: SingleGeneralOrderHandling

Message Functionality

An Order Modified Message is sent in response to an order modify request.

Structure

Name | Mult. | Type | Description
Type | [0..1] | CodeSet | Order Modified Message.
Timestamp | [1..1] | Timestamp | Expressed as nanoseconds since midnight.
UserRefNum | [1..1] | UserRefNum | The UserRefNum of the order that was modified.
Side | [1..1] | CodeSet | The side as entered in the Order Modify Request.
Quantity | [1..1] | Integer | Total number of shares outstanding.
AppendageLength | [1..1] | Integer | The length of the remaining Optional Appendage field.
OptionalAppendage | [1..1] | TagValue | The available options supported on this message are: UserRefIdx

OrderPriorityUpdate

Category: SingleGeneralOrderHandling

Message Functionality

A Priority Update Message is sent whenever priority of the order has been changed by the system.

Structure

Name | Mult. | Type | Description
Type | [0..1] | CodeSet | Order Priority Update Message.
Timestamp | [1..1] | Timestamp | Expressed as nanoseconds since midnight.
UserRefNum | [1..1] | UserRefNum | The UserRefNum of the order whose priority was updated.
Price | [1..1] | Price | The limit price of the order.
Display | [1..1] | CodeSet | The new display for the order. Y = Anonymous - Price to Comply
OrderReferenceNumber | [1..1] | Numeric | The day-unique Order Reference Number assigned by NASDAQ to this order. As a result of the updated priority, a new order reference number will be assigned.
AppendageLength | [1..1] | Integer | The length of the remaining Optional Appendage field.
OptionalAppendage | [1..1] | TagValue | The available options supported on this message are: UserRefIdx

OrderReplaced

Category: SingleGeneralOrderHandling

Message Functionality

This message acknowledges the receipt and acceptance of a valid Replace Order Message. The data fields from the Replace Order Message are echoed back in this message. Note that the accepted values may differ from the entered values for some fields. You will receive one and only one of these two for each replacement.

Like Accepted Messages, Replaced Messages use the Order State field to denote that a replace was accepted and then automatically canceled when the Order State is Order Dead (“D”). No further Executed Messages nor Canceled Messages will be received for the replaced order unless the Order State is not Order Dead.

The Shares field on the replace indicates how many shares were left exposed when the replacement completed. E.g.:

Enter Order Message for 500 shares

Accepted Message for 500 shares

Executed Messages for 100 shares

Replace Order Message for 500 shares

Replaced Messages with 400 shares

The 400 shares in the Replace Message indicate that 400 shares exist on the book. This same scenario could happen if the execution was in flight back to you while the Replace Order Message was traveling to NASDAQ as follows:

Enter Order Message for 500 shares

Accepted Message for 500 shares

Replace Order Message for 500 shares

Executed Messages for 100 shares on original order

Replaced Messages with 400 shares

Structure

Name | Mult. | Type | Description
Type | [0..1] | CodeSet | Replaced Message Identifier.
Timestamp | [1..1] | Timestamp | Expressed as nanoseconds since midnight.
OrigUserRefNum | [1..1] | UserRefNum | The UserRefNum of the order being replaced.
UserRefNum | [1..1] | UserRefNum | The UserRefNum of the replacement order, as entered.
Side | [1..1] | CodeSet | The side indicator as entered on the original order in the chain.
Quantity | [1..1] | Integer | Total number of shares outstanding.
Symbol | [1..1] | Alpha | Stock symbol as entered.
Price | [1..1] | Price | The accepted price of the replacement. Please note that the accepted price could potentially be different than the entered price if the order was re-priced by NASDAQ on entry. The accepted price will always be better than or equal to the entered.
TimeInForce | [1..1] | CodeSet | The accepted Time in Force of the replacement. Please note that the accepted Time in Force may potentially be different than the entered Time in Force. The accepted Time in Force will always be equal to or shorter in scope than the entered Time in Force.
Display | [1..1] | CodeSet | The accepted display type for the order. Y = visible N = hidden A = attributable Z = conformant
OrderReferenceNumber | [1..1] | Numeric | The day-unique Order Reference Number assigned by NASDAQ to this order.
Capacity | [1..1] | CodeSet | The capacity specified on the order.
InterMarketSweepEligibility | [1..1] | CodeSet | Y = eligible N = not eligible
CrossType | [1..1] | CodeSet | The cross type as entered.
OrderState | [1..1] | CodeSet | L = Order Live D = Order Dead
ClOrdID | [1..1] | Alpha | Customer order identifier for replacement order.
AppendageLength | [1..1] | Integer | The length of the remaining Optional Appendage field.
OptionalAppendage | [1..1] | TagValue | The available options supported on this message are: Firm MinQty MaxFloor PriceType PostOnly ExpireTime TradeNow HandleInst BBOWeightIndicator UserRefIdx

OrderRestated

Category: SingleGeneralOrderHandling

Message Functionality

The Order Restated Message is sent to indicate that the system has modified an order as part of its order management.

Structure

Name | Mult. | Type | Description
Type | [0..1] | CodeSet | Order Restated Message.
Timestamp | [1..1] | Timestamp | Expressed as nanoseconds since midnight.
UserRefNum | [1..1] | UserRefNum | The UserRefNum of the order being restated.
OrderRestateReason | [1..1] | CodeSet | The reason for this order being restated. R = Refresh of display (on an order with reserves) P = Update of displayed price
AppendageLength | [1..1] | Integer | The length of the remaining Optional Appendage field.
OptionalAppendage | [1..1] | TagValue | The available options supported on this message are: DisplayQuantity DisplayPrice SecondaryOrdRefNum UserRefIdx

Rejected

Category: SingleGeneralOrderHandling

Message Functionality

A Rejected Message may be sent in response to an Enter Order Message or Replace Order Message if the order or replace cannot be accepted at this time. The reason for the rejection is given.

The Order UserRefNum of a Rejected Message cannot be re-used.

Structure

Name | Mult. | Type | Description
Type | [0..1] | CodeSet | Rejected Order Message.
Timestamp | [1..1] | Timestamp | Expressed as nanoseconds since midnight.
UserRefNum | [1..1] | UserRefNum | The UserRefNum of the order being rejected.
OrderRejectReason | [1..1] | CodeSet | The reason the order was rejected.
ClOrdID | [1..1] | Alpha | Customer order identifier for order being rejected.
AppendageLength | [1..1] | Integer | The length of the remaining Optional Appendage field.
OptionalAppendage | [1..1] | TagValue | The available options supported on this message are: UserRefIdx

ReplaceOrderRequest

Category: SingleGeneralOrderHandling

Message Functionality

The Replace Order Message allows you to alter most of the attributes of an order in a single message. This is more efficient than canceling an existing order and immediately succeeding it with a new order. Replacing an order always gives it a new timestamp for its time priority on the book. If you wish you simply partially cancel an order and retain its time priority, send a Cancel Order Message instead.

There are two Order UserRefNums in the Replace Order Message. The first must be filled out with the Order UserRefNum of the existing order; the second must be a new Order UserRefNum for the replacement. The replacement Order UserRefNum must be unique in the same way as Order UserRefNums are in the Enter Order Message, and replacement Order UserRefNums may not be the same as the UserRefNum sent in Enter Order Messages. Any replacement Order UserRefNum that has already been used in another Enter Order Message or Replace Order Message will be ignored.

NASDAQ may respond to the Replace Order Message in several ways:

If the order for the existing Order UserRefNum is no longer live or if the replacement Order UserRefNum was already used, the replacement will be silently ignored. The replacement Order UserRefNum will not be consumed and may be reused in this case.

If the order for the existing Order UserRefNum is live but the details of the replace are invalid (e.g.: new Shares >= 1,000,000), a Cancel Order Message will take the existing order out of the book. The replacement Order UserRefNum will not be consumed, and may be reused in this case.

If the order for the existing Order UserRefNum is live but the existing order cannot be canceled (e.g. the existing Order is a cross order in the late period), there will be an Order Reject Message. This reject message denotes that no change has occurred to the existing order; the existing order remains fully intact with its original instructions. The Order Reject Message consumes the replacement Order UserRefNum, so the replacement Order UserRefNum may not be reused.

If the order for the existing Order UserRefNum is live and can be replaced, you will receive either a Replaced Message or an Atomically Replaced and Canceled Message.

Replace Order Messages may be chained together, so that a single order is replaced over and over again. There is no limit to the number of replaces; however no single order/replace chain may execute more than 999,999 shares cumulatively.

The Shares on the replace denote the total number of shares liable for the whole chain. Here is an example:

Enter Order Message for 500 shares

Accepted Message for 500 shares

Executed Message for 100 shares

At this point, you decide to replace the order. If you want to be exposed for

the remaining 400 shares, send the Replace Order Message with 500 Shares. This 500 equals the 400 exposed plus the 100 previously executed.

a new 500 shares, send the Replace Order Message with 600 Shares. This 600 equals the 500 new shares plus the 100 previously executed.

This may seem a bit confusing at first, but it inhibits the risk of double-liability throughout the order/replace chain.

Structure

Name | Mult. | Type | Description
Type | [0..1] | CodeSet | Identifies this message as Replace.
OrigUserRefNum | [1..1] | UserRefNum | This must be filled out with the Order UserRefNum sent on the Enter Order Message or last Replace Order Message.
UserRefNum | [1..1] | UserRefNum | The replacement Order UserRefNum must be unique and strictly increasing for each OUCH account.
Quantity | [1..1] | Integer | Total number of shares liable, inclusive of previous executions and Self Match Prevention decremented shares on this order chain. Must be greater than zero and less than 1,000,000.
Price | [1..1] | Price | The price of the replacement order. Please refer to the section in Data Types for more clarification.
TimeInForce | [1..1] | CodeSet | Corresponds to TimeInForce (59) in Nasdaq FIX. 0 = Day (Market Hours) 3 = IOC 5 = GTX (Extended Hours) 6 = GTT (ExpireTime needs to be specified)
Display | [1..1] | CodeSet | Y = visible N = hidden A = attributable
InterMarketSweepEligibility | [1..1] | CodeSet | Y = eligible N = not eligible
ClOrdID | [1..1] | Alpha | Customer order identifier for replacement order.
AppendageLength | [1..1] | Integer | The length of the remaining Optional Appendage field.
OptionalAppendage | [1..1] | TagValue | The available options supported on this message are: MinQty MaxFloor PriceType PostOnly ExpireTime TradeNow HandleInst RandomReserves PegOffset DiscretionPrice DiscretionPriceType DiscretionOffset CustomerType GroupID SharesLocated UserRefIdx

SystemEvent

Category: SingleGeneralOrderHandling

Message Functionality

System Event Messages signal events that affect the entire NASDAQ system.

Structure

Name | Mult. | Type | Description
Type | [0..1] | CodeSet | System Event Message.
Timestamp | [1..1] | Timestamp | Expressed as nanoseconds since midnight.
EventCode | [1..1] | CodeSet | S = Start Of Day, indicating that exchange is open and is ready to accept orders. E = End Of Day, indicating that the exchange is closed and will no longer accept new orders. Note that it is still possible to receive breaks and cancels after this event.

Message Elements

Data Types

Data type
Description

Alpha
Alpha fields may contain upper and lowercase characters. All fixed-width alpha fields are left-justified and padded on the right with spaces.

Integer
A numeric value (4 bytes).

Numeric
All Numeric fields are binary formatted, big-endian numbers. Sizes (shares quantities, field lengths) should be treated as unsigned values.

Price
Prices are numeric fields with an implied 4 decimal places. Prices are to be treated as unsigned numeric fields, unless designated otherwise. The maximum price currently supported is $199,999.9900 (decimal, 7735939C hex). To flag an order as a market order for a cross, use the special price of $214,748.3647 (decimal, 7FFFFFFF hex). Orders entered with a price of $200,000.00 or the max integer value will also be treated as market orders.

TagValue
An optional attribute on an order is communicated via a TagValue element. The set of optional attributes are set on an order via an options appendage. Each of the individual options formatted as a TagValue element, and the options appendage is then constructed by concatenating together the selected set of options.

Timestamp
Expressed as nanoseconds since midnight.

UserRefNum
A UserRefNum is an unsigned numeric. For a given OUCH port, the UserRefNum is used as a transaction identifier, and must be both unique and strictly increasing throughout the trading day. The system ignores new order requests identified with UserRefNums lower than the last one processed, assuming they are retransmissions. Client however has an option to multiplex their order flow via the use of an optional tag UserRefIdx. When this tag is present the UserRefNum is then assumed to be linked to an “order flow channel” specified by the UserRefIdx and the above rules regarding the use of UserRefNum are applied only within this “order flow channel” instead of the port globally.

Data Dictionary

AIQStrategy

AIQ strategy used on the cancelled order.

Type: Alpha

Used in messages: AIQCanceled

AppendageLength

The length of the remaining Optional Appendage field.

Type: Integer

Used in messages: AIQCanceled, AccountQueryRequest, AccountQueryResponse, BrokenTrade, CancelOrderRequest, CancelPending, CancelReject, DisableOrderEntryRequest, DisableOrderEntryResponse, EnableOrderEntryRequest, EnableOrderEntryResponse, EnterOrder, MassCancelRequest, MassCancelResponse, ModifyOrderRequest, OrderAccepted, OrderCanceled, OrderExecuted, OrderModified, OrderPriorityUpdate, OrderReplaced, OrderRestated, Rejected, ReplaceOrderRequest

BrokenTradeReason

Reason a trade was broken.

Type: Alpha

Allowed values in BrokenTradeReasonCodeSet:

Code | Name | Description
E | Erroneous | Trade deemed clearly erroneous.
C | Consent | Both parties agreed to break the trade.
S | Supervisory | Manually broken by supervisory.
X | External | Trade broken by an external third party.

Used in messages: BrokenTrade

Capacity

The capacity specified on the order.

Type: Alpha

Allowed values in CapacityCodeSet:

Code | Name | Description
A | Agency | Agency
P | Principal | Principal
R | Riskless | Riskless
O | Other | Other

Used in messages: EnterOrder, OrderAccepted, OrderReplaced

ClOrdID

Customer order identifier. ClOrdID will not be checked for day-uniqueness for each OUCH account.

Type: Alpha

Used in messages: BrokenTrade, EnterOrder, OrderAccepted, OrderReplaced, Rejected, ReplaceOrderRequest

CrossType

The cross type as entered.

Type: Alpha

Allowed values in CrossTypeCodeSet:

Code | Name | Description
N | ContinuousMarket | Continuous market
O | OpeningCross | Opening cross. Nasdaq only
C | ClosingCross | Closing cross. Nasdaq only
H | HaltIPO | Halt/IPO. Nasdaq only
S | Supplemental | Supplemental. Nasdaq only
R | Retail | Retail. BX only
E | ExtendedLife | Extended life. Nasdaq only
A | AfterHoursClose | After hours close. Nasdaq only

Used in messages: EnterOrder, OrderAccepted, OrderReplaced

DecrementShares

The number of shares just decremented from the order. This number is incremental, not cumulative.

Type: Numeric

Used in messages: AIQCanceled

Display

The accepted display type for the order.

Type: Alpha

Allowed values in DisplayCodeSet:

Code | Name | Description
Y | Visible | Visible
N | Hidden | Hidden
A | Attributable | Attributable
Y | Anonymous | Price to Comply
Z | Conformant | Conformant

Used in messages: EnterOrder, OrderAccepted, OrderPriorityUpdate, OrderReplaced, ReplaceOrderRequest

EventCode

Indicates if the exchange is open and ready to accept orders.

Type: Alpha

Allowed values in EventCodeCodeSet:

Code | Name | Description
S | StartOfDay | Indicating that exchange is open and is ready to accept orders.
E | EndOfDay | Indicating that the exchange is closed and will no longer accept new orders. Note that it is still possible to receive breaks and cancels after this event.

Used in messages: SystemEvent

ExecutionPrice

Price at which the trade occurred.

Type: Price

Used in messages: AIQCanceled

Firm

This field should contain all caps. Firm identifier for the order entry firm. One logical OUCH account can potentially enter orders for multiple firms in a Service Bureau configuration. If this field is blank-filled, the default firm for the OUCH account will be used.

Type: Alpha

Used in messages: DisableOrderEntryRequest, DisableOrderEntryResponse, EnableOrderEntryRequest, EnableOrderEntryResponse, MassCancelRequest, MassCancelResponse

InterMarketSweepEligibility

Type: Alpha

Allowed values in InterMarketSweepEligibilityCodeSet:

Code | Name | Description
Y | Eligible | Eligible
N | NonEligible | Not eligible

Used in messages: EnterOrder, OrderAccepted, OrderReplaced, ReplaceOrderRequest

LiquidityFlag

Liquidity flag the order would have received.

Type: Alpha

Allowed values in LiquidityFlagCodeSet:

Code | Name | Description
A | Added | Added (All markets)
C | ClosingCross | Closing Cross (Nasdaq only)
e | RetailExecutionDisplayed | Retail designated execution that added displayed liquidity (Nasdaq/BX only)
H | HaltIPOCross | Halt/IPO Cross (Nasdaq only)
i | AfterHoursClosingCross | After hours closing cross (Nasdaq only)
J | NonDisplayed | Non-displayed adding liquidity (All markets)
j | RetailPriceImproving | RPI (Retail Price Improving) order provides liquidity (BX only)
k | MidpointOrder | Added liquidity via a midpoint order (All markets)
K | HaltCross | Halt Cross (Nasdaq only)
L | ClosingCrossImbalanceOnly | Closing Cross (imbalance-only) (Nasdaq only)
M | OpeningCrossImbalanceOnly | Opening Cross (imbalance-only) (Nasdaq only)
m | RemovedAtMidpoint | Removed liquidity at a midpoint (All markets)
N | PassiveMidpointExecution | Passive midpoint execution (Nasdaq/BX only)
n | MidpointExtendedLife | Midpoint Extended Life Order execution (Nasdaq only)
O | OpeningCross | Opening Cross (Nasdaq only)
p | RemovedPriceNonDisplayed | Removed price improving non-displayed liquidity (BX only)
q | RemovedNonRetailPriceImprovingMidpoint | RMO Retail Order removes non-RPI midpoint liquidity (BX only)
R | Removed | Removed (All markets)
r | RemovedRetailPriceImproving | Retail Order removes RPI liquidity (BX only)
t | PriceImprovingNonDisplayedNonRetailPriceImproving | Retail Order removes price improving non-displayed liquidity other than RPI liquidity (BX only)
u | NonDisplayedReserve | Added non-displayed liquidity via a Reserve order (All markets)
0 | Supplemental | Supplemental order execution (Nasdaq only)
7 | DisplayedImproveNBBO | Displayed, liquidity-adding order improves the NBBO (Nasdaq/BX only)
8 | DisplayedSetQBBOJoiningNBBO | Displayed, liquidity-adding order sets the QBBO while joining the NBBO (Nasdaq/BX only)
1 | NoRetailPriceImprovement | RPI order provides liquidity, No RPII (BX only)

Used in messages: AIQCanceled, OrderExecuted

MatchNumber

Assigned by the exchange to identify the trade. Both the buy and the sell executions participating in the trade will share the same match number.

Type: Numeric

Used in messages: BrokenTrade, OrderExecuted

NextUserRefNum

The next available UserRefNum

Type: UserRefNum

Used in messages: AccountQueryResponse

OptionalAppendage

The available options supported.

Type: TagValue

Used in messages: AIQCanceled, AccountQueryRequest, AccountQueryResponse, BrokenTrade, CancelOrderRequest, CancelPending, CancelReject, DisableOrderEntryRequest, DisableOrderEntryResponse, EnableOrderEntryRequest, EnableOrderEntryResponse, EnterOrder, MassCancelRequest, MassCancelResponse, ModifyOrderRequest, OrderAccepted, OrderCanceled, OrderExecuted, OrderModified, OrderPriorityUpdate, OrderReplaced, OrderRestated, Rejected, ReplaceOrderRequest

OrderCancelReason

Reason the order was canceled.

Type: Alpha

Allowed values in OrderCancelReasonCodeSet:

Code | Name | Description
D | RegulatoryRestriction | This order cannot be executed because of a regulatory restriction (e.g.: trade through restrictions).
E | Closed | Any DAY order that was received after the closing cross is complete in a given symbol will receive this cancel reason.
F | PostOnlyCancelNMS | This Post Only order was cancelled because it would have been price slid for NMS.
G | PostOnlyCancelContraSide | This Post Only order was cancelled because it would have been price slid due to a contra side displayed order on the book.
H | Halted | The on-open order was canceled because the symbol remained halted after the opening cross completed.
I | ImmediateOrCancel | Immediate or Cancel Order.
K | MarketCollars | This order cannot be executed because of Market Collars.
Q | SelfMatchPrevention | The order was cancelled because it would have executed with an existing order entered by the same MPID.
S | Supervisory | The order was manually canceled or reduced by an NASDAQ supervisory terminal.
T | TimeOut | The Time In Force for this order has expired.
U | UserRequestedCancel | Sent in response to a Cancel Request Message.
X | OpenProtection | Orders that are cancelled as a result of the Opening Price Protection Threshold.
Z | SystemCancel | This order was cancelled by the system.
e | CompanyDirectListingCapitalRaise | Order exceeds allowable shares offered.

Used in messages: AIQCanceled, OrderCanceled

OrderReferenceNumber

The day-unique Order Reference Number assigned by NASDAQ to this order.

Type: Numeric

Used in messages: OrderAccepted, OrderPriorityUpdate, OrderReplaced

OrderRejectReason

Reason the order was rejected.

Type: Numeric

Allowed values in OrderRejectReasonCodeSet:

Code | Name | Description
1 | QuoteUnavailable | Quote Unavailable
2 | DestinationClosed | Destination Closed
3 | InvalidDisplay | Invalid Display
4 | InvalidMaxFloor | Invalid Max Floor
5 | InvalidPegType | Invalid Peg Type
6 | FatFinger | Fat Finger
7 | Halted | Halted
8 | ISONotAllowed | ISO Not Allowed
9 | InvalidSide | Invalid Side
10 | ProcessingError | Processing Error
11 | CancelPending | Cancel Pending
12 | FirmNotAuthorized | Firm Not Authorized
13 | InvalidMinQuantity | Invalid Min Quantity
14 | NoClosingReferencePrice | No Closing Reference Price
15 | Other | Other
16 | CancelNotAllowed | Cancel Not Allowed
17 | PeggingNotAllowed | Pegging Not Allowed
18 | CrossedMarket | Crossed Market
19 | InvalidQuantity | Invalid Quantity
20 | InvalidCrossOrder | Invalid Cross Order
21 | ReplaceNotAllowed | Replace Not Allowed
22 | RoutingNotAllowed | Routing Not Allowed
23 | InvalidSymbol | Invalid Symbol
24 | Test | Test
25 | LateLOCTooAggressive | Late LOC Too Aggressive
26 | RetailNotAllowed | Retail Not Allowed
27 | InvalidMidpointPostOnlyPrice | Invalid Midpoint Post Only Price
28 | InvalidDestination | Invalid Destination
29 | InvalidPrice | Invalid Price
30 | SharesExceededThreshold | Shares Exceeded Threshold
31 | ExceedsMaximumAllowedNotionalValue | Exceeds Maximum Allowed Notional Value
32 | RiskAggregateExposureExceeded | Risk Aggregate Exposure Exceeded
33 | RiskMarketImpact | Risk Market Impact
34 | RiskRestrictedStock | Risk Restricted Stock
35 | RiskShortSellRestricted | Risk Short Sell Restricted
36 | RiskOrderTypeRestricted | Risk Order Type Restricted
37 | RiskExceedsADVLimit | Risk Exceeds ADV Limit
38 | RiskFatFinger | Risk Fat Finger
39 | RiskLocateRequired | Risk Locate Required
40 | RiskSymbolMessageRateRestriction | Risk Symbol Message Rate Restriction
41 | RiskPortMessageRateRestriction | Risk Port Message Rate Restriction
42 | RiskDuplicateMessageRateRestriction | Risk Duplicate Message Rate Restriction

Used in messages: Rejected

OrderRestateReason

Reason the order was reduced.

Type: Alpha

Allowed values in OrderRestateReasonCodeSet:

Code | Name | Description
R | Refresh | Refresh of display (on an order with reserves).
P | Price | Update of displayed price.

Used in messages: OrderRestated

OrderState

Used to denote that an order entry or replace was accepted and then automatically canceled and that no further messages will be received for that order.

Type: Alpha

Allowed values in OrderStateCodeSet:

Code | Name | Description
L | OrderLive | Order live
D | OrderDead | Order dead

Used in messages: OrderAccepted, OrderReplaced

OrigUserRefNum

This must be filled out with the Order UserRefNum sent on the Enter Order Message or last Replace Order Message.

Type: UserRefNum

Used in messages: OrderReplaced, ReplaceOrderRequest

Price

The price of the order.

Type: Price

Used in messages: EnterOrder, OrderAccepted, OrderExecuted, OrderPriorityUpdate, OrderReplaced, ReplaceOrderRequest

Quantity

Total number of shares. Must be greater than zero and less than 1,000,000.

Type: Integer

Used in messages: CancelOrderRequest, EnterOrder, ModifyOrderRequest, OrderAccepted, OrderCanceled, OrderExecuted, OrderModified, OrderReplaced, ReplaceOrderRequest

QuantityPreventedFromTrading

Shares that would have executed if the trade would have occurred.

Type: Integer

Used in messages: AIQCanceled

Side

B = buy

S = sell

T = sell short

E = sell short exempt

Type: Alpha

Allowed values in SideCodeSet:

Code | Name | Description
B | Buy | Buy
S | Sell | Sell
T | SellShort | Sell short
E | SellShortExempt | Sell short exempt

Used in messages: EnterOrder, ModifyOrderRequest, OrderAccepted, OrderModified, OrderReplaced

Symbol

Stock Symbol.

Type: Alpha

Used in messages: EnterOrder, MassCancelRequest, MassCancelResponse, OrderAccepted, OrderReplaced

TimeInForce

Corresponds to TimeInForce (59) in Nasdaq FIX.

Type: Alpha

Allowed values in TimeInForceCodeSet:

Code | Name | Description
0 | Day | Day (Market Hours)
3 | IOC | IOC
5 | GTX | GTX (Extended Hours)
6 | GTT | GTT (Expire time needs to be specified)
E | AfterHours | After hours

Used in messages: EnterOrder, OrderAccepted, OrderReplaced, ReplaceOrderRequest

Timestamp

Expressed as nanoseconds since midnight.

Type: Timestamp

Used in messages: AIQCanceled, AccountQueryResponse, BrokenTrade, CancelPending, CancelReject, DisableOrderEntryResponse, EnableOrderEntryResponse, MassCancelResponse, OrderAccepted, OrderCanceled, OrderExecuted, OrderModified, OrderPriorityUpdate, OrderReplaced, OrderRestated, Rejected, SystemEvent

Type

Identifies the message type.

Type: Alpha

Allowed values in TypeCodeSet:

Code
Name
Description

O
EnterOrder

U
ReplaceOrderRequest
The Replace Order Message allows you to alter most of the attributes of an order in a single message. This is more efficient than canceling an existing order and immediately succeeding it with a new order. Replacing an order always gives it a new timestamp for its time priority on the book. If you wish you simply partially cancel an order and retain its time priority, send a Cancel Order Message instead.

X
CancelOrderRequest
The Cancel Order Message is used to request that an order be canceled or reduced. In the Cancel Order Message, you must specify the new "intended order size" for the order. The "intended order size" is the maximum number of shares that can be executed in total after the cancel is applied.

M
ModifyOrderRequest
The Modify Order Message is used to request modifications that will not affect order priority on the book. Since priority of the order does not change (exception noted), allowed modifications are restricted to only the ones specified in the message details below. Increasing share amount is not allowed and requests to do so will be ignored.

C
MassCancelRequest
The Mass Cancel Request message allows firms to initiate the cancellation of one or more orders that are currently booked at the exchange if they match the criteria specified in the request. If no optional criteria are specified then all orders for the specified firm on the account will be cancelled. Optional criteria can be specified in the Appendage field using the tags described below.

D
DisableOrderEntryRequest
The Disable Order Entry Request allows firms the ability to initiate the following requests to block submissions of new orders on a particular account.

E
EnableOrderEntryRequest
The Enable Order Entry Request allows firms the ability to initiate the following requests to unblock submission of new orders on a particular account.

Q
AccountQueryRequest
The Account Query Request message can be used when recovering state to request the next available UserRefNum that can be used for identifying new transactions.

S
SystemEvent
System Event Messages signal events that affect the entire NASDAQ system.

A
OrderAccepted
This message acknowledges the receipt and acceptance of a valid Enter Order Message. The data fields from the Enter Order Message are echoed back in this message. Note that the accepted values may differ from the entered values for some fields.

U
OrderReplaced
This message acknowledges the receipt and acceptance of a valid Replace Order Message. The data fields from the Replace Order Message are echoed back in this message. Note that the accepted values may differ from the entered values for some fields. You will receive one and only one of these two for each replacement.

C
OrderCanceled
A Canceled Message informs you that an order has been reduced or canceled. This could be acknowledging a Cancel Order Message, or it could be the result of the order timing out or being canceled automatically.

D
AIQCanceled

E
OrderExecuted
An Executed Order Message informs you that all or part of an order has been executed.

B
BrokenTrade
A Broken Trade Message informs you that an execution has been broken. The trade is no longer good and will not clear. The reason for the break is given.

J
RejectedOrder
A Rejected Message may be sent in response to an Enter Order Message or Replace Order Message if the order or replace cannot be accepted at this time. The reason for the rejection is given.

P
CancelPending
A Cancel Pending Message is sent in response to a cancel request for a cross order during a pre-cross late period signifying that it cannot be canceled at this time, but any unexecuted portion of this order will automatically be canceled immediately after the cross completes.

I
CancelReject
A Cancel Reject Message is sent in response to a partial cancel request (with non-zero “intended order size”) for a cross order during a pre-cross late period signifying that it cannot be partially canceled at this time. No automatic cancel will be scheduled for this order. Clients could repeat their request for any unexecuted portion of the order after the cross completes.

T
OrderPriorityUpdate
A Priority Update Message is sent whenever priority of the order has been changed by the system.

M
OrderModified
An Order Modified Message is sent in response to an order modify request.

R
OrderRestated
The Order Restated Message is sent to indicate that the system has modified an order as part of its order management.

X
MassCancelResponse
This message acknowledges the receipt of a valid Mass Cancel Request message. The data fields from the Mass Cancel Request message are echoed back in this message.

G
DisableOrderEntryResponse
This message acknowledges the receipt of the Disable Order Entry Request message. The data fields from the Enter Order Message are echoed back in this message.

K
EnableOrderEntryResponse
This message acknowledges the receipt of the Enable Order Entry Request message. The data fields from the Enable Order Entry Request message are echoed back in this message.

Q
AccountQueryResponse
The Account Query Response message in sent in response to an Account Query Request to indicate the next available UserRefNum that can be used to identify new transactions.

Used in messages: AIQCanceled, AccountQueryRequest, AccountQueryResponse, BrokenTrade, CancelOrderRequest, CancelPending, CancelReject, DisableOrderEntryRequest, DisableOrderEntryResponse, EnableOrderEntryRequest, EnableOrderEntryResponse, EnterOrder, MassCancelRequest, MassCancelResponse, ModifyOrderRequest, OrderAccepted, OrderCanceled, OrderExecuted, OrderModified, OrderPriorityUpdate, OrderReplaced, OrderRestated, Rejected, ReplaceOrderRequest, SystemEvent

UserRefNum

UserRefNum must be day-unique and strictly increasing for each OUCH account.

Type: UserRefNum

Used in messages: AIQCanceled, BrokenTrade, CancelOrderRequest, CancelPending, CancelReject, DisableOrderEntryRequest, DisableOrderEntryResponse, EnableOrderEntryRequest, EnableOrderEntryResponse, EnterOrder, MassCancelRequest, MassCancelResponse, ModifyOrderRequest, OrderAccepted, OrderCanceled, OrderExecuted, OrderModified, OrderPriorityUpdate, OrderReplaced, OrderRestated, Rejected, ReplaceOrderRequest