Skip to end of banner
Go to start of banner

Allocation Management FIXML API - Submission and Usage Rules

Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

Version 1 Current »

Submission and usage rules include:

General Usage Rules

This section lists the API rules that are common to all types of allocations:

  • Vanilla give-up
  • Average pricing
  • Cross-exchange give-up
  1. Allocations cannot be cancelled if the claiming firm accepted the allocation.
  2. The executing firm may cancel the allocation if the claiming firm refused the allocation. This prevents the claiming firm from later claiming the allocation.
  3. The claiming firm may claim an allocation if it was not cancelled. This includes refusing an allocation and later claiming it.
  4. An executing firm cannot amend the allocation after the claiming firm claimed the allocation.
  5. An executing firm may amend an allocation after the claiming firm refused it. The claiming firm may then claim the amended allocation.
  6. Trades may not transition directly between give-up, average pricing, or cross-exchange give up. They must first be un-marked for allocation, then marked for allocation using the other methodology.
  7. On a Trade Capture Report, setting the Allocation Indicator to Allocation Not Required (AllocInd=0) requires the Average Pricing Indicator set to No Average Pricing (AvgPxInd=0), or the AvgPxInd attribute be omitted; otherwise, the Trade Capture Report is rejected.

Give-Up Usage Rules

This list describes the API rules applicable to vanilla give-ups in the API.

  1. The clearing system does not validate for claimed or unclaimed allocations in the group when an executing firm un-marks trades from group. This could result in the quantity of a give-up group being reduced below the quantity of claimed allocations, which cause the executing firm to be out of balance.
  2. An executing firm cannot cancel a give-up group if it has claimed allocations.
  3. By default, trades that meet grouping criteria are grouped together when marked for give-up. The executing firm can opt out of this by designating a trade not be added to an existing allocation group.
  4. If the executing firm designates multiple allocations to the same firm and account, the clearing system by default rolls up all of these allocations into a single allocation. Both the executing and claiming firms see only one allocation. However, the executing firm can choose to override rollup, which results in multiple individual allocations.
  5. The executing firm cannot amend an allocation to change the instruction to override rollup.
  6. The clearing system will not group any NYMEX, COMEX, or SX trades. When marked for give-up, the clearing system creates a new group for each of these trades. Additionally, firms can opt out of grouping; the clearing system creates a new group for each trade when the firm marks each trade for allocation.

Average Price Usage Rules

This list describes the applicable average pricing API rules.

  1. Trades may not be un-marked for average price allocation or removed from an average price group if the group is complete.
  2. To remove trades from a completed average price group, the executing firm must un-complete the group.
  3. An executing firm cannot un-complete an average price group if the group contains claimed allocations.
  4. Un-completing an average price group cancels all unclaimed allocations.
  5. Trades may be moved from one average price group to another if both groups are incomplete.
  6. The executing firm cannot allocate before completing an average price group.
  7. The executing firm can only cancel an incomplete average price group.
  8. Cancelling an average price group leaves the trade (if any) unmarked from the group, but the trades remain marked for average pricing.
  9. Marking a trade for give-up allocation that was previously marked for average pricing requires the executing firm first un-mark the trade from average pricing and mark it for give-up.
  10. Removing a trade from an average pricing group but keeping it in the average pricing system as unassigned requires specifying an Average Price Indicator of Average price trade removed from group (AvgPxInd=100) in a Trade Capture Report that modifies the trade. Modifying the trade and omitting the Average Price Group ID (AvgPxGrpID) is not sufficient.
  11. Rollup is never performed for average pricing groups. If the executing firm designates multiple allocations to the same firm and account, the clearing system will not roll up the allocations, which results in multiple individual allocations. The executing firm cannot override this behavior.
  12. The clearing system may split an allocation into two or more allocations if the allocation could not be satisfied by trades having the same fee characteristics.

Sub-Allocation Usage Rules

