Overall Statistics |
Total Trades 0 Average Win 0% Average Loss 0% Compounding Annual Return 0% Drawdown 0% Expectancy 0 Net Profit 0% Sharpe Ratio 0 Probabilistic Sharpe Ratio 0% Loss Rate 0% Win Rate 0% Profit-Loss Ratio 0 Alpha 0 Beta 0 Annual Standard Deviation 0 Annual Variance 0 Information Ratio 0.471 Tracking Error 0.177 Treynor Ratio 0 Total Fees $0.00 |
class FilterByOptions(QCAlgorithm): def Initialize(self): self.SetStartDate(2020, 10, 2) # Set Start Date self.SetEndDate(2020, 11, 2) # Set Start Date self.SetCash(100000) # Set Strategy Cash self.UniverseSettings.Resolution = Resolution.Daily self.AddUniverse(self.CoarseSelection) self.lastMonth = -1 def CoarseSelection(self, coarse): if self.lastMonth == self.Time.month: return Universe.Unchanged sortedByDollarVolume = sorted(coarse, key=lambda x: x.DollarVolume, reverse=False) return [x.Symbol for x in sortedByDollarVolume if x.HasFundamentalData and x.Price > 20.0][:2000] def OnData(self, data): if self.lastMonth == self.Time.month: return self.lastMonth = self.Time.month filteredByHasOptions = [x.Symbol for x in self.ActiveSecurities.Values if self.HasOptions(data, x.Symbol)] self.Log("{} of {} securities have options".format(len(filteredByHasOptions), len(list(self.ActiveSecurities.Values)))) self.Log(str([sym.Value for sym in filteredByHasOptions])) def HasOptions(self, data, symbol): options = self.OptionChainProvider.GetOptionContractList(symbol, data.Time) return len(options) > 0