Assume a scalper/market maker who is operating on an exchange with $N$ stocks with different characteristics such as current market value, average bid-ask spread, average daily volume and historical volatility.

Due to constraints imposed on this market maker he can only engage in $n$ of the $N$ stocks on the exchange, where $n << N$ ($n$ is much smaller than $N$).

Thus the market maker needs to choose which $n$ stocks to engage in. Obviously he wants to choose those $n$ stocks so that he maximizes his risk reward ratio.

What procedure/algorithm should the market maker follow to choose which stocks to make a market in? What trade-offs does he face in his choice?

  • $\begingroup$ Do you means stocks? Asking which shares to provide liquidity for doesn't make any sense. $\endgroup$ May 19, 2011 at 16:22
  • $\begingroup$ chris: Yes, "shares" should have been "stocks". Thanks for notifying I've now s/share/stock/g. English is not my native language :-) $\endgroup$
    – knorv
    May 19, 2011 at 17:39
  • $\begingroup$ Did you just upvote 12 of my earlier answers? We've had issues with vote stuffing before. This can cause problems, so don't do that again. $\endgroup$ May 19, 2011 at 22:59
  • $\begingroup$ chris: Yes, I upvoted answers that I felt demonstrated real world hft/quant experience, and most of your answers certainly do. Sorry didn't know that multi-upvoting was discouraged. Won't do that again. $\endgroup$
    – knorv
    May 20, 2011 at 8:08

2 Answers 2


All things being equal, stocks with the highest bid-ask spread present the greatest opportunity for the market maker

The size of the opportunity (i.e. revenue expectation) can be represented as Volume * Bid-Ask Spread. Your algorithm should rank-order that revenue expectation

Stocks with high current market values will tend to have narrower spreads and be more liquid (i.e. smaller bid-ask per transaction), more competition from other market makers, but also more volume. So there is a trade-off in volume vs. spread in current market value. However, all of this should be captured in the "Bid-Ask * Volume" formula anyway so I don't think that variable is necessary

Historical volatility will tend to increase the bid-ask spread (i.e. increase the compensation to the market maker). The market-maker is compensated for providing liquidity and holding inventory in a dynamic market (Trade-off #2). Again, this would already be factored into the bid-ask spread so you can ignore this variable as well

  • 5
    $\begingroup$ You can have another indicator for the competition from other market makers. The ratio of volume / quote size is a nice start. After you start trading, your real % market share and analysis of pnl will be much better indicators. Occasionally, in HFT arms race, your % market share can dramatically drop after a major competitor upgrade their system. There are also more and more HFT market 'takers' now. Analyzing your pnl to understand how many $h!t you pick up (your limit order not fast enough to run away) can tell you more story between you and your taker competitors. $\endgroup$
    – 楊祝昇
    Oct 21, 2011 at 17:12
  • 1
    $\begingroup$ Good point. Excellent contributions to the site by the way! $\endgroup$ Oct 21, 2011 at 17:24

I don't know about an algorithm, but you probably want to pick the stocks that have the most ways to hedge, or the ones with the least idiosyncratic risk.

  • 1
    $\begingroup$ Why? Please elaborate :-) $\endgroup$
    – knorv
    May 19, 2011 at 18:01
  • 2
    $\begingroup$ Suppose you're lifted on an offer in SPY. You can lay off your risk by buying, S&P futures, e-mini S&P futures, options on SPY, options on ES, options on SPX, a basket of stocks, another index ETF (e.g. DIA) or futures/options on it, etc. Suppose instead that you were lifted on an offer for a small-cap start-up company with relatively few similar competitors and no liquid derivatives. You don't have anywhere to lay-off risk, or liquidate if things go wrong. $\endgroup$
    – user508
    May 19, 2011 at 18:57

This site is temporarily in read-only mode and not accepting new answers.

Not the answer you're looking for? Browse other questions tagged .