class_docstr: Defined by J. Welles Wilder, Jr. in 1978 in his book *"New Concepts in
  Technical Trading Systems"*.
  
  It measures momentum by calculating the ration of higher closes and
  lower closes after having been smoothed by an average, normalizing
  the result between 0 and 100
  
  Formula:
    - up = upday(data)
    - down = downday(data)
    - maup = movingaverage(up, period)
    - madown = movingaverage(down, period)
    - rs = maup / madown
    - rsi = 100 - 100 / (1 + rs)
  
  The moving average used is the one originally defined by Wilder,
  the SmoothedMovingAverage
  
  See:
    - http://en.wikipedia.org/wiki/Relative_strength_index
  
  Notes:
    - ``safediv`` (default: False) If this parameter is True the division
      rs = maup / madown will be checked for the special cases in which a
      ``0 / 0`` or ``x / 0`` division will happen
  
    - ``safehigh`` (default: 100.0) will be used as RSI value for the
      ``x / 0`` case
  
    - ``safelow``  (default: 50.0) will be used as RSI value for the
      ``0 / 0`` case
class_docstr_tok: ["Defined","by","J.","Welles","Wilder",",","Jr.","in","1978","in","his","book","*","''","New","Concepts","in","Technical","Trading","Systems","''","*",".","It","measures","momentum","by","calculating","the","ration","of","higher","closes","and","lower","closes","after","having","been","smoothed","by","an","average",",","normalizing","the","result","between","0","and","100","Formula",":","-","up","=","upday","(","data",")","-","down","=","downday","(","data",")","-","maup","=","movingaverage","(","up",",","period",")","-","madown","=","movingaverage","(","down",",","period",")","-","rs","=","maup","\/","madown","-","rsi","=","100","-","100","\/","(","1","+","rs",")","The","moving","average","used","is","the","one","originally","defined","by","Wilder",",","the","SmoothedMovingAverage","See",":","-","http",":","\/\/en.wikipedia.org\/wiki\/Relative_strength_index","Notes",":","-","``","safediv","``","(","default",":","False",")","If","this","parameter","is","True","the","division","rs","=","maup","\/","madown","will","be","checked","for","the","special","cases","in","which","a","``","0","\/","0","``","or","``","x","\/","0","``","division","will","happen","-","``","safehigh","``","(","default",":","100.0",")","will","be","used","as","RSI","value","for","the","``","x","\/","0","``","case","-","``","safelow","``","(","default",":","50.0",")","will","be","used","as","RSI","value","for","the","``","0","\/","0","``","case"]
code: def _plotlabel(self):
      plabels = [self.p.period]
      plabels += [self.p.movav] * self.p.notdefault("movav")
      plabels += [self.p.lookback] * self.p.notdefault("lookback")
      return plabels
  
imports: from __future__ import absolute_import, division, print_function, unicode_literals
  from .None import Indicator, Max, MovAv
  from .None import DivZeroByZero
label_desc: Use image node_id 1 for calling the RelativeStrengthIndex obj's underlying member method code with example usage: obj._plotlabel() and returns: plabels