I'm a programmer and recent trading enthusiast. To learn more about options I'm building a market maker trading bot. So far it gets market prices and volatility and calculates the Black&Scholes. I figured that if my calculated B&S lies between the current market bid and ask, the bot should be able to find an acceptable price to post to the market. From this point on the bot could simply post a bid slightly higher than the current market bid, and an ask slightly lower than the current market ask. When the other market makers then see that their prices are beaten by a newcomer (me), I would assume them to rally against me for both the bid and the ask, resulting in a decreasing spread.

So I'm now at a point where I would need to program a rule so that my bot can decide when to stop rallying with the other bots. In other words; my bot should be able to decide what spread around the calculated B&S value it would still find acceptable.

As far as I can see in the market, spreads as a percentage of the option value are lower for options that are deep in the money, get larger at the money, and are largest out of the money:

This gives me the idea that there should be some kind of theoretical model, or at least a rule of thumb, to decide on the acceptable spread for the options that my bot is making the market for. I of course understand that it depends on your risk appetite, but I guess it also depends on the transaction costs, hedging possibilities, volatility and market liquidity. So I hope there is some model or guiding principle to tell me what is acceptable.

Does anybody know any theoretical model or rule of thumb to calculate acceptable spreads for options? All tips are welcome!

• You should compare the bid/ask of the options in volatility space, not in price space. Implied volatility provides a more useful basis for comparing options than price. Aug 16, 2017 at 8:17
• @ChrisTaylor - ok, but I don't understand how that can help me determine an appropriate spread in USD? In the end my marketmaker-bot needs to publish a price in USD, so it somehow needs to calculate what spread it finds acceptable. Aug 16, 2017 at 8:57

The prices for strikes ranging from 80 (out of the money) to 120 (in the money), with bids rounded down to the nearest $0.05 and offers rounded up, are Strike | Bid | Ask | Percent -------+--------+--------+-------- 80 | 20.00 | 20.05 | 0.25% 85 | 15.15 | 15.25 | 0.66% 90 | 10.65 | 10.80 | 1.40% 95 | 6.80 | 7.00 | 2.90% 100 | 3.90 | 4.10 | 5.00% 105 | 1.95 | 2.15 | 9.76% 110 | 0.90 | 1.05 | 15.38% 115 | 0.35 | 0.45 | 25.00% 120 | 0.10 | 0.20 | 66.67%  Notice that the percentage spread,$(p_{\rm ask} - p_{\rm bid}) / p_{\rm mid}$, increases as the options get further out of the money, even though the bid-offer spread in volatility space is constant. A partial answer to your question "How can that help me determine an appropriate spread in USD?" is to do all of your modelling of spreads in volatility space, and only convert back to USD when you need to actually submit a quote. Of course, having a constant bid-offer spread in volatility space is unrealistic as well (in general, you will want larger bid-offer spreads on options with more vega and gamma) but it is a much better starting point than working in price space. • Hi Chris. It took me some time to fully comprehend your post, but I must say that it is the reason why I started making this bot; your answer opened my eyes! So a humongous thank you! I have one last question; are there also any rules of thumb for the effect of the "volatility smile"? Why does implied volatility of options far in or far out of the money become higher? Is there any way to calculate that? Aug 30, 2017 at 19:49 I have upvoted Chris Taylor's answer, which has the best approach, particularly for near-the-money strikes. However, for illiquid options and far-out-of-the-money and far-in-the-money strikes, you will often find that bid prices are below intrinsic value, i.e. smaller than even Black-Scholes gives even with$\sigma=0.0$. With no volatility here, it is of course not possible to compute the spread in volatility terms. In these cases, you will generally find that offer prices correspond to insanely high volatilities. There is a minimum tick size to listed options, and even an offer price of a single tick for far-from-the-money options will correspond to$\sigma \gg 200\%$. Thus there are cases where the implied volatilities lose their utility, making a price-based scheme more attractive. When you use a price-based scheme, you can • subtract present intrinsic value$I$from option prices, before computing percentage spreads and divide by offer prices; or more reasonably, • work with absolute rather than percentage spreads In your example above, you have respectively • an underlying value$S$of about 98, so you would compute your percentage spreads as 100% at the top and 66% at the bottom; and • absolute spreads ranging from 0.50 at the top to 0.10 at the bottom. For american exercise options intrinsic value is simply$(S-K)^+$while for european exercise it is$e^{-rT}(F-K)^+$. Here$(x)^+$is defined as$\max(x,0)$for calls and$\max(-x,0)$for puts. One final note: for far-in-the-money options you should pay very close attention to funding rate$r\$, because that's the most important driver of option value.
• Thanks for your addition. About your last remark: for far-in-the-money options you should pay very close attention to funding rate rr, because that's the most important driver of option value. Do you mean that to hedge a far-in-the-money option the money maker (me) needs a lot of money to hedge the position by buying a large chunk of the underlying? Or is there another reason why the funding rate r is important? Aug 16, 2017 at 16:29