I have been toying with options strategies lately, and quickly discovered a flaw in the IV computation that strongly limit their applicability:

While the Dividend Yield and Risk Free Rate estimation classes exist:

private static IQLUnderlyingVolatilityEstimator _underlyingVolEstimator = new ConstantQLUnderlyingVolatilityEstimator();
private static IQLRiskFreeRateEstimator _riskFreeRateEstimator = new ConstantQLRiskFreeRateEstimator();
private static IQLDividendYieldEstimator _dividendYieldEstimator = new ConstantQLDividendYieldEstimator();

They really don't estimate much at all, returning 0 always, meaning any attempt at using of the cruital IV is made completely irrelevant.

In the following forum post, it is mentioned these factors can be edited by "duplicating the function and use custom estimators", which I assume would only be possible offline with personal data. Am I correct in this assumption? Is there a way to get this to work as is online?


 If this is not possible, could someone help me brainstorm a solution? 

I am currently considering using the quantlib to solve for IV instead (which I guess is what is being used under the hood for quantconnect too, but at least I will be able to set paramaters as needed), which according to the documentation demands the Risk Free Rate and Div Yield for the computation.

Discussions on Risk Free Rate are plentiful, and it seems that using the Alternative US Treasury Data cached by Quantconnect is the way to go.

For dividend yield, I am currently toying with two ideas:

As this is for index (SPX) options, either compute the dividend yield using a futures contract, or more simply, the put call parity of ATM options as explained here:


Looking forward to hearing ideas, suggestions and comments.