This list describes all of the applicable sub-allocation API rules.

  1. A claiming firm wanting to sub-allocate a trade must first claim the allocation and then sub-allocate it using distinct messages. Claiming and sub-allocating in a single message is not supported.
  2. If a sub-allocation is being average priced, an Average Price Group ID (AvgPxGrpID) must be specified.

Reversal Usage Rules

This list describes all the allocation reversal API rules.

  1. A claiming firm must first claim an allocation before either party can reverse it.
  2. Either the executing firm or the claiming firm can request a reversal.
  3. A reversal, once refused, can later be accepted, provided the party that initiated the reversal has not cancelled it.
  4. The party that initiates a reversal may cancel a reversal, but only if the other party has not accepted or refused it.

Cross-Exchange Give-Up Usage Rules

This section describes all of the API rules that are applicable for cross-exchange allocations in the API differing from those already specified as General Usage Rules, Give-up Usage Rules, and Reversal Usage Rules.

  1. The executing firm must specify claiming firm information when marking a trade for cross-exchange allocation. It is not possible to mark a trade for cross-exchange allocation without indicating one or more claiming firms.
  2. A trade may be marked for MOS and only partially allocated. The executing firm then keeps the unallocated quantity if it takes no further action. The executing firm may also submit additional MOS allocations for the unallocated quantity remaining on the same trade. However, any unallocated quantity may not be allocated via give-up or average pricing.
  3. If a CME executing firm cancels an allocation pre-trade, the cancel may be ignored if SGX clearing has claimed or refused an allocation.
  4. An SGX firm cannot initiate a reversal.
  5. Cancelling a reversal is not currently supported.
  6. If cancellation of reversal is supported in a future release, in a scenario where a CME firm cancels a reversal that it initiated, the cancel may be ignored if SGX clearing has claimed or refused the reversal.

FIXML Message and Attribute Usage in Allocation Messages

Message Types
Message TypeDescriptionMessage

Mark Trade for Give-up
Mark Trade for Give-up with Specific Instructions
Mark Trade for Average Pricing
Un-mark Trade Change Average Price Group

Sent by the executing firm as a new trade or an amendment to a previously submitted trade.TradeCaptureReport

Mark Trade Acknowledgment
Un-mark Trade Acknowledgment
Change Average Price Group Acknowledgment

Sent by the API in response to marking a trade, un-marking a trade, or changing allocation parameters of a marked trade.

TradeCaptureReportAck
Group Summary notifications

For trades marked for give-up, these messages are sent by the API in response to the creation of a group, addition of a trade to an existing group, or cancellation of a group. For trades marked for average pricing, these messages are sent by the API in response to adding or removing a trade from an average price group, when a group is completed or un-completed, or when a group is cancelled.

AllocationInstructionAlert

Complete Average Price Group
Un-complete Average Price Group

Sent by the executing firm to complete an average price group.
Sent by the executing firm to un-complete an average price group.

AllocationInstruction

Submit Allocation Instruction
Amend Allocation Instruction
Cancel Allocation Instruction

Sent by the executing firm to submit, amend, or cancel an allocation instruction.AllocationInstruction
Allocation Instruction Acknowledgment

Sent by the clearing system to the executing firm acknowledging the submission, amendment, or cancellation of an allocation instruction, or reporting an error.

AllocationReport

Notify Claiming Firm
Notify Claiming Firm of Cancellation
Notify Claiming Firm of Amendment

Sent by the clearing house to notify the claiming firm of a new allocation, cancellation of an allocation, or amendment of an allocation proposed by the executing firm.

AllocationReport

Claim an Allocation
Refuse an Allocation

Sent by the claiming firm to the clearing system to indicate whether the claiming firm accepts or refuses an allocation proposed by the executing firm.

AllocationInstruction

Allocation Claim Notification
Allocation Refusal Notification

Sent by the clearing system to the executing firm to indicate status changes to an allocation, such as those caused by a claiming firm accepting or refusing an allocation.

