Absolute Strengh Histogram
Stockcharts and Investopedia have literature on this indicator.
With the formula being:
StochRSI = (RSI - min(RSI, period)) / (max(RSI, period) - min(RSI, period))
In theory the period to calculate the RSI
is the same that will later be
applied to find out the minimum and maximum values of the RSI
. That means
that if the chosen period is 14
(de-facto standard) for the RSI
, the total
look-back period for the indicator will be 28
Note
The actual look-back period will be a bit longer, because a 14-period
RSI
has a longer effective look-back period of 15
, as the comparison
of the closing prices of the 1st two periods is needed to kick-start the
calculations
In any case, backtrader does calculate all the needed look-back and warm-up periods automatically.
Considering that the following are built-in indicators in backtrader:
RSI
Lowest
(akaMaxN
)Highest
(akaMinN
)
developing the StochRSI
according to the formula seen above is
straightforward.
class StochRSI(bt.Indicator):
lines = ('stochrsi',)
params = dict(
period=14, # to apply to RSI
pperiod=None, # if passed apply to HighestN/LowestN, else "period"
)
def __init__(self):
rsi = bt.ind.RSI(self.data, period=self.p.period)
pperiod = self.p.pperiod or self.p.period
maxrsi = bt.ind.Highest(rsi, period=pperiod)
minrsi = bt.ind.Lowest(rsi, period=pperiod)
self.l.stochrsi = (rsi - minrsi) / (maxrsi - minrsi)
And here a view of how the indicator works