def bollinger(eqdata, **kwargs):
_window = kwargs.get('<STR_LIT>', <NUM_LIT:20>)<EOL>_multiple = kwargs.get('<STR_LIT>', <NUM_LIT>)<EOL>_selection = kwargs.get('<STR_LIT>', '<STR_LIT>')<EOL>kwargs['<STR_LIT>'] = '<STR_LIT>'<EOL>_smadf = sma(eqdata, **kwargs)<EOL>_sigmas = eqdata.loc[:, _selection].rolling(center=False, window=_window).std().values.flatten()<EOL>_diff = _multiple * _sigmas<EOL>_bolldf = pd.DataFrame(index=eqdata.index, columns=['<STR_LIT>', '<STR_LIT>'], dtype=np.float64)<EOL>_bolldf.loc[:, '<STR_LIT>'] = _smadf.iloc[:, <NUM_LIT:0>].values + _diff<EOL>_bolldf.loc[:, '<STR_LIT>'] = _smadf.iloc[:, <NUM_LIT:0>].values - _diff<EOL>return _bolldf, _smadf<EOL>
Bollinger bands

Returns bolldf, smadf where bolldf is a DataFrame containing
Bollinger bands with columns 'Upper' and 'Lower' and smadf contains
the simple moving average.

Parameters
----------
eqdata : DataFrame
    Must include a column specified in the `selection` parameter or, 
    if no `selection` parameter is given, a column 'Adj Close'.
window : int, optional
    Lookback period.
multiple : float, optional
    Multiple of standard deviation above and below sma to use
    in calculating band value. Defaults to 2.0.
selection : str, optional
    Column of `eqdata` on which to calculate bollinger bands.
    Defaults to 'Adj Close'.

Returns
---------
bolldf : DataFrame
    Dataframe containing columns 'Upper' and 'Lower' describing
    the given multiple of standard deviations above and below
    simple moving average for the lookback period.
smadf : DataFrame
    Simple moving average given the specified lookback.