How do you save RollingWindow of data of multiple securities on 'class Symbol Data'? My objective is to create rolling windows of indicators as well as rolling windows that hold data for multiple securities, and save a reference of this objects on a dictionary. 

Here's what i've managed so far, though not completely accurate.

class DeterminedRedOrangeAnt(QCAlgorithm): def Initialize(self): self.SetStartDate(2015, 12, 1) # Set Start Date self.SetEndDate(2020, 12, 1) self.SetCash(100000) # Set Strategy Cash #EURUSD", "USDJPY", "GBPUSD", "AUDUSD" self.Data = {} for ticker in ["GBPUSD", "EURUSD", "USDJPY", "AUDUSD"]: symbol = self.AddForex(ticker, Resolution.Hour, Market.FXCM).Symbol self.Data[symbol] = SymbolData( self.ADX(symbol, 14, Resolution.Hour), self.RSI(symbol, 14, Resolution.Hour), self.closeWindow) self.SetWarmUp(25, Resolution.Hour) def OnData(self, data): if self.IsWarmingUp: return for symbol, symbolData in self.Data.items(): lbbclose = self.closeWindow[20] lbsclose = self.closeWindow[10] ADX = symbolData.adx.Current.Value RSI = symbolData.rsi.Current.Value # Condition to begin if ADX value is greater than 25 if (not ADX > 25): return if not self.Portfolio[symbol].Invested: current_price = data[symbol].Close if RSI < 50 and current_price < lbbclose and current_price > lbsclose: self.SetHoldings(symbol, 1) self.Log(f"{self.Time} Entered Long Position at {current_price}") if RSI > 50 and current_price > lbbclose and current_price < lbsclose: self.SetHoldings(symbol, -1) self.Log(f"{self.Time} Entered Short Position at {current_price}") class SymbolData: def __init__(self, adx, rsi, closeW): self.adx = adx self.rsi = rsi self.closeW = closeW self.adxWindow = RollingWindow[IndicatorDataPoint](2) #setting the Rolling Window for the fast SMA indicator, takes two values self.adx.Updated += self.AdxUpdated #Updating those two values self.rsiWindow = RollingWindow[IndicatorDataPoint](2) #setting the Rolling Window for the slow SMA indicator, takes two values self.rsi.Updated += self.RsiUpdated #Updating those two values self.closeWindow = RollingWindow[float](21) self.closeW.Updated += self.CloseUpdated def AdxUpdated(self, sender, updated): '''Event holder to update the fast SMA Rolling Window values''' if self.adx.IsReady: self.fastSMAWindow.Add(updated) def RsiUpdated(self, sender, updated): '''Event holder to update the slow SMA Rolling Window values''' if self.rsi.IsReady: self.slowSMAWindow.Add(updated) def CloseUpdated(self, sender, data): '''Event holder to update the close Rolling Window values''' if self.closeW.IsReady: self.closeWindow.Add(data[symbol].Close)

i have not been able to update data on the rolling windows for the multiple securities. 

i would appreciate any and all the help i can get, to get this algorithm running.

Author