Differences
This shows you the differences between two versions of the page.
| 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 chad | developers:fixapi:securitydefinitionrequest [2025/09/12 02:37] (current) – chad | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| - | ====== | + | ====== |
| - | ===== Enabling | + | The Security Definition |
| - | To receive Security Definitions as responses to Security Definition Requests, the initiating FIX session **Logon** | + | |
| - | 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 | + | |
| - | For outrights, spreads, options and multi-legged strategies, result sets contain: | + | ===== Request Types ===== |
| - | * Exchange identifier | + | ^ SecurityRequestType |
| - | * Contract identifier | + | | 3 | Active markets | |
| - | * Market identifier | + | | 4 | Expired markets only | |
| - | * Pricing | + | |
| - | * Minimum trading volumes | + | |
| - | * Minimum price amount | + | |
| - | * 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 | + | |
| + | | ||
| + | | ||
| - | **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 |
| - | | + | |
| - | * **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 | + | | | **Message Header** | | Y | MsgType |
| - | 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 | + | |
| - | + | ||
| - | - **List All Only Expired Markets** | + | |
| - | Requires SecurityType (Tag 167), SecurityExchange (Tag 207), Symbol (Tag 55), | + | |
| - | SecurityRequestType | + | |
| - | + | ||
| - | ===== 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* | + | |
| - | | 320 | SecurityReqID | + | |
| - | | 321 | SecurityRequestType | + | |
| - | | 167 | SecurityType | + | |
| - | | 207 | SecurityExchange | + | |
| - | | 55 | Symbol | + | |
| - | | 48 | SecurityID | + | |
| - | | 201 | PutOrCall | + | |
| - | | 200 | MaturityMonthYear | + | |
| - | | 762 | SecuritySubType | + | |
| - | | *Standard Trailer* | + | |
| - | + | ||
| - | + | ||
| - | ===== Valid Values | + | |
| - | ^ Code ^ Description | + | |
| - | | 0 | None (Outrights) | | + | |
| - | | 1 | Calendar Spread | | + | |
| - | | 2 | RT Calendar Spread | | + | |
| - | | 3 | Inter Contract Spread | | + | |
| - | | 4 | Butterfly | + | |
| - | | 5 | Condor | + | |
| - | | 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: | ||
| < | < | ||
| - | >> 10/ | + | 8=FIX.4.2|9=100|35=c|49=T4Example|56=T4|52=20121015-21: |
| - | [FIXSECURITYDEFINITIONREQUEST] | + | 320=sc-10/ |
| - | [MsgSeqNum] 34 = 2 | + | |
| - | [SenderCompID] 49 = T4Example | + | |
| - | [TargetCompID] 56 = T4 | + | |
| - | [SendingTime] 52 = 20121015-21: | + | |
| - | [SecurityReqID] 320 = sc-10/15/2012 4:22:27 PM | + | |
| - | [SecurityRequestType] 321 = 3 (REQUEST_LIST_SECURITIES) | + | |
| - | [SecurityType] 167 = FUT (FUTURE) | + | |
| </ | </ | ||
| - | + | **List Exchange Contracts: | |
| - | Requesting all contracts for a specific exchange | + | |
| < | < | ||
| - | >> 10/ | + | 8=FIX.4.2|9=120|35=c|49=T4Example|56=T4|52=20121015-21: |
| - | [FIXSECURITYDEFINITIONREQUEST] | + | 320=sc-10/ |
| - | [MsgSeqNum] 34 = 3 | + | |
| - | [SenderCompID] 49 = T4Example | + | |
| - | [TargetCompID] 56 = T4 | + | |
| - | [SendingTime] 52 = 20121015-21: | + | |
| - | [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 | + | **List Contract Markets:** |
| < | < | ||
| - | >> 10/ | + | 8=FIX.4.2|9=140|35=c|49=T4Example|56=T4|52=20121015-21: |
| - | [FIXSECURITYDEFINITIONREQUEST] | + | 320=sc-10/ |
| - | [MsgSeqNum] 34 = 7 | + | |
| - | [SenderCompID] 49 = T4Example | + | |
| - | [TargetCompID] 56 = T4 | + | |
| - | [SendingTime] 52 = 20121015-21: | + | |
| - | [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 | + | |
| </ | </ | ||
| - | + | **Specific Market:** | |
| - | Requesting a specific market | + | |
| < | < | ||
| - | >> 10/ | + | 8=FIX.4.2|9=160|35=c|49=T4Example|56=T4|52=20121015-21: |
| - | [FIXSECURITYDEFINITIONREQUEST] | + | 320=sc-10/ |
| - | [MsgSeqNum] 34 = 4 | + | 48=CME_20121200_ESZ2|10=123| |
| - | [SenderCompID] 49 = T4Example | + | |
| - | [TargetCompID] 56 = T4 | + | |
| - | [SendingTime] 52 = 20121015-21: | + | |
| - | [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 | + | |
| </ | </ | ||
| - | + | ===== Notes ===== | |
| - | [[developers: | + | * Process responses before next request (no batching) |
| + | * Cache definitions to avoid repeated requests | ||
| + | * Match discovery to contract cycles (e.g., quarterly) | ||