LSF Profile picture
Jul 22, 2021 8 tweets 2 min read
A thread on microstructure on high rebate/high taker fee crypto-derivatives exchanges. E.g. BitMEX, Bybit. This may be common sense to some, but I explained this to a tradfi trader and they found it helpful. (1/8)
Stylized fact #1: Despite a relatively thin tick in BTC, these markets trade one tick wide 99% of the time.
Stylized fact #2: When the price moves, it often moves by 20-40 ticks at a time instantaneously. (2/8)
Thinking like a market maker: a 2.5 bps rebate is equivalent to 15 $0.50 cent ticks on a 30k BTC. Providing liquidity at the top of the book, I am still mostly in the green if fair value is less than 15 ticks under my bid or above my ask. (3/8)
Even though the volatility of BTC suggests that it should trade way wider than a $0.50 spread, there is competition for price priority to earn the massive 15 tick rebate. This drives market makers to quote at prices they otherwise know are slightly too cheap/too expensive. (4/8)
Now let's address stylized fact #2. Suppose an external signal in the form of price on every other exchange rising. With a 7.5 bps taker fee, as a liquidity remover I need to be right by a whopping 45 ticks on a 30k BTC for my mark to market PNL to go green. (5/8)
So initially, market makers begin to form a significant imbalance on the best bid. Everyone sees the signal, but no one is willing to act first because removing liquidity is simply too expensive relative to the potential profit. (6/8)
Finally, once our hypothetical cross-exchange arb becomes strong enough to cover the taker fee, there is a market order race to remove liquidity. This is why it is rare to see the price move by just a tick or two on these exchanges. (7/8)
By the time the market order race is on, there is enough pent up order flow here to blast the price 30+ ticks easily. If you're building a HFT strategy, your orderbook features will vastly vary depending on the fee structure of the exchange. (8/8)

• • •

Missing some Tweet in this thread? You can try to force a refresh
 

Keep Current with LSF

LSF Profile picture

Stay in touch and get notified when new unrolls are available from this author!

Read all threads

This Thread may be Removed Anytime!

PDF

Twitter may remove this content at anytime! Save it as PDF for later use!

Try unrolling a thread yourself!

how to unroll video
  1. Follow @ThreadReaderApp to mention us!

  2. From a Twitter thread mention us with a keyword "unroll"
@threadreaderapp unroll

Practice here first or read more on our help page!

More from @lightspringfox

Nov 3, 2021
What does the autocorrelation structure of your alphas have to do with running market makers over? 1/9
In general, as a taker going after an edge you need to be more right than the market maker does to requote.

For example, you as an aggressor have a 2 bps taker fee looking for 2 bps of edge over fair. Maker has 0 bps maker fee and is trying to keep their ask 2 bps over fair. 2/9
When fair moves 1 bp up, the market maker happily requotes their ask 1 bp up. You as the aggressive buyer need fair to be 4 bps over the current ask in order to make 2 bps after fees.

So every time the edge grows a little, the taker is in a race that's tough to win. 3/9
Read 9 tweets
Aug 23, 2021
This fox has been receiving some messages about optimizing C++ code, FPGA's, etc. Allow me to somewhat rigorously explain why this is mostly worthless in crypto. (a thread) 1/9
Fluctuations in latency are primarily a function of two things: exchange congestion and jitter. Let's assume that instantaneously exchange congestion is held constant, and i.i.d normal jitter is the sole source of variance in latency. 2/9
Let the book feed for our signal have a random latency distributed ~ N(μ=10 ms,σ=2 ms), the time from sending our order, the time to land in the book is distributed ~N(20 ms,4 ms). These parameters are roughly accurate for one big exchange when the market isn't going crazy. 3/9
Read 9 tweets
Aug 22, 2021
A simple microstructure insight to apply is paying attention to your queue position on a given price level.

Having a resting limit order at the back of the queue with no size behind it is like signing up for an immediate small unrealized loss if your order gets filled. 1/4
Even if you are click trading, this can save you a few bps on execution in thicker tick, slower moving markets like those in some altcoins.

Although in a busier market like BTC or ETH, a human generally can’t react to their queue position fast enough. 2/4
One application of this concept I’ve been thinking about is floor price in NFTs. If we assume floor price really drives valuation, being the last offer at a given floor seems bad, considering if you get filled the floor is now higher. 3/4
Read 4 tweets
Jul 16, 2021
Figured I would compliment the shitposting with some thoughts. This meme was based completely on a true story. People talk a lot about mental game for discretionary traders, but mental biases for quants are under discussed in my opinion. (1/n)
1. Confirmation bias w.r.t simulations: How often do you look for bugs in your backtesting framework when performance looks good vs bad? When performance looks bad the inclination is to peruse the code. When things look good, ignorance is bliss. (2/n)
Net effect: Your bugs will always be selected to bias results upwards, unless you make a habit of unit testing each component. This mechanism can be quite insidious over time in a complex backtester. (3/n)
Read 7 tweets

Did Thread Reader help you today?

Support us! We are indie developers!


This site is made by just two indie developers on a laptop doing marketing, support and development! Read more about the story.

Become a Premium Member ($3/month or $30/year) and get exclusive features!

Become Premium

Don't want to be a Premium member but still want to support us?

Make a small donation by buying us coffee ($5) or help with server cost ($10)

Donate via Paypal

Or Donate anonymously using crypto!

Ethereum

0xfe58350B80634f60Fa6Dc149a72b4DFbc17D341E copy

Bitcoin

3ATGMxNzCUFzxpMCHL5sWSt4DVtS8UqXpi copy

Thank you for your support!

Follow Us on Twitter!

:(