a market-making project you can do today

market making exercise

I tweeted something the other day that I want to expand on because it’s one of those ideas that’s simple on the surface but points to an exercise that would teach viscerally market-making.

https://x.com/KrisAbdelmessih/status/2035025124102217780

 

Polymarket has a contract “Will crude oil settle above $90?” It was priced around 73 cents. That’s an implied probability. We also know that the value of a tight call spread around the $90 strike represents a tradeable probability.

💡See deeper understanding of vertical spreads

If you price a 89.5/90.5 call spread in Black-Scholes at 90 IV with a month to expiry, you get a “fair” probability that CL settles above $90. That number moves smoothly as the futures price moves. Technically, it has sensitivity to implied volatility (aka vega) and time to expiry BUT the vega of the spread is negligible and the time to expiry component is mirrored in the poly contract too. Both the contract and the spread are driven by what’s the chance of oil being above or below $90 at expiry with no consideration of how far above or below $90 we are which is more of a volatility question.

The Poly contract tracks the same fundamental question but if it around due to sentiment and order flow faster than what a basic random walk option model places the probability at you have a tradable idea.

You can measure how much it bounces relative to the underlying by computing its implied delta (how many probability points it moves per $1 in CL) and comparing that to the call spread delta.

If the Poly delta is steeper than the call spread delta, the market is overpricing per-dollar sensitivity. You’d sell the Poly contract and hedge with futures (or the call spread). If it’s cheaper, you buy it.

[How you actually manage the risk is part of the market-making lesson. The tradeoff between risk reduction and hedging costs become palpable.]

I do believe this simple example of “market-making around a fair value” is an incredibly powerful way to take the mystery out of what market-making is. It makes it very obvious that the business of market-making has nothing to do with prediction. I vibed a little sim that shows this in action.

The heartbeat chart on the left shows Poly odds bouncing around the call spread fair value as oil moves, and the scatter on the right plots both against the oil price, where the slope of the regression line is the delta. You can see the Poly line is steeper (by my construction). The difference in slopes creates the market-making opportunity. In this case Poly flows overreact to the futures prices.

If you want to build this with live data, you could use the Poly API and a feed for the futures price. I’ll argue that you don’t need a live feed of the call spread market.

Why?

You can just look up the implied vol for a strike near $90 from settlements that correspond to the Poly expiration and reprice the spread analytically as S moves. 2 of the four BSM inputs (T, K) are quasi-static, a third (implied vol) has little impact because it’s canceled out by the spread of long one option and short the other. Just track S in real time and recompute.

I’ve never built a market-making bot so I can’t speak to the execution side, but even building such a monitor would go a long way to teaching you about pricing, delta, and risk. All from one contract on Polymarket, a futures price and the Black-Scholes formula.


Are Traders on Kalshi Being Profiled? 9 min read

Andrew’s fantastic post uses a simple taxonomy to classify participants on an exchange:

  • squares (uninformed)
  • sharps (informed)
  • dealers (liquidity providers)

Using Kalshi and Poly’s market design choices, he makes the broader point that exchange rules are dials that shift the balance of power among these three groups.

Anonymity and fee structure influence who shows up, who gets picked off, and how efficiently prices incorporate information. Anyone who has dealt with the labyrinth of option exchange fee, allocation, order book priority, and crossing rules will nod along.

Of special note is Andrew’s warning to those trying to “copy-trade” perceived sharps.

Sharp traders could respond to this by fragmenting their trading across multiple accounts. They may have an account that has negative PNL on a certain market type. This account is unlikely to be copy-traded. When building a position, they would prefer to use this relatively anonymous account, rather than suffer the price impact of having their trades copied before they’ve built their position. If copy-traders are too aggressive following the sharp account, this creates an incentive to build the position on the anonymous account, and then trade in the followed account, generating further price impact and increasing profits. Is this manipulation or simply smart situational awareness of the impact of your trades? If the intent was to buy a large position anonymously, then buy on the main account to trigger copy-trading, and then sell at higher prices to those copy-traders in a third account….. that sounds like the kind of thing you eventually read about in an enforcement action, at least if it happened on a regulated market.

I would be cautious about using simple copy-trading strategies. The lesson is not to ignore all counterparty information, but to recognize that sophisticated traders are aware of it and can adapt.