Welcome Guest, you are in: Login
CTS Futures

Security Definition Request


Enabling Security Definition Requests

To receive Security Definitions as responses to Security Definition Requests, the initiating FIX session Logon message must have Tag 372 (RefMsgType) set to "c" (i.e. Enable security definitions requests). Security definition requests that are not enabled will be rejected with a Security Definition containing a SecurityResponseType of Reject Security Proposal (Tag 323=5).

Definition of Securities

The T4 FIX API provides a mechanism to list the securities available for trading and market data streaming. All Security Definition Request messages (Tag 35=c) are successfully responded with one or more Security Definition messages.

For outrights, spreads, options and multi-legged strategies, the result sets contain information about Exchange identifier, Contract identifier, Market identifier, pricing, minimum trading volumes, minimum price amount (including Variable Tick Tables), quantity leg ratios, buy/sell sides, put/call type, strikes, etc. The Security Definition Request message (Tag 35=c) may interrogate the T4 FIX API for the available exchanges, contracts within an exchange and markets for a specific contract. In all cases, the Security Request Type (Tag 321) is set to request the list of securities (Tag 321=3). The combination of Security Type (Tag 167), Security Exchange (Tag 207), Symbol (55) and SecurityID (Tag 48) determines the returned record set.

Under the FIX T4 API, securities are defined by their Exchange, contracts within an exchange and markets for a specific contract. Exchanges are identified by an unique Exchange ID in Tag 207 (SecurityExchange). Contracts are characterized by its Contract ID in Tag 55 (Symbol). Markets are identified by an unique Market ID in Tag 48 (SecurityID).

The Security Definition Request message covers the following uses:

1. List Exchanges (Get Exchange IDs): SecurityType (Tag 167) only needs to be specified as input. This request returns all Exchange IDs in the SecurityExchange (Tag 207) with a corresponding description.

2. List Contracts within an Exchange (Get Contract IDs): SecurityType (Tag 167) needs to be specified as input. SecurityExchange (Tag 207) must also contain the exchange ID for which the contract list is requested. For an option query, the PutOrCall parameter can also be specified (Tag 201). As a result, the request returns all Contract IDs in the Symbol (Tag 55) with a contract description in SecurityDesc (Tag=107).

3. List Current Markets of a Specific Contract (Get Market IDs): SecurityType (Tag 167) needs to be specified as input. SecurityExchange (Tag 207) and Symbol (Tag 55) must also be provided to determine the contract for which the market list is requested. SecuritySubType (Tag 762) may optionally be specified to reduce the result set. For instance, to request only Outright Futures you may set Tag 762=0. Among other market description parameters, the Market ID is returned in the SecurityID (Tag 48) of the Security Definition message.

4. List a Specific Current Market (Get Market ID): To request information about a specific market, the Get Market IDs request (just above) is augmented to also include the Market ID (in Tag 48 - SecurityID) of the specific market. To pinpoint the market in the request, the input parameters will include Security Type (Tag 167), SecurityExchange (Tag 207), Symbol (Tag 55) and SecurityID (Tag 48). On success, the descriptive parameters for this specific Market ID are returned.

5. List Expired Markets for a specific Maturity (Get Expired Markets for Maturity): To request information for expired markets that include the specified maturity. The parameters to be provided include SecurityType (Tag 167), SecurityExchange (Tag 207), Symbol (Tag 55). SecurityRequestType (Tag 321) set to REQUEST_LIST_SECURITIES_ONLY_EXPIRED and MaturityMonthYear (Tag 200) set to the desired maturity. No SecurityID (Tag 48) needs to be specified.

6. List all Only Expired Markets (Get Expired Markets): To request information about all markets only expired markets. The parameters to be provided include SecurityType (Tag 167), SecurityExchange (Tag 207), Symbol (Tag 55) and SecurityRequestType (Tag 321) must be set to REQUEST_LIST_SECURITIES_ONLY_EXPIRED. No SecurityID (Tag 48) needs to be specified. The response from this request usually results in many messages as all maturities (for outrights only) returned.

