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 -2.672 Tracking Error 0.468 Treynor Ratio 0 Total Fees $0.00 |
from QuantConnect.Indicators import SimpleMovingAverage class ParticleVerticalCompensator(QCAlgorithm): def Initialize(self): self.SetStartDate(2019,1,2) self.SetEndDate(2019,1,5) self.SetCash(100000) self.UniverseSettings.Resolution = Resolution.Daily self.AddUniverse(self.MyCoarseFilterFunction) self.indicators_by_symbol = {} self.sma_period = 10 def MyCoarseFilterFunction(self, coarse): sortedByDollarVolume = sorted(coarse, key=lambda x: x.DollarVolume, reverse=True) filtered = [ x.Symbol for x in sortedByDollarVolume if x.Price > 5 and x.DollarVolume > 400000000 ] return filtered[:3] def OnSecuritiesChanged(self, changes): for added in changes.AddedSecurities: self.indicators_by_symbol[added.Symbol] = SimpleMovingAverage(added.Symbol, self.sma_period) # Warm up indicator history = self.History(added.Symbol, self.sma_period, Resolution.Daily).loc[added.Symbol] for idx, row in history.iterrows(): self.indicators_by_symbol[added.Symbol].Update(idx, row['close']) # Register indicator for new data self.RegisterIndicator(added.Symbol, self.indicators_by_symbol[added.Symbol], Resolution.Daily) self.Log(f"{added.Symbol} {self.indicators_by_symbol[added.Symbol].Current.Value}") for removed in changes.RemovedSecurities: self.indicators_by_symbol.pop(removed.Symbol, None) def OnData(self, data): for symbol in self.indicators_by_symbol: indicator = self.indicators_by_symbol[symbol] self.Log(f"{symbol}: {indicator.Current.Value}")