AllocationReport

Allocation Claim Acknowledgment
Allocation Refusal Acknowledgment

Sent by the clearing system to the claiming firm acknowledging and processing the claim or refusal from the claiming firm.

AllocationReport
Sub Allocate an AllocationSent by the claim firm to sub-allocate an allocation after claiming the allocation.AllocationInstruction
Request Allocation Reversal

Initiated by either the executing firm or the claiming firm to the clearing system to request the release or reversal of a claimed allocation.

AllocationInstruction
Reversal Request AcknowledgmentSent by the clearing system to acknowledge the reversal request.AllocationReport
Reversal Request NotificationSent by the clearing system to notify the opposite side of the proposed reversal.AllocationReport

Accept a Reversal
Refuse a Reversal

Sent to the clearing system to accept or refuse the proposed reversal.AllocationInstruction

Reversal Acceptance Acknowledgment
Reversal Refusal Acknowledgment

Sent by the clearing system to the initiator of the claim or refusal of the reversal, acknowledging acceptance or refusal of the reversal.

AllocationReport

Reversal Acceptance Notification
Reversal Refusal Notification

Sent by the clearing system to the initiator of the reversal, to notify the firm of the acceptance or refusal of the reversal.

AllocationReport
Cancel Reversal RequestSent by the firm that initiated the reversal to the clearing system.AllocationInstruction
Cancel Reversal AcknowledgmentSent by the clearing system to the firm that initiated the reversal.AllocationReport
Cancel Reversal NotificationSent by the clearing system to the firm that did not initiate the reversal, notifying that firm of the reversal’s cancellation.AllocationReport
Clearing System RejectSent by the clearing system in response to an invalid request.AllocationInstructionAck
Allocation Identifiers

The API allows and provides the following identifiers when submitting and reporting allocations to the clearing system. Identifiers are provided by the submitter and assigned by the CME clearing system. All identifiers provided by a firm are reported back on all the subsequent acknowledgments and notifications to the firm. Submitters must reference allocations using CME clearing system assigned identifiers.

NameAttributeMessageUsage
Message Identifiers
Message ID@IDAllocation InstructionUnique message ID. Used by both executing and claiming firms.
Reference ID@RptRefIDAllocation Report

Used by clearing system when responding to an Allocation Instruction.

Contains the same value specified in ID for the Allocation Instruction.

Reference ID@RptRefID

Allocation Instruction Ack
Allocation Instruction Alert

Used by clearing system when responding to an Allocation Instruction.

Contains the same value specified in ID for the Allocation Instruction.

Clearing assigned Group ID

@GrpIDAllocation Instruction AlertSent by clearing system to identify allocation groups (give up, average price, or cross exchange give up)
@GrpIDAllocation Instruction

Must be sent by the executing firm and must equal the GrpID the clearing system sent in an Allocation Instruction Alert.

Required on all Allocation Instruction messages sent by the executing firm except for sub-allocation.

@GrpIDAllocation ReportSent by clearing system to the executing firm on all messages to identify the allocation group.
Average Price Group ID@AvgPxGrpIDTrade Capture ReportSent by the executing firm to assign a trade to an average price group.

@AvgPxGrpID

Allocation Instruction Alert
Allocation Report

Echoed by the clearing system to the executing firm for average price groups. Will match the AvgPxGrpID

specified in a Trade Capture Report.

Allocation Identifiers
Clearing assigned Allocation IDAlloc/@IndAllocID2Allocation ReportSent by clearing system to the executing firm and claiming firm on all messages to identify the allocation.
Alloc/@IndAllocID2Allocation Instruction

Sent by the claiming firm to the clearing system to reference an allocation. Sent by the executing firm to the clearing system to reference an allocation. For example when amending, cancelling, or reversing an

allocation. In sub-allocations, sent by the original claiming firm to identify the allocation to sub-allocate.

