Module engine

This module contains multiple helper function to execute a backtest.

Functions

def ascending(series: pandas.core.series.Series, lookback: int = 1)

Check if series is continuously ascending.

Example:

>>> series = pd.Series([1, 4, 3, 6, 7])
>>> ascending(series, lookback=3) # True
>>> ascending(series, lookback=5) # False

Args:

series: Any pandas series with any index
lookback: Number of previous values to consider. It is also the number of values that needs to becontinuously descending.

Returns:

True if series is continuously ascending, False otherwise
def crossover(series1: pandas.core.series.Series, series2: pandas.core.series.Series)

Check if series1 crosses over series2

Args:

series1: Any pandas series with any index
series2: Any pandas series with any index

Returns:

True if series1 crosses over series2, False otherwise
def crossunder(series1: pandas.core.series.Series, series2: pandas.core.series.Series)

Check if series1 crosses under series2

Args:

series1: Any pandas series with any index
series2: Any pandas series with any index

Returns:

True if series1 crosses under series2, False otherwise
def descending(series: pandas.core.series.Series, lookback: int = 1)

Check if series is continuously descending.

Example:

>>> series = pd.Series([10, 7, 8, 7, 5])
>>> descending(series, lookback=3) # True
>>> descending(series, lookback=5) # False

Args:

series: Any pandas series with any index
lookback: Number of previous values to consider. It is also the number of values that needs to becontinuously descending.

Returns:

True if series is continuously descending, False otherwise