Change Summary


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 ExecutionReport Rejects and Cancels being 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 ExecutionReport Expires and Cancels being delivered in these scenarios. 

Affected Venues

  • All Venues

Changes

  • Previously Quoted Orders

    1. (TimeInForce in IOC, FOK) will be canceled if not filled due to liquidity miss / last-look rejects.
    2. Incorrect orders requests (eg, account, set up issues, credit etc) will be rejected.

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:

    1. t360_tex
    2. natwest_markets
    3. statestreet_efx
 

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:

  1. 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.

  2. Industry Standards and Best Practices – Where applicable, the differentiation process will align with:

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

    1. Orders with TimeInForce IOC,FOK will be cancelled if not filled.
    2. Orders which expire at a given time i.e, TimeInForce in DAY, GTD, GFT, GFA, AMO, AMC will be expired if not filled.
    3. The CancelOnDisconnect, SelfMatchPrevention, Pegged MidMatch Orders after PartialFills, will all remain Cancelled
    4. The venue initiated unsolicited cancels and replaces will have ExecType=Restated, ExecRestatementReason populated with appropriate reason.

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

Note: The stamping of ExecType=Restated and ExecRestatementReason is on best effort basis where there is enough information from the venue.


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).


VenueTimeInForceOrdStatus ChangeExecType ChangeComment
bgc_midfx

Day

Canceled → Expired

Canceled → Expired

N/A
broadridge_ordersDay, GTD, GFT, GFA, AMO, AMCCanceled → ExpiredCanceled → 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_sbeIOC, FOKExpired → CanceledExpired → CanceledN/A
ebs_market_ilink3_sbeIOC, FOKExpired → CanceledExpired → CanceledN/A
fastmatch_autoexDayCanceled → ExpiredCanceled → ExpiredN/A
fidessa_ordersGTD, GFT, GFA, AMO, AMCCanceled → ExpiredCanceled → ExpiredN/A
fxall_activetradingDayCanceled → ExpiredCanceled → ExpiredN/A
lmaxDayCanceled → ExpiredCanceled → ExpiredN/A
lseg_ftgDay, GFTCanceled → ExpiredCanceled → Expired

Additional Change: Unsolicited Order Cancel following a TradeBust will be sent with

OrdStatus=Canceled, ExecType=Restated, ExecRestatementReason=BrokerOption

lucera_lumefxDayCanceled → ExpiredCanceled → ExpiredN/A
parfx_ordersDayCanceled → ExpiredCanceled → ExpiredN/A
t360_gtxDayCanceled → ExpiredCanceled → ExpiredN/A
xenfin_liquiditypoolIOC, FOKExpired → CanceledExpired → CanceledN/A

autobahnfx_algo

DayCanceled → ExpiredCanceled → ExpiredAdditional Change: Unsolicited Algo amends and cancels will be sent with ExecType=Restated, ExecRestatementReason populated appropriately.

bnpparibas_efx_algo

Day, GTD, GFA, GFTCanceled → ExpiredCanceled → ExpiredAdditional Change: Unsolicited Algo amends and cancels will be sent with ExecType=Restated, ExecRestatementReason populated appropriately.

fxspotstream_algo

Day, GTD, GFACanceled → ExpiredCanceled → ExpiredAdditional Change: Unsolicited Algo amends will be sent with ExecType=Restated, ExecRestatementReason populated appropriately.
IOC, FOKExpired → CanceledExpired → Canceled

jpmorgan_fx_algo

---Additional Change: Unsolicited Algo amends and cancels will be sent with ExecType=Restated, ExecRestatementReason populated appropriately.

precision_algo

---Additional Change: Unsolicited Algo amends and cancels will be sent with ExecType=Restated, ExecRestatementReason populated appropriately.

ubs_algo

---Additional Change: Unsolicited Algo amends and cancels will be sent with ExecType=Restated, ExecRestatementReason populated appropriately.


Documentation