Symbol Discovery and Security Definitions Messages


EXCHANGE_LIST_REQUEST [s_ExchangeListRequest structure] Client >> Server

This is a message from the Client to the Server to request a list of all available exchanges from the Server.

The server will respond with a separate EXCHANGE_LIST_RESPONSE message for each exchange.

In the case where the Server does not specify an exchange with its symbols, then the Server should provide a single response with an empty Exchange.

Field Name Field Description
[unsigned int16] Size

The standard message size field. Automatically set by constructor.

[unsigned int16] Type

The standard message type field. Automatically set by constructor.

[int32] RequestID

The unique identifier for this request. This same identifier will be returned in the EXCHANGE_LIST_RESPONSE message.

EXCHANGE_LIST_RESPONSE [s_ExchangeListResponse structure] Server >> Client

The server will return this message for each supported exchange.

If there are no exchanges to return in response to a request, send through one of these messages with the RequestID set and IsFinalMessage = 1. Leave all other members in the default state and the Client will recognize there are no Exchanges.

Field Name Field Description
[unsigned int16] Size

The standard message size field. Automatically set by constructor.

[unsigned int16] Type

The standard message type field. Automatically set by constructor.

[int32] RequestID

The RequestID sent in the request by the Client.

[char] Exchange

The exchange identifier that the Server uses to identify a particular exchange.

[unsigned int8] IsFinalMessage

1 = final message in batch.

[char] Description

The complete exchange description.

SYMBOLS_FOR_EXCHANGE_REQUEST [s_SymbolsForExchangeRequest structure] Client >> Server

This is a message from the Client to the Server to request all of the Symbols for a particular Exchange.

The server will return a SECURITY_DEFINITION_RESPONSE message to the Client for each Symbol returned.

If the Server is rejecting this request, then it needs to send a SECURITY_DEFINITION_REJECT message to the Client.

Field Name Field Description
[unsigned int16] Size

The standard message size field. Automatically set by constructor.

[unsigned int16] Type

The standard message type field. Automatically set by constructor.

[int32] RequestID

The unique identifier for this request. This same identifier will be returned in the SECURITY_DEFINITION_RESPONSE message.

[char] Exchange

The Exchange to return the available symbols listed on that Exchange.

[SecurityTypeEnum] SecurityType

The optional Security Type.

UNDERLYING_SYMBOLS_FOR_EXCHANGE_REQUEST [s_UnderlyingSymbolsForExchangeRequest structure] Client >> Server

This is a message from the Client to the Server to request all of the underlying symbols on a particular Exchange. For example, all of the underlying futures symbols on a particular Exchange.

The server will return a SECURITY_DEFINITION_RESPONSE message to the Client for each Symbol returned.

If the Server is rejecting this request, then it needs to send a SECURITY_DEFINITION_REJECT message to the Client.

Field Name Field Description
[unsigned int16] Size

The standard message size field. Automatically set by constructor.

[unsigned int16] Type

The standard message type field. Automatically set by constructor.

[int32] RequestID

The unique identifier for this request. This same identifier will be returned in the SECURITY_DEFINITION_RESPONSE message.

[char] Exchange

.

[SecurityTypeEnum] SecurityType

.

SYMBOLS_FOR_UNDERLYING_REQUEST [s_SymbolsForUnderlyingRequest structure] Client >> Server

This is a message from the Client to the Server for requesting all of the symbols for a particular underlying symbol.

For example, all of the futures contracts for a particular underlying futures symbol or all of the option symbols for a specific futures or stock symbol.

The server will return a SECURITY_DEFINITION_RESPONSE message to the Client for each Symbol returned.

If the Server is rejecting this request, then it needs to send a SECURITY_DEFINITION_REJECT message to the Client.

Field Name Field Description
[unsigned int16] Size

The standard message size field. Automatically set by constructor.

[unsigned int16] Type

The standard message type field. Automatically set by constructor.

[int32] RequestID

The unique identifier for this request. This same identifier will be returned in the SECURITY_DEFINITION_RESPONSE message.

[char] UnderlyingSymbol

The underlying symbol.

[char] Exchange

The exchange of the symbols to search for.

[SecurityTypeEnum] SecurityType

The security type of the symbols to search for.

SYMBOL_SEARCH_REQUEST [s_SymbolSearchRequest structure] Client >> Server

The SYMBOL_SEARCH_REQUEST message is sent by the Client to the Server to return Security Definitions matching the specified SecurityType and Exchange and where the Symbol or Description contains the specified SearchText.

The SearchText can search either the Symbol or the Description field in the SECURITY_DEFINITION_RESPONSE message.

In either case there does not need to be an exact match. The SearchText only needs to be contained within the Symbol or the Description depending upon which field is being searched.

