| 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 Tracking Error 0 Treynor Ratio 0 Total Fees $0.00 |
class DataNormalizationModeProblem(QCAlgorithm):
def Initialize(self):
self.SetStartDate(2019, 1, 1)
self.SetEndDate(2019, 2, 1)
self.SetCash(25_000)
self.UniverseSettings.DataNormalizationMode = DataNormalizationMode.Raw
self.AddUniverse(self.UpdateEquityUniverse)
self.equityUniverse = set()
self.Schedule.On(self.DateRules.EveryDay(), self.TimeRules.At(9,35,0), self.UpdateOptionUniverse)
self.optionUniverse = dict()
def UpdateEquityUniverse(self, coarse):
coarse = [x for x in coarse if x.DollarVolume > 10_000_000]
coarse = sorted(coarse, key=lambda x: x.DollarVolume, reverse=True)[:6]
self.equityUniverse = {x.Symbol for x in coarse}
return [x.Symbol for x in coarse]
def UpdateOptionUniverse(self):
underlyingsAdded = self.equityUniverse - self.optionUniverse.keys()
underlyingsRemoved = self.optionUniverse.keys() - self.equityUniverse
for underlying in underlyingsAdded:
options = [x for x in self.OptionChainProvider.GetOptionContractList(underlying, self.Time)][:20]
for option in options:
self.AddOptionContract(option, Resolution.Minute)
self.optionUniverse[underlying] = options
for underlying in underlyingsRemoved:
for option in self.optionUniverse.pop(underlying):
self.RemoveSecurity(option)
def OnData(self, data):
pass
def OnEndOfDay(self):
equities = [x.Symbol for x in self.ActiveSecurities.Values if x.Type == SecurityType.Equity]
options = [x.Symbol for x in self.ActiveSecurities.Values if x.Type == SecurityType.Option]
self.Debug(f"{self.Time} >> OnEndOfDay: #Equities:{len(equities)} #Options:{len(options)}")