Hello, 

I thank you in advance for your input.    I have an algo that assembles a matrix of puts and calls to determine the best collar to trade.    As I assemble the matrix, I add each option contract and set its price model so I can query the Greeks in the next OnData() cycle as follows:

Adding option contract

                        tempOption = AddOptionContract(optSymbol);
                        tempOption.PriceModel = OptionPriceModels.BlackScholes();       
                        callOptionsList.Add(tempOption);
 

Retrieving Greeks (Delta)

    foreach (var newChain in data.OptionChains)
            {
                var testVol = Securities[newChain.Key.Underlying].VolatilityModel.Volatility;
                Debug("At " + data.Time + ", Symbol,   Bid,  Ask, Last, Open Interest, Volatility, Theoretical Price, Delta, Implied Vol");
                    
                foreach (var thisContract in newChain.Value)
                {
                    Debug("At " + data.Time + ", " + thisContract.Symbol.Value  + ", " + thisContract.BidPrice + ", " +                                                 thisContract.AskPrice + ", "  + thisContract.LastPrice + ", " + 
                    thisContract.OpenInterest + ", "+ testVol + ", " + thisContract.TheoreticalPrice + ", " + thisContract.Greeks.Delta + ", "                      + thisContract.ImpliedVolatility);
               }
            }

Although values are logged for the prices, OpenInterest, and ImpliedVolatility, I get 0's for volatility, theoretical price and delta.

Am I missing something please?

 

 

 

 

Author