all volume indicators fully typed

This commit is contained in:
P S Solanki
2021-12-20 20:24:42 +05:30
parent cd940970d1
commit b7d04df3fd
16 changed files with 45 additions and 24 deletions
+4 -2
View File
@@ -1,9 +1,11 @@
# -*- coding: utf-8 -*-
from pandas_ta import Imports
from pandas_ta.utils import get_offset, non_zero_range, verify_series
from pandas import Series
def ad(high, low, close, volume, open_=None, talib=None, offset=None, **kwargs):
def ad(high: Series, low: Series, close: Series, volume: Series, open_: Series = None, talib: bool = None,
offset: int = None, **kwargs) -> Series:
"""Accumulation/Distribution (AD)
Accumulation/Distribution indicator utilizes the relative position
@@ -17,7 +19,7 @@ def ad(high, low, close, volume, open_=None, talib=None, offset=None, **kwargs):
low (pd.Series): Series of 'low's
close (pd.Series): Series of 'close's
volume (pd.Series): Series of 'volume's
open (pd.Series): Series of 'open's
open_ (pd.Series): Series of 'open's
talib (bool): If TA Lib is installed and talib is True, Returns the TA Lib
version. Default: True
offset (int): How many periods to offset the result. Default: 0
+4 -2
View File
@@ -3,9 +3,11 @@ from .ad import ad
from pandas_ta import Imports
from pandas_ta.overlap import ema
from pandas_ta.utils import get_offset, verify_series
from pandas import Series
def adosc(high, low, close, volume, open_=None, fast=None, slow=None, talib=None, offset=None, **kwargs):
def adosc(high: Series, low: Series, close: Series, volume: Series, open_: Series = None, fast: int = None,
slow: int = None, talib: bool = None, offset: int = None, **kwargs) -> Series:
"""Accumulation/Distribution Oscillator or Chaikin Oscillator
Accumulation/Distribution Oscillator indicator utilizes
@@ -19,7 +21,7 @@ def adosc(high, low, close, volume, open_=None, fast=None, slow=None, talib=None
high (pd.Series): Series of 'high's
low (pd.Series): Series of 'low's
close (pd.Series): Series of 'close's
open (pd.Series): Series of 'open's
open_ (pd.Series): Series of 'open's
volume (pd.Series): Series of 'volume's
fast (int): The short period. Default: 12
slow (int): The long period. Default: 26
+3 -2
View File
@@ -1,12 +1,13 @@
# -*- coding: utf-8 -*-
from pandas import DataFrame
from pandas import DataFrame, Series
from .obv import obv
from pandas_ta.overlap import ma
from pandas_ta.trend import long_run, short_run
from pandas_ta.utils import get_offset, verify_series
def aobv(close, volume, fast=None, slow=None, max_lookback=None, min_lookback=None, mamode=None, offset=None, **kwargs):
def aobv(close: Series, volume: Series, fast: int = None, slow: int = None, max_lookback: int = None,
min_lookback: int = None, mamode: str = None, offset: int = None, **kwargs) -> DataFrame:
"""Archer On Balance Volume (AOBV)
Archer On Balance Volume (AOBV) developed by Kevin Johnson provides
+3 -1
View File
@@ -1,8 +1,10 @@
# -*- coding: utf-8 -*-
from pandas_ta.utils import get_offset, non_zero_range, verify_series
from pandas import Series
def cmf(high, low, close, volume, open_=None, length=None, offset=None, **kwargs):
def cmf(high: Series, low: Series, close: Series, volume: Series, open_: Series = None, length: int = None,
offset: int = None, **kwargs) -> Series:
"""Chaikin Money Flow (CMF)
Chailin Money Flow measures the amount of money flow volume over a specific
+3 -1
View File
@@ -1,9 +1,11 @@
# -*- coding: utf-8 -*-
from pandas_ta.overlap import ma
from pandas_ta.utils import get_drift, get_offset, verify_series
from pandas import Series
def efi(close, volume, length=None, mamode=None, drift=None, offset=None, **kwargs):
def efi(close: Series, volume: Series, length: int = None, mamode: str = None, drift: int = None, offset: int = None,
**kwargs) -> Series:
"""Elder's Force Index (EFI)
Elder's Force Index measures the power behind a price movement using price
+3 -1
View File
@@ -1,9 +1,11 @@
# -*- coding: utf-8 -*-
from pandas_ta.overlap import hl2, sma
from pandas_ta.utils import get_drift, get_offset, non_zero_range, verify_series
from pandas import Series
def eom(high, low, close, volume, length=None, divisor=None, drift=None, offset=None, **kwargs):
def eom(high: Series, low: Series, close: Series, volume: Series, length: int = None, divisor=None, drift: int = None,
offset: int = None, **kwargs) -> Series:
"""Ease of Movement (EOM)
Ease of Movement is a volume based oscillator that is designed to measure the
+3 -2
View File
@@ -1,10 +1,11 @@
# -*- coding: utf-8 -*-
from pandas import DataFrame
from pandas import DataFrame, Series
from pandas_ta.overlap import hlc3, ma
from pandas_ta.utils import get_drift, get_offset, signed_series, verify_series
def kvo(high, low, close, volume, fast=None, slow=None, signal=None, mamode=None, drift=None, offset=None, **kwargs):
def kvo(high: Series, low: Series, close: Series, volume: Series, fast: int = None, slow: int = None,
signal=None, mamode: str = None, drift: int = None, offset: int = None, **kwargs) -> DataFrame:
"""Klinger Volume Oscillator (KVO)
This indicator was developed by Stephen J. Klinger. It is designed to predict
+3 -2
View File
@@ -1,11 +1,12 @@
# -*- coding: utf-8 -*-
from pandas import DataFrame
from pandas import DataFrame, Series
from pandas_ta import Imports
from pandas_ta.overlap import hlc3
from pandas_ta.utils import get_drift, get_offset, verify_series
def mfi(high, low, close, volume, length=None, talib=None, drift=None, offset=None, **kwargs):
def mfi(high: Series, low: Series, close: Series, volume: Series, length: int = None, talib: bool = None,
drift: int = None, offset: int = None, **kwargs) -> Series:
"""Money Flow Index (MFI)
Money Flow Index is an oscillator indicator that is used to measure buying and
+3 -1
View File
@@ -1,9 +1,11 @@
# -*- coding: utf-8 -*-
from pandas_ta.momentum import roc
from pandas_ta.utils import get_offset, signed_series, verify_series
from pandas import Series
def nvi(close, volume, length=None, initial=None, offset=None, **kwargs):
def nvi(close: Series, volume: Series, length: int = None, initial: int = None, offset: int = None,
**kwargs) -> Series:
"""Negative Volume Index (NVI)
The Negative Volume Index is a cumulative indicator that uses volume change in
+2 -1
View File
@@ -1,9 +1,10 @@
# -*- coding: utf-8 -*-
from pandas_ta import Imports
from pandas_ta.utils import get_offset, signed_series, verify_series
from pandas import Series
def obv(close, volume, talib=None, offset=None, **kwargs):
def obv(close: Series, volume: Series, talib: bool = None, offset: int = None, **kwargs) -> Series:
"""On Balance Volume (OBV)
On Balance Volume is a cumulative indicator to measure buying and selling
+3 -1
View File
@@ -1,9 +1,11 @@
# -*- coding: utf-8 -*-
from pandas_ta.momentum import roc
from pandas_ta.utils import get_offset, signed_series, verify_series
from pandas import Series
def pvi(close, volume, length=None, initial=None, offset=None, **kwargs):
def pvi(close: Series, volume: Series, length: int = None, initial: int = None, offset: int = None,
**kwargs) -> Series:
"""Positive Volume Index (PVI)
The Positive Volume Index is a cumulative indicator that uses volume change in
+2 -1
View File
@@ -1,8 +1,9 @@
# -*- coding: utf-8 -*-
from pandas_ta.utils import get_offset, signed_series, verify_series
from pandas import Series
def pvol(close, volume, offset=None, **kwargs):
def pvol(close: Series, volume: Series, offset: int = None, **kwargs) -> Series:
"""Price-Volume (PVOL)
Returns a series of the product of price and volume.
+1 -1
View File
@@ -4,7 +4,7 @@ from numpy import nan as npNaN
from pandas import Series
def pvr(close, volume):
def pvr(close: Series, volume: Series) -> Series:
"""Price Volume Rank
The Price Volume Rank was developed by Anthony J. Macek and is described in his
+2 -1
View File
@@ -1,9 +1,10 @@
# -*- coding: utf-8 -*-
from pandas_ta.momentum import roc
from pandas_ta.utils import get_drift, get_offset, verify_series
from pandas import Series
def pvt(close, volume, drift=None, offset=None, **kwargs):
def pvt(close: Series, volume: Series, drift: int = None, offset: int = None, **kwargs) -> Series:
"""Price-Volume Trend (PVT)
The Price-Volume Trend utilizes the Rate of Change with volume to
+2 -2
View File
@@ -1,11 +1,11 @@
# -*- coding: utf-8 -*-
from numpy import array_split
from numpy import mean
from pandas import cut, concat, DataFrame
from pandas import cut, concat, DataFrame, Series
from pandas_ta.utils import signed_series, verify_series
def vp(close, volume, width=None, **kwargs):
def vp(close: Series, volume: Series, width: int = None, **kwargs) -> DataFrame:
"""Volume Profile (VP)
Calculates the Volume Profile by slicing price into ranges.
+4 -3
View File
@@ -4,7 +4,8 @@ from pandas_ta.overlap import ma
from pandas_ta.utils import get_drift, get_offset, verify_series, signed_series, zero
def wb_tsv(close=None, volume=None, length=None, signal=None, mamode=None, drift=None, offset=None, **kwargs):
def wb_tsv(close: Series, volume: Series, length: int = None, signal: int = None, mamode: str = None,
drift: int = None, offset: int = None, **kwargs) -> DataFrame:
"""Time Segmented Value (TSV)
TSV is a proprietary technical indicator developed by Worden Brothers Inc.,
@@ -44,7 +45,7 @@ def wb_tsv(close=None, volume=None, length=None, signal=None, mamode=None, drift
# Calculate Result
signed_volume = volume * signed_series(close, 1) # > 0
signed_volume[signed_volume < 0 ] = -signed_volume # < 0
signed_volume[signed_volume < 0] = -signed_volume # < 0
signed_volume.apply(zero) # ~ 0
cvd = signed_volume * close.diff(drift)
@@ -81,4 +82,4 @@ def wb_tsv(close=None, volume=None, length=None, signal=None, mamode=None, drift
df.name = f"TSV{_props}"
df.category = tsv.category
return df
return df