Source code for pandas_ta.momentum.cti

# -*- coding: utf-8 -*-
from pandas import Series
from pandas_ta.overlap import linreg
from pandas_ta.utils import get_offset, verify_series


[docs]def cti(close, length=None, offset=None, **kwargs) -> Series: """Indicator: Correlation Trend Indicator""" length = int(length) if length and length > 0 else 12 close = verify_series(close, length) offset = get_offset(offset) if close is None: return cti = linreg(close, length=length, r=True) # Offset if offset != 0: cti = cti.shift(offset) # Handle fills if "fillna" in kwargs: cti.fillna(method=kwargs["fillna"], inplace=True) if "fill_method" in kwargs: cti.fillna(method=kwargs["fill_method"], inplace=True) cti.name = f"CTI_{length}" cti.category = "momentum" return cti
cti.__doc__ = \ """Correlation Trend Indicator (CTI) The Correlation Trend Indicator is an oscillator created by John Ehler in 2020. It assigns a value depending on how close prices in that range are to following a positively- or negatively-sloping straight line. Values range from -1 to 1. This is a wrapper for ta.linreg(close, r=True). Args: close (pd.Series): Series of 'close's length (int): It's period. Default: 12 offset (int): How many periods to offset the result. Default: 0 Returns: pd.Series: Series of the CTI values for the given period. """