Hi,

Was trying to add multiple symbols to the algo,but got an error message '

During the algorithm initialization, the following exception has occurred: Trying to dynamically access a method that does not exist throws a TypeError exception. To prevent the exception, ensure each parameter type matches those required by the EMA method. Please checkout the API documentation. at Initialize in main.py:line 38 TypeError : No method matches given arguments for EMA'Hoping someone could highlight what I did wrong because Im quite new in Python and programming.Thank you,class MovingAverageCrossAlgorithm(QCAlgorithm): def Initialize(self): '''Initialise the data and resolution required, as well as the cash and start-end dates for your algorithm. All algorithms must initialized.''' self.SetStartDate(2014, 1, 1) #Set Start Date self.SetEndDate(2016, 1, 1) #Set End Date self.SetCash(100000) #Set Strategy Cash # Find more symbols here: http://quantconnect.com/data # initialize our forex data ForexSymbols =["EURUSD", "USDJPY", "EURGBP", "EURCHF", "USDCAD", "USDCHF", "AUDUSD","NZDUSD"] # initialize our forex data for symbol in ForexSymbols: forex = self.AddForex(symbol) # create a 15 day exponential moving average self.fast = self.EMA((forex), 3, Resolution.Minute) # create a 30 day exponential moving average self.slow = self.EMA((forex), 7, Resolution.Minute) self.rsi = self.RSI((forex), 7,MovingAverageType.Simple, Resolution.Minute) self.atr = self.ATR((forex), 5, MovingAverageType.Simple, Resolution.Minute) self.atr2 = self.ATR((forex), 12, MovingAverageType.Simple, Resolution.Minute) self.SetWarmUp(10, Resolution.Minute) self.previous = None def OnData(self, data): '''OnData event is the primary entry point for your algorithm. Each new data point will be pumped in here.''' # a couple things to notice in this method: # 1. We never need to 'update' our indicators with the data, the engine takes care of this for us # 2. We can use indicators directly in math expressions # 3. We can easily plot many indicators at the same time # wait for our slow ema to fully initialize if not self.slow.IsReady: return # only once per day if self.previous is not None and self.previous.date() == self.Time.date(): return # define a small tolerance on our checks to avoid bouncing tolerance = 0.00015 holdings = self.Portfolio[forex].Quantity # we only want to go long if we're currently short or flat if holdings <= 0: # if the fast is greater than the slow, we'll go long if self.fast.Current.Value > self.slow.Current.Value *(1 + tolerance) and self.rsi.Current.Value>60 and self.atr.Current.Value>self.atr2.Current.Value: self.Log("BUY >> {0}".format(self.Securities[forex].Price)) self.SetHoldings((forex), 0.25) if self.fast.Current.Value < self.slow.Current.Value *(1 - tolerance) and self.rsi.Current.Value<40 and self.atr.Current.Value>self.atr2.Current.Value: self.Log("SELL >> {0}".format(self.Securities[forex].Price)) self.SetHoldings((forex), 0.25) # we only want to liquidate if we're currently long # if the fast is less than the slow we'll liquidate our long if holdings > 0 and self.fast.Current.Value < self.slow.Current.Value: self.Log("SELL >> {0}".format(self.Securities[forex].Price)) self.Liquidate((forex)) if holdings < 0 and self.fast.Current.Value > self.slow.Current.Value: self.Log("BUY >> {0}".format(self.Securities[forex].Price)) self.Liquidate((forex))  

Author