Execution Rules - Mid Distance Check
The mid distance check defines the minimum distance allowed between the filled price of an order and the TOB mid of the core pricing model, as a proportion of the reference mid.
The threshold defines the minimum distance above (below) a mid for a sell (buy) order from Compass' perspective where if the requested order price crosses that threshold, will result in a cancel. This threshold is a proportion of mid and when negative, allows the price to fill on the wrong side of mid without being cancelled (beneficial to the counterparty, detrimental to house).
mid Distance Check
Defined as threshold basis points, 0 results in fill rates capped at mid and therefore you cannot disable the check. This can be defined as negative allowing a trade to fill worse than mid.
reference mid
Defined in the channel "Mid Source Market", if no market selected this will default to the internalisation model.
Published Price
Model distributed to clients - underlying pricing model made up of the core and/or pool price with any additional protections and markups applied.
General Logic
From house perspective:
midDistanceTolerance = configuredMidDistanceBps x 0.0001 x mid
if side == BID:
midDistanceThreshold = mid - midDistanceTolerance
if requestedPrice > midDistanceThreshold:
midDistanceCheckFailed = True
if side == OFFER:
midDistanceThreshold = mid + midDistanceTolerance
if requestedPrice < midDistanceThreshold:
midDistanceCheckFailed = True
GENERAL LOGIC (different way of thinking)
From house perspective:
midDistanceTolerance = configuredMidDistanceBps x 0.0001 x mid
if side == BID:
if (mid - requestedPrice) < midDistanceTolerance:
midDistanceCheckFailed = True
if side == OFFER:
if (requestedPrice - mid) < midDistanceTolerance:
midDistanceCheckFailed = True
Example of a trade failing a mid distance check
Trade info:
Trade was to buy 285k GBP (house perspective) which means the trade is on the BID side. These checks were performed at the end of the last look period. The reference price market is the same as the core market.
Reference Mid
referenceMidMarket:CLIENT_INST_PRICE_LDN
referenceMidPrice:1.20962
midDistanceCheck: 0.10
Trade
transactTime:2023-03-15T12:32:08.743Z
side:BID
requestedPrice: 1.20965
instrument:GBPUSD
internalCancelReason:MidDistanceCheckFailed
Mid distance check
midDistanceTolerance = 0.1 x 0.0001 x 1.20962
midDistanceTolerance = 0.0000120962
midDistanceThreshold = 1.20962 - 0.0000120962
midDistanceThreshold = 1.2096079038
# Because requestedPrice > midDistanceThreshold:
midDistanceCheckFailed = True
Up next:
- Execution Rules - Execution Styles
- Execution Rules - Net Vol. Limit Breach
- Execution Rules - Last Look
- Execution Rules - Price Check
- Execution Rules - Tailoring the quality of execution to the quality of client
- Execution Rules - Tuning
Back to Execution Rule Overview