Options Models

Pricing

Introduction

Option price models compute the theoretical price of Option contracts, their implied volatility, and their Greek values. Theoretical prices can help you detect undervalued and overvalued contracts, implied volatility can provide you insight into the upcoming volatility of the underlying security, and Greek values can help you hedge your portfolio.

What are Greeks?

Option Greeks measure the exposure of Option price or Option delta to movement of different factors such as the underlying price, time, and volatility. For more information about Greeks, see The Greek Letters.

Set Models

To set the pricing model of an Option, set its PriceModel property.

// In Initialize
var option = AddOption("SPY");
option.PriceModel = OptionPriceModels.CrankNicolsonFD();
# In Initialize
option = self.AddOption("SPY")
option.PriceModel = OptionPriceModels.CrankNicolsonFD()

Supported Models

LEAN supports the following Option price models. QLNet provides the underlying implementation of these models.

ModelAmerican StyleEuropean Style
AdditiveEquiprobabilitiesgreen checkgreen check
BaroneAdesiWhaleygreen check
BinomialCoxRossRubinsteingreen checkgreen check
BinomialJarrowRuddgreen checkgreen check
BinomialJoshigreen checkgreen check
BinomialLeisenReimergreen checkgreen check
BinomialTiangreen checkgreen check
BinomialTrigeorgisgreen checkgreen check
BjerksundStenslandgreen check
BlackScholes
green check
CrankNicolsonFDgreen checkgreen check
Integral
green check

If you set the price model of an Option to a model with an incompatible style, LEAN throws an exception.

Default Behavior

The default Option pricing model is the CurrentPriceOptionPriceModel. This model doesn't compute any greeks and uses the current price for the theoretical price.

Warm Up Models

To enable the price models to calculate the theoretical price of Option contracts, their implied volatility, and their greek values, warm up the volatility model of the underlying asset.

You can also see our Videos. You can also get in touch with us via Discord.

Did you find this page helpful?

Contribute to the documentation: