Deribit Market Making
Below is my post about my journey and my findings, operating as a market maker.
Carrier History
Early 2019 I set out to create a Low Latency Market Making “Liquidity Provider” algorithm written in C++ for an exchange called Deribit.
What is Market Making
It all starts at the financial exchange. A financial exchange is where market participants called buyers and sellers meet to “exchange assets”. One big challenge in this scenario is when a buyer arrives to the exchange, a seller may not arrive at the exact same time as the buyer. So the buyer has to wait around. The buyer may get impatient and increase the price they are willing to buy to entice more sellers to exchange the asset with them. Maybe the reverse happens and there is a flurry of sellers entering into the exchange and no buyers are present to sell to for a few moments.
Because buyers and sellers don’t arrive at the same time to the exchange, the price during the short term suffers by fluctuating up and down wildly which makes the asset less attractive to trade. This is where we introduce a new market participant called a Market Maker. A Market Maker can be called other names like “Liquidity Provider” or “Broker” that acts like a middleman between buyer and seller.
A Market Maker stands ready to buy or sell from other market participants. In this new scenario with our Market Maker.
- The buyer enters the exchange.
- The Market Maker sells to the buyer and holds into the cash from the buyer.
- A few moments pass and then the Market Maker buys from the seller entering into the exchange.
In this trading environment the Market Maker gets paid a “Spread” which is the difference in price the market maker buys from and sells to. This also has the added effect of dampening the short term price fluctuations of the traded asset a bit like a shock absorber in a car.
Recipe for the perfect Market Making Strategy
Rebates!
Trading rebates make your life immediately easier as a market maker. Rebates are offered to MM from financial exchanges to compensate them for the risks and challenges for operating as a MM.
Eg: if I as a MM had a rebate of 2.5bps and I Bought 10000 USD worth of BTC @ a price of 50,000. I would receive 2.5 USD for just making that trade. I could then sell my 10000 USD buy position @ the same BTC price of 50,000 and receive another 2.5 USD. that’s a total profit of 5 USD for buying and selling 10,000USD worth of BTC at the same price of 50,000 USD
Leverage!
Leverage is what makes you rich. Leverage at financial exchanges can range from 1x upto around 1000x. Leverage supercharges the effect of compounding.
ALPHA “Short term directional Signal”
This is where a lot of time and effort is spent in analysing high frequency data in order to create a quantitative model on which way the price will change, especially in the short term. See these academic papers which I have actually incorporated/translated into C++ code and used in a trading production environment.
Academic Papers
Low Latency “LL Network + LL Code”
This is also where a lot of time and effort is spent.
As a Market Maker, you need to react fast to market changes to stay competitive, therefore your code needs to be competitive.
What is competitive? In 2019 My “hot path” in my C++ trading code had a “tick to trade” latency in the single digit microseconds.
The trading code handled receving market data, processing it into an Alpha signal and sending Limit orders back to the exchange.
You also want to Colocate with the exchange to be as close as possible to the machine engine.
Uninformed Traders
This ingredient is one that you do not have control over. We define an uninformed trader as a market participant as someone who doesn’t care what the price will be in the next +5mins. This makes them uncompetitive in the short term which makes them an excellent source of profit for low latency short term traders.
You may find you have all other ingredients and skills marked off, but if you don’t have the right people to trade with ie: “uninformed traders” you wont make money. This means that no matter how competent you are, you still need to find that place in the market where there is opportunity present.
The right tool for the right job
Hardware
When I was operating at Deribit, to do low latency Market Making you needed a powerful server. This server also needed to be colocated rught next to Deribits servers in London.
The server looks like this.

This was a server I bought from Xenon Systems. it had the appropriate Hardware to pull of low latency trading such a low latency solarflare Network card. The Solarflare card would allow me to do a kernel bypass from the network card to all the way up to Userspace.
Software
Software tells the hardware what to do so the code I ran had to agree with the hardware as best as possible. In my C++ “hot path”/”busy loops”, I used precached memory, structs, reusing primatives and never allocating or deallocating memory during run time, to keep my hot path hot and in the cache of the CPU. This allowed me to keep my “tick to trade” latency in the single digit microseconds.
Creating our alpha signal
Many of us will spend years chasing the question of how to find alpha, and to be clear, I’m not claiming to have all the answers myself. There isn’t a one-size-fits-all answer here, not even close. But there are useful answers to this, and just as many useless ones that will lead you nowhere, or worse, in the wrong direction.
Why do people make money in the market? The simplest answer is that you’re willing to put in the work that others either can’t or won’t do because of some constraint. This is where you’ll discover most of the alpha that’s actually worth pursuing.
One of the firet ways of evaluating if you have a predictive signal is to take a window of data of the last 1 sec and compare this to the future 1seconds price returns of the futures. you take these pairs of values and fit a regression. It also helps to normalise the values between -1 and +1. +1 indicating a large short term upwards movement in the price and vice versa for -1. Example signal below for the binance asset BTCFDUSD.

Trading Results
Here are some early MM results for BTCUSD contract on Deribit Back in the Day.

Summary
The journey as a market maker is far from linear; it’s a cycle of hypothesis, testing, iteration, and refinement. My experience with Deribit taught me the importance of having both robust infrastructure and flexibility in strategy. Market-making is about evolving with the market itself—whether by enhancing alpha signals, minimizing latency, or adapting to new market dynamics. My next steps are focused on scaling the strategy to new assets, exchanges, and potentially leveraging machine learning to further optimize signal generation. Market-making is a relentless pursuit of efficiency and adaptability, and I’m excited to see where this path leads next. Thank you for reading, and I hope my journey sheds some light on the intricate world of low-latency market making.
James
Check out the Jekyll docs for more info on how to get the most out of Jekyll. File all bugs/feature requests at Jekyll’s GitHub repo. If you have questions, you can ask them on Jekyll Talk.