Moving Average

Moving Averages are implemented in finquant.moving_average.

The module provides functions to compute and visualise:

  • Simple Moving Averages,
  • Exponential Moving Averages,
  • a band of Moving Averages (simple or exponential), and
  • Bollinger Bands.
finquant.moving_average.compute_ma(data, fun, spans, plot=True)

Computes a band of moving averages (sma or ema, depends on the input argument fun) for a number of different time windows. If plot is True, it also computes and sets markers for buy/sell signals based on crossovers of the Moving Averages with the shortest/longest spans.

Input:
data:pandas.DataFrame with stock prices, only one column is expected.
fun:function that computes a moving average, e.g. sma (simple) or ema (exponential).
spans:list of integers, time windows to compute the Moving Average on.
plot:boolean (default: True), whether to plot the moving averages and buy/sell signales based on crossovers of shortest and longest moving average.
Output:
ma:pandas.DataFrame with moving averages of given data.
finquant.moving_average.ema(data, span=100)

Computes and returns the exponential moving average.

Note: the moving average is computed on all columns.

Input:
data:pandas.DataFrame with stock prices in columns
span:int (defaul: 100), number of days/values over which the average is computed
Output:
ema:pandas.DataFrame of exponential moving average
finquant.moving_average.ema_std(data, span=100)

Computes and returns the standard deviation of the exponential moving average.

Input:
data:pandas.DataFrame with stock prices in columns
span:int (defaul: 100), number of days/values over which the average is computed
Output:
ema_std:pandas.DataFrame of standard deviation of exponential moving average
finquant.moving_average.plot_bollinger_band(data, fun, span)

Computes and visualises a Bolling Band.

Input:
data:pandas.DataFrame with stock prices in columns
fun:function that computes a moving average, e.g. sma (simple) or ema (exponential).
span:int (defaul: 100), number of days/values over which the average is computed
finquant.moving_average.sma(data, span=100)

Computes and returns the simple moving average.

Note: the moving average is computed on all columns.

Input:
data:pandas.DataFrame with stock prices in columns
span:int (defaul: 100), number of days/values over which the average is computed
Output:
sma:pandas.DataFrame of simple moving average
finquant.moving_average.sma_std(data, span=100)

Computes and returns the standard deviation of the simple moving average.

Input:
data:pandas.DataFrame with stock prices in columns
span:int (defaul: 100), number of days/values over which the average is computed
Output:
sma_std:pandas.DataFrame of standard deviation of simple moving average