Interactive Usage

The FIX API Security Definition Requests are designed to be used in a progressive and incremental manner. That is, the FIX API client would make a security definition request and process all corresponding Security Definition responses before submitting the next security definition request.

Batching of security definition requests is not supported. Per the large number of markets that CTS supports (i.e. hundreds of thousands), a significant amount of FIX messages can be generated adversely if multiple security definition requests are received at the same instance. Batching may also generate FIX API server spikes in database and cpu processing. Use of Batching may lead to invalid message traffic and result in the application being disabled.

In addition, FIX clients do not need to make security definition requests (for all instruments of interest) upon every FIX session logon. Within the current FIX session, the FIX client is expected to perform security definitions requests for instruments of immediate use if such security definitions have not been previously cached (from security definition requests of the current and previous FIX sessions). Security definition requests for the discovery of new markets are expected to be made with the frequency of the contract's expiration cycle (e.g. every quarter for CME equities).

Message Dictionary

TagField NameReq'dComments
Standard HeaderYMsgType = c
320SecurityReqIDYSecurity Definition Request identifier. Must be unique to distinguish security definition requests
321SecurityRequestTypeYType of Security Definition Request. The valid values are:
3 = REQUEST_LIST_SECURITIES - For Active (Current) markets.
4 = REQUEST_LIST_SECURITIES_ONLY_EXPIRED - For markets that have expired (i.e. no longer trading). Only Outrights are returned.
167SecurityTypeNIndicates type of security. The following values can be used:
FUT = Futures
OPT = Options
STK = Stock
SYN = Synthetic
BIN = Binary Option
207SecurityExchangeNExchange. This is the T4 Exchange ID.
55SymbolNContract within an Exchange. This is the T4 Contract ID. Related contracts are also returned.
48SecurityIDNMarket (i.e. Security) for a given Contract. This is the T4 Market ID.
201PutOrCallNPut Or Call identifier (for Options Security Type). The following values can be used:
0 = Put
1 = Call
200MaturityMonthYearNMonth-Year of expired markets. Format: YYYYMM00 or YYYYMM.
762SecuritySubTypeNSecurity SubType that further describes the security. For active markets only. The following values can be used:
0 = None (Outrights)
1 = Calendar Spread
2 = RT Calendar Spread
3 = Inter Contract Spread
4 = Butterfly
5 = Condor
6 = Double Butterfly
7 = Horizontal
8 = Bundle
9 = Month vs Pack
10 = Pack
11 = Pack Spread
12 = Pack Butterfly
13 = Bundle Spread
14 = Strip
15 = Crack
16 = Treasury Spread
17 = Crush
18 = None
19 = Threeway
20 = Threeway Straddle vs Call
21 = Threeway Straddle vs Put
22 = Box
23 = Christmas Tree
24 = Conditional Curve
25 = Double
26 = Horizontal Straddle
27 = Iron Condor
28 = Ratio 1x2
29 = Ratio 1x3
30 = Ratio 2x3
31 = Risk Reversal
32 = Straddle Strip
33 = Straddle
34 = Strangle
35 = Vertical
36 = Jelly Roll
37 = Iron Butterfly
38 = Guts
39 = Generic
40 = Diagonal
41 = Covered Threeway
42 = Covered Threeway Straddle vs Call
43 = Covered Threeway Straddle vs Put
44 = Covered Box
45 = Covered Christmas Tree
46 = Covered Conditional Curve
47 = Covered Double
48 = Covered Horizontal Straddle
49 = Covered Iron Condor
50 = Covered Ratio 1x2
51 = Covered Ratio 1x3
52 = Covered Ratio 2x3
53 = Covered Risk Reversal
54 = Covered Straddle Strip
55 = Covered Straddle
56 = Covered Strangle
57 = Covered Vertical
58 = Covered Jelly Roll
59 = Covered Iron Butterfly
60 = Covered Guts
61 = Covered Generic
62 = Covered Diagonal
63 = Covered Butterfly
64 = Covered Condor
65 = Covered Horizontal
66 = Covered Strip
67 = Covered Option
68 = Balanced Strip
69 = Unbalanced Strip
70 = Inter Contract Strip
Standard TrailerY

