From cd940970d10fc414d603542e5f0dfb81176a7c5b Mon Sep 17 00:00:00 2001 From: P S Solanki Date: Mon, 20 Dec 2021 20:08:40 +0530 Subject: [PATCH] all volatility indicators fully typed --- pandas_ta/volatility/aberration.py | 5 +++-- pandas_ta/volatility/accbands.py | 5 +++-- pandas_ta/volatility/atr.py | 4 +++- pandas_ta/volatility/bbands.py | 5 +++-- pandas_ta/volatility/donchian.py | 5 +++-- pandas_ta/volatility/hwc.py | 3 ++- pandas_ta/volatility/kc.py | 5 +++-- pandas_ta/volatility/massi.py | 3 ++- pandas_ta/volatility/natr.py | 4 +++- pandas_ta/volatility/pdist.py | 4 +++- pandas_ta/volatility/rvi.py | 5 ++++- pandas_ta/volatility/thermo.py | 5 +++-- pandas_ta/volatility/true_range.py | 5 +++-- pandas_ta/volatility/ui.py | 3 ++- 14 files changed, 40 insertions(+), 21 deletions(-) diff --git a/pandas_ta/volatility/aberration.py b/pandas_ta/volatility/aberration.py index 4a9a61f..9434c71 100644 --- a/pandas_ta/volatility/aberration.py +++ b/pandas_ta/volatility/aberration.py @@ -1,12 +1,13 @@ # -*- coding: utf-8 -*- # from numpy import sqrt as npsqrt -from pandas import DataFrame +from pandas import DataFrame, Series from .atr import atr from pandas_ta.overlap import hlc3, sma from pandas_ta.utils import get_offset, verify_series -def aberration(high, low, close, length=None, atr_length=None, offset=None, **kwargs): +def aberration(high: Series, low: Series, close: Series, length: int = None, atr_length: int = None, + offset: int = None, **kwargs) -> DataFrame: """Aberration (ABER) A volatility indicator similar to Keltner Channels. diff --git a/pandas_ta/volatility/accbands.py b/pandas_ta/volatility/accbands.py index 28b7184..b4fbed7 100644 --- a/pandas_ta/volatility/accbands.py +++ b/pandas_ta/volatility/accbands.py @@ -1,10 +1,11 @@ # -*- coding: utf-8 -*- -from pandas import DataFrame +from pandas import DataFrame, Series from pandas_ta.overlap import ma from pandas_ta.utils import get_drift, get_offset, non_zero_range, verify_series -def accbands(high, low, close, length=None, c=None, drift=None, mamode=None, offset=None, **kwargs): +def accbands(high: Series, low: Series, close: Series, length: int = None, c: int = None, drift: int = None, + mamode: str = None, offset: int = None, **kwargs) -> DataFrame: """Acceleration Bands (ACCBANDS) Acceleration Bands created by Price Headley plots upper and lower envelope diff --git a/pandas_ta/volatility/atr.py b/pandas_ta/volatility/atr.py index 0c8f60f..80e531e 100644 --- a/pandas_ta/volatility/atr.py +++ b/pandas_ta/volatility/atr.py @@ -3,9 +3,11 @@ from .true_range import true_range from pandas_ta import Imports from pandas_ta.overlap import ma from pandas_ta.utils import get_drift, get_offset, verify_series +from pandas import Series -def atr(high, low, close, length=None, mamode=None, talib=None, drift=None, offset=None, **kwargs): +def atr(high: Series, low: Series, close: Series, length: int = None, mamode: str = None, talib: bool = None, + drift: int = None, offset: int = None, **kwargs) -> Series: """Average True Range (ATR) Averge True Range is used to measure volatility, especially volatility caused by diff --git a/pandas_ta/volatility/bbands.py b/pandas_ta/volatility/bbands.py index c06db7d..f1adf8e 100644 --- a/pandas_ta/volatility/bbands.py +++ b/pandas_ta/volatility/bbands.py @@ -1,12 +1,13 @@ # -*- coding: utf-8 -*- -from pandas import DataFrame +from pandas import DataFrame, Series from pandas_ta import Imports from pandas_ta.overlap import ma from pandas_ta.statistics import stdev from pandas_ta.utils import get_offset, non_zero_range, tal_ma, verify_series -def bbands(close, length=None, std=None, ddof=0, mamode=None, talib=None, offset=None, **kwargs): +def bbands(close: Series, length: int = None, std: int = None, ddof: int = 0, mamode: str = None, talib: bool = None, + offset: int = None, **kwargs) -> DataFrame: """Bollinger Bands (BBANDS) A popular volatility indicator by John Bollinger. diff --git a/pandas_ta/volatility/donchian.py b/pandas_ta/volatility/donchian.py index 9b098eb..15663cf 100644 --- a/pandas_ta/volatility/donchian.py +++ b/pandas_ta/volatility/donchian.py @@ -1,9 +1,10 @@ # -*- coding: utf-8 -*- -from pandas import DataFrame +from pandas import DataFrame, Series from pandas_ta.utils import get_offset, verify_series -def donchian(high, low, lower_length=None, upper_length=None, offset=None, **kwargs): +def donchian(high: Series, low: Series, lower_length: int = None, upper_length: int = None, offset: int = None, + **kwargs) -> DataFrame: """Donchian Channels (DC) Donchian Channels are used to measure volatility, similar to diff --git a/pandas_ta/volatility/hwc.py b/pandas_ta/volatility/hwc.py index 9bd08f6..b58a21f 100644 --- a/pandas_ta/volatility/hwc.py +++ b/pandas_ta/volatility/hwc.py @@ -4,7 +4,8 @@ from pandas import DataFrame, Series from pandas_ta.utils import get_offset, verify_series -def hwc(close, na=None, nb=None, nc=None, nd=None, scalar=None, channel_eval=None, offset=None, **kwargs): +def hwc(close: Series, na: float = None, nb: float = None, nc: float = None, nd: float = None, scalar: float = None, + channel_eval: bool = None, offset: int = None, **kwargs) -> DataFrame: """HWC (Holt-Winter Channel) Channel indicator HWC (Holt-Winters Channel) based on HWMA - a three-parameter diff --git a/pandas_ta/volatility/kc.py b/pandas_ta/volatility/kc.py index 176bb73..506210f 100644 --- a/pandas_ta/volatility/kc.py +++ b/pandas_ta/volatility/kc.py @@ -1,11 +1,12 @@ # -*- coding: utf-8 -*- -from pandas import DataFrame +from pandas import DataFrame, Series from .true_range import true_range from pandas_ta.overlap import ma from pandas_ta.utils import get_offset, high_low_range, verify_series -def kc(high, low, close, length=None, scalar=None, mamode=None, offset=None, **kwargs): +def kc(high: Series, low: Series, close: Series, length: int = None, scalar: float = None, mamode: str = None, + offset: int = None, **kwargs) -> DataFrame: """Keltner Channels (KC) A popular volatility indicator similar to Bollinger Bands and diff --git a/pandas_ta/volatility/massi.py b/pandas_ta/volatility/massi.py index da3c951..b0b95a9 100644 --- a/pandas_ta/volatility/massi.py +++ b/pandas_ta/volatility/massi.py @@ -1,9 +1,10 @@ # -*- coding: utf-8 -*- from pandas_ta.overlap import ema from pandas_ta.utils import get_offset, non_zero_range, verify_series +from pandas import Series -def massi(high, low, fast=None, slow=None, offset=None, **kwargs): +def massi(high: Series, low: Series, fast: int = None, slow: int = None, offset: int = None, **kwargs) -> Series: """Mass Index (MASSI) The Mass Index is a non-directional volatility indicator that utilitizes the diff --git a/pandas_ta/volatility/natr.py b/pandas_ta/volatility/natr.py index 46fc339..86a8759 100644 --- a/pandas_ta/volatility/natr.py +++ b/pandas_ta/volatility/natr.py @@ -2,9 +2,11 @@ from .atr import atr from pandas_ta import Imports from pandas_ta.utils import get_drift, get_offset, verify_series +from pandas import Series -def natr(high, low, close, length=None, scalar=None, mamode=None, talib=None, drift=None, offset=None, **kwargs): +def natr(high: Series, low: Series, close: Series, length: int = None, scalar: float = None, mamode: str = None, + talib: bool = None, drift: int = None, offset: int = None, **kwargs) -> Series: """Normalized Average True Range (NATR) Normalized Average True Range attempt to normalize the average true range. diff --git a/pandas_ta/volatility/pdist.py b/pandas_ta/volatility/pdist.py index 24c1d4c..1967121 100644 --- a/pandas_ta/volatility/pdist.py +++ b/pandas_ta/volatility/pdist.py @@ -1,8 +1,10 @@ # -*- coding: utf-8 -*- from pandas_ta.utils import get_drift, get_offset, non_zero_range, verify_series +from pandas import Series -def pdist(open_, high, low, close, drift=None, offset=None, **kwargs): +def pdist(open_: Series, high: Series, low: Series, close: Series, drift: int = None, offset: int = None, + **kwargs) -> Series: """Price Distance (PDIST) Measures the "distance" covered by price movements. diff --git a/pandas_ta/volatility/rvi.py b/pandas_ta/volatility/rvi.py index 857f5c9..06b7b95 100644 --- a/pandas_ta/volatility/rvi.py +++ b/pandas_ta/volatility/rvi.py @@ -3,9 +3,12 @@ from pandas_ta.overlap import ma from pandas_ta.statistics import stdev from pandas_ta.utils import get_drift, get_offset from pandas_ta.utils import unsigned_differences, verify_series +from pandas import Series -def rvi(close, high=None, low=None, length=None, scalar=None, refined=None, thirds=None, mamode=None, drift=None, offset=None, **kwargs): +def rvi(close: Series, high: Series = None, low: Series = None, length: int = None, scalar: float = None, + refined: bool = None, thirds: bool = None, mamode: str = None, drift: int = None, + offset: int = None, **kwargs) -> Series: """Relative Volatility Index (RVI) The Relative Volatility Index (RVI) was created in 1993 and revised in 1995. diff --git a/pandas_ta/volatility/thermo.py b/pandas_ta/volatility/thermo.py index 7a4b20d..dbc9978 100644 --- a/pandas_ta/volatility/thermo.py +++ b/pandas_ta/volatility/thermo.py @@ -1,10 +1,11 @@ # -*- coding: utf-8 -*- -from pandas import DataFrame +from pandas import DataFrame, Series from pandas_ta.overlap import ma from pandas_ta.utils import get_offset, verify_series, get_drift -def thermo(high, low, length=None, long=None, short=None, mamode=None, drift=None, offset=None, **kwargs): +def thermo(high: Series, low: Series, length: int = None, long: int = None, short: int = None, mamode: str = None, + drift: int = None, offset: int = None, **kwargs) -> DataFrame: """Elders Thermometer (THERMO) Elder's Thermometer measures price volatility. diff --git a/pandas_ta/volatility/true_range.py b/pandas_ta/volatility/true_range.py index 9504d95..3153d0c 100644 --- a/pandas_ta/volatility/true_range.py +++ b/pandas_ta/volatility/true_range.py @@ -1,11 +1,12 @@ # -*- coding: utf-8 -*- from numpy import nan as npNaN -from pandas import concat +from pandas import concat, Series from pandas_ta import Imports from pandas_ta.utils import get_drift, get_offset, non_zero_range, verify_series -def true_range(high, low, close, talib=None, drift=None, offset=None, **kwargs): +def true_range(high: Series, low: Series, close: Series, talib: bool = None, drift: int = None, offset: int = None, + **kwargs) -> Series: """True Range An method to expand a classical range (high minus low) to include diff --git a/pandas_ta/volatility/ui.py b/pandas_ta/volatility/ui.py index d10f390..edf29db 100644 --- a/pandas_ta/volatility/ui.py +++ b/pandas_ta/volatility/ui.py @@ -1,10 +1,11 @@ # -*- coding: utf-8 -*- from numpy import sqrt as npsqrt from pandas_ta.overlap import sma +from pandas import Series from pandas_ta.utils import get_offset, verify_series -def ui(close, length=None, scalar=None, offset=None, **kwargs): +def ui(close: Series, length: int = None, scalar: int = None, offset: int = None, **kwargs) -> Series: """Ulcer Index (UI) The Ulcer Index by Peter Martin measures the downside volatility with the use of