Change Summary
Mandatory Change
Background
To provide a normalised view of the OrdStatus and ExecTypes across the workflows.
- PreviouslyQuoted - Normalised view of the liquidity misses and last look rejection. Currently there is a mixture of
ExecutionReportRejectsandCancelsbeing delivered in these scenarios. Differentiating between liquidity misses and last-look rejections will allow clients transparency of why the order might have been rejected. - CLOB and Algo - Currently there is a mixture of
ExecutionReportExpiresandCancelsbeing delivered in these scenarios.
Affected Venues
- All Venues
Changes
Previously Quoted Orders
- (
TimeInForceinIOC, FOK) will be canceled if not filled due to liquidity miss / last-look rejects. - Incorrect orders requests (eg, account, set up issues, credit etc) will be rejected.
- (
Exceptions
A few venues do not provide enough information to distinguish between these rejects, in which case, all the rejects will be delivered to Clients as ExecutionReport Rejects. These venues include:
Details
The text contained within the reject messages will serve as a key mechanism for distinguishing between various types of rejections. This differentiation will be based on two primary factors:
Message Description – The descriptive content provided within the reject message will be analyzed to identify the specific reason for rejection, ensuring clarity and transparency for clients.
Industry Standards and Best Practices – Where applicable, the differentiation process will align with:
- The Investment Association’s Standardisation of Reject Codes, which provides a consistent framework for categorizing rejection reasons across venues.
- The FIX Recommended Practices for FX Rejects Codes.
This approach will be applied in cases where the trading venue supplies sufficient detail within the reject message to support accurate classification. By adhering to these standards, we aim to enhance transparency, improve interoperability, and deliver a normalised view of rejection reasons across workflows.
CLOB, Algo, Market orders
- Orders with
TimeInForceIOC,FOKwill be cancelled if not filled. - Orders which expire at a given time i.e,
TimeInForceinDAY, GTD, GFT, GFA, AMO, AMCwill be expired if not filled. - The CancelOnDisconnect, SelfMatchPrevention, Pegged MidMatch Orders after PartialFills, will all remain
Cancelled. - The venue initiated unsolicited cancels and replaces will have
ExecType=Restated, ExecRestatementReasonpopulated with appropriate reason.
- Orders with
Timeline
Clients are advised to contact the MarketFactory Delivery Team to enable this feature in UAT to test and subsequently deploy to production.
Whisperer Client Impact
Whisperer clients will now receive ExecutionReport with normalised OrdStatus, ExecType as detailed above.
Change Details
Previously Quoted workflow - Clients will start to recieve
ExecutionReportwithOrdStatus.Canceledfor scenarios indicating liquidity miss and last-look rejects. The remainder of the rejects will continue to be sent asExecutionReportOrdStatus.Rejected.- Orders workflow -
- Orders with
TimeInForceIOC,FOKwill be cancelled if not filled. - Orders which expire at a given time i.e,
TimeInForceinDAY, GTD, GFT, GFA, AMO, AMCwill be expired if not filled. - The CancelOnDisconnect, SelfMatchPrevention, Pegged MidMatch Orders after PartialFills, will all remain
Cancelled. - The venue initiated unsolicited cancels and replaces will have
ExecType=Restated, ExecRestatementReasonpopulated with appropriate reason.
- Orders with
Note: The stamping of ExecType=Restated and ExecRestatementReason is on best effort basis where there is enough information from the venue.
ExecType=Restated may be terminal state
It is now possible to receive an ExecutionReport with terminal state of OrdStatus=Canceled and ExecType=Restated when the venue initiates unsolicited cancels (Algo orders).
| Venue | TimeInForce | OrdStatus Change | ExecType Change | Comment |
|---|---|---|---|---|
| bgc_midfx | Day | Canceled → Expired | Canceled → Expired | N/A |
| broadridge_orders | Day, GTD, GFT, GFA, AMO, AMC | Canceled → Expired | Canceled → Expired | Additional Change: SelfMatchPrevention canceled Execution Reports will be sent with OrdStatus=Canceled, ExecType=Restated, ExecRestatementReason= CxldSMP |
| cboefx_fixproxy | Day | Canceled → Expired | Canceled → Expired | Additional Change: MidMatched pegged Orders that are canceled after partial match, will be sent with OrdStatus=Canceled, ExecType=Restated, ExecRestatementReason=BrokerOption |
IOC, FOK | Expired → Canceled | Expired → Canceled | ||
| cme_ilink3_sbe | IOC, FOK | Expired → Canceled | Expired → Canceled | N/A |
| ebs_market_ilink3_sbe | IOC, FOK | Expired → Canceled | Expired → Canceled | N/A |
| fastmatch_autoex | Day | Canceled → Expired | Canceled → Expired | N/A |
| fidessa_orders | GTD, GFT, GFA, AMO, AMC | Canceled → Expired | Canceled → Expired | N/A |
| fxall_activetrading | Day | Canceled → Expired | Canceled → Expired | N/A |
| lmax | Day | Canceled → Expired | Canceled → Expired | N/A |
| lseg_ftg | Day, GFT | Canceled → Expired | Canceled → Expired | Additional Change: Unsolicited Order Cancel following a TradeBust will be sent with OrdStatus=Canceled, ExecType=Restated, ExecRestatementReason=BrokerOption |
| lucera_lumefx | Day | Canceled → Expired | Canceled → Expired | N/A |
| parfx_orders | Day | Canceled → Expired | Canceled → Expired | N/A |
| t360_gtx | Day | Canceled → Expired | Canceled → Expired | N/A |
| xenfin_liquiditypool | IOC, FOK | Expired → Canceled | Expired → Canceled | N/A |
| Day | Canceled → Expired | Canceled → Expired | Additional Change: Unsolicited Algo amends and cancels will be sent with ExecType=Restated, ExecRestatementReason populated appropriately. | |
| Day, GTD, GFA, GFT | Canceled → Expired | Canceled → Expired | Additional Change: Unsolicited Algo amends and cancels will be sent with ExecType=Restated, ExecRestatementReason populated appropriately. | |
| Day, GTD, GFA | Canceled → Expired | Canceled → Expired | Additional Change: Unsolicited Algo amends will be sent with ExecType=Restated, ExecRestatementReason populated appropriately. | |
| IOC, FOK | Expired → Canceled | Expired → Canceled | ||
| - | - | - | Additional Change: Unsolicited Algo amends and cancels will be sent with ExecType=Restated, ExecRestatementReason populated appropriately. | |
| - | - | - | Additional Change: Unsolicited Algo amends and cancels will be sent with ExecType=Restated, ExecRestatementReason populated appropriately. | |
| - | - | - | Additional Change: Unsolicited Algo amends and cancels will be sent with ExecType=Restated, ExecRestatementReason populated appropriately. |