CME STP FIXML - Allocation Message Flows

CME STP FIXML - Allocation Message Flows

This page describes the sequence and flow of information (showing key FIXML fields) between the client system and the CME STP FIXML.  

Allocation

CME STP supports allocations, which means one firm "gives-up" trades to another firm. The firm that executed a trade (i.e. Executing firm) may want to "allocate" or "give-up" a trade to a different firm (i.e. Claiming firm). 

The Executing firm will receive an Offset message to indicate that the trade is being removed and the Claiming Firm will receive an Onset message to indicate the trade is now on their books. This flow shows the original trade followed by the modified trade, and the offset and onset messages that the API sends for an allocation.

The following diagram shows only responses, and not requests.

cme-stp-fixml-allocation.png

In the case of a reversal or release of an allocation, CME STP will report both the offset and onset trades as cancelled. (@TransTyp = 1) Parameters on the cancel will mirror those of the original offset or onset, e.g. the side of the cancel message will match the side of the respective offset or onset message.

Sub-allocation (e.g. the claiming firm marks a claimed allocation for give-up) will not result in the "Trade marked for Allocation" message above, however, when the new claiming firm claims the allocation, CME STP will send offset and onset trades.

Allocation of Spreads

CME STP allocates spreads at the leg level only, therefore the API does not mark spread level messages for allocation. For users requesting @MLegRptTyp = 2 (individual leg of a multi-leg security), allocation of spread legs is no different than allocation of outright trades, except that @MLegRptTyp = 2 instead of 1.

For firms requesting spread level messages, (for example,  @MLegRptTyp = 3), allocation behaves differently. When a clearing firm marks a leg of a spread for allocation, the API sends a message showing that individual leg as an @MLegRptTyp = 2 to the executing firm, even though the user only requested @MLegRptTyp = 3. The field @StrategyLinkID can be used to link the allocated leg to the multi-leg spread message. The offset and onset trades after the claiming firm claims the allocation are no different than before. Should a clearing firm un-mark a trade for allocation (not illustrated), the API will send a message with @MLegRptTyp = 2 showing the leg as un-marked.

When requesting @MLegRptTyp = 3, be advised that any @MLegRptTyp = 2 messages received only indicate allocation status. These @MLegRptTyp = 2 messages must not be booked as new trades, considering that they duplicate one or more legs of the @MLegRptTyp = 3 messages already received. Clients systems should not double count the trades.

 

The following diagram shows only responses, and not requests.

cme-stp-fixml-spread-allocation.png

Allocation States

allocate-claim-fixml-api-users-guide-mes.jpg

Allocation Scenarios

  • APS - Average Price

  • GUS - Give-up

Allocation Type

Scenario / Transition

Transition End State

CME STP TCR Received?

Summary

Allocation Type

Scenario / Transition

Transition End State

CME STP TCR Received?

Summary

GUS

GUS

Mark for Allocation (individual trade)

 

Y

When The Buy Side of Trade is Marked for Allocation

Then the Buy Side Receives TCR which is a Replace (transTyp=2) with AllocInd=1 and GrpID2

GUS 

Allocate Trade to Claiming Firm

Allocation Pending

N

 

GUS 

Allocation Claimed by Receiving Firm

Claimed

Y

When firm "<GiveUp>" accepts the allocation from firm "<Buyer>"

Then firm "<GiveUp>" receives new OFFSET TCR with  Transtyp= 0, OfstInst= 0 , GrpID2= abc, no TrdRegTS block       

Then firm "<Claiming>" receives new ONSET TCR with  Transtyp= 0, OfstInst= 1 , GrpID2= abc, no TrdRegTS block

GUS 

Trade is Unmarked

Start

Y

Given Trade entered in CPC

When The Buy Side of Trade is Marked for Allocation

Then the Buy Side Receives TCR, which is a Replace TransTyp=2 with AllocInd=1 and GrpID2

When the Buy Side of Trade has Allocation Unmarked in FECPLus

Then the Buy Side Receives TCR, which is a Replace TransTyp=2 AND NO AllocInd and NO GrpID2

GUS 

Claimed Allocation: Reverse Requested and Accepted

Reversed

Y

Given Allocation has been claimed

When the Claiming firm allocation is reversed the following day, then NO TCR is reported

When the Buy Side of Trade accepts the reversal

Then the Buy Side Receives TCR which is updated OFFSET with Transtyp= 1 (cancel)

Then the Claimed Side Receives TCR which is updated ONSET with Transtyp= 1 (cancel)

GUS 

Claimed Allocation: Reversal Requested but is Rejected or Cancelled

Claimed

N

 

APS

 APS

Create APS Group (marking for APS allocation)

Incomplete Group

Y

Given Trade entered in CPC

When The Buy Side marks trades for APS and Assigns group

Then The Buy Side Receives TCR which is a Replace (TransTyp=2) with AllocInd=1, GrpID2 and AvgPxInd=1

APS

Complete Average Price Group

Complete Group

N

 

APS 

Allocate Trade to Claiming Firm

Allocation Pending

N

 

APS 

Claim Allocation APS Group

Claimed

Y

Given Trades allocated to APS Group then TCR GrpID2=abc, AvgPxInd=1, AllocInd=1

Given Allocation performed on APS group to Carry Firm then No TCR When Claiming Firm Claims Allocation

Then the Buy Side Receives TCR with OfstInst=0, GrpID2=abc, AvgPx, ClOrdID="Group Name"

Then the Claiming firm Receives TCR with OfStInst=1, GrpID2=abc, AvgPx, ClOrdID="Group Name"

APS - Full Lifecycle

APS

 

 

 

 

 

Full Cycle APS

 

 

Given Trades allocated to APS Group, then TCR GrpID2=abc, AvgPxInd=1, AllocInd=1

Given Allocation performed on APS group to Carry Firm, then No TCR When Claiming Firm Claims Allocation

Then the Buy Side Receives TCR with OfstInst=0, GrpID2=abc, AvgPx, ClOrdID="Group Name"

Then the Claiming firm Receives TCR with OfStInst=1, GrpID2=abc, AvgPx, ClOrdID="Group Name"

Create Group

 

Y

Given Trades allocated to APS Group, then TCR GrpID2=abc, AvgPxInd=1, AllocInd=1

Complete Group

 

N

No TCR sent to STP

Allocate Trade to claiming Firm

 

N

No TCR sent to STP

Claim Allocation

 

Y

Buy Side Receives TCR with OfstInst=0, GrpID2=abc, AvgPx, ClOrdID="Group Name"

Claiming firm Receives TCR with OfStInst=1, GrpID2=abc, AvgPx, ClOrdID="Group Name"

Reverse Allocation

 

N

No TCR sent to STP

Accept Reversal 

 

Y

Then the Buy and Claiming side receive a Cancel message

Sub-Allocation

 

Creating a Sub-Allocation

Claimed

Y

When the Claiming side Marks for SubAllocation
Then no TCR is sent
When The Buy Side is allocated to firm Claiming and Trade Claimed
Then The Claiming Side Receives an Offset Message
Then The Re-allocated Side Receives an Onset Message




How was your Client Systems Wiki Experience? Submit Feedback

Copyright © 2024 CME Group Inc. All rights reserved.