developers:fixapi:securitydefinitionrequest

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
developers:fixapi:securitydefinitionrequest [2025/09/12 01:33] – ↷ Page moved and renamed from developers:fixapi.securitydefinitionrequest to developers:fixapi:securitydefinitionrequest chaddevelopers:fixapi:securitydefinitionrequest [2025/09/12 02:37] (current) chad
Line 1: Line 1:
-====== Security Definition Request ======+====== SECURITY DEFINITION REQUEST [35=c] ======
  
-===== Enabling Security Definition Requests ===== +The Security Definition Request message queries available trading instruments.
-To receive Security Definitions as responses to Security Definition Requests, the initiating FIX session **Logon** message must have **Tag 372 (RefMsgType)** set to `"c"` (Enable security definitions requests).   +
-Requests that are not enabled will be rejected with a Security Definition containing **SecurityResponseType = Reject Security Proposal (Tag 323=5)**.+
  
-===== Definition of Securities ===== +===== Prerequisites ===== 
-The T4 FIX API provides a mechanism to list the securities available for trading and market data streaming.   +  * Enable via Logon with RefMsgType=c (Tag 372) 
-All Security Definition Request messages (**Tag 35=c**) are successfully responded with one or more **Security Definition** messages.+  Requests without enablement rejected with SecurityResponseType=5
  