The Server returns SECURITY_DEFINITION_RESPONSE messages for all Symbols which match.

If there are no matches, the Server needs to send a SECURITY_DEFINITION_RESPONSE message to the Client with with all fields at their default values except for the RequestID and IsFinalMessage fields set. This will be a clear indication to the Client that the request returned no matches.

If the Server is rejecting this request, then it needs to send a SECURITY_DEFINITION_REJECT message to the Client.

Field Name Field Description
[unsigned int16] Size

The standard message size field. Automatically set by constructor.

[unsigned int16] Type

The standard message type field. Automatically set by constructor.

[int32] RequestID

The unique identifier for this request. This same identifier will be returned in the SECURITY_DEFINITION_RESPONSE message.

[char] SearchText

The search text to search the Symbol or the Description for.

If the SearchText field is an empty text string, then the server should reject the request with a SECURITY_DEFINITION_REJECT message.

[char] Exchange

The Exchange of the Symbol to search for.

[SecurityTypeEnum] SecurityType

The Security Type of the Symbol to search for.

[SearchTypeEnum] SearchType

This field is the search type. Can be one of two possible values. Can specify to search the Symbol or the Description.

SECURITY_DEFINITION_FOR_SYMBOL_REQUEST [s_SecurityDefinitionForSymbolRequest structure] Client >> Server

This is a message from the Client to the Server for requesting Security Definition data for a specific symbol.

The Server will return a single SECURITY_DEFINITION_RESPONSE message in response to this request.

The Client must always send a SECURITY_DEFINITION_FOR_SYMBOL_REQUEST message to the Server in order to obtain the IntegerToFloatPriceDivisor value in case the Server uses the integer market data messages.

If the Server is rejecting this request, then it needs to send a SECURITY_DEFINITION_REJECT message to the Client.

Field Name Field Description
[unsigned int16] Size

The standard message size field. Automatically set by constructor.

[unsigned int16] Type

The standard message type field. Automatically set by constructor.

[int32] RequestID

The unique identifier for this request. This same identifier will be returned in the SECURITY_DEFINITION_RESPONSE message.

[char] Symbol

The symbol to return a security definition for.

[char] Exchange

The optional exchange for the Symbol.

SECURITY_DEFINITION_REJECT [s_SecurityDefinitionReject structure] Server >> Client

This is a message from the Server to the Client indicating the Server is rejecting one of the following messages: SYMBOLS_FOR_EXCHANGE_REQUEST, UNDERLYING_SYMBOLS_FOR_EXCHANGE_REQUEST, SYMBOLS_FOR_UNDERLYING_REQUEST, SECURITY_DEFINITION_FOR_SYMBOL_REQUEST, SYMBOL_SEARCH_REQUEST.

If there are no symbols to send in response to one of these messages above, then the Server should not send a SECURITY_DEFINITION_REJECT message and instead send a SECURITY_DEFINITION_RESPONSE with only the RequestID and IsFinalMessage fields set. This will be a clear indication to the Client that the request returned no Symbols.

Field Name Field Description
[unsigned int16] Size

The standard message size field. Automatically set by constructor.

[unsigned int16] Type

The standard message type field. Automatically set by constructor.

[int32] RequestID

This is the same RequestID that this message is in response to and was given in the original request message.

[char] RejectText

Text reason for rejection.

SECURITY_DEFINITION_RESPONSE [s_SecurityDefinitionResponse structure] Server >> Client

This is a response from the Server in response to a SYMBOLS_FOR_EXCHANGE_REQUEST, UNDERLYING_SYMBOLS_FOR_EXCHANGE_REQUEST, SYMBOLS_FOR_UNDERLYING_REQUEST, SECURITY_DEFINITION_FOR_SYMBOL_REQUEST, SYMBOL_SEARCH_REQUEST message.

If there are no symbols to return in response to a request, the Server needs to send through one of these messages with the RequestID set to the same RequestID value that the request message set it to, and IsFinalMessage = 1. Leave all other member fields in the default state and the Client will recognize there are no symbols.

The Client must always send a SECURITY_DEFINITION_FOR_SYMBOL_REQUEST message to the Server to obtain the IntegerToFloatPriceDivisor and FloatToIntPriceMultiplier values in the Security Definition Response message when the Server uses the integer market data and order messages.

Field Name Field Description
[unsigned int16] Size

The standard message size field. Automatically set by constructor.

[unsigned int16] Type

The standard message type field. Automatically set by constructor.

[int32] RequestID

This is the same RequestID that this message is in response to and was given in the original Security Definition request message.

[char] Symbol

This is the Symbol the Security Definition is for.

