Market making often requires placing and canceling a lot of orders. You have to buy and sell nearly simultaneously, so you need to move orders pretty often to beat other traders. But I would like to optimize my strategy, minimizing the number of orders placed while maximizing the total volume of deals. Otherwise I will pay for each unmatched order. Are there any well-known optimizations? I've invented several optimizations myself. For example, one technique is to ignore orders with volume less than certain amount. But I'm sure there are a lot of optimization techniques already invented by someone else and I just need to find them.
I don't know if you can really improve, the point of Market Making is that you don't know when you'll be executed.
It also depends a lot on the type of product you're trading, it's not the same business Market Making far from the money options (where you will never be executed but just offer a reference price and answer traders phone calls) and MM on Bonds/ETF/Futures....
You could : - Stop moving price if price moves too often without actual trades - Move the price only when the Mid moves significantly (refer to the Bid Price if you want to specify an Ask price) - Move the price only if a certain amount (say more than 1000 lots) is better priced than you
There is no magic, either you filter market moves and get less executions or you prefer making trade volume and lose margin by cancelled orders or prices too close to the mid. The closer you want to be to the mid the less margin you will have.
It sounds like you're trying to filter your input event stream so as to reduce noise. By reducing noise you'll reduce the number of cancel/replace's you're doing and, hopefully, have a better order-to-fill ratio.
I would investigate algorithms from control theory, in particular dynamic linear models like Kalman. The problem with denoising is you want to do it without introducing an arbitrary lag in your input event stream.
In dealing with order book events you might want to consider how long an order has been present at a given level. This might carry with it an information advantage if that order was subsequently canceled.
In calculating fair price consider how you might dampen the movement of your perceived fair value by adding some stable dampening series.
Actually depends on the kind of market you are trying to make, if you are a authorized MM some markets/exchanges have special structure for market makers so they don't really pay for every quote that they send to the system, instead they pay a fixed amount of fee to have certain rights and responsibilities for a particular bin(set of instruments) of the market.
You can avoid cancel/replace using pegged orders. Depending on your model that could be very useful.