developers:fixapi:start

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:start [2025/09/12 02:28] – [FIX Basics] chaddevelopers:fixapi:start [2025/09/12 02:36] (current) chad
Line 1: Line 1:
-==== T4 FIX API ====+====== T4 FIX API OVERVIEW ======
  
-This document outlines how to use the T4 FIX API 4.0 of Plus500US Futures Technologies, LLC. The T4 FIX API conforms to the [[http://www.fixprotocol.org|Financial Information eXchange (FIX) Protocol]] with minor improvements and customizations as presented herein.+The T4 FIX API 4.0 provides electronic trading access to futures markets through the [[http://www.fixprotocol.org|Financial Information eXchange (FIX) Protocol]] 4.2 with T4-specific enhancements.
  
-To develop to the T4 FIX API, you need a dedicated SSL connection to a T4 FIX API server. Your FIX client will negotiate a socket TCP connection and authenticate login parameters. To assist in development, we can provide a FIX Simulator system with market depth and execution 24x5, regardless of real market hours. From the FIX API’s perspective, the FIX Simulator works exactly the same as a live FIX system.+===== Connection Requirements ===== 
 +  * SSL-encrypted TCP socket connection 
 +  * Authentication via FIX Logon
  
-===== FIX Session =====+===== FIX Session Lifecycle ===== 
 +  1. [[developers:fixapi:logon|Logon]] - Authentication and session configuration 
 +  2. **Message Exchange** - Trading and market data 
 +  3. [[developers:fixapi:logout|Logout]] - Session termination
  
-In the following scenarios, the T4 API User (Client) is identified as the “Initiator” while the T4 FIX API (Server) is named the “Acceptor”. Under the FIX API, a FIX session is comprised of a [[developers:fixapi:logon|FIX Logon]], (administrative and application) message exchanges and a [[developers:fixapi:logout|FIX Logout]]. Under all circumstances, a FIX session spans over these 3 components. Note, the FIX session does not span over multiple [[developers:fixapi:logon|FIX Logons]]. In the T4 FIX API, all (application level) message interactions are governed by the FIX Session Protocol rules as applied to both administrative and application messages. As an option of the FIX API, the FIX Session may also include multiple [[developers:fixapi:traderlogon|Trader Logons]]. This feature accommodates multiple Traders/Users under the same physical connection of the FIX Session.+OptionalMultiple [[developers:fixapi:traderlogon|Trader Logons]] per physical connection
  
-===== Message Integrity =====+===== Message Integrity Requirements ===== 
 +  * SOH delimiter (ASCII 001) between fields 
 +  * Sequential message numbering (Tag 34) 
 +  * Valid CheckSum (Tag 10) 
 +  * No empty tags 
 +  * Conformance to T4 message dictionaries
  
-The integrity of the FIX messages is of primary importance to maintain a FIX Session under the T4 FIX API. All messages must be well-formed (non-garbled and complete), delineated with the SOH delimiter character (ASCII 001), with no empty tags, carry valid value types and be in faithful conformance to the message (Tag) dictionaries of this current documentation. All messages must be delivered in sequential order as specified by the Sequence Number tag (Tag 34). Data integrity must be signed by the message CheckSum number (Tag 10). Unless specified as part of the T4 FIX API dictionaries, custom tags will be ignored and may cause a FIX Session termination. All message traffic is un-encrypted. +===== Market Identification ===== 
- +^ Field ^ Tag ^ Description ^ 
-===== Message Structure ===== +SecurityExchange 207 | Exchange identifier 
- +| Symbol | 55 | Contract identifier | 
-All messages (administrative and application) are expected to conform to the __FIX 4.2__ (Tag-Value) format with __minor improvements and customizations__. In addition to the mandatory FIX [[developers:fixapi:standardheader|Standard Header]] and [[developers:fixapi:standardtrailer|Standard Trailer]], messages received through a client connection are required to be fully compliant with the T4 FIX API **Message Dictionary** (as shown from the **Message Types** links below). All messages must contain BeginString (Tag 8), BodyLength (Tag 9) and MessageType (Tag 35) as the first 3 tags. The [[developers:fixapi:standardtrailer|Standard Trailer]] must also contain a correctly computed CheckSum number (Tag 10). Messages deviated from the above will be considered as garbled. Upon the detection of a garbled message, the current FIX Session will be subject to immediate termination. The TCP physical connection will also be dropped. +| SecurityID | 48 | Unique market identifier |
- +
-For sample and details of specific FIX messages, please refer to the description of each message type below. Note that the sample FIX messages are provided without the mandatory tags BeginString (Tag 8), MessageType (Tag 35), MessageLength (Tag 9) and CheckSum (Tag 10). For brevity, all message dictionaries are only provided with the **relevant T4** tags. +
- +
-Under the T4 FIX API, securities are uniquely identified by the specific market of a contract offered by an exchange. As such, Exchanges are identified by a unique Exchange ID in Tag 207 (SecurityExchange). Contracts are characterized by its Contract ID in Tag 55 (Symbol). Markets are identified by a unique Market ID in Tag 48 (SecurityID).+
  
 ===== Message Types ===== ===== Message Types =====
  
-For a full explanation of message type dynamics and its corresponding tag dictionary, please click on the links below.+^ **ADMINISTRATIVE** ^ **MARKET DATA** ^ **SECURITY DEFINITIONS** ^ **ORDER ROUTING** ^ **APPLICATION MANAGEMENT** ^ 
 +| [[developers:fixapi:logon|Logon]] | [[developers:fixapi:marketdatarequest|MarketData Request]] | [[developers:fixapi:securitydefinitionrequest|Security Definition Request]] | [[developers:fixapi:newordersingle|New Order Single]] | [[developers:fixapi:collateralinquiry|Collateral Inquiry]] | 
 +| [[developers:fixapi:logout|Logout]] | [[developers:fixapi:marketdatasnapshotfullrefresh|MarketData Snapshot FullRefresh]] | [[developers:fixapi:securitydefinition|Security Definition]] | [[developers:fixapi:cancelreplacerequest|Cancel Replace Request]] | [[developers:fixapi:collateralreport|Collateral Report]] | 
 +| [[developers:fixapi:heartbeat|Heartbeat]] | [[developers:fixapi:marketdataincrementalrefresh|MarketData Incremental Refresh]] | | [[developers:fixapi:ordercancelrequest|Order Cancel Request]] | [[developers:fixapi:standardheader|Standard Header]] | 
 +| [[developers:fixapi:testrequest|Test Request]] | [[developers:fixapi:marketdatarequestreject|MarketData Request Reject]] | | [[developers:fixapi:executionreport|Execution Report]] | [[developers:fixapi:standardtrailer|Standard Trailer]] | 
 +| [[developers:fixapi:resendrequest|Resend Request]] | | | [[developers:fixapi:orderstatusrequest|Order Status Request]] | | 
 +| [[developers:fixapi:sequencereset|Sequence Reset]] | | | [[developers:fixapi:cancelreject|Cancel Reject]] | | 
 +| [[developers:fixapi:reject|Reject]] | | | [[developers:fixapi:neworderlist|New Order List]] | | 
 +| [[developers:fixapi:traderlogon|Trader Logon]] | | | [[developers:fixapi:listcancelrequest|List Cancel Request]] | | 
 +| [[developers:fixapi:traderlogonresponse|Trader Logon Response]] | | | [[developers:fixapi:ordermassstatusrequest|Order Mass Status Request]] | | 
 +| [[developers:fixapi:traderlogout|Trader Logout]] | | | | | 
 +| [[developers:fixapi:traderlogoutresponse|Trader Logout Response]] | | | | |
  
-^ **ADMINISTRATIVE**             ^ **MARKET DATA**                  ^ **SECURITY DEFINITIONS**          ^ **ORDER ROUTING**                   ^ **APPLICATION MANAGEMENT**          
-| [[developers:fixapi:logon|Logon]]                  | [[developers:fixapi:marketdatarequest|MarketData Request]]          | [[developers:fixapi:securitydefinitionrequest|Security Definition Request]] | [[developers:fixapi:newordersingle|New Order Single]]          | [[developers:fixapi:collateralinquiry|Collateral Inquiry]]      | 
-| [[developers:fixapi:logout|Logout]]                | [[developers:fixapi:marketdatasnapshotfullrefresh|MarketData Snapshot FullRefresh]] | [[developers:fixapi:securitydefinition|Security Definition]]       | [[developers:fixapi:cancelreplacerequest|Cancel Replace Request]]| [[developers:fixapi:collateralreport|Collateral Report]]         | 
-| [[developers:fixapi:heartbeat|Heartbeat]]          | [[developers:fixapi:marketdataincrementalrefresh|MarketData Incremental Refresh]] |                                                          | [[developers:fixapi:ordercancelrequest|Order Cancel Request]]    | [[developers:fixapi:standardheader|Standard Header]]             | 
-| [[developers:fixapi:testrequest|Test Request]]     | [[developers:fixapi:marketdatarequestreject|MarketData Request Reject]]                                                              | [[developers:fixapi:executionreport|Execution Report]]           | [[developers:fixapi:standardtrailer|Standard Trailer]]            | 
-| [[developers:fixapi:resendrequest|Resend Request]] |                                                          |                                                          | [[developers:fixapi:orderstatusrequest|Order Status Request]]    |                                                               | 
-| [[developers:fixapi:sequencereset|Sequence Reset]] |                                                          |                                                          | [[developers:fixapi:cancelreject|Cancel Reject]]                                                                               | 
-| [[developers:fixapi:reject|Reject]]                |                                                          |                                                          | [[developers:fixapi:neworderlist|New Order List]]                |                                                               | 
-| [[developers:fixapi:traderlogon|Trader Logon]]                                                              |                                                          | [[developers:fixapi:listcancelrequest|List Cancel Request]]      |                                                               | 
-| [[developers:fixapi:traderlogonresponse|Trader Logon Response]] |                                                          |                                                          | [[developers:fixapi:ordermassstatusrequest|Order Mass Status Request]] |                                                               | 
-| [[developers:fixapi:traderlogout|Trader Logout]]                                                            |                                                          |                                                                                                                             | 
-| [[developers:fixapi:traderlogoutresponse|Trader Logout Response]] |                                                          |                                                          |                                                                                                                             | 
 ===== Order Types ===== ===== Order Types =====
  
-The T4 FIX API supports a comprehensive set of Order Types for Order Routing. Please click on the links below for a full explanation and sample messages. +^ **STANDARD** ^ **SPECIAL** ^ **CONTINGENT (BATCH)** ^ 
- +| [[developers:fixapi:marketorder|Market]] | [[developers:fixapi:completevolumeorder|Complete Volume]] | [[developers:fixapi:ocoorder|OCO (One Cancels Other)]] | 
-^ **STANDARD**                        ^ **SPECIAL**                              ^ **CONTINGENT (BATCH)**                       +| [[developers:fixapi:limitorder|Limit]] | [[developers:fixapi:immediateandcancelorder|Immediate And Cancel]] | [[developers:fixapi:autoocoorder|Automatic OCO (One Cancels Other)]] | 
-| [[developers:fixapi:marketorder|Market]]                     | [[developers:fixapi:completevolumeorder|Complete Volume]]                 | [[developers:fixapi:ocoorder|OCO (One Cancels Other)]]           +| [[developers:fixapi:stoporder|Stop]] | [[developers:fixapi:gtcorder|Good Til Cancel]] | [[developers:fixapi:spark|Spark]] | 
-| [[developers:fixapi:limitorder|Limit]]                       | [[developers:fixapi:immediateandcancelorder|Immediate And Cancel]]         | [[developers:fixapi:autoocoorder|Automatic OCO (One Cancels Other)]] | +| [[developers:fixapi:stoplimitorder|Stop Limit]] | [[developers:fixapi:activationonmarketmodeorder|Activation On Market Mode]] | [[developers:fixapi:autoocom|Automatic OCO (Multiple Exits)]] | 
-| [[developers:fixapi:stoporder|Stop]]                         | [[developers:fixapi:gtcorder|Good Til Cancel]]                            | [[developers:fixapi:spark|Spark]]                                 +| [[developers:fixapi:trailingstoporder|Trailing Stop]] | [[developers:fixapi:activationattimeorder|Activation At Time]] | | 
-| [[developers:fixapi:stoplimitorder|Stop Limit]]               | [[developers:fixapi:activationonmarketmodeorder|Activation On Market Mode]]| [[developers:fixapi:autoocom|Automatic OCO (Multiple Exits)]]     +| | [[developers:fixapi:activationonpriceorder|Activation On Price]] | | 
-| [[developers:fixapi:trailingstoporder|Trailing Stop]]         | [[developers:fixapi:activationattimeorder|Activation At Time]]                                                                          +| | [[developers:fixapi:flattenorder|Flatten]] | | 
-                                                                 | [[developers:fixapi:activationonpriceorder|Activation On Price]]                                                                        +| | [[developers:fixapi:joinorder|Join]] | | 
-                                                                 | [[developers:fixapi:flattenorder|Flatten]]                                                                                              +| | [[developers:fixapi:hitorder|Hit]] | | 
-                                                                 | [[developers:fixapi:joinorder|Join]]                                                                                                    +| | [[developers:fixapi:queueorder|Queue]] | | 
-                                                                 | [[developers:fixapi:hitorder|Hit]]                                                                                                      +| | [[developers:fixapi:marketiftouchedorder|Market If Touched]] | |
-                                                                 | [[developers:fixapi:queueorder|Queue]]                                                                                                  +
-                                                                 | [[developers:fixapi:marketiftouchedorder|Market If Touched]]                                                                            | +
- +
- +
- +
-===== FIX Basics ===== +
- +
-The T4 FIX API conforms to the Financial Information eXchange (FIX) Protocol.   +
-Documentation on FIX can be found at: http://www.fixprotocol.org +
- +
- +
-==== FIX Technology ==== +
-FIX is a messaging protocol for executing electronic transactions between financial institutions under a common framework.   +
-A good overview on FIX can be found here: http://www.fixtradingcommunity.org/pg/main/what-is-fix +
- +
-==== FIX Protocol Resources ==== +
-A good source of FIX information, documentation, official protocol specifications, and message examples (including implementation source code) can be found at the protocol’s guardian:   +
-http://www.fixtradingcommunity.org +
- +
-==== FIX Complementary Resources ==== +
-For beginners, QuickFIX is commonly recommended as it simplifies some FIX implementation details and has several source code examples:   +
-http://www.quickfixengine.org/quickfix/doc/html +
- +
-As the T4 FIX API communications are encrypted with SSL (Secured Sockets Layer), an SSL proxy (e.g. Stunnel) may be used to cover the SSL requirement:   +
-https://www.stunnel.org/ +
- +
-==== T4 FIX API Documentation and Samples ==== +
-T4 FIX API is based on **FIX version 4.2**+
  
 +===== Resources =====
 +  * **FIX Protocol:** http://www.fixprotocol.org
 +  * **FIX Community:** http://www.fixtradingcommunity.org
 +  * **QuickFIX Engine:** http://www.quickfixengine.org
 +  * **SSL Proxy (Stunnel):** https://www.stunnel.org
 +  * **Base Version:** FIX 4.2
  • developers/fixapi/start.1757644104.txt.gz
  • Last modified: 2025/09/12 02:28
  • by chad