Delegated Pulls

Delegated Pulls

My team has been asked repeatedly for advice on how to analyze the performance of market making / passive strategies. This is not as straight-forward as it sounds as there are really two related but separate aspects to consider: the quality of the insert decision and the quality of the cancel decision. Especially the latter one is tricky. What is even a good KPI? Worry no more, I got you covered.

Main Idea

The main challenge is to find a suitable and achievable benchmark. I propose the "delegated-pull" performance as described below for this purpose. In short: Given the same inserts, how would the market have handled these orders - the pulling decision is delegated to the owner of the order ahead of my own in the queue?

Using this to compare to my actual performance has a number of advantages:

  • This methodology isolates the quality of the pulling logic from that of the insert decision.
  • The benchmark orders have the same characteristics as my own orders - they just happen to be immediately ahead of me in the queue. This means that their statistical properties are closely matched. The owner likely also has very similar tech/latency capabilities.
  • Finally, a canceled benchmark order means that I would also have been able to cancel my order - assuming I have the same data sources and latency. Hence, there is no need to model latencies.

The only requirement is access to level-3 data.

Methodology

Step 1: Data

For each of your orders (filled or not) collect the following data: (a) the basics: side, price, quantity, priority timestamp (public order ID), and, only if it was fully traded, the T+10 s mid price. (b) identify the order ahead of the order at the time of the insert and, if that was fully traded, the T+10 s mid price. (c) Determine if your order would have been filled in the absence of any cancel and, if so, the T+10 s mid price following this hypothetical fill.

In my case, I wrote an A7 algo which extracts all of these fields for all passive orders inserted for a given instrument over the course of the day (see Fig. 1). Doing so for all orders allows me to analyze different subsets of orders without having to run the algo again. I can just filter out the subset I am interested in.

Figure 1: Output of an A7 algo which generates all the necessary data for each passive order.

I added some extra logic so that only results are returned for those orders which were on the BBO at any time over their lifetime. By doing so, I ignore cancel decisions for orders which were inserted and canceled in the back of the book. This is because those cancels were likely not model-based but probably "mechanical" e.g. to satisfy risk constraints.

NB: The algo returns prices and quantities as disseminated in the EOBI, i.e., as integers.

Step 2: KPIs

Based on this data now compute the following three KPIs:

(i) The "no-pull" notional and markout PnL. For this aggregate the traded notional (and markout PnL) of all of your (identifiable by the PriorityTimestamp) orders which would have been filled in the absence of any cancel request.

(ii) The "delegated-pull" notional and markout PnL. For this aggregate the traded notional and markout PnL for all fully traded orders which were initially just ahead of our order. This measures how the "market" would have performed given our inserts. Or: this would have been our performance if our pulling model matched that of our competitors (or if we mirrored whatever the order ahead of us does). For orders which establish a new level (i.e., there is no benchmark order ahead) we use the actual traded volume & markout.

(iii) The "actual" notional and markout PnL for all of our fully traded orders.

The difference between (ii) and (iii) allows you to compare your pulling logic to that of your competitors. The difference between (i) and (ii) is a useful KPI for the quality of your inserts.

Step 3: Insights

Fig. 2 below shows the results for two hypothetical participants shown in different colors. The right-most markers (squares) denote the "no-pull" notional (horizontal axis; log scale!) and gross edge (vertical axis). The diamonds are the "delegated-pull" values; the circles are the actual values.

Figure 2: No-pull, delegated-pull, and actual volumes and markouts for two hypothetical participants passively trading DAX40 constituents on Xetra.

There are a few noteworthy observations we can make:

  • In this example, both participants' pulling models are more restrictive than that of the competition - both "actual" volumes are lower than the "delegated-pull" volumes.
  • Participant A's (blue) pulling logic underperforms that of the market. Despite pulling more aggressively, the edge actually decreases. Obviously, the wrong orders are being cancelled.
  • Participant B's (red) pulling logic in contrast outperforms far that of the competition. The competition would have had negative edge (-0.2 bps) given the same orders, but the participant achieves better than +0.4 bps by cancelling an additional 50% of the orders - and the right ones!
  • The "delegated-pull" value on its own can be used to gauge the quality of the insert model in isolation without the need of an existing pulling model. Participant B (red) outperforms A here also significantly. The market would have had more edge (or less negative) for much larger volume than given A's orders.


#marketmaking #marketdata #tca #quantitativetrading #xetra #eurex #equities #liquidity #microstructure


Justin Harper

High-Frequency Market Making

10 个月

"The difference between (i) and (ii) allows you to compare your pulling logic to that of your competitors. The difference between (ii) and (iii) is a useful KPI for the quality of your inserts." Are these reversed?

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

Stefan Schlamp的更多文章

  • Closing Auction Market Share - The Long View

    Closing Auction Market Share - The Long View

    There have been some recent studies that highlighted the increasing market share of the closing auction (see references…

  • Are Fill/Cancels to Blame?

    Are Fill/Cancels to Blame?

    Two weeks ago I decomposed market makers' profitability (or lack thereof) into a suite of market factors. This week I…

    1 条评论
  • Where'd Your Money Go?

    Where'd Your Money Go?

    Under ideal conditions (ideal from the market maker's point of view), the market maker earns the half-spread on every…

    8 条评论
  • Share Buyback Regs vs. Physics

    Share Buyback Regs vs. Physics

    The regulations for executing share buybacks are oddly specific. For example 2016/1052: Buy orders shall be entered or…

    3 条评论
  • Retail, Dark Midpoint, and CLOB Intraday Volume Profile

    Retail, Dark Midpoint, and CLOB Intraday Volume Profile

    Trades facilitated by retail liquidity providers and trades on the dark midpoint book can be distinguished from…

    2 条评论
  • Variability of Auction Liquidity

    Variability of Auction Liquidity

    Suppose you estimate your price impact on the auction uncrossing price based on some historical average. How far off…

  • Manz AG (M5Z)

    Manz AG (M5Z)

    On 20241218, trading in Manz AG (M5Z) was suspended on Xetra for an upcoming announcement. This turned out to be that…

  • Pie In The Sky

    Pie In The Sky

    Imagine two markets: In the first market, all trades mark out flat. In the second one, half the trades mark out +1, the…

    6 条评论
  • Go Big or Go Home - 2024Q4

    Go Big or Go Home - 2024Q4

    Table 1 is the quarterly round-up of the most noteworthy Xetra and Eurex trades of 2024Q4. Mostly on par with the…

    9 条评论
  • Latency State of Play on Xetra

    Latency State of Play on Xetra

    Since things have reached the physical limit on Eurex, at least to within the measurement uncertainty, it's time to…

社区洞察

其他会员也浏览了