SMP^21

SMP^21

There are a few instances where the public data allows one to tie multiple orders to the same participant. One example are SMP (self-match prevention) deletes.

Self-match prevention is facility provided by exchanges to easily prevent participants from inadvertently trading with themselves (wash trading is a big no-no). Avoiding this without SMP can be surprisingly difficult.

Imagine you have multiple desks trading the same instrument - aggressively and passively. Now suppose one desk's algo wants to send an aggressive order. In order to ensure that it does not match with any passive order from the same firm it would need to:

  • be aware of any live passive orders of other algos from the same and other desks
  • be aware of any in-flight orders
  • prevent any new passive orders going out to the targeted levels
  • send cancel requests for any open or in-flight passive orders
  • wait for the CancelAck - or at least a sufficient amount of time to protect against the aggressive order overtaking the cancel requests

before sending the aggressive order. Note that desks might not be allowed to see each other's orders. All kinds of race conditions have to be accounted for. In short, it would be unpractical to ensure this on the participant side.

Instead participants can provide a MatchInstCrossID with each order which then triggers the SMP logic when two orders with the same ID (another field controls if this applies only within the same business unit or market-wide) would otherwise match against each other.

In that case, the resting orders are deleted (or amended down) instead of executed. All this is transparent in the public market data. The ExecutionSummary shows the SMP-deleted quantity in the field RestingCxlQty and the individual affected orders can be identified as OrderDelete or OrderModifySamePriority updates interspersed with the order executions within the trade event.

All SMP'd orders within a trade event can hence be tied to the same participant (plus the aggressive order). And so we come across instances like the one shown in Fig. 1 below; a partial-level trade for the front-month FGBL where no less than 21 resting orders were SMP-deleted, i.e., had the same owner.

Figure 1: Visualization of individual orders on the traded level (pre-trade event).

The front of the queue is on the left, i.e., orders are matched from the left against the incoming aggressive order. Orders at the back of the queue remain unfilled (shown in grey) in this trade. SMP'd orders are shown in dark blue, traded orders in light blue. If one wanted to one could determine when the SMP'd orders were inserted, what triggered this, and what the reaction time was.

One can also easily find instances where orders on multiple levels were SMP'd. I only searched among the most liquid futures and only for 2024. There might be instances with even more SMP'd orders within the same event.

Milan Dvorak

CEO at Magmio

2 个月

It sounds like having a good, aggressive ultra-low latency strategy in-house can be a nice protection for passive orders in the firm's market-making business. If the aggressive strategy is right (the quotes are stale or mispriced at that moment), it picks up competitor's quotes while canceling its own quotes at the same time. On the other hand, if the aggressive strategy is wrong, I can imagine the owners of the passive orders might get angry because their orders got canceled instead of making a desired trade. Very interesting market nuance, thanks for sharing.

要查看或添加评论,请登录

社区洞察

其他会员也浏览了