Hidden Liquidity Arbitrage: An Exotic Approach to Market Making

Crypto Chassis
Open Crypto Trading Initiative
5 min readNov 18, 2022
Photo by Jeremy Bishop on Unsplash

Greetings, Ladies and Gentlemen! Thank you for visiting us again. In the past several articles, we shared a couple of stories about our journey in high frequency trading mixed with laughs and tears. “Atomic Arbitrage: A Quantitative Study” showcased a very-successful strategy. “Alice in Wonderland: Applying Sandwich Arbitrage on Centralized Exchanges” showcased a partially-successful strategy. Like Thomas Edison inventing the light bulb, these successes and partial successes came from numerous failures and repetitive iterations. Failure is the mother of success. Today we are happy to share a story in which we developed an unsuccessful market making strategy from an exotic idea. Although it isn’t working consistently in the current format, yet we think that the idea is interesting enough to bring it for some discussions.

For professional traders, it is well-known that a market maker assumes a great deal of transient inventory risk and is subject to adverse selection. In the distant past for quite a while, we researched and practiced market making in the canonical sense that limit buy and limit sell orders were placed on the order book at prices calculated from market volatility and inventory levels, and the orders were kept open on the market for an extended period of time, and then at some point in time the market moved to fill our orders. This approach worked in the sense that we could generate a decent trading volume. This approach didn’t work in the sense that we were almost always subject to adverse selection sooner or later and as a result the PnL became quite non-deterministic and very inconsistent. As time passes by, we gradually realize that trading determinism and consistency seems to be tightly correlated with the trading time scale: the shorter the time scale is, the better the result. For the very-successful strategy that we mentioned at the beginning of this article, its time scale is very small: several hundred milliseconds. Remember that it has a maker-taker execution pattern. For the partially-successful strategy that we mentioned at the beginning of this article, its time scale is a bit larger: from several hundred milliseconds to several seconds. Remember that it has a taker-maker execution pattern. The natural question to ask is: is it possible to perform a maker-maker execution (i.e. market making) in a very short time scale, e.g within one second and nearly get rid of inventory risk and adverse selection?

In order to answer that question, we have to think about under what conditions can two maker orders (i.e. one buy order and one sell order) be filled in quick succession before the market makes a move to impose inventory risk and adverse selection? If the market has ample two-sided incoming taker orders, then it is possible to get two maker orders filled in quick succession. Under what conditions can the market have ample two-sided incoming taker orders? If the market becomes volatile on both sides, then the market can have ample two-sided incoming taker orders. Under what conditions can the market become volatile on both sides? Well, this is where our “innovation” comes in. We think that the market has hidden liquidity behind it: in particular hidden takers who are dormant most of the time. And these hidden takers reside in both directions of the market. When the market makes an ultra-violent move in a single tick, many of these hidden takers come into life. Like a dark stage all of a sudden is lit up and filled by actors acting in both directions. We think that the sources of these hidden takers are: [1] Conditional orders: it is a common practice for advanced traders to submit various kinds of conditional orders for risk control and opportunistic capture. The most well-known forms of conditional orders are stop loss orders and take profit orders. [2] Liquidation events: in order to ensure execution, these orders almost certainly end up as taker orders. [3] Trading bots: many trading bots are coded to react to violent market moves by issuing new orders. These are conditional orders triggered on the trading client side rather than on the exchange server side.

Let us take a look at a real world example to see how these hidden takers came into life. In our previous publication entitled “Why Market Makers Should Know about Market Takers Inside-out”, we pointed out that at exactly UTC time 2022–10–20T21:03:59.173033Z a taker with very deep pocket placed and executed one single large order in one single transaction on FTX’s SOL/USD (this is the very last story in which we will use FTX as an example). The USD size of this order was ~$531,290, i.e. about half a million dollars. And that action caused the price of FTX’s SOL/USD to drop 33 bps instantaneously. What happened in the one second immediately following this event?

time_seconds,price,size,is_buyer_maker
1666299839.354574,28,0.02,0
1666299839.405328,28,891.18,0
1666299839.430731,28,62.6,0
1666299839.434789,28,10,0
1666299839.438763,28,113.82,0
1666299839.479672,28,62.61,0
1666299839.527906,28,10,0
1666299839.529005,28,0.79,0
1666299839.529356,28,10,0
1666299839.530548,28,10,0
1666299839.539406,28,206.82,0
1666299839.546385,28,399.77,0
1666299839.547532,28,186.25,0
1666299839.552719,28,206.82,0
1666299839.559363,28,221.33,0
1666299839.56364,28,266.94,0
1666299839.563683,28,1800,0
1666299839.563798,28,1300,0
1666299839.56566,27.9975,0.46,1
1666299839.56566,27.9975,0.6,1
1666299839.56566,27.9975,0.01,1
1666299839.56566,27.9975,0.01,1
1666299839.56566,27.9975,0.01,1
1666299839.56566,27.9975,0.08,1
1666299839.56566,27.995,0.09,1
1666299839.56566,27.995,0.25,1
1666299839.56566,27.995,0.21,1
1666299839.56566,27.995,0.01,1
1666299839.56566,27.9925,0.1,1
1666299839.56566,27.9925,1.17,1
1666299839.56566,27.9925,16,1
1666299839.571439,28,21.43,0
1666299839.574069,28,74.34,0
1666299839.576217,28,0.19,0
1666299839.576526,28,1.78,0
1666299839.600183,28,111.5,0
1666299839.600524,28,100,0
1666299839.601375,28,23.13,0
1666299839.607427,28,35.59,0
1666299839.60814,28,190.49,0
1666299839.609662,28,6.49,0
1666299839.618456,28,182.14,0
1666299839.619354,28,356.19,0
1666299839.620707,28,74.27,0
1666299839.625753,28,72.76,0
1666299839.627446,28,78.38,0
1666299839.631651,28,40.19,0
1666299839.632013,28,40.19,0
1666299839.632897,28,17.83,0
1666299839.640433,27.9975,89.74,1
1666299839.640979,28,355.49,0
1666299839.642153,28,65.32,0
1666299839.646487,27.9975,10.48,1
1666299839.646487,27.9975,171.74,1
1666299839.654945,28,30.28,0
1666299839.655983,28,30.28,0
1666299839.666686,28,199.56,0
1666299839.667685,28,30,0
1666299839.671502,28,7.86,0

It triggered a cascading effect of buys and sells. There were frantic buyers (i.e. the column is_buyer_maker is 0) and frantic sellers (i.e. the column is_buyer_maker is 1). Although we aren’t sure about the exact reasons why they issued these cascading orders, yet we can see that they are there and they come to life in a flush of urgency when certain conditions are met. In this one second, the bid side booked a trading volume of $8,146 and the ask side booked a trading volume of $221,329. This is what we are looking for: ample trading volumes in both directions within a very short period of time. The average bid side trading price was $27.9972, and the average ask side trading price was $28, which translates to an effective spread of 1 bp. Therefore our exotic market making strategy is: for a given instrument, when the market has a huge uptick or downtick in a single tick (tongue twister intended), quickly place maker orders on both sides of the market and wait for hidden takers to fill them within one second. As mentioned before, unfortunately so far we were unable to make it work with decent consistency in the battlefield. Nevertheless, we think that the idea itself is very interesting and our unsuccessful work on it can pave the way to a future version which might be successful enough!

If you are interested in our work or collaborating with us, join us on Discord: https://discord.gg/b5EKcp9s8T and find us on Github: https://github.com/crypto-chassis/ccapi 🎉. We specialize in market data collection, high speed trading system, infrastructure optimization, and proprietary market making.

Disclaimer: This is an educational article rather than investment/financial advice.

--

--