EBS Analytics API Rules of Engagement
Quant Analytics provides greater insight into your trading performance so you can improve your results with every trade. Using real-time, historical and end-of-day data, the platform gives you a clear picture of FX trading.
The EBS Analytics API streams trade information, market impact and alpha calculations on a trade-by-trade basis to clients. Using benchmark data taken from the entire EBS ecosystem, the Quant Analytics platform provides insights that allow clients to analyze trade flows, optimize execution efficiencies and benchmark their performance against the EBS community, including statistics on averages for like trades.
This topic represents a FIX 4.4 compliant specification for integration with the Quant Analytics system. Some tags are borrowed from FIX 5.0SP2.
See also:
- EBS Analytics FIX Data Dictionary (XML)
- FTC FIX Specification 4.4
- FTC FIX Specification 5.0 SP2
Refer to the FTC documentation on the FTC website.
Contents
Products Supported
Instruments Supported
EBS Analytics API supports the following instruments at launch:
- Spot
- NDFs
- Precious Metals
The below instruments are NOT supported but will be in the future:
- Forward Outrights
- Swaps
Markets Supported
The following markets are supported:
- EBS Direct
The below markets are NOT supported but will be in the future:
- EBS Market
Analytic Timings
T+5 analytics are provided between 5.5 and 10.5 minutes after the trade takes place. This is approximate because trades are processed in batches which can affect timing. More accurate calculations are performed by 6am GMT on a daily basis and at this time the analytics will include metrics not available at T+5 minutes.
Connectivity
Connectivity will be available by SSL over Internet at launch; other connectivity methods may be introduced at a later date.
Concurrent Subscriptions
To safeguard systems, by default 10 concurrent subscriptions are allowed, attempts to stream more than this will be rejected.
System Schedule
EBS Analytics FIX Servers are available from 7pm on Sunday until 8am on Saturday (GMT).
The ideal configuration is for clients to connect on a weekly basis. This will ensure there is no interruption to a client's T+5 minutes feed.
Time | Action |
---|---|
19:00 Sunday | Start FIX session. |
00:00 Mon-Fri | System rollover, FIX session will remain connected but historical data for the previous calendar |
06:00 Mon-Fri | Latest time T+1 day calculations are published. |
08:00 Saturday | Stop FIX session, reset sequence numbers. |
Historical Data and Recovery
At launch it is possible to request historical data going back to midnight GMT:
- On the current calendar day for T+5 mins analytics.
- On the previous calendar day for T+1 day analytics.
This applies to both snapshot and snaphot+update requests.
Any T+5 min data missing prior to midnight will be restored by 6am GMT when T+1 day analytics are produced at the latest. If further historical data is required then it is possible to use the web dashboard to extract data in CSV format.
Session Management
Clients initiate FIX sessions with the EBS FIX engine which is the acceptor. Most clients will only need a single session, but if you are both an Liquidity Consumer (LC) and an Liquidity Provider (LP) then you will require separate sessions.
Logon (35=A)
A single SenderCompID/TargetCompID may have only one active FIX connection at a time. If a duplicate Logon request for the same SenderCompID/TargetCompID is received while a FIX connection is active, there will be no response to the new Logon request.
Tag | Field Name | Req | Ver | Comments |
---|---|---|---|---|
98 | EncryptMethod | Y | 4.4 | Always '0' = None |
108 | HeartBtInt | Y | 4.4 | Heartbeat interval in seconds. Must be > zero. |
141 | ResetSeqNumFlag | Y | 4.4 | Should be set to 'Y' as persistence is not supported. |
553 | Username | Y | 4.4 | User name assigned by EBS to a user. |
Failed Logon Attempts
If a client Logon request has passed network layer authentication and initial message validation, but the Logon request cannot be completed for any reason, EBS will reply with a Logout message indicating the reason for the Logon failure in the Text field. The Logon request must include a valid SenderCompID/valid TargetCompID combination. After sending the Logout message, EBS will immediately terminate the network connection.
Connection attempts which do not pass network layer authentication will not be responded to. Similarly, malformed Logon messages (missing required field, invalid data type, invalid header or trailer) will be ignored.
Clients are cautioned not to repeatedly attempt to log on following an unsuccessful log on attempt. Client applications should wait a configurable time interval before re-attempting a successive logon. Logon attempts more frequent than the EBS provided configured maximum logon frequency will not be responded to.
Heartbeat (35=0)
Tag | Field Name | Req | Ver | Comments |
---|---|---|---|---|
112 | TestReqID | N | 4.4 | Included when the Heartbeat is in response to a Test Request message. Echoes back the TestReqID of the Test Request message. |
Test Request (35=1)
Sent to request a Heartbeat from the other side. FIX protocol recommends using the current timestamp as the TestReqID.
Tag | Field Name | Req | Ver | Comments |
---|---|---|---|---|
112 | TestReqID | Y | 4.4 | Unique identifier of the Test Request message to be echoed on the Heartbeat message sent in response to the Test Request message. The FIX protocol recommends using the current timestamp. |
Resend Request (35=2)
A Resend Request message may be sent by either party to request retransmission of missed sequence numbers.
Tag | Field Name | Req | Ver | Comments |
---|---|---|---|---|
7 | BeginSeqNo | Y | 4.4 | First sequence number requested to be resent. |
16 | EndSeqNo | Y | 4.4 | Last sequence number requested to be resent.
|
Sequence Reset (35=4)
Tag | Field Name | Req | Ver | Comments |
---|---|---|---|---|
123 | GapFillFlag | N | 4.4 |
|
36 | NewSeqNo | Y | 4.4 | Contains the sequence number of the next message which will be transmitted by the sender. |
Session Level Reject (35=3)
A generic message which can be used by either side to reject a FIX message which fails session-level validation. It contains fields to indicate the FIX MsgType and FIX tag of the invalid data.
If a message contains multiple session-level rule violations which would cause rejection, only the first detected error will be indicated in the Reject message. To avoid rejection loops, errors in a Reject message should not themselves be rejected.
A Session Level Reject message is not sent when a FIX message cannot be decoded or fails CheckSum or BodyLength validations. In this case, it must be assumed that the communication channel has become corrupted. The recipient of the malformed message will send a Logout message with reason code indicating "Malformed message received" and will then terminate the session without waiting for a Logout Ack.
Tag | Field Name | Req | Ver | Comments |
---|---|---|---|---|
45 | RefSeqNum | Y | 4.4 | FIX sequence number of the rejected message. |
372 | RefMsgType | N | 4.4 | Message type of the rejected message. |
371 | RefTagID | N | 4.4 | The FIX tag number of the offending field. (Only the first tag number with an error will be provided.) |
373 | SessionRejectReason | N | 4.4 | Code to identify reason for the Session Level Reject message. |
58 | Text | N | 4.4 | Free-form text message to explain the reason for the rejection. |
Logout (35=5)
The Logout message may be sent by either party to initiate proper, controlled shutdown, or to indicate that an unrecoverable connectivity error has occurred. A good practice is to issue a TestRequest and receive the corresponding heartbeat before Logout.
Logout may occur due to receipt of a malformed message, a heartbeat timeout, or a scheduled shutdown period. To assist with troubleshooting, a Logout reason should be provided on each Logout via the free-form Text field. After sending the Logout Request, the logout initiator should not send any additional messages other than responding to an incoming ResendRequest.
When one side receives a Logout request from the other, it should flush any queued messages and then respond with the Logout message. This indicates to the other side that it will not receive any more messages from the other and that it can close its connection. A configurable timeout will be implemented so that if a Logout response is not received after that time, EBS will unilaterally close the connection.
Tag | Field Name | Req | Ver | Comments |
---|---|---|---|---|
58 | Text | N | 4.4 | Human-readable string indicating reason for logout. Supported logout reasons:
|
Trade Capture Report Flows
EBS will configure the client session for either LC or LP data as appropriate. Clients can stream both T+5 mins and T+1 day analytics and make snapshot requests to recover data where needed.
Streaming 2 Ticket Flow
As and when data is available T+5 fills are sent out with 150=F and approximate analytics.
During the end of day calculation process:
- Fills are sent out with 150=D to indicate this is an update to an existing fill the client has and that these are the final analytics.
- Misses/Rejects are sent out with 150=4 indicating this is a miss/reject and that these are the final analytics.
Historical Catchup
Historical data can be queried going back to midnight GMT for the current calendar day for T+5 min analytics and up until midnight GMT for the previous calendar day for T+1 day analytics.
Time ranges specified on TradeCaptureReportRequests relate to the time the transaction took place (as opposed to the time the analytics were generated). Therefore, for T+1 analytics, it is necessary to query the previous calendar day to obtain the analytics that the client would have received during the current calendar day.
When requesting a snapshot + updates (263=1) subscription, the ordering of updates is not guaranteed; therefore, it is possible the client may receive some real-time updates prior to the completion of transmission of historical data.
It is also important to note that in the event a historical subscription is established in close proximity to the EOD calculation process at 6am GMT, it is possible that the client may receive a TCR with final analytics (150=D) prior to the TCR with the approximate analytics (150=F) message in the case of fills.
Clients should ensure that when they receive historical data (indicated by 570=Y) that it is only processed if the client has not already received final analytics (indicated by 150=D) for the same TradeID(1003). TCRs received with 150=F can be discarded if the client has already received a TCR for the same tradeid with 150=D.
Snapshot 2 Ticket Flow
A time range is specified in the request. All available data within that time range (and matching any criteria specified if applicable) is sent to the client.
Snapshot 1 Ticket Flow
A time range and an ExecPriceType(484) is specified in the request, this allows the client to request only T+5 min or T+1 day analytics if the client only wishes to receive one or the other.
The below requests T+1 day analytics only:
Trade Capture Report FIX Message Definitions
Trade Capture Report Request (35=AD)
Rows from tag 150 (ExecType) until the end of the Parties Group are only valid on criteria based TradeRequestType (569=1). All values act as a filter, the absence of a value is treated as a wildcard for that criteria.
Tag | TagName | Req | Ver | Description | |||
---|---|---|---|---|---|---|---|
568 | TradeRequestID | Y | 4.4 | Unique Identifier of the Trade Capture Report Request. Should be unique over lifetime of FIX session. | |||
569 | TradeRequestType | Y | 4.4 |
Must be 1 on Snapshot (263=0) requests. | |||
263 | SubscriptionRequestType | N | 4.4 |
If not provided defaults to 1. | |||
484 | ExecPriceType | N | 4.4* | Can be used to filter request to receive only T+5 min or T+1 day analytics.
Custom value, custom field for this message type. | |||
55 | Symbol | N | 4.4 | Currency pair in CCY1/CCY2 format. | |||
TrdCapDtGrp | |||||||
580 | NoDates | C | 4.4 | Date Range. The start date can optionally be specified on streaming subscriptions (263=1). If the start date is supplied, then historical reports going back to the start date will be sent. An end date cannot be supplied on streaming subscriptions and if supplied will result in a reject. Both start and end date must be supplied on snapshot subscriptions (263=0). | |||
→75 | TradeDate | C | 4.4 | If 580=1 this is the start date (all trades up until now will be queried). If 580=2 the earliest trade date will be considered the start date and the latest trade date will be considered the end date. If both dates are the same, only trades for that TradeDate will be replayed. In the event that a date earlier than today is specified, the request will still be accepted but only data going back to the supported time for historical queries (midnight GMT today) will be provided. YYYYMMDD format Conditionally required if 580>0. | |||
→60 | TransactTime | N | 4.4 | If 580=1 this is the start date and time (all trades up until now will be queried). If 580=2 the earliest entry will be considered the start date and time and the latest entry will be considered the end date and time. In the event that a time earlier than that supported for historical queries (midnight GMT today) is specified, the request will still be accepted but only data going back to the supported time will be supplied. If supplied, the date in tag 60 must match tag 75. YYYYMMDD-HH:MM:SS.sss format | |||
END – TrdCapDtGrp |
Trade Capture Report Request Ack (35=AQ)
Version 4.4 of the FIX protocol requires tag 55 (Symbol) be present on this message; however, in this regard we will adhere to FIX 5.0SP2 (which doesn't require this tag).
Tag | TagName | Req | Ver | Description |
---|---|---|---|---|
568 | TradeRequestID | Y | 4.4 | Unique Identifier of the Trade Capture Report Request. Echoed from 35=AD. |
569 | TradeRequestType | Y | 4.4 |
|
748 | TotNumTradeReports | N | 4.4 | Number of trade reports returned. Only returned on snapshot requests. |
749 | TradeRequestResult | Y | 4.4 |
|
750 | TradeRequestStatus | Y | 4.4 |
|
58 | Text | N | 4.4 | Provided if the Trade Capture Report Request was rejected (750=2). |
Trade Capture Report (35=AE)
Tag | TagName | Req | Ver | Description | |||
---|---|---|---|---|---|---|---|
571 | TradeReportID | Y | 4.4 | Unique Identifier of the Trade Capture Report, e.g. Taker Ticket ID. | |||
1003 | TradeID | Y | 5.0 SP2 | Deal ID, the globally unique EBS identifier for the trade. | |||
568 | TradeRequestID | N | 4.4 | Identifier for the initial TCR that generated this report. | |||
150 | ExecType | Y | 4.4 |
In future releases, additional ExecType values may be supported, e.g. trade corrections. | |||
912 | LastRptRequested | N | 4.4 |
Only provided on the last message of and in response to a Snapshot request (263=0). | |||
378 | ExecRestatementReason | C | 4.4 | 100 = Recalculation of Analytics Conditionally sent when 150=D. Custom value. | |||
570 | PreviouslyReported | Y | 4.4 |
This is always Y in response to a snapshot request (263=0). | |||
1300 | MarketSegmentID | Y | 5.0 SP2 |
| |||
1301 | MarketID | Y | 5.0 SP2 | A classification eqivalent to 'venue' used to group Market Segments together.
| |||
1500 | MDStreamID | N | 5.0 SP2 | The LP price segment (only provided on LP reports). | |||
20400 | NonDisclosedTrade | N | Custom (Boolean) | Flag indicating if this was a disclosed or non- disclosed trade. Provided only on non-disclosed trades (with value Y). | |||
55 | Symbol | Y | 4.4 | Currency pair in CCY1/CCY2 format. | |||
460 | Product | Y | 4.4 | Indication of the type of product the security is associated with. Valid Values:
| |||
167 | SecurityType | Y | 5.0 SP2 | Valid Values:
| |||
38 | OrderQty | N | 4.4 | Submitted order quantity for the parent order. Only available for LCs and only at T+1 day. | |||
14 | CumQty | N | 5.0 SP2. | Total traded quantity for the parent order. This does not increment fill by fill, but given the T+ 5min nature of the platform is the same across all fills for IOC/FOK orders. Only available for LCs and only at T+1 day. Standard FIX 5.0 field but not usually present on this message type. | |||
32 | LastQty | Y | 4.4 | The notional size of this trade, in units of the dealt currency (or attempted notional size in the case of a miss/reject). | |||
31 | LastPx | Y | 4.4 | The all-in rate of the dealt price (or attempted dealt rate in the case of a miss/reject). | |||
1056 | CalculatedCcyLastQty | N | 4.4 | Calculated quantity in USD. | |||
15 | Currency | Y | 4.4 | 3 character ISO code of the dealing currency. May be either base (CCY1) or term (CCY2) currency. | |||
75 | TradeDate | Y | 4.4 | Effective business date of the transaction in YYYYMMDD format. | |||
60 | TransactTime | Y | 4.4 | UTC Timestamp (Date/Time) of the transaction being reported in this ticket. | |||
63 | SettlType | N | 4.4 | Instrument tenor.
“Month of the year” NDF’s will be indicated by SettlType=”B” and the SettlDate of the trade. | |||
64 | SettlDate | N | 4.4 | The settlement date of this trade in YYYYMMDD format. | |||
TrdCapRptSideGrp | |||||||
552 | NoSides | Y | 4.4 | Always 2 | |||
→54 | Side | Y | 4.4 |
| |||
→37 | OrderID | N | 4.4 | Sent on LC reports only. Provided on 1st side only. | |||
→44 | Price | N | 4.4 | Limit price on the parent order. Provided T+1 and to LCs only. | |||
→11 | ClOrdID | N | 4.4 | Client Order ID. Only provided on LP reports currently. Provided on 1st side only. | |||
Parties | |||||||
→453 | NoPartyIDs | Y | 4.4 | Number of PartyID (448), PartyIDSource (447), and PartyRole (452) entries. 448, 447, and 452 will be provided on each occurrence when NoPartyIDs is present. | |||
→→448 | PartyID | Y | 4.4 | Identifier of the party. This will be qualified by the PartyRole and be applicable to this side. Required when NoPartyIDs > 0. | |||
→→447 | PartyIDSource | Y | 4.4 | Identifies the source of PartyID value.
Required when NoPartyIDs > 0. | |||
→→452 | PartyRole | Y | 4.4 | Valid values (see Party Role Definitions for details):
Required when NoPartyIDs > 0. | |||
→802 | NoPartySubIDs | N | 4.4 | Used to provide further information to the specific PartyID. | |||
→→523 | PartySubID | N | 4.4 | Identifier for the PartySubID (qualified by the PartySubIDType). | |||
→→803 | PartySubIDType | N | 4.4 | Valid values (see PartySubIDType Definitions for details): 1000 = AccountReference Custom values. | |||
END - Parties | |||||||
→1 | Account | N | 4.4 | Reserved for future use. | |||
→578 | TradeInputSource | N | 4.4 | How the First Party entered the trade Valid values:
| |||
→1057 | AggressorIndicator | N | 4.4 | For EBS Direct:
For EBS Market:
| |||
END - TrdCapRptSideGrp | |||||||
Analytics Fields | |||||||
30010 | TradedVolumeBucket | C | Custom (Int) | The volume bucket that the cumulative volume of trades falls into in USD.
| |||
30015 | OrderVolumeBucket | C | Custom (Int) | The volume bucket that the order falls into in USD, irrespective of whether the full order volume traded. Available at T+1 day only.
| |||
30030 | MatchedPx | C | Custom (Price) | The price at which the trade was matched. This may differ from LastPx if price improvement or slippage was offered. Available T+1 day only. | |||
30011 | TrueRate | C | Custom (Price) | The nearest mid-market rate at the time of the parent order submission, calculated as a blend of EBSD/EBSM bid/ask quotes. All market impact movements are measured against changes in this blended mid-rate (true rate). | |||
EBSAnalyticGrp | |||||||
30012 | NoEBSAnalytic | C | Custom (Int) | Number of EBS Analytics entries. | |||
→30013 | EBSAnalyticName | C | Custom (String) | The EBS Analytic Name that this entry refers to. | |||
→30014 | EBSAnalyticValue | C | Custom (Float) | EBS Analytic value. | |||
END - EBSAnalyticGrp | |||||||
CompetitorGrp | |||||||
30020 | NoCompetitors | C | Custom (Int) | Number of competitor entries. | |||
→30021 | ComeptitorPxType | C | Custom (Int) |
| |||
→30022 | CompetitorType | C | Custom (Int) | Type of institution with the next best price.
| |||
→30023 | CompetitorPx | C | Custom (Price) | Competitor Price. | |||
→30024 | CompetitorQty | C | Custom (Qty) | Competitor Qty. | |||
END – CompetitorGrp | |||||||
30040 | TotalZeta | C | Custom (Float) | Zeta equals the cost of reject by a LP in USD. The is the difference between the order price to the LP who rejected and next best trade price, or the clients effective trade prices over the next second or failing that a simple 1 sec MTM price movement. Available T+1 day only. | |||
30041 | MktVWAP | C | Custom (Float) | The EBS Market Volume weighted market price on the LC transaction side at the time of the LC order request. Availble T+1 day only. | |||
30042 | LPHoldTime | C | Custom (Float) | The round-trip LP response in milliseconds. Currently only integers are sent; however, this is defined as a float for future proofing. | |||
30043 | LPReason | C | Custom (String) | LP reject reason if published. | |||
30044 | ReferenceUSDRate | Y | Custom (Price) | The rate used to calculate USD valuations (e.g. GrossAlpha). | |||
END – Analytics Fields |
Party Role Definitions
PartyRole (452) | PartyID (448) | Web Dashboard Column Name |
---|---|---|
Executing Firm (1) | LC/LP FloorCode | LC FloorCode/LP FloorCode |
Executing Trader (12) | LC Executing Trader | Trader ID |
Location ID (75) | LP Region:
| LP Region |
Sub Party Role Definitions
PartySubIDType | Definition | Description | Web Dashboard Column Name |
---|---|---|---|
1000 | AccountReference | The Account ID. This is the identity that the other party would see. | LC InstCode/LP InstCode |
EBS Analytic Name
The table table outlines the currently supported EBS Analytic Names (sent in tag 30013). The absence of an EBSAnalyticName on a message indicates that the value of that analytic is null and therefore could not be sent.
EBS may add additional analytics in the future. Therefore, clients should ensure that they are able to process messages with unknown analytics, ignoring any additional information that the client does not wish to consume.
EBSAnalyticName (Tag 30013) | Description | LCs | LPs | ||
---|---|---|---|---|---|
T+5 mins | T+1 day | T+5 mins | T+1 day | ||
MTM | MarkToMid 0s: The mark to market on initial trades from traded price to mid-market at time of trade, mark to market at t0, it represents approximately 50% of the traded spreads on average. |
| |||
MI1 | MI from Mid: The average market impact at x seconds measured from mid-market at t0. (Where x is indicated in the parameter name, e.g. MI1s = 1 second). |
| |||
MI3 |
|
| |||
MI5 |
|
| |||
MI10 |
| ||||
MI20 |
| ||||
MI30 |
|
| |||
MI60 |
|
| |||
MI120 |
|
| |||
MI300 |
|
|
| ||
MI600 | - |
| - |
| |
AvgMI60 | Avg. MI from Mid: The average market impact at every second from 0 to x seconds measured from mid-market at t0 (Where x is indicated in the parameter name, e.g. AvgMI60 = 60 seconds). |
|
| ||
AvgMI300 | |||||
AvgMI600 | - | - | |||
EBSTrdMTM3hr | The EBS Average spread based on the client's blend of traded Currencies and Volumes: in the last 3 hours/day/7 days/31 days prior to the timestamp of the trade. |
| |||
EBSTrdMTM1d | |||||
EBSTrdMTM7d |
|
|
| ||
EBSTrdMTM1M |
|
| |||
SpreadRet5 | Spread Retention: The MTM at t0 minus MI from mid at 5/30 seconds. |
|
|
| |
SpreadRet30 |
|
| |||
EBSTrdAvgSpread Ret30 | The EBS Average MTM at t0 minus average MI at 30 seconds based on the client's blend of traded Currencies and Volumes. |
|
| ||
Share3hr | This is the client's volume with the counterparty vs. the counterparty's total volume. The volumes are based on the client's blend of traded Currencies and Volumes in the last 3 hours/day/7days/31 days prior to the timestamp of the trade. | - | - |
| |
Share1d | - | - |
| ||
Share7d | - | - |
| ||
Share1M | - | - | |||
GrossAlpha | Gross Alpha in USD | - | - | ||
MktGrossAlpha | Market Gross Alpha in USD | - | - | ||
CTGrossAlpha | Client Type Gross Alpha in USD For LPs this is how much the LC benefits from having the client's price in the mix (taking into account both the price and cost of rejects) proportionate to all orders matched to the client, but only comparing against LPs of the same client (i.e. bank or nonbank). | - | - | ||
GrossAlphaPips | For LCs this is the price difference in pips the client gains by having a specific LP in the price mix proportionate to all of the client's orders that were matched on EBS. For LPs this is the price difference in pips the LC gains by having the client's price in the price mix (taking into account both the price and cost of rejects) proportionate to all orders matched to the client. | - |
| - |
All analytics ending in:
- 3hr (e.g. Share3hr) are for the last 3hrs prior to the trade time.
- 1d (e.g. Share1d)
- At T+5 minutes from midnight GMT to the time of the trade; e.g. if the trade was at 10am GMT on 21st November 2019 then the 1d would be calculated from 2019.11.21 00:00:00 to 2019.11.21 10:00:00.
- At T+1 day for the full 24 hours GMT for the GMT calendar day the trade took place in; e.g. if the trade took place at 10am on 21st November 2019 then the T+1 day analytics the client receives tomorrow would have the 1d calculated from 2019.11.21 00:00:00 to 2019.11.21 23:59:59 GMT.
- 7d (e.g. Shared7d) are for the previous 7 days GMT. E.g. if the trade time was 10am GMT on 21st November 2019 then the 7d would be calculated from 2019.11.14 00:00:00 to 2019.11.20 23:59:59.
- 1M (e.g. Shared1M) are for the previous 31 days GMT. E.g. if the trade time was 10am GMT on 21st November 2019 then the 1M would be calculated from 2019.10.21 00:00:00 to 2019.11.20 23:59:59.
Example FIX Messages
This section contains example FIX messages to provide a practical view of the API. This list is by no means exhaustive of all the various combinations available but illustrates the format of the messages.
Example Vanilla Streaming TradeCaptureReportRequest
Request to stream analytics in real-time indefinitely until the session is either logged out or an unsubscribe request is sent. No filtering is applied so all permissioned analytics will be streamed.
8=FIX.4.4 9=92 35=AD 34=15 49=CLIENT 52=20190501-10:01:33.475 56=EBS-TCA-UAT 568=REQ1 569=0 263=1 10=153
Example Vanilla Snapshot TradeCaptureReportRequest (Trade Date)
Historical request to send all analytics from today. Only the trade date is specified (no TransactTime is specified). No other criteria are specified so all permissioned analytics for this trade date will be sent.
8=FIX.4.4 9=122 35=AD 34=23 49=CLIENT 52=20190501-10:05:03.993 56=EBS-TCA-UAT 568=REQ2 569=1 263=0 580=2 75=20190501 75=20190501 10=078
Example Vanilla Snapshot TradeCaptureReportRequest (Trade Date) for T+1 day only
Historical request to send all analytics from today. Only the trade date is specified (no TransactTime is specified). No other criteria are specified so all permissioned analytics for this trade date will be sent.
8=FIX.4.4 9=122 35=AD 34=23 49=CLIENT 52=20190501-10:05:03.993 56=EBS-TCA-UAT 568=REQ2 569=1 263=0 484=x 580=2 75=20190430 75=20190501 10=078
Example Vanilla Snapshot TradeCaptureReportRequest (Transact Time)
Historical request to send all analytics for a specific time range. In this example from midnight until 8am GMT. No other criteria are specified so all permissioned analytics for this trade date will be sent.
8=FIX.4.4 9=172 35=AD 34=26 49=CLIENT 52=20190501-10:06:32.739 56=EBS-TCA-UAT 568=REQ3 569=1 263=0 580=2 75=20190501 60=20190501 -00:00:00.000 75=20190501
60=20190501-08:00:00.000 10=202
Example Streaming TradeCaptureReportRequest filtering on a Floorcode (Party Role)
Request to stream analytics in real-time indefinitely until the session is either logged out or an unsubscribe request is sent. A Floorcode has been supplied in the Party Roles group so only analytics for this floor code will be streamed:
8=FIX.4.4 9=119 35=AD 34=36 49=CLIENT 52=20190501-10:11:17.979 56=EBS-TCA-UAT 568=REQ4 569=1 263=1 453=1 448=ZZZA 447=D 452=1 10=013
Example T+5 min TradeCaptureReport for an LP
8=FIX.4.4 9=1144 35=AE 34=576 49=EBS-TCA 52=20190501-13:48:50.927 56=CLIENT 15=AUD 31=0.70493 32=1000000 55=AUD/USD 60=20190501-13:44:46.589 63=0 64=20190502 75=20190501 150=F 167=FXSPOT 460=4 568=REQ1 570=N 571=610033730369944000 1003=XX7X-0189-11X0-00 1056=704930 1300=QS 1301=FXQDM 20400=N 30010=1 30044=0.70493 552=2 54=2 11=XX7X-0189-11X0-00 453=2 448=ZZZA 447=D 452=1 802=1 523=ZZZF 803=1000 448=LN 447=D 452=75 1057=Y 54=1 453=2 448=LLLB 447=D 452=1 802=1 523=LLL2 803=1000 448=SIP 447=D 452=12 30012=24 30013=MTM 30014=42.56 30013=MI1 30014=35.46 30013=MI3 30014=35.46 30013=MI5 30014=35.46 30013=MI10 30014=35.46 30013=MI20 30014=35.46 30013=MI30 30014=35.46 30013=MI60 30014=70.93 30013=MI120 30014=177.32 30013=MI300 30014=354.65 30013=Share3hr 30014=0.24 30013=Share1d 30014=0.24 30013=Share7d 30014=0.11 30013=Share1M 30014=0.13 30013=EBSTrdMTM3hr 30014=12.96 30013=EBSTrdMTM1d 30014=16.61 30013=EBSTrdMTM7d 30014=20.55 30013=EBSTrdMTM1M 30014=20.21 30013=EBSTrdMI3hr 30014=15.13 30013=EBSTrdMI1d 30014=37.46 30013=EBSTrdMI7d 30014=14.14 30013=EBSTrdMI 1M 30014=11.51 30013=SpreadRet5 30014=7.09 30013=EBSTrdAvgSpreadRet30 30014=-20.85 10=208
Example T+1 day TradeCaptureReport for an LP
8=FIX.4.4 9=1418 35=AE 34=2677 49=EBS-TCA 52=20190521-02:41:35.752 56=CLIENT 14=2000000 15=AUD 31=0.92846 32=1000000 38=2000000 55=AUD/CAD 60=20190520-14:03:58.830 63=0 64=20190522 75=20190520 150=D 167=FXSPOT 378=100 460=4 568=RAB 570=N 571=611721691878489000 1003=XX7X-0194-0183-01 1056=691548 1300=QS 1301=FXQDM 20400=N 30010=2 30015=2 30030=0.92846 30040=0 30041=0.92995 30044=0.6915477 552=2 54=2 11=XX7X-0194-0183-01 453=2 448=ZZZA 447=D 452=1 802=1 523=ZZZF 803=1000 448=LN 447=D 452=75 1057=Y 54=1 453=2 448=LLLB 447=D 452=1 802=1 523=LBR2 803=1000 448=MAC 447=D 452=12 30012=33 30013=MTM 30014=91.52 30013=MI1 30014=0 30013=MI3 30014=0 30013=MI5 30014=0 30013=MI10 30014=0 30013=MI20 30014=0 30013=MI30 30014=0 30013=MI60 30014=0 30013=MI120 30014=0 30013=MI300 30014=0 30013=MI600 30014=-376.87 30013=AvgMI60 30014=-63.29 30013=AvgMI300 30014=-53.47 30013=AvgMI600 30014=-64.88 30013=Share3hr 30014=0.83 30013=Share1d 30014=0.86 30013=Share7d 30014=0 30013=Share1M 30014=0 30013=EBSSubTrdMI1M 30014=31.22 30013=EBSTrdMTM3hr 30014=-62.82 30013=EBSTrdMI3hr 30014=0 30013=EBSTrdMTM1d 30014=-1.35 30013=EBSTrdMI1d 30014=-13.46 30013=EBSTrdMTM7d 30014=42.82 30013=EBSTrdMI7d 30014=74.93 30013=EBSTrdMTM1M 30014=26.05 30013=EBSTrdMI1M 30014=53.52 30013=GrossAlpha 30014=22.33 30013=MktGrossAlpha 30014=1490 30013=CTGrossAlpha 30014=22.33 30013=GrossAlphaPips 30014=0 30013=SpreadRet5 30014=91.52 30013=SpreadRet30 30014=91.52 10=167
Example T+5 min TradeCaptureReport for an LC
8=FIX.4.4 9=1111 35=AE 34=33 49=EBS-TCA 52=20190502-13:28:49.016 56=CLIENT 15=AUD 31=0.7038 32=1000000 55=AUD/USD 60=20190502-13:23:45.291 63=0 64=20190503 75=20190502 150=F 167=FXSPOT 460=4 568=REQ6 570=N 571=610118928833646000 1003=XX6X-06XX-03X2-00 1056=703800 1300=QF 1301=FXQDM 20400=N 30010=1 30044=0.7038 552=2 54=1 11=XX6X-06XX-03X2-00 453=2 448=BZZ3 447=D 452=1 802=1 523=BZZZ 803=1000 448=NY 447=D 452=75 1057=Y 54=2 453=2 448=KZZZ 447=D 452=1 802=1 523=KZZZ 803=1000 448=KA2 447=D 452=12 30012=24 30013=MTM 30014=0 30013=MI1 30014=0 30013=MI3 30014=0 30013=MI5 30014=-35.52 30013=MI10 30014=-35.52 30013=MI20 30014=0 30013=MI30 30014=-35.52 30013=MI60 30014=0 30013=MI120 30014=71.04 30013=MI300 30014=71.04 30013=Share3hr 30014=0.57 30013=Share1d 30014=0.5 30013=Share7d 30014=0.21 30013=Share1M 30014=0.16 30013=EBSTrdMTM3hr 30014=22.44 30013=EBSTrdMTM1d 30014=19.22 30013=EBSTrdMTM7d 30014=20.55 30013=EBSTrdMTM1M 30014=20.21 30013=EBSTrdMI3hr 30014=24.89 30013=EBSTrdMI1d 30014=16.87 30013=EBSTrdMI7d 30014=14.14 30013=EBSTrdMI1M 30014=11.51 30013=SpreadRet5 30014=35.52 30013=EBSTrdAvgSpreadRet30 30014=2.35 10=133
Example T+1 day TradeCaptureReport for an LC
8=FIX.4.4 9=1470 35=AE 34=3923 49=EBS-TCA 52=20190514-04:03:20.812 56=CLIENT 14=1000000 15=AUD 31=76.047 32=1000000 38=1000000 55=AUD/JPY 60=20190513 -13:31:31.821 63=0 64=20190515 75=20190513 150=D 167=FXSPOT 378 =100 460=4 568=RAA 570=N 571=611121793816974000 1003=XX7X-0XX1-0214-00 1056=696378 1300=QF 1301=FXQDM 20400=N 30010=1 30011=76.04977 30015=1 30030=76.047 30040=0 30041=76.04 30044=0.6963776 552=2 54=1 11=XX7X-0XX1-0214-00 453=2 448=BZZ3 447=D 452=1 802=1 523=BZZZ 803=1000 448=LN 447=D 452=75 1057=Y 54=2 453=2 448=KZZZ 447=D 452=1 802=1 523=KZZZ 803=1000 448=KA4 447=D 452=12 30012=33 30013=MTM 30014=36.41 30013=MI1 30014=-49.13 30013=MI3 30014=-21.49 30013=MI5 30014=17.65 30013=MI10 30014=6.14 30013=MI20 30014=69.8 30013=MI30 30014=62.72 30013=MI60 30014=166.68 30013=MI120 30014=260.1 30013=MI300 30014=405.51 30013=MI600 30014=241.68 30013=AvgMI60 30014=45.24 30013=AvgMI300 30014=175.46 30013=AvgMI600 30014=217.74 30013=Share3hr 30014=0.6 30013=Share1d 30014= 0.5 30013=Share7d 30014=0.32 30013=Share1M 30014=0.31 30013=EBSSubTrdMI1M 30014=348.8 30013=EBSTrdMTM3hr 30014=17.91 30013=EBSTrdMI3hr 30014=-66.25 30013=EBSTrdMTM1d 30014=29.69 30013=EBSTrdMI1d 30014=-16.53 30013=EBSTrdMTM7d 30014=32.53 30013=EBSTrdMI7d 30014=43.69 30013=EBSTrdMTM1M 30014=44.77 30013=EBSTrdMI1M 30014=37.92 30013=GrossAlpha 30014=0 30013=MktGrossAlpha 30014=7000 30013=CTGrossAlpha 30014=0 30013=GrossAlphaPips 30014=0.01 30013=SpreadRet5 30014=18.75 30013=SpreadRet30 30014=-26.32 10=123
Contact Details
For all technical queries relating to the Analytics API please contact the Quant Analytics team.
How was your Client Systems Wiki Experience? Submit Feedback
Copyright © 2024 CME Group Inc. All rights reserved.