Sample Messages

Requesting all exchanges

>> 10/15/2012 4:22:27 PM   [FIXSECURITYDEFINITIONREQUEST] 34=2|49=T4Example|56=T4|52=20121015-21:22:27.673|320=sc-10/15/2012 4:22:27 PM|321=3|167=FUT|
[MsgSeqNum] 34 = 2
[SenderCompID] 49 = T4Example
[TargetCompID] 56 = T4
[SendingTime] 52 = 20121015-21:22:27.673
[SecurityReqID] 320 = sc-10/15/2012 4:22:27 PM
[SecurityRequestType] 321 = 3 (REQUEST_LIST_SECURITIES)
[SecurityType] 167 = FUT (FUTURE)

Requesting all contracts for a specific exchange

>> 10/15/2012 4:22:39 PM   [FIXSECURITYDEFINITIONREQUEST] 34=3|49=T4Example|56=T4|52=20121015-21:22:39.638|320=sc-10/15/2012 4:22:39 PM|321=3|167=FUT|207=CME_Eq|
[MsgSeqNum] 34 = 3
[SenderCompID] 49 = T4Example
[TargetCompID] 56 = T4
[SendingTime] 52 = 20121015-21:22:39.638
[SecurityReqID] 320 = sc-10/15/2012 4:22:39 PM
[SecurityRequestType] 321 = 3 (REQUEST_LIST_SECURITIES)
[SecurityType] 167 = FUT (FUTURE)
[SecurityExchange] 207 = CME_Eq

Requesting all markets for a specific contract

>> 10/15/2012 4:23:22 PM   [FIXSECURITYDEFINITIONREQUEST] 34=7|49=T4Example|56=T4|52=20121015-21:23:22.117|320=sc-10/15/2012 4:23:22 PM|321=3|55=ES|167=OPT|201=1|207=CME_EqOp|
[MsgSeqNum] 34 = 7
[SenderCompID] 49 = T4Example
[TargetCompID] 56 = T4
[SendingTime] 52 = 20121015-21:23:22.117
[SecurityReqID] 320 = sc-10/15/2012 4:23:22 PM
[SecurityRequestType] 321 = 3 (REQUEST_LIST_SECURITIES)
[Symbol] 55 = ES
[SecurityType] 167 = OPT (OPTION)
[PutOrCall] 201 = 1 (CALL)
[SecurityExchange] 207 = CME_EqOp

Requesting a specific market

>> 10/15/2012 4:40:18 PM   [FIXSECURITYDEFINITIONREQUEST] 34=4|49=T4Example|56=T4|52=20121015-21:40:18.421|320=sc-10/15/2012 4:40:18 PM|321=3|55=ES|167=FUT|207=CME_Eq|48=CME_20121200_ESZ2|
[MsgSeqNum] 34 = 4
[SenderCompID] 49 = T4Example
[TargetCompID] 56 = T4
[SendingTime] 52 = 20121015-21:40:18.421
[SecurityReqID] 320 = sc-10/15/2012 4:40:18 PM
[SecurityRequestType] 321 = 3 (REQUEST_LIST_SECURITIES)
[Symbol] 55 = ES
[SecurityType] 167 = FUT (FUTURE)
[SecurityExchange] 207 = CME_Eq
[SecurityID] 48 = CME_20121200_ESZ2

FIX API Home Page.

Trade how you want, where you want

support@ctsfutures.com (312) 939 0164

111 W. Jackson Blvd., Suite 1408, Chicago, IL 60604

© 2009-2017 Cunningham Trading Systems LLC All rights reserved.