-For outrights, spreads, options and multi-legged strategies, result sets contain: +===== Request Types ===== 
-  * Exchange identifier +^ SecurityRequestType (321^ Description ^ 
-  * Contract identifier +| 3 | Active markets | 
-  * Market identifier +| 4 | Expired markets only |
-  * Pricing +
-  * Minimum trading volumes +
-  * Minimum price amount (including Variable Tick Tables+
-  * Quantity leg ratios +
-  * Buy/sell sides +
-  * Put/Call type +
-  * Strikes+
  
-The **Security Definition Request** may interrogate the T4 FIX API for+===== Query Patterns ===== 
-  * Available exchanges +  1. **List Exchanges:** SecurityType only 
-  * Contracts within an exchange +  2. **List Contracts:** SecurityType + SecurityExchange 
-  * Markets for a specific contract+  3. **List Markets:** SecurityType + SecurityExchange + Symbol 
 +  4. **Specific Market:** Add SecurityID to above 
 +  5. **Expired Markets:** Use SecurityRequestType=4
  
-**SecurityRequestType (Tag 321)** is always set to request the list of securities (**Tag 321=3**).   +===== Message Specification =====
-Returned record sets are determined by the combination of: +
-  * **SecurityType (Tag 167)** +
-  * **SecurityExchange (Tag 207)** +
-  * **Symbol (Tag 55)** +
-  * **SecurityID (Tag 48)**+
  
-===== Identifiers ===== +**Message Direction:** Client → T4
-  * **Exchange** — Unique Exchange ID (**Tag 207 - SecurityExchange**) +
-  * **Contract** — Contract ID (**Tag 55 - Symbol**) +
-  * **Market** — Unique Market ID (**Tag 48 - SecurityID**)+
  
-===== Supported Use Cases ===== +^ Tag ^ Field Name ^ Type ^ Req'd ^ Description ^ 
-  - **List Exchanges (Get Exchange IDs)**   +| | **Message Header** | | Y | MsgType c | 
-    Set SecurityType (Tag 167). Returns all Exchange IDs in Tag 207 with description.+| 320 | SecurityReqID | String | Y | Unique request ID | 
 +| 321 | SecurityRequestType | Int | Y | 3=Active, 4=Expired | 
 +| 167 | SecurityType | String | O | FUT, OPT, STK, SYN, BIN | 
 +| 207 | SecurityExchange | String | O | T4 Exchange ID | 
 +| 55 | Symbol | String | O | T4 Contract ID | 
 +| 48 | SecurityID | String | O | T4 Market ID | 
 +| 201 | PutOrCall | Int | O | 0=Put, 1=Call | 
 +| 200 | MaturityMonthYear | String | O | Format: YYYYMM | 
 +| 762 | SecuritySubType | String | O | Strategy type (see table
 +| | **Message Trailer** | | Y | |
  
-  - **List Contracts within an Exchange (Get Contract IDs)**   +===== SecuritySubType Values ===== 
-    Requires SecurityType (Tag 167) and SecurityExchange (Tag 207). Optional PutOrCall (Tag 201) for options.   +^ Code ^ Type 
-    Returns all Contract IDs (Tag 55) with description (Tag 107). +| 0 | Outrights | 
- +| 1 | Calendar Spread | 
-  - **List Current Markets of a Specific Contract (Get Market IDs)**   +| 3 | Inter-Contract Spread | 
-    Requires SecurityType (Tag 167), SecurityExchange (Tag 207), Symbol (Tag 55).   +| 4 | Butterfly | 
-    Optional SecuritySubType (Tag 762) to filter results. Returns Market IDs in Tag 48. +| 5 | Condor |
- +
-  - **List a Specific Current Market (Get Market ID)**   +
-    Same as above, but includes SecurityID (Tag 48) for the specific market. +
- +
-  - **List Expired Markets for a Specific Maturity**   +
-    Requires SecurityType (Tag 167), SecurityExchange (Tag 207), Symbol (Tag 55),   +
-    SecurityRequestType REQUEST_LIST_SECURITIES_ONLY_EXPIRED, MaturityMonthYear (Tag 200). +
- +
-  - **List All Only Expired Markets**   +
-    Requires SecurityType (Tag 167), SecurityExchange (Tag 207), Symbol (Tag 55),   +
-    SecurityRequestType REQUEST_LIST_SECURITIES_ONLY_EXPIRED. +
- +
-===== Interactive Usage ===== +
-Security Definition Requests are **progressive and incremental**: +
-  * Send a request → process all responses → send the next request. +
-  * **Batching is not supported** — may cause performance issues or disconnection. +
-  * Avoid re-requesting all instruments on every FIX session logon — cache definitions where possible. +
-  * New market discovery should match contract expiration cycles (e.g., quarterly for CME equities). +
- +
-===== Message Dictionary ===== +
-^ Tag  ^ Field Name              ^ Req'd ^ Comments                                                                                                    | +
-| *Standard Header*              | Y     | MsgType = c                                                                                                | +
-| 320  | SecurityReqID           | Y     | Unique identifier for this request.                                                                         | +
-| 321  | SecurityRequestType     | Y     | 3 = REQUEST_LIST_SECURITIES (Active markets), 4 = REQUEST_LIST_SECURITIES_ONLY_EXPIRED (Expired markets only)| +
-| 167  | SecurityType            | N     | FUT = Futures, OPT = Options, STK = Stock, SYN = Synthetic, BIN = Binary Option                              | +
-| 207  | SecurityExchange        | N     | T4 Exchange ID                                                                                               | +
-| 55   | Symbol                  | N     | T4 Contract ID                                                                                               | +
-| 48   | SecurityID              | N     | T4 Market ID                                                                                                 | +
-| 201  | PutOrCall               | N     | 0 = Put, 1 = Call                                                                                            | +
-| 200  | MaturityMonthYear       | N     | Format YYYYMM00 or YYYYMM                                                                                    | +
-| 762  | SecuritySubType         | N     | Further describes the security (see valid values list)                                                       | +
-| *Standard Trailer*             | Y                                                                                                                  | +
- +
- +
-===== Valid Values for SecuritySubType (Tag 762) ===== +
-^ Code ^ Description +
-| 0  None (Outrights+
-| 1  Calendar Spread | +
-| 2  | RT Calendar Spread | +
-| 3  | Inter Contract Spread | +
-| 4  | Butterfly Spread +
-| 5  | Condor Spread | +
-| 6  | Pack Spread | +
-| 7  | Bundle Spread | +
-| 8  | Inter Exchange Spread | +
-| 9  | Crack Spread | +
-| 10 | Spark Spread | +
-| 11 | Crush Spread | +
-| 12 | Reverse Crush Spread | +
-| 13 | Strip |+
 | 14 | Straddle | | 14 | Straddle |
 | 15 | Strangle | | 15 | Strangle |
-| 16 | Guts | 
-| 17 | Synthetics | 
-| 18 | Combo | 
 | 19 | Vertical Spread | | 19 | Vertical Spread |
-| 20 | Horizontal Spread | 
-| 21 | Diagonal Spread | 
-| 22 | Ratio Spread | 
-| 23 | Back Spread | 
-| 24 | Covered Call | 
-| 25 | Covered Put | 
-| 26 | Married Put | 
-| 27 | Collar | 
-| 28 | Fence | 
-| 29 | Conversion | 
-| 30 | Reverse Conversion | 
-| 31 | Box Spread | 
-| 32 | Jelly Roll | 
-| 33 | Iron Condor | 
-| 34 | Iron Butterfly | 
-| 35 | Ladder | 
-| 36 | Seagull | 
-| 37 | Strip (Option Strategy) | 
-| 38 | Strap | 
-| 39 | Synthetic Long Stock | 
-| 40 | Synthetic Short Stock | 
-| 41 | Synthetic Long Future | 
-| 42 | Synthetic Short Future | 
-| 43 | Reversal | 
-| 44 | Risk Reversal | 
-| 45 | Calendar Butterfly | 
-| 46 | Calendar Condor | 
-| 47 | Calendar Straddle | 
-| 48 | Calendar Strangle | 
-| 49 | Diagonal Butterfly | 
-| 50 | Diagonal Condor | 
-| 51 | Diagonal Straddle | 
-| 52 | Diagonal Strangle | 
-| 53 | Horizontal Butterfly | 
-| 54 | Horizontal Condor | 
-| 55 | Horizontal Straddle | 
-| 56 | Horizontal Strangle | 
-| 57 | Ratio Butterfly | 
-| 58 | Ratio Condor | 
-| 59 | Ratio Straddle | 
-| 60 | Ratio Strangle | 
-| 61 | Vertical Butterfly | 
-| 62 | Vertical Condor | 
-| 63 | Vertical Straddle | 
-| 64 | Vertical Strangle | 
-| 65 | Box (Synthetic Arbitrage) | 
-| 66 | Diagonal Box | 
-| 67 | Horizontal Box | 
-| 68 | Ratio Box | 
-| 69 | Vertical Box | 
-| 70 | Inter Contract Strip | 
  
-====== Sample Messages =====+===== Sample Messages =====
- +
- +
- +
-Requesting all exchanges+
  
 +**List All Exchanges:**
 <code> <code>
->> 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| +8=FIX.4.2|9=100|35=c|49=T4Example|56=T4|52=20121015-21:22:27.673| 
-[FIXSECURITYDEFINITIONREQUEST] +320=sc-10/15/2012 4:22:27 PM|321=3|167=FUT|10=123|
-[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)+
 </code> </code>
  
- +**List Exchange Contracts:**
-Requesting all contracts for a specific exchange +
 <code> <code>
->> 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| +8=FIX.4.2|9=120|35=c|49=T4Example|56=T4|52=20121015-21:22:39.638| 
-[FIXSECURITYDEFINITIONREQUEST] +320=sc-10/15/2012 4:22:39 PM|321=3|167=FUT|207=CME_Eq|10=123|
-[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 +
 </code> </code>
  
-Requesting all markets for a specific contract +**List Contract Markets:**
 <code> <code>
->> 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| +8=FIX.4.2|9=140|35=c|49=T4Example|56=T4|52=20121015-21:23:22.117| 
-[FIXSECURITYDEFINITIONREQUEST] +320=sc-10/15/2012 4:23:22 PM|321=3|55=ES|167=OPT|201=1|207=CME_EqOp|10=123|
-[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+
 </code> </code>
  
- +**Specific Market:**
-Requesting a specific market+
 <code> <code>
->> 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| +8=FIX.4.2|9=160|35=c|49=T4Example|56=T4|52=20121015-21:40:18.421| 
-[FIXSECURITYDEFINITIONREQUEST] +320=sc-10/15/2012 4:40:18 PM|321=3|55=ES|167=FUT|207=CME_Eq| 
-[MsgSeqNum] 34 = 4 +48=CME_20121200_ESZ2|10=123|
-[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+
 </code> </code>
  
- +===== Notes ===== 
-[[developers:legacy_fix_api|T4 FIX API Home]]+  * Process responses before next request (no batching) 
 +  * Cache definitions to avoid repeated requests 
 +  * Match discovery to contract cycles (e.g., quarterly)
  • developers/fixapi/securitydefinitionrequest.1757640836.txt.gz
  • Last modified: 2025/09/12 01:33
  • by chad