Dividend Yield

Key Concepts

Introduction

Dividends are periodic payments a company makes to its shareholders out of its earnings. The dividend yield refers to the rate of return an investor earns in the form of dividends from holding a stock.

In the context of Option pricing models, the dividend yield is a critical factor because it affects the value of the underlying stock. When calculating the theoretical price of an Option using these models, the dividend yield is factored into the equation.

Set Models

To set the dividend yield model for an Option indicator, pass a DividendYieldProvider as the dividendYieldModeldividend_yield_model parameter.

// Before creating the indicator, create the set dividend yield model
var dividendYieldModel = new DividendYieldProvider(symbol.Underlying);
_iv = new ImpliedVolatility(symbol, RiskFreeInterestRateModel, dividendYieldModel, OptionPricingModelType.BlackScholes);
# Before creating the indicator, create the set dividend yield model
dividend_yield_model = DividendYieldProvider(symbol.underlying)
self.iv = ImpliedVolatility(symbol, self.risk_free_interest_rate_model, dividend_yield_model, OptionPricingModelType.BLACK_SCHOLES)

To view all the pre-built dividend yield models, see Supported Models.

Default Behavior

For US Equity Options, the default dividend yield model is the DividendYieldProvider, which provides the continuous yield calculated from all dividend payoffs from the underlying Equity over the previous 350 days.

For other Option types, the default dividend yield model is the DividendYieldProvider, but it calculates the yield from the dividends of the SPY ETF.

Model Structure

Dividend yield models must extend the IDividendYieldModel interface. Extensions of the IDividendYieldModel interface must implement a GetDividendYieldget_dividend_yield method. The GetDividendYieldget_dividend_yield method returns the dividend yield for a given date.

// Before creating the indicator, create the dividend yield model
var dividendYieldModel = new MyDividendYieldModel();
_iv = new ImpliedVolatility(symbol, RiskFreeInterestRateModel, dividendYieldModel, OptionPricingModelType.BlackScholes);

// Define the custom dividend yield model
public class MyDividendYieldModel : IDividendYieldModel 
{
    public decimal GetDividendYield(DateTime date) 
    {
        return 0.02m;
    }
}
# Before creating the indicator, create the dividend yield model
dividend_yield_model = MyDividendYieldModel()
self.iv = ImpliedVolatility(symbol, self.risk_free_interest_rate_model, dividend_yield_model, OptionPricingModelType.BLACK_SCHOLES)
    
# Define the custom dividend yield model
class MyDividendYieldModel:
    def get_dividend_yield(self, date: datetime) -> float:
        return 0.02

For a full example algorithm, see this backtestthis backtest.

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: