CME STP FIX - Trade Snapshot and Subscriptions

CME STP FIX - Trade Snapshot and Subscriptions

The following topic outlines the trade snapshot and subscription functionality of CME STP FIX.

Contents

Data Retrieval

CME STP FIX supports trade data retrieval using FIX Trade Capture Report Request (tag 35-MsgType = AD): 

  • Snapshot: Client systems can request a snapshot of trades with tag 569-TradeRequestType = 1 (Initial request) and tag 263-SubscriptionRequestType = 0 (Snapshot) limited by tag 9593-StartTime and optional tag 9594-EndTime. 

  • Subscriptions: Client systems can request a snapshot and initiate a real-time subscription for trades with tag 569-TradeRequestType = 1 (Initial request) and tag 263-SubscriptionRequestType = 1 (Snapshot + Updates) with the optional tag 779-LastUpdateTime. If LastUpdateTime is not provided then the subscription will start from the time the FIX Trade Capture Report Request (tag 35-MsgType = AD) is received by the CME STP FIX server.

For both Snapshot and Subscriptions client systems must supply a unique identifier in tag 568-TradeRequestID of the FIX Trade Capture Report Request (tag 35-MsgType = AD), which the CME STP FIX will echo back in FIX Trade Capture Report Request Acknowledgment (tag 35-MsgType = AQ), FIX Trade Capture Report (tag 35-MsgType = AE) and FIX Collateral Report (tag 35-MsgType = BA). The identifier enables client systems to match the messages from CME STP FIX to their specific request for a FIX Session.

Snapshot and Subscription Parameters

Following tables note the Required and Optional parameters available in the Trade Capture Report Request (tag 35-MsgType = AD) for snapshot and/or subscriptions.

Clients are recommended to reference the Trade Capture Report Request (tag 35-MsgType = AD) message specifications for Futures and Options, BrokerTec Fixed Income (FI) and EBS Foreign Exchange (FX) for complete details.

Required Parameters

FIX Tag

Request type

Comments

Subscription

Snapshot

779-LastUpdateTime

Y

N

Timestamp from which the trades are requested by the clients system from CME STP FIX.

It is recommended that client systems specify a value in request, one or more minutes prior to the timestamp value from the last FIX Trade Capture Report (tag 35-MsgType = AE) that they received to avoid missing trades between Subscriptions.

  • 9593-StartTime

  • 9594-EndTime

N

Y

Client systems can request a snapshot of trades within a time frame.

tag 9593-StartTime is required. tag 9594-EndTime is optional and defaults to the current time of the request.

Party Details

  • 448-PartyID

  • 452-PartyRole

C

C

Party details are conditionally required based on the specific client API ID entitlements.

Multiple valid PartyID's can be in the request as long as they belong to the same PartyRole.

Requests with different PartyRole's will be rejected. Maximum of 200 PartyRoles are allowed in the request.

Optional Parameters

Following Optional parameters, which are to be used in conjunction with Required Parameters, in the Trade Capture Report Request (tag 35-MsgType = AD) to further filter the resulting Trade data set for snapshot and/or subscriptions.

FIX Tag

Request type

Applicable Market

Comments

Subscription

Snapshot

Futures and Options

BrokerTec FI

EBS FX

442-MultiLegReportingType

Y

Y

Y

Y

N

Request Spread Level or Leg level Trade Capture Reports. Defaults to Leg Level.

11-SideClOrdID

N

Y

Y

Y

Y

Request a specific Trade using client generated Order ID.

1003-TradeID

N

Y

Y

Y

Y

Request specific trade with related ID assigned by the exchange.

1040-SecondaryTradeID

N

Y

Y

Y

N

Request specific trade with globally unique trade ID.

75-TradeDate

N

Y

Y

Y

Y

Request trades for a specific trade date.

715-ClearingBusinessDate

N

Y

Y

Y

N

Request trades for a specific Clearing Business date.

578-TradeInputSource

Y

Y

Y

Y

Y

Request trades limited to Input Source such as CME Globex (GLBX) etc. Applicable values listed in the market related message specifications.

1430-VenueType

Y

Y

N

N

Y

Request trades limited to Venue

20401-TradePartyType

Y

Y

N

N

Y

Request trades limited by Trade Party Type in conjunction with Party Role.

9913-PostTradeType

Y

Y

N

N

Y

Request trades refined by type of trade.

20400-NonDisclosedIndicator

Y

Y

N

N

Y

Request trades limited by disclosure requirements.

1028-ManualOrderIndicator

Y

Y

N

N

Y

Request trades limited by order entry method.

10059-IncludeCollateralIndicator

Y

Y

N

Y

N

Include/Exclude Collateral Report (tag 35-MsgType=BA) messages.

167-SecurityType

207-SecurityExchange

Y

Y

Y

Y

Y

Request trades limited by specific Security Type and/or Exchange.

48-SecurityID

Y

Y

Y

Y

N

Request trades limited to a specific Security ID. tag 207-SecurityExchange needs to be populated.

55-Symbol

Y

Y

N

Y

Y

Request trades limited by human readable Security Symbol.

460-Product

Y

Y

N

N

Y

Request trades limited by specific product.

20057-TradePriceStatus

Y

Y

N

N

Y

Request traded limited by trade price status

Snapshot

Client systems can request a snapshot of trades within the past 30 calendar days, using Trade Capture Report Request (tag 35-MsgType = AD).

The following request tags are used for a snapshot message:

  • tag 569-TradeRequestType = 1 (Matching trades)

  • tag 263-SubscriptionRequestType = 0 (Snapshot)

  • Party details are conditionally required based on the specific client API ID entitlements.

    • tag 453-NoPartyIDs ≥ 1 and tag 448-PartyID = Firm ID and tag 452-PartyRole = Firm Role

    • All PartyRoles must be identical roles within a single request.

  • tag 9593-StartTime is specified and is within timeframe supported by CME STP FIX

  • optional use: snapshot specific filters and/or tag 9594-EndTime are specified 

A valid Snapshot request CME STP FIX will respond with the following:

  • Trade Capture Report Request Ack (tag 35-MsgType = AQ) with tag 749-TradeRequestResult = 0 (Successful) and tag 750-TradeRequestStatus = 0 (Accepted) to the client system.

  • List of trades matching the criteria in the Snapshot request.

  • Trade Capture Report Request Ack (tag 35-MsgType = AQ) with tag 749-TradeRequestResult = 0 (Successful) and tag 750-TradeRequestStatus = 1 (Completed) indicating completion of trade Snapshot to client system.

Example Snapshot Request

8=FIX.4.4|9=148|35=AD|34=2|49=TEST_FIRM_1|52=20211021-18:19:46.435|56=CMESTPFIX1|57=STP|263=0|442=2|568=TEST|569=1|9593=20211021-17:04:53|453=1|448=TEST_FIRM_1|452=7|10=128|

8=FIX.4.4|9=148|35=AD|34=2|49=TEST_FIRM_1|52=20211021-18:19:46.435|56=CMESTPFIX1|57=STP|263=0|442=2|568=TEST|569=1|9593=20211021-17:04:53|453=1|448=TEST_FIRM_1|452=7|10=128|

Example Snapshot Accepted

8=FIX.4.4|9=98|35=AQ|34=2|49=CMESTPFIX1|50=STP|52=20211021-18:19:46.592|56=TEST_FIRM_1|568=TEST|569=1|749=0|750=0|10=006|

8=FIX.4.4|9=98|35=AQ|34=2|49=CMESTPFIX1|50=STP|52=20211021-18:19:46.592|56=TEST_FIRM_1|568=TEST|569=1|749=0|750=0|10=006|

Example Snapshot Completed

8=FIX.4.4|9=98|35=AQ|34=3|49=CMESTPFIX1|50=STP|52=20211021-18:19:46.594|56=TEST_FIRM_1|568=TEST|569=1|749=0|750=1|10=010|

