Currently I am designing a little market making bot for forex trading, that puts offers around the mid price. In the market I am trading it happens the order book becomes so thin that the mid price jumps up or down by quite a bit (say 30%) when one big order hits the order book. Just have a look at this chart around Dec 25th

These events always last just for around 30-60 seconds until the order books recover and the mid price becomes stable again.

My market making bot updates its offers in 12-15 second intervals. Now my question is how to deal effectively with these "outliers"?

My first idea was to measure the volatility before the bot updates its offers. And when the volatility is to high the bot just deletes the offers and waits until the volatility falls below a certain threshold again.

My second approach is to sample the price in say 10 second intervals and put these prices in a EWMA model. Then before updating the price I check the relative distance of the current price from the moving average.

What would be the most sensible approach to stop the bot from suffering from these outliers of the mid price.

  • $\begingroup$ It's unlikely anybody can answer this question. I suggest you run your bot on historical data and see how it would have performed with the various signals. $\endgroup$
    – msitt
    Commented May 15, 2017 at 14:29
  • $\begingroup$ Yes this is what I usually do, but I thought maybe the experts here can tell me what is normally done in a situation like that. Do both of these attempts look sensible to you at least ? $\endgroup$
    – flxh
    Commented May 15, 2017 at 14:53
  • $\begingroup$ If these events keep occurring, they are not outliers. Both of your ideas operate on a lagging basis. They are never going to "get out of the way" in time. A sensible approach would be to educate yourself in a trading subject called tape reading and go from there. $\endgroup$
    – amdopt
    Commented May 15, 2017 at 15:14
  • $\begingroup$ Yes you are right, both approaches do not fix the root of the problem. I know the actual problem is the modeling of my mid price. A couple of months ago I asked in the Q&A what would be a sensible way to model the mid price in my scenario and what they recommended was this: quant.stackexchange.com/questions/27680/… This is what I use to model my mid price. So is there any better way to model my price in my example? $\endgroup$
    – flxh
    Commented May 15, 2017 at 15:54
  • $\begingroup$ The answer provided in that question is suggesting using a weighting system based on the market depth of both sides of the book to determine a hypothetical mid-point based on a market order of an arbitrary size arriving. I don't see how that is helpful. It does not address the rate at which market orders are arriving or the rate at which other market makers will be changing their order size based on that arrival. Arrival rate is written about in the paper you cited in your own post and would also be covered thoroughly if you took my original suggestion and educated yourself on tape reading. $\endgroup$
    – amdopt
    Commented May 15, 2017 at 20:36


Your Answer

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

Browse other questions tagged or ask your own question.