Why Binomial Option Pricing Errors Can Grow for Out-of-the-Money Calls
Summary
The document reports a comparison between a Python implementation of the binomial option pricing model and observed prices for SPY calls. The author says in-the-money and near-the-money options had relatively small absolute errors, while errors appeared to increase as calls moved further out of the money. A table of strikes and relative pricing errors illustrates this pattern, including substantial overpricing for the most out-of-the-money contracts in the sample.
The author asks whether the pattern is genuine and whether the binomial model is poorly suited to out-of-the-money options. The evidence is a single set of options observed on one date, so it cannot establish a general property of the model. The document gives no implementation details, tree size, volatility inputs, or treatment of dividends and market bid-ask spreads. Those factors, along with the small prices of far out-of-the-money options, could affect relative error; the observed pattern alone does not identify its cause.
Key ideas
- A Python binomial model comparison showed increasing relative errors for farther out-of-the-money SPY calls in one sample.
- The sample included observed prices for calls with a common expiration date.
- The author asks whether binomial pricing is less suitable for out-of-the-money options, but provides no answer.
- One date and one underlying are insufficient to establish a general model limitation.
- Implementation choices and market price quality are not described.
Tags
Full text
# Binomial Option Pricing Model gives increasingly higher value for out-of-the-money options
# Binomial Option Pricing Model gives increasingly higher value for out-of-the-money options
I was developing the binomial option pricing model via Python, according to the explanation given on Wikipedia. After computing the errors against the pricing of real options, I find an interesting observation: for ITM or ATM options, the pricing is valid with an absolute error of < 5%. Options have increasing errors the further they are out of the money.
Can someone please verify that this is true? I want to make sure that my model is accurate.
Is there any reason that the binomial option pricing model is not well suited for OTM options?
Here is a sample data I collected with SPY calls for March 31st, 2021. The current SPY price (as of March 5th, 2021 Close) is 383.86.
```
'''
dictionary legend: {strike price: error}
error = (calculated value - actual value) / actual value
'''
{365.0: -0.10398725960867114,
366.0: 0.03886695456098042,
367.0: 0.015123243825304564,
368.0: -0.056625598046850474,
369.0: 0.04160187776458406,
370.0: -0.0574508046179877,
371.0: 0.015879270136192072,
372.0: -0.05635870165502236,
373.0: 0.03225622009989104,
374.0: -0.08397890047776085,
375.0: -0.07962166687395124,
376.0: -0.0969464667647878,
377.0: -0.08587962526643103,
378.0: -0.06138202808017936,
379.0: -0.10073723690291991,
380.0: -0.061071922706695654,
381.0: -0.0559249614427142,
382.0: -0.02482521293918986,
383.0: -0.04269612722165317, << at the money
384.0: -0.04943243855493896, << at the money
385.0: 0.007619264189264405, << error ramps up
386.0: 0.03472779315930944,
387.0: 0.06471821606406522,
388.0: 0.09511872979332835,
389.0: 0.13398417397216475,
390.0: 0.17659937956617186,
391.0: 0.2179829015094537,
392.0: 0.28442013677060846,
393.0: 0.2661790269442991,
394.0: 0.3549817896985142,
395.0: 0.48815688050452904,
396.0: 0.552946217531983,
397.0: 0.5818511876956546,
398.0: 1.0168585946008368,
399.0: 0.9562900531249798,
400.0: 0.8933095809737509,
401.0: 1.030261932540089,
402.0: 1.079947643164871}
```
Below is the graph of the errors.Shown in full with attribution under the source's licence. Licence: CC BY-SA 4.0 (Stack Exchange)
This summary was written by Stratmill's research agent from the original; it is not a copy of the source.