Firm assigned Allocation IDAlloc/@IndAllocIDAllocation InstructionSent by firms (both executing and claiming) to provide an additional identifier for the allocation. Optional.

Alloc/@IndAllocIDAllocation Instruction Alert

If Alloc/@IndAllocID is specified by the firm in an Allocation Instruction, the clearing system will store this and send it back to the claiming firm when referencing the allocation.

Trade IDAllExc/@TradeIDAllocation Instruction Alert

Sent by the clearing system to the executing firm to indicate the Trade ID of a trade added to or removed from a group.

Transaction Quantity@QtyAllocation Instruction Alert

Indicates the quantity by which the group changes as part of the current transaction. Positive when adding a trade to a group. Zero when changing just the status of a group, e.g. completing or un-completing a group. Negative when removing trades from a group.

Group Quantity@GrpQtyAllocation Instruction Alert

Total quantity in the group. This only changes if trades are added or removed from the group. Note: Allocating from a group, or reversing allocations, does not affect the group quantity.

Total Allocation Quantity@Qty

Allocation Instruction
Allocation Report

Total quantity being allocated by this message.
Allocation QuantityAlloc/@Qty

Allocation Instruction
Allocation Report

Quantity allocated to the party identified in the <Pty> element.
Requested Allocation QuantityAlloc/@ReqQtyAllocation Report

Quantity allocated to the party identified in the <Pty> element in the requested allocation. Can differ from Alloc/@Qty when the clearing system splits an allocation. Sent to executing firm for average price allocations.

Trade QuantityAllExc/@LastQtyAllocation Instruction AlertIndicates the quantity of a trade added to or removed from a group. Is always positive.
Average Price@AvgPxAllocation Instruction Alert

Average price computed by the clearing system for a completed group. Incomplete groups generally will not have an average price specified.

Average Price@AvgPxAllocation ReportAverage price at which allocation occurs.
Give-up Price (Trade Price)@AvgPxAllocation ReportFor vanilla give-ups this contains the trade price.
Trade PriceAllExc/@LastPxAllocation Instruction AlertIndicates the price of a trade added to or removed from a group.
Grouping and Rollup Attributes

The following attributes indicate instructions pertaining to grouping and roll-up, which the executing firm uses to override default behavior.

NameAttribute Message Usage
Allocation Group InstructionRptSide/@AllocGrpInstTrade Capture Report
Trade Capture Report Ack

Instruction on how to add a trade to an allocation group when it is being given-up.

The default behavior is to add the trade to an existing allocation group if one exists.
0 = Add to an existing allocation group if one exists
1 = Do not add the trade to an existing allocation group

Allocation Rollup InstructionAlloc/@AllocRollupInstAllocation Instruction
Allocation Report

An indicator to override the normal procedure to roll up allocations for the same

Carry Firm. Note that this may not be used for average pricing groups.
0 = Roll up
1 = Do not roll up

Allocation Rollup InstructionRptSide/Alloc/@AllocRollupInstTrade Capture Report
Trade Capture Report Ack

An indicator to override the normal procedure to roll up allocations for the same

Carry Firm. Note that this may not be used for average pricing groups.
0 = Roll up
1 = Do not roll up

Buy Sell Convention

This section describes the convention used for buy sell code convention in allocation messages.

In this scenario the executing firm is giving up a trade, which is a buy. For transactions where the executing firm makes a trade to sell, the side in all of the above scenarios is reversed. The clearing system reverses the buy sell code when an allocation is initiated.

Scenario Message Type Executing FirmClaiming Firm
Original Trade TrdCaptRptBUY
Group Summary Notification after a trade is allocatedAllocInstrctnAlertBUY
New Allocation NotificationAllocRptSELLBUY
Allocation Claimed / Refused by the Claim sideAllocRptSELLBUY
Allocation Reversal confirmationAllocRpt (allocation released and release accepted)SELLBUY
  • No labels