When the Server responds with a single SECURITY_DEFINITION_RESPONSE message and there are no security definitions to return for the original request, this will be empty.

This field should be empty when this Security Definition message is in response to UNDERLYING_SYMBOLS_FOR_EXCHANGE_REQUEST.

[char] Exchange

This is the Exchange for the Symbol. This field is optional.

[SecurityTypeEnum] SecurityType

The Security Type for the symbol.

[char] Description

The text description for the Symbol.

[float] MinPriceIncrement

The minimum amount that prices can change by for the Symbol and minimum amount that prices are quoted in.

[PriceDisplayFormatEnum] PriceDisplayFormat

This field specifies the price formatting for display purposes.

[float] CurrencyValuePerIncrement

This field is the currency value per MinPriceIncrement in the Symbols currency.

[unsigned int8] IsFinalMessage

Set to a integer value of 1 to indicate this is the final message in batch of Security Definition Response messages.

[float] FloatToIntPriceMultiplier

The FloatToIntPriceMultiplier field is used when the Server has set LOGON_RESPONSE::UseIntegerPriceOrderMessages to 1 which indicates it requires the use of the SUBMIT_NEW_SINGLE_ORDER_INT, SUBMIT_NEW_OCO_ORDER_INT and CANCEL_REPLACE_ORDER_INT order messages to submit an order and to modify an order.

All floating-point order prices must be multiplied by FloatToIntPriceMultiplier before being set into the Price1 in Price2 fields in order messages.

[float] IntegerToFloatPriceDivisor

The IntToFloatPriceDivisor field is used with the price values in the integer market data messages to get the equivalent floating-point value.

The price values need to be divided by IntToFloatPriceDivisor to get the actual floating-point value.

[char] UnderlyingSymbol

This is the underlying symbol for the Symbol field if the Symbol has an underlying symbol.

The Server must set this when the SECURITY_DEFINITION_RESPONSE message in response to UNDERLYING_SYMBOLS_FOR_EXCHANGE_REQUEST, SYMBOLS_FOR_UNDERLYING_REQUEST.

This is typically used with futures. A futures symbol for a specific contract year and month will have an underlying symbol equivalent to the Symbol without the year and month characters.

[unsigned int8] UpdatesBidAskOnly

This is set to 1 when the Symbol does not provide MARKET_DATA_UPDATE_TRADE messages and only provides MARKET_DATA_UPDATE_BID_ASK messages when there is market activity for the Symbol.

Otherwise, when this is set to 0, MARKET_DATA_UPDATE_TRADE messages will be received after subscribing to market data, when there is trading activity.

[float] StrikePrice

The strike price when the Security Type is an option type.

[PutCallEnum] PutOrCall

When the Security Type is an option, this indicates if it is a put or call.

[unsigned int32] ShortInterest

The short interest when the Security Type is a stock.

[t_DateTime4Byte] SecurityExpirationDate

The expiration date for the Symbol for symbols which have an expiration date.

[float] BuyRolloverInterest

The daily interest amount which is deducted for a Buy position. This only applies for Forex trading. It is in the quote currency of the symbol.

[float] SellRolloverInterest

The daily interest amount which is deducted for a Sell position. This only applies for Forex trading. It is in the quote currency of the symbol.

[float] EarningsPerShare

The earnings per share as a currency value when the Security Type is a stock.

[unsigned int32] SharesOutstanding

This is the number of shares outstanding for stocks.

[float] IntToFloatQuantityDivisor

This is an optional field for the Server to set.

The default for this is 1.0.

In the case where the Server is using integer market data or trading order messages, and it uses floating-point quantities and volumes, it is necessary for the Server to set this to a value other than default of 1.0.

For complete details, refer to Integer Trading Messages.

[unsigned int8] HasMarketDepthData

When HasMarketDepthData is set to 1, it indicates the Symbol has market depth data available for it. When this is set to 0, market depth data is not supported for the Symbol.

[float] DisplayPriceMultiplier

This is an optional field for the Server to set.

The default for this is 1.0.

This sets the multiplier to use in the case where the Client should multiply the values in market data messages by some number other than 1.0 before displaying them to the user.

It is recommended that a Server does not use this and instead transmit to the Client values as the actual floating-point values.

This should not be confused with the integer market data messages and the IntToFloatPriceDivisor field used with those messages. DisplayPriceMultiplier is for when the Server transmits market data values using floating-point types and where those values may have a fractional component, but where it is necessary to still multiply the original value by this multiplier to get the final value to display to the user.

When this is set to a value other than 1.0, then the MinPriceIncrement and the PriceDisplayFormat fields are relative to the market data values after the DisplayPriceMultiplier is applied.


*Last modified Friday, 12th August, 2016.