chunk negative index bugfix
This commit is contained in:
@@ -235,7 +235,7 @@ class Chunk:
|
|||||||
return None
|
return None
|
||||||
start = self.bars[0].start
|
start = self.bars[0].start
|
||||||
index = (time - start) // self.period
|
index = (time - start) // self.period
|
||||||
if index >= len(self.bars):
|
if index < 0 or index >= len(self.bars):
|
||||||
return None
|
return None
|
||||||
bar = self.bars[index]
|
bar = self.bars[index]
|
||||||
assert bar.start == time
|
assert bar.start == time
|
||||||
@@ -263,6 +263,16 @@ class Chunk:
|
|||||||
time += self.period
|
time += self.period
|
||||||
self.bars.append(NativeOHLC(time, None, None, None, last_price))
|
self.bars.append(NativeOHLC(time, None, None, None, last_price))
|
||||||
assert index == len(self.bars)
|
assert index == len(self.bars)
|
||||||
|
elif index < 0:
|
||||||
|
# the incoming bar is prior to anything we have yet. rebase our bars on the incoming and pad
|
||||||
|
bars = [native]
|
||||||
|
for _ in range(-index-1):
|
||||||
|
time = bars[-1].start + self.period
|
||||||
|
price = bars[-1].close
|
||||||
|
bars.append(NativeOHLC(time, None, None, None, price))
|
||||||
|
assert bars[-1].start + self.period == self.bars[0].start
|
||||||
|
self.bars = [*bars, *self.bars]
|
||||||
|
return
|
||||||
if index == len(self.bars):
|
if index == len(self.bars):
|
||||||
assert self.bars[-1].start + self.period == native.start
|
assert self.bars[-1].start + self.period == native.start
|
||||||
self.bars.append(native)
|
self.bars.append(native)
|
||||||
|
|||||||
Reference in New Issue
Block a user