Hi I'm new to QuantConnect and I am building an RSI indicator from start with coarse selection. 

However, after a years of backtest, it breaks and gives an error.

Runtime Error: Cannot implicitly convert type 'Python.Runtime.PyObject' to 'decimal' (Open Stacktrace)

I have attached my project here, any help would be appreciated :)

from customRSI import customRSI class UncoupledVentralCoil(QCAlgorithm):     stopMarketTicket = None     stopMarketOrderFillTime = datetime.min     highestSPYPrice = 0     symbolsList = []          def Initialize(self):         self.SetStartDate(2000, 1, 1)  # Set Start Date         self.SetEndDate(2020,1,1)    #Set End Date         self.SetCash(100000)  # Set Strategy Cash         # self.AddEquity("SPY", Resolution.Daily)                  self.buylist = []         self.selllist = []                  # self.Securities["SPY"].SetDataNormalizationMode(DataNormalizationMode.Raw)         # Create a chart for the indicator         crsiChart = Chart("Awesome", ChartType.Stacked)         crsiChart.AddSeries(Series('custom', SeriesType.Line))                  self.coarse_count = 10         self.AddUniverse(self.CoarseSelectionFunction)         self.UniverseSettings.Resolution = Resolution.Daily         self.SetRiskManagement(TrailingStopRiskManagementModel(0.1))              def OnSecuritiesChanged(self, changes):         self.Debug(str(self.buylist))         for security in changes.AddedSecurities:             self.SetHoldings(security.Symbol, 0.1)             self.stopMarketTicket = self.StopMarketOrder(security.Symbol, -1.0 * self.CalculateOrderQuantity(security.Symbol, 0.1), 0.85 * self.Securities[security.Symbol].Close)               def CoarseSelectionFunction(self, coarse):                  sym = sorted([x for x in coarse if x.HasFundamentalData and x.Price>0],                                  key = lambda x: x.DollarVolume, reverse = True)                  syms = sym[:self.coarse_count]                  for i in syms:             if not self.Securities.ContainsKey(i.Symbol):                 self.symbolsList.append(i.Symbol)                  for symbol in self.symbolsList:             if symbol not in self.buylist:                 self.AddEquity(f"{symbol}", Resolution.Daily)                 self.custom = customRSI(f"{symbol}")                 self.RegisterIndicator(symbol, self.custom, Resolution.Daily)                 if self.custom.Value < self.custom.h1:                     self.buylist.append(symbol)                 # if self.custom.Value > self.custom.h2:                 # self.selllist.append(symbol)                      return self.buylist import pandas as pd import numpy as np import talib as ta import math from collections import deque from datetime import datetime, timedelta class customRSI(object):     def __init__(self, name):         self.Name = name         self.Time = datetime.min #minimum/earliest time, NOT MINUTE         self.cyclelen = 14         self.h1 = 30.0         self.h2 = 70.0         self.Value = 0         self.IsReady = False         self.queue = RollingWindow[float](self.cyclelen + 1) # +1 for difference cal         self.diffdeque = RollingWindow[float](self.cyclelen)                       def __repr__(self):         return "{0} -> IsReady: {1}. Time: {2}. Value: {3}".format(self.Name, self.IsReady, self.Time, self.Value)              def Update(self, input):                  #fill the queue         self.queue.Add(input.Close) # 15 day closing prices                  # calc rsi         self.pricechange = self.change()         # initiate         count = self.queue.Count         self.Time = input.EndTime         self.IsReady = count == self.cyclelen + 1                           # if its ready iniate these         if self.IsReady == True:             self.uplist = [0.0 if i < 0 else i for i in self.pricechange]             self.downlist = [0.0 if i > 0 else -i for i in self.pricechange]             self.rs = np.mean(self.uplist)/np.mean(self.downlist)             self.Value = rsi = 100.0 - 100.0 / (1 + self.rs)                      else:             self.Value = 0                       def change(self): # pine change fx         try:             self.diff = self.queue[0]-self.queue[1]             self.diffdeque.Add(self.diff)         except:             return         return self.diffdeque

 

Author