class_docstr: Fast Stochastic Oscillator filter as described in
  http://stockcharts.com/school/doku.php?st=stochastic+oscillator&id=chart_school:technical_indicators:stochastic_oscillator_fast_slow_and_full.
  Note that the value returned by this filter is %K. To access %D use :meth:`getD`.
  
  :param barDataSeries: The BarDataSeries instance being filtered.
  :type barDataSeries: :class:`pyalgotrade.dataseries.bards.BarDataSeries`.
  :param period: The period. Must be > 1.
  :type period: int.
  :param dSMAPeriod: The %D SMA period. Must be > 1.
  :type dSMAPeriod: int.
  :param useAdjustedValues: True to use adjusted Low/High/Close values.
  :type useAdjustedValues: boolean.
  :param maxLen: The maximum number of values to hold.
      Once a bounded length is full, when new items are added, a corresponding number of items are discarded from the
      opposite end. If None then dataseries.DEFAULT_MAX_LEN is used.
  :type maxLen: int.
code: def __init__(
      self,
      barDataSeries,
      period,
      dSMAPeriod=3,
      useAdjustedValues=False,
      maxLen=None,
  ):
      assert dSMAPeriod > 1, "dSMAPeriod must be > 1"
      assert isinstance(
          barDataSeries, bards.BarDataSeries
      ), "barDataSeries must be a dataseries.bards.BarDataSeries instance"
  
      super(StochasticOscillator, self).__init__(
          barDataSeries,
          SOEventWindow(period, useAdjustedValues),
          maxLen,
      )
      self.__d = ma.SMA(self, dSMAPeriod, maxLen)
  
file_path: pyalgotrade/pyalgotrade/technical/stoch.py
imports: from pyalgotrade import technical
  from pyalgotrade.dataseries import bards
  from pyalgotrade.technical import ma
label_desc: Use image node_id 1 to create a new StochasticOscillator object from inherited base classes: technical with example: obj = StochasticOscillator(barDataSeries, period, dSMAPeriod, useAdjustedValues, maxLen)