8=FIX.4.4|9=98|35=AQ|34=3|49=CMESTPFIX1|50=STP|52=20211021-18:19:46.594|56=TEST_FIRM_1|568=TEST|569=1|749=0|750=1|10=010|

Subscription

Client systems can request a snapshot of trades within the past 30 calendar days, along with a continued subscription of real-time trades using Trade Capture Report Request (tag 35-MsgType = AD).

The following request tags are utilized for a snapshot message:

  • tag 569-TradeRequestType = 1 (Matching trades)

  • tag 263-SubscriptionRequestType = 1 (Snapshot + Subscription)

  • Party details are conditionally required based on the specific client API ID entitlements.

    • tag 453-NoPartyIDs ≥ 1 and tag 448-PartyID = Firm ID and tag 452-PartyRole = Firm Role

    • All PartyRoles must be identical roles within a single request

  • tag 779-LastUpdateTime can be optionally specified and is within timeframe supported by CME STP FIX

A valid Subscription request CME STP FIX will respond with the following:

  • Trade Capture Report Request Ack (tag 35-MsgType = AQ) with tag 749-TradeRequestResult = 0 (Successful) and tag 750-TradeRequestStatus = 0 (Accepted) to the client system

    • If tag 779-LastUpdateTime value is specified, a list of past trades will be delivered before real-time trades

    • If tag 779-LastUpdateTime isn't provided in the request, only real-time trades are delivered to the client system

After a successful subscription CME STP FIX will continue to send real-time trade data, as well as FIX Heartbeat messages (tag 35-MsgType = 0) at negotiated intervals in case of no trade data. Client systems must send FIX Heartbeat messages (tag 35-MsgType = 0) at negotiated intervals to keep the FIX Session established.

Example Subscription Request

8=FIX.4.4|9=147|35=AD|34=2|49=TEST_FIRM_1|52=20211021-18:46:49.562|56=CMESTPFIX1|57=STP|263=1|442=2|568=TEST|569=1|779=20211020-17:04:53|453=1|448=TEST_FIRM_1|452=7|10=080|

8=FIX.4.4|9=147|35=AD|34=2|49=TEST_FIRM_1|52=20211021-18:46:49.562|56=CMESTPFIX1|57=STP|263=1|442=2|568=TEST|569=1|779=20211020-17:04:53|453=1|448=TEST_FIRM_1|452=7|10=080|

Example Subscription Accepted

8=FIX.4.4|9=98|35=AQ|34=2|49=CMESTPFIX1|50=STP|52=20211021-18:46:49.587|56=TEST_FIRM_1|568=TEST|569=1|749=0|750=0|10=013

8=FIX.4.4|9=98|35=AQ|34=2|49=CMESTPFIX1|50=STP|52=20211021-18:46:49.587|56=TEST_FIRM_1|568=TEST|569=1|749=0|750=0|10=013

Restarting a Subscription

CME STP FIX does not support the Unsubscribe FIX message.

When a client system detects a lost connection or session with CME STP FIX, the client system must re-login to re-establish the session and restart a new subscription. Client systems should follow the Logon and Subscription concepts while reestablish their FIX Session to CME STP FIX, which includes resetting of sequence numbers.

CME Group recommends client systems specify a value in tag 779-LastUpdateTime of the Trade Capture Report Request (tag 35-MsgType = AD) with one or more minutes prior to the value of tag 779-LastUpdateTime from the last received trade to ensure all missed trades are gathered.

Duplicate Message Detection

To detect duplicate trades, client systems should leverage tag 571-TradeReportID for trade uniqueness. Legs of spreads can share the same message ID, therefore client systems must combine 1040-SecondaryTradeID and tag 571-TradeReportID to form a unique key.




How was your Client Systems Wiki Experience? Submit Feedback

Copyright © 2024 CME Group Inc. All rights reserved.