Pass ZeroLag indicator output as input to RSI
-
Hello, I am trying to create an indicator that takes the output of the ZeroLagIndicator and passes it to RSI as the input, tried several ways but can't figure out how to correctly pass the data between them.
When I run the code example I can see the correct value for zerolag[0] printed out, but nan for RSI.
Like so:
zerolag[0]=3646.76
rsi[0]=nanclass MyIndicator(bt.Indicator): def __init__(self, data): self.zerolag = bt.indicators.ZeroLagIndicator( data,) self.rsi = bt.indicators.RSI(self.zerolag, period=5) def next(self): print("zerolag[0]=" + str(self.zerolag[0])) print("rsi[0]=" + str(self.rsi[0]))
What is the correct way of doing this? Any help would be highly appreciated.
-
You need to always the "lines" class attribute, when creating an indicator, if if you don't use any lines. Also, you never actually passed the output of ZeroLag to RSI.
This works:class MyIndicator(bt.Indicator): lines = ("dummyline",) def __init__(self): self.zerolag = bt.indicators.ZeroLagIndicator(self.data, period=5) self.rsi = bt.indicators.RSI(self.zerolag, period=5) def next(self): print("zerolag[0]=" + str(self.zerolag[0])) print("rsi[0]=" + str(self.rsi[0]))
This is actually useful:
class MyIndicator(bt.Indicator): lines = ("zerolag", "rsi") def __init__(self): self.zerolag = bt.indicators.ZeroLagIndicator(self.data, period=5) self.rsi = bt.indicators.RSI(self.zerolag, period=5)
-
I made a mistake in the post above, but I cannot find a way to edit the post? Please let me know how to edit the post above or delete it. Thank you
-
@freedumb2000 There is no way to edit or delete.