I'm developing a deep reinforcement learning based approach to market-making. In order to implement this, I need to define the appropriate actions and define environmental steps. While doing some literature research, I've encountered various market-making formulations.

For example, Avellaneda and Stoikov seem to be using the following approach:

  • At time $0$, determine and set the quotes $\delta^a$ and $\delta^b$
  • During the interval $[0, \Delta t]$ either both quotes get executed (in which case the spread is captured and inventory doesn't change) or only one quote gets executed (in which case no spread is captured the stock is bought/sold and the inventory increases/decreases) or no quote gets executed (in which case nothing happens). But no matter what happens we do not change the quotes while in this interval.
  • At time $\Delta t $, determine and set the new quotes $\delta^a{'}$ and $\delta^b{'}$
  • The process is iterated until some terminal time $T$

It is interesting to note that, according to this formulation, if say the bid quote gets executed at $\frac{\Delta t}{5}$ and the ask quote at $\frac{2\Delta t}{5}$, the market maker is simply waiting from $\frac{2\Delta t}{5}$ to $\Delta t$ to set new quotes.

On the contrary, Fushimi, Rojas and Herman seem to be employing a somewhat different, more sophisticated approach given by the pseudocode below. enter image description here

Naturally, there are other more sophisticated formulations as well. Some of them include canceling the second order as soon as the first one gets executed. Due to its simplicity, I prefer the first (Avellaneda-Stoikov) approach. However, it does seem somewhat simplistic and naive, and I'm not even sure if it is even used in practice. So my question is the following: is the first approach good and realistic enough or should I opt for some alternative?


1 Answer 1


First of all, there is a more general version of Avellaneda-Stoikov here: Guéant, Olivier, C-A L., and Joaquin Fernandez-Tapia. "Dealing with the inventory risk: a solution to the market making problem" Mathematics and financial economics 7 (2013): 477-507.

But for Reinforcement Learning, I suggest to have a look at the examples of Mounjid, Othmane, and C-A L. "Improving reinforcement learning algorithms: towards optimal learning rate policies" Mathematical Finance (2019), that is about optimal order placement.

It is based on this paper that analyses in detail the optimal placement of one order: C-A L., and Othmane Mounjid. "Limit order strategic placement with adverse selection risk and the role of latency" Market Microstructure and Liquidity 3, no. 01 (2017).

This last paper the mechanism is the following:

  • consider an order of size $q$ in the orderbook: on its queue it has $Q^{bef}$ orders before it and $Q^{aft}$ after it
  • and it has a quantity $Q^{opp}$ on the opposite queue.

To be clear: if I buy my queue is the (best) bid and the opposite queue the (best) ask. The possible actions are

  • stay and wait (if you think you will be consumed soon)
  • cancel and go away (if you think the price is coming fast in your direction)
  • convert your order in a market order (if you think the price will soon go away).

If you believe in the predicting power of the imbalance, you know that the three possible actions are indeed driven by the imbalance of the book. Hence there should be 2 thresholds, that can be read on the imbalance, that will switch your actions.

(going further than the paper) If you have more predictors, it is more or less the same story, but in higher dimension: they are connected regions in the effective space of the predictors corresponding to the optimal action.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.