# Compute stock price probability distribution from option data (IB method & negative probabilities issue)

I'm using a procedure as described in the interactive brokers article here (https://www.interactivebrokers.com/en/index.php?f=5910&ns=T) to compute a probability distribution from option (call) prices.

In essence you solve a very simple system of two linear equations at each strike.

The issue is I get negative probabilities coming out of it.

I'm looking for a simple and robust procedure to do this estimation. Thoughts?

• you could use breeden litzenberger. Any specific reason why you would not want to use breeden litzenberger ?math5021.weebly.com/uploads/3/6/3/0/3630523/… – mbison Dec 28 '15 at 20:53
• I tried -- I get wildly fluctuating values including negative values that look nothing like a PD. Any help? code nstrikes = nrow(x.calls) x.pd <- rep(0, nstrikes) for (i in 2:(nstrikes-1)) { call.cur <- x.calls$mid[i] call.prev <- x.calls$mid[i-1] call.next <- x.calls$mid[i+1] call.h <- ((x.calls$strike[i] - x.calls$strike[i-1]) + (x.calls$strike[i+1] - x.calls\$strike[i])) / 2 butterfly.val <- (call.next - 2 * call.cur + call.prev) / call.h x.pd[i] <- butterfly.val }  – nxstock-trader Dec 29 '15 at 23:22
• It could be that you get negative probabilities because of the values for the mid. If the spread is very wide, and 1 bid (or 1 offer moves). Then that can change the mid a lot. – mbison Dec 30 '15 at 10:27