class_docstr: MovingAverage (alias MovAv)
  
  A placeholder to gather all Moving Average Types in a single place.
  
  Instantiating a SimpleMovingAverage can be achieved as follows::
  
    sma = MovingAverage.Simple(self.data, period)
  
  Or using the shorter aliases::
  
    sma = MovAv.SMA(self.data, period)
  
  or with the full (forwards and backwards) names:
  
    sma = MovAv.SimpleMovingAverage(self.data, period)
  
    sma = MovAv.MovingAverageSimple(self.data, period)
class_docstr_tok: ["MovingAverage","(","alias","MovAv",")","A","placeholder","to","gather","all","Moving","Average","Types","in","a","single","place",".","Instantiating","a","SimpleMovingAverage","can","be","achieved","as","follows",":",":","sma","=","MovingAverage.Simple","(","self.data",",","period",")","Or","using","the","shorter","aliases",":",":","sma","=","MovAv.SMA","(","self.data",",","period",")","or","with","the","full","(","forwards","and","backwards",")","names",":","sma","=","MovAv.SimpleMovingAverage","(","self.data",",","period",")","sma","=","MovAv.MovingAverageSimple","(","self.data",",","period",")"]
code: def register(cls, regcls):
      if getattr(regcls, "_notregister", False):
          return
  
      cls._movavs.append(regcls)
  
      clsname = regcls.__name__
      setattr(cls, clsname, regcls)
  
      clsalias = ""
      if clsname.endswith("MovingAverage"):
          clsalias = clsname.split("MovingAverage")[0]
      elif clsname.startswith("MovingAverage"):
          clsalias = clsname.split("MovingAverage")[1]
  
      if clsalias:
          setattr(cls, clsalias, regcls)
  
file_path: backtrader/backtrader/indicators/mabase.py
imports: from __future__ import absolute_import, division, print_function, unicode_literals
  from ..utils.py3 import with_metaclass
  from .None import Indicator
label_desc: Use image node_id 1 for calling the MovingAverage obj's underlying member method code with example usage: obj.register(cls, regcls) without return types