I'm trying to append the daily range to a list everyday I can't figure it out. I need this for my custom ATR indicator that analyzes the list and gives an atr value. if someone could help me fix my code you'd save from the final stages of insanity
class CalibratedDynamicInterceptor(QCAlgorithm):
def Initialize(self):
self.SetStartDate(2020, 6, 1)
self.SetCash(100000)
self.atrLength = 14
self.trList = []
self.AddEquity("SPY", Resolution.Minute)
history = self.History(["SPY"], 2, Resolution.Daily)
self.currentSymbolData = history
self.yesterdayhigh = (self.currentSymbolData["high"][0])
self.yesterdaylow = (self.currentSymbolData["low"][0])
self.tr = abs(self.yesterdayhigh - self.yesterdaylow)
self.Schedule.On(self.DateRules.EveryDay("SPY"), self.TimeRules.At(18, 1), self.newTR)
def newTR(self):
self.trList.append(self.tr)
def GetATRW(self):
self.trLen = 0
self.atrV = 5
self.old = 0
self.newer = 1
self.new = 2
self.adjList = []
self.WTRS = 0
for i in self.trList:
self.trLen += 1
if self.trLen > 3:
for num in self.trList:
self.WTRS += num
self.atrV = self.WTRS / self.trLen
elif self.trLen <= 3 and self.trLen < self.atrLength:
while self.new < self.trLen:
self.newNum = (self.trList[old]*.2) + (self.trList[newer]*.3) + (self.trList[new]*.5)
self.adjList.append(newNum)
self.old += 1
self.newer += 1
self.new += 1
for numbers in self.adjList:
self.WTRS += numbers
self.atrV = self.WTRS / (self.trLen - 2)
elif self.trLen < self.atrLength or self.trLen == self.atrLength:
while self.trLen > self.atrLength:
self.trList.pop(0)
self.trLen -= 1
while self.new < self.atrLength:
self.newNum = (self.trList[old]*.2) + (self.trList[newer]*.3) + (self.trList[new]*.5)
self.adjList.append(newNum)
self.old += 1
self.newer += 1
self.new += 1
for numbers in self.adjList:
self.WTRS += numbers
self.atrV = self.WTRS / (self.atrLength - 2)
return self.atrV
# self.SetWarmUp(timedelta(days=self.atrLength))
def OnData(self, data):
# if self.IsWarmingUp: return
self.atr = self.GetATRW()
self.Debug("wtrs " + str(self.WTRS) + " " + "trLen " + str(self.trLen))
self.Debug("ATR: " + str(self.atr))
self.Debug("trList: " + str(self.trList))
self.Debug("yesHigh: " + str(self.yesterdayhigh))
self.Debug("yesHigh: " + str(self.yesterdaylow))