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) |