public override void Initialize() { SetStartDate(2020, 1, 5); SetEndDate(2020, 6, 30); _es19m20 = AddFutureContract( QuantConnect.Symbol.CreateFuture( Futures.Indices.SP500EMini, Market.CME, new DateTime(2020, 6, 19)), Resolution.Minute).Symbol; // Select a future option expiring ITM, and adds it to the algorithm. _esOption = AddFutureOptionContract(OptionChainProvider.GetOptionContractList(_es19m20, new DateTime(2020, 1, 5)) .Where(x => x.ID.StrikePrice <= 3200m && x.ID.OptionRight == OptionRight.Call) .OrderByDescending(x => x.ID.StrikePrice) .Take(1) .Single(), Resolution.Minute); _esOption.PriceModel = OptionPriceModels.BjerksundStensland(); _expectedOptionContract = QuantConnect.Symbol.CreateOption(_es19m20, Market.CME, OptionStyle.American, OptionRight.Call, 3200m, new DateTime(2020, 6, 19)); if (_esOption.Symbol != _expectedOptionContract) { throw new Exception($"Contract {_expectedOptionContract} was not found in the chain"); } }
public override void Initialize() { SetStartDate(2020, 1, 5); SetEndDate(2020, 6, 30); _es19m20 = AddFutureContract( QuantConnect.Symbol.CreateFuture( Futures.Indices.SP500EMini, Market.CME, new DateTime(2020, 6, 19)), Resolution.Minute); // We must set the volatility model on the underlying, since the defaults are // too strict to calculate greeks with when we only have data for a single day _es19m20.VolatilityModel = new StandardDeviationOfReturnsVolatilityModel( 60, Resolution.Minute, TimeSpan.FromMinutes(1)); // Select a future option expiring ITM, and adds it to the algorithm. _esOption = AddFutureOptionContract(OptionChainProvider.GetOptionContractList(_es19m20.Symbol, new DateTime(2020, 1, 5)) .Where(x => x.ID.StrikePrice <= 3200m && x.ID.OptionRight == OptionRight.Call) .OrderByDescending(x => x.ID.StrikePrice) .Take(1) .Single(), Resolution.Minute); _esOption.PriceModel = OptionPriceModels.BjerksundStensland(); _expectedOptionContract = QuantConnect.Symbol.CreateOption(_es19m20.Symbol, Market.CME, OptionStyle.American, OptionRight.Call, 3200m, new DateTime(2020, 6, 19)); if (_esOption.Symbol != _expectedOptionContract) { throw new Exception($"Contract {_expectedOptionContract} was not found in the chain"); } }
public override void Initialize() { SetStartDate(2020, 1, 5); SetEndDate(2020, 6, 30); // We add AAPL as a temporary workaround for https://github.com/QuantConnect/Lean/issues/4872 // which causes delisting events to never be processed, thus leading to options that might never // be exercised until the next data point arrives. AddEquity("AAPL", Resolution.Daily); _es19m20 = AddFutureContract( QuantConnect.Symbol.CreateFuture( Futures.Indices.SP500EMini, Market.CME, new DateTime(2020, 6, 19)), Resolution.Minute).Symbol; // Select a future option expiring ITM, and adds it to the algorithm. _esOption = AddFutureOptionContract(OptionChainProvider.GetOptionContractList(_es19m20, new DateTime(2020, 1, 5)) .Where(x => x.ID.StrikePrice <= 3200m && x.ID.OptionRight == OptionRight.Call) .OrderByDescending(x => x.ID.StrikePrice) .Take(1) .Single(), Resolution.Minute); _esOption.PriceModel = OptionPriceModels.BjerksundStensland(); _expectedOptionContract = QuantConnect.Symbol.CreateOption(_es19m20, Market.CME, OptionStyle.American, OptionRight.Call, 3200m, new DateTime(2020, 6, 19)); if (_esOption.Symbol != _expectedOptionContract) { throw new Exception($"Contract {_expectedOptionContract} was not found in the chain"); } }
public override void Initialize() { SetStartDate(2021, 1, 4); SetEndDate(2021, 1, 31); _spx = AddIndex("SPX", Resolution.Minute).Symbol; // Select an index option expiring ITM, and adds it to the algorithm. _spxOption = AddIndexOptionContract(OptionChainProvider.GetOptionContractList(_spx, Time) .Where(x => x.ID.StrikePrice <= 3200m && x.ID.OptionRight == OptionRight.Call && x.ID.Date.Year == 2021 && x.ID.Date.Month == 1) .OrderByDescending(x => x.ID.StrikePrice) .Take(1) .Single(), Resolution.Minute); _spxOption.PriceModel = OptionPriceModels.BjerksundStensland(); _expectedOptionContract = QuantConnect.Symbol.CreateOption(_spx, Market.USA, OptionStyle.European, OptionRight.Call, 3200m, new DateTime(2021, 1, 15)); if (_spxOption.Symbol != _expectedOptionContract) { throw new Exception($"Contract {_expectedOptionContract} was not found in the chain"); } }