DEP remove alias kwarg option MAINT remove core spacing

This commit is contained in:
Kevin Johnson
2021-03-12 07:11:18 -08:00
parent 0d7489b915
commit a31489af18
2 changed files with 16 additions and 99 deletions
+1
View File
@@ -124,6 +124,7 @@ reqs.txt
requirements.txt
driver.py
qd.py
tdseq.py
# Local package installs
ta-lib/
+15 -99
View File
@@ -62,9 +62,7 @@ class Strategy:
ta_is_list = isinstance(self.ta, list)
if self.name is None or not name_is_str:
required_args.append(
' - name. Must be a string. Example: "My TA". Note: "all" is reserved.'
)
required_args.append(' - name. Must be a string. Example: "My TA". Note: "all" is reserved.')
has_name != has_name
if self.ta is None:
@@ -73,8 +71,7 @@ class Strategy:
# Check that all elements of the list are dicts.
# Does not check if the dicts values are valid indicator kwargs
# User must check indicator documentation for all indicators args.
is_ta = all(
[isinstance(_, dict) and len(_.keys()) > 0 for _ in self.ta])
is_ta = all([isinstance(_, dict) and len(_.keys()) > 0 for _ in self.ta])
else:
s = " - ta. Format is a list of dicts. Example: [{'kind': 'sma', 'length': 10}]"
s += "\n Check the indicator for the correct arguments if you receive this error."
@@ -219,12 +216,15 @@ class AnalysisIndicators(BasePandasObject):
>>> help(df.ta.apo)
4. Ways of calling an indicator.
4a. Calling just the MACD indicator without "ta" DataFrame extension.
4a. Standard: Calling just the APO indicator without "ta" DataFrame extension.
>>> ta.apo(df["close"])
4b. Calling just the MACD indicator with "ta" DataFrame extension.
4b. DataFrame Extension: Calling just the APO indicator with "ta" DataFrame extension.
>>> df.ta.apo()
4c. Calling using kind.
4c. DataFrame Extension (kind): Calling APO using 'kind'
>>> df.ta(kind="apo")
4d. Strategy:
>>> df.ta.strategy("All") # Default
>>> df.ta.strategy(ta.Strategy("My Strat", ta=[{"kind": "apo"}])) # Custom
5. Working with kwargs
5a. Append the result to the working df.
@@ -241,8 +241,7 @@ class AnalysisIndicators(BasePandasObject):
# DataFrame Behavioral Methods
def __call__(
self, kind: str = None,
alias: str = None, timed: bool = False,
verbose: bool = False, **kwargs
timed: bool = False, verbose: bool = False, **kwargs
):
if verbose: print(f"Pandas TA - Technical Analysis Indicators - v{self.version}")
try:
@@ -258,12 +257,7 @@ class AnalysisIndicators(BasePandasObject):
if timed:
result.timed = final_time(stime)
alias_str = alias + ":" if alias is not None else ""
print(f"[+] {kind}:{alias_str} {result.timed}")
# Add an alias if passed
if alias:
result.alias = f"{alias}"
print(f"[+] {kind}: {result.timed}")
return result
else:
@@ -354,9 +348,7 @@ class AnalysisIndicators(BasePandasObject):
if isinstance(result, pd.Series):
result.name = prefix + result.name + suffix
else:
result.columns = [
prefix + column + suffix for column in result.columns
]
result.columns = [prefix + column + suffix for column in result.columns]
def _append(self, result=None, **kwargs) -> None:
"""Appends a Pandas Series or DataFrame columns to self._df."""
@@ -624,13 +616,12 @@ class AnalysisIndicators(BasePandasObject):
print(f"[X] Not an available strategy.")
return None
# Remove indicators with "length" keyward when larger than the DataFrame
# Remove Custom indicators with "length" keyword when larger than the DataFrame
# Possible to have other indicator main window lengths to be included
removal = []
for kwds in ta:
_ = False
if "length" in kwds and kwds["length"] > self._df.shape[0]:
_ = True
if "length" in kwds and kwds["length"] > self._df.shape[0]: _ = True
if _: removal.append(kwds)
if len(removal) > 0: [ta.remove(x) for x in removal]
@@ -728,7 +719,6 @@ class AnalysisIndicators(BasePandasObject):
high = self._get_column(kwargs.pop("high", "high"))
low = self._get_column(kwargs.pop("low", "low"))
close = self._get_column(kwargs.pop("close", "close"))
result = cdl_doji(open_=open_, high=high, low=low, close=close, offset=offset, **kwargs)
return self._post_process(result, **kwargs)
@@ -737,7 +727,6 @@ class AnalysisIndicators(BasePandasObject):
high = self._get_column(kwargs.pop("high", "high"))
low = self._get_column(kwargs.pop("low", "low"))
close = self._get_column(kwargs.pop("close", "close"))
result = cdl_inside(open_=open_, high=high, low=low, close=close, offset=offset, **kwargs)
return self._post_process(result, **kwargs)
@@ -746,14 +735,12 @@ class AnalysisIndicators(BasePandasObject):
high = self._get_column(kwargs.pop("high", "high"))
low = self._get_column(kwargs.pop("low", "low"))
close = self._get_column(kwargs.pop("close", "close"))
result = ha(open_=open_, high=high, low=low, close=close, offset=offset, **kwargs)
return self._post_process(result, **kwargs)
# Cycles
def ebsw(self, close=None, length=None, bars=None, offset=None, **kwargs):
close = self._get_column(kwargs.pop("close", "close"))
result = ebsw(close=close, length=length, bars=bars, offset=offset, **kwargs)
return self._post_process(result, **kwargs)
@@ -761,7 +748,6 @@ class AnalysisIndicators(BasePandasObject):
def ao(self, fast=None, slow=None, offset=None, **kwargs):
high = self._get_column(kwargs.pop("high", "high"))
low = self._get_column(kwargs.pop("low", "low"))
result = ao(high=high, low=low, fast=fast, slow=slow, offset=offset, **kwargs)
return self._post_process(result, **kwargs)
@@ -780,7 +766,6 @@ class AnalysisIndicators(BasePandasObject):
high = self._get_column(kwargs.pop("high", "high"))
low = self._get_column(kwargs.pop("low", "low"))
close = self._get_column(kwargs.pop("close", "close"))
result = bop(open_=open_, high=high, low=low, close=close, percentage=percentage, offset=offset, **kwargs)
return self._post_process(result, **kwargs)
@@ -789,7 +774,6 @@ class AnalysisIndicators(BasePandasObject):
high = self._get_column(kwargs.pop("high", "high"))
low = self._get_column(kwargs.pop("low", "low"))
close = self._get_column(kwargs.pop("close", "close"))
result = brar(open_=open_, high=high, low=low, close=close, length=length, scalar=scalar, drift=drift, offset=offset, **kwargs)
return self._post_process(result, **kwargs)
@@ -797,7 +781,6 @@ class AnalysisIndicators(BasePandasObject):
high = self._get_column(kwargs.pop("high", "high"))
low = self._get_column(kwargs.pop("low", "low"))
close = self._get_column(kwargs.pop("close", "close"))
result = cci(high=high, low=low, close=close, length=length, c=c, offset=offset, **kwargs)
return self._post_process(result, **kwargs)
@@ -830,14 +813,12 @@ class AnalysisIndicators(BasePandasObject):
high = self._get_column(kwargs.pop("high", "high"))
low = self._get_column(kwargs.pop("low", "low"))
close = self._get_column(kwargs.pop("close", "close"))
result = eri(high=high, low=low, close=close, length=length, offset=offset, **kwargs)
return self._post_process(result, **kwargs)
def fisher(self, length=None, signal=None, offset=None, **kwargs):
high = self._get_column(kwargs.pop("high", "high"))
low = self._get_column(kwargs.pop("low", "low"))
result = fisher(high=high, low=low, length=length, signal=signal, offset=offset, **kwargs)
return self._post_process(result, **kwargs)
@@ -856,7 +837,6 @@ class AnalysisIndicators(BasePandasObject):
high = self._get_column(kwargs.pop("high", "high"))
low = self._get_column(kwargs.pop("low", "low"))
close = self._get_column(kwargs.pop("close", "close"))
result = kdj(high=high, low=low, close=close, length=length, signal=signal, offset=offset, **kwargs)
return self._post_process(result, **kwargs)
@@ -879,7 +859,6 @@ class AnalysisIndicators(BasePandasObject):
high = self._get_column(kwargs.pop("high", "high"))
low = self._get_column(kwargs.pop("low", "low"))
close = self._get_column(kwargs.pop("close", "close"))
result = pgo(high=high, low=low, close=close, length=length, offset=offset, **kwargs)
return self._post_process(result, **kwargs)
@@ -926,7 +905,6 @@ class AnalysisIndicators(BasePandasObject):
high = self._get_column(kwargs.pop("high", "high"))
low = self._get_column(kwargs.pop("low", "low"))
close = self._get_column(kwargs.pop("close", "close"))
result = rvgi(open_=open_, high=high, low=low, close=close, length=length, swma_length=swma_length, offset=offset, **kwargs)
return self._post_process(result, **kwargs)
@@ -944,7 +922,6 @@ class AnalysisIndicators(BasePandasObject):
high = self._get_column(kwargs.pop("high", "high"))
low = self._get_column(kwargs.pop("low", "low"))
close = self._get_column(kwargs.pop("close", "close"))
result = squeeze(high=high, low=low, close=close, bb_length=bb_length, bb_std=bb_std, kc_length=kc_length, kc_scalar=kc_scalar, mom_length=mom_length, mom_smooth=mom_smooth, use_tr=use_tr, offset=offset, **kwargs)
return self._post_process(result, **kwargs)
@@ -952,7 +929,6 @@ class AnalysisIndicators(BasePandasObject):
high = self._get_column(kwargs.pop("high", "high"))
low = self._get_column(kwargs.pop("low", "low"))
close = self._get_column(kwargs.pop("close", "close"))
result = stoch(high=high, low=low, close=close, fast_k=fast_k, slow_k=slow_k, slow_d=slow_d, offset=offset, **kwargs)
return self._post_process(result, **kwargs)
@@ -960,7 +936,6 @@ class AnalysisIndicators(BasePandasObject):
high = self._get_column(kwargs.pop("high", "high"))
low = self._get_column(kwargs.pop("low", "low"))
close = self._get_column(kwargs.pop("close", "close"))
result = stochrsi(high=high, low=low, close=close, length=length, rsi_length=rsi_length, k=k, d=d, offset=offset, **kwargs)
return self._post_process(result, **kwargs)
@@ -978,7 +953,6 @@ class AnalysisIndicators(BasePandasObject):
high = self._get_column(kwargs.pop("high", "high"))
low = self._get_column(kwargs.pop("low", "low"))
close = self._get_column(kwargs.pop("close", "close"))
result = uo(high=high, low=low, close=close, fast=fast, medium=medium, slow=slow, fast_w=fast_w, medium_w=medium_w, slow_w=slow_w, drift=drift, offset=offset, **kwargs)
return self._post_process(result, **kwargs)
@@ -986,7 +960,6 @@ class AnalysisIndicators(BasePandasObject):
high = self._get_column(kwargs.pop("high", "high"))
low = self._get_column(kwargs.pop("low", "low"))
close = self._get_column(kwargs.pop("close", "close"))
result = willr(high=high, low=low, close=close, length=length, percentage=percentage, offset=offset, **kwargs)
return self._post_process(result, **kwargs)
@@ -995,7 +968,7 @@ class AnalysisIndicators(BasePandasObject):
close = self._get_column(kwargs.pop("close", "close"))
result = alma(close=close, length=length, sigma=sigma, distribution_offset=distribution_offset, offset=offset, **kwargs)
return self._post_process(result, **kwargs)
def dema(self, length=None, offset=None, **kwargs):
close = self._get_column(kwargs.pop("close", "close"))
result = dema(close=close, length=length, offset=offset, **kwargs)
@@ -1015,14 +988,12 @@ class AnalysisIndicators(BasePandasObject):
high = self._get_column(kwargs.pop("high", "high"))
low = self._get_column(kwargs.pop("low", "low"))
close = self._get_column(kwargs.pop("close", "close"))
result = hilo(high=high, low=low, close=close, high_length=high_length, low_length=low_length, mamode=mamode, offset=offset, **kwargs)
return self._post_process(result, **kwargs)
def hl2(self, offset=None, **kwargs):
high = self._get_column(kwargs.pop("high", "high"))
low = self._get_column(kwargs.pop("low", "low"))
result = hl2(high=high, low=low, offset=offset, **kwargs)
return self._post_process(result, **kwargs)
@@ -1030,7 +1001,6 @@ class AnalysisIndicators(BasePandasObject):
high = self._get_column(kwargs.pop("high", "high"))
low = self._get_column(kwargs.pop("low", "low"))
close = self._get_column(kwargs.pop("close", "close"))
result = hlc3(high=high, low=low, close=close, offset=offset, **kwargs)
return self._post_process(result, **kwargs)
@@ -1038,7 +1008,7 @@ class AnalysisIndicators(BasePandasObject):
close = self._get_column(kwargs.pop("close", "close"))
result = hma(close=close, length=length, offset=offset, **kwargs)
return self._post_process(result, **kwargs)
def hwma(self, na=None, nb=None, nc=None, offset=None, **kwargs):
close = self._get_column(kwargs.pop("close", "close"))
result = hwma(close=close, na=na, nb=nb, nc=nc, offset=offset, **kwargs)
@@ -1053,7 +1023,6 @@ class AnalysisIndicators(BasePandasObject):
high = self._get_column(kwargs.pop("high", "high"))
low = self._get_column(kwargs.pop("low", "low"))
close = self._get_column(kwargs.pop("close", "close"))
result, span = ichimoku(high=high, low=low, close=close, tenkan=tenkan, kijun=kijun, senkou=senkou, offset=offset, **kwargs)
self._add_prefix_suffix(result, **kwargs)
self._add_prefix_suffix(span, **kwargs)
@@ -1079,7 +1048,6 @@ class AnalysisIndicators(BasePandasObject):
def midprice(self, length=None, offset=None, **kwargs):
high = self._get_column(kwargs.pop("high", "high"))
low = self._get_column(kwargs.pop("low", "low"))
result = midprice(high=high, low=low, length=length, offset=offset, **kwargs)
return self._post_process(result, **kwargs)
@@ -1120,7 +1088,6 @@ class AnalysisIndicators(BasePandasObject):
high = self._get_column(kwargs.pop("high", "high"))
low = self._get_column(kwargs.pop("low", "low"))
close = self._get_column(kwargs.pop("close", "close"))
result = supertrend(high=high, low=low, close=close, length=length, multiplier=multiplier, offset=offset, **kwargs)
return self._post_process(result, **kwargs)
@@ -1164,7 +1131,6 @@ class AnalysisIndicators(BasePandasObject):
def vwma(self, volume=None, length=None, offset=None, **kwargs):
close = self._get_column(kwargs.pop("close", "close"))
volume = self._get_column(kwargs.pop("volume", "volume"))
result = vwma(close=close, volume=close, length=length, offset=offset, **kwargs)
return self._post_process(result, **kwargs)
@@ -1172,7 +1138,6 @@ class AnalysisIndicators(BasePandasObject):
high = self._get_column(kwargs.pop("high", "high"))
low = self._get_column(kwargs.pop("low", "low"))
close = self._get_column(kwargs.pop("close", "close"))
result = wcp(high=high, low=low, close=close, offset=offset, **kwargs)
return self._post_process(result, **kwargs)
@@ -1256,7 +1221,6 @@ class AnalysisIndicators(BasePandasObject):
high = self._get_column(kwargs.pop("high", "high"))
low = self._get_column(kwargs.pop("low", "low"))
close = self._get_column(kwargs.pop("close", "close"))
result = adx(high=high, low=low, close=close, length=length, scalar=scalar, drift=drift, offset=offset, **kwargs)
return self._post_process(result, **kwargs)
@@ -1268,7 +1232,6 @@ class AnalysisIndicators(BasePandasObject):
def aroon(self, length=None, scalar=None, offset=None, **kwargs):
high = self._get_column(kwargs.pop("high", "high"))
low = self._get_column(kwargs.pop("low", "low"))
result = aroon(high=high, low=low, length=length, scalar=scalar, offset=offset, **kwargs)
return self._post_process(result, **kwargs)
@@ -1276,7 +1239,6 @@ class AnalysisIndicators(BasePandasObject):
high = self._get_column(kwargs.pop("high", "high"))
low = self._get_column(kwargs.pop("low", "low"))
close = self._get_column(kwargs.pop("close", "close"))
result = chop(high=high, low=low, close=close, length=length, atr_length=atr_length, scalar=scalar, drift=drift, offset=offset, **kwargs)
return self._post_process(result, **kwargs)
@@ -1284,7 +1246,6 @@ class AnalysisIndicators(BasePandasObject):
high = self._get_column(kwargs.pop("high", "high"))
low = self._get_column(kwargs.pop("low", "low"))
close = self._get_column(kwargs.pop("close", "close"))
result = cksp(high=high, low=low, close=close, p=p, x=x, q=q, offset=offset, **kwargs)
return self._post_process(result, **kwargs)
@@ -1325,7 +1286,6 @@ class AnalysisIndicators(BasePandasObject):
def qstick(self, length=None, offset=None, **kwargs):
open_ = self._get_column(kwargs.pop("open", "open"))
close = self._get_column(kwargs.pop("close", "close"))
result = qstick(open_=open_, close=close, length=length, offset=offset, **kwargs)
return self._post_process(result, **kwargs)
@@ -1340,7 +1300,6 @@ class AnalysisIndicators(BasePandasObject):
high = self._get_column(kwargs.pop("high", "high"))
low = self._get_column(kwargs.pop("low", "low"))
close = self._get_column(kwargs.pop("close", "close"))
result = supertrend(high=high, low=low, close=close, period=period, multiplier=multiplier, mamode=mamode, drift=drift, offset=offset, **kwargs)
return self._post_process(result, **kwargs)
@@ -1348,7 +1307,6 @@ class AnalysisIndicators(BasePandasObject):
high = self._get_column(kwargs.pop("high", "high"))
low = self._get_column(kwargs.pop("low", "low"))
close = self._get_column(kwargs.pop("close", "close"))
result = ttm_trend(high=high, low=low, close=close, length=length, offset=offset, **kwargs)
return self._post_process(result, **kwargs)
@@ -1356,7 +1314,6 @@ class AnalysisIndicators(BasePandasObject):
high = self._get_column(kwargs.pop("high", "high"))
low = self._get_column(kwargs.pop("low", "low"))
close = self._get_column(kwargs.pop("close", "close"))
result = vortex(high=high, low=low, close=close, drift=drift, offset=offset, **kwargs)
return self._post_process(result, **kwargs)
@@ -1365,49 +1322,33 @@ class AnalysisIndicators(BasePandasObject):
a = self._get_column(kwargs.pop("close", "a"))
b = self._get_column(kwargs.pop("close", "b"))
result = above(series_a=a, series_b=b, asint=asint, offset=offset, **kwargs)
# self._add_prefix_suffix(result, **kwargs)
# self._append(result, **kwargs)
return self._post_process(result, **kwargs)
def above_value(self, value=None, asint=True, offset=None, **kwargs):
a = self._get_column(kwargs.pop("close", "a"))
result = above_value(series_a=a, value=value, asint=asint, offset=offset, **kwargs)
# self._add_prefix_suffix(result, **kwargs)
# self._append(result, **kwargs)
return self._post_process(result, **kwargs)
def below(self, asint=True, offset=None, **kwargs):
a = self._get_column(kwargs.pop("close", "a"))
b = self._get_column(kwargs.pop("close", "b"))
result = below(series_a=a, series_b=b, asint=asint, offset=offset, **kwargs)
# self._add_prefix_suffix(result, **kwargs)
# self._append(result, **kwargs)
return self._post_process(result, **kwargs)
def below_value(self, value=None, asint=True, offset=None, **kwargs):
a = self._get_column(kwargs.pop("close", "a"))
result = below_value(series_a=a, value=value, asint=asint, offset=offset, **kwargs)
# self._add_prefix_suffix(result, **kwargs)
# self._append(result, **kwargs)
return self._post_process(result, **kwargs)
def cross(self, above=True, asint=True, offset=None, **kwargs):
a = self._get_column(kwargs.pop("close", "a"))
b = self._get_column(kwargs.pop("close", "b"))
result = cross(series_a=a, series_b=b, above=above, asint=asint, offset=offset, **kwargs)
# self._add_prefix_suffix(result, **kwargs)
# self._append(result, **kwargs)
return self._post_process(result, **kwargs)
def cross_value(self, value=None, above=True, asint=True, offset=None, **kwargs):
a = self._get_column(a, f"{a}")
result = cross_value(series_a=a, value=value, above=above, asint=asint, offset=offset, **kwargs)
# self._add_prefix_suffix(result, **kwargs)
# self._append(result, **kwargs)
return self._post_process(result, **kwargs)
# Volatility
@@ -1415,7 +1356,6 @@ class AnalysisIndicators(BasePandasObject):
high = self._get_column(kwargs.pop("high", "high"))
low = self._get_column(kwargs.pop("low", "low"))
close = self._get_column(kwargs.pop("close", "close"))
result = aberration(high=high, low=low, close=close, length=length, atr_length=atr_length, offset=offset, **kwargs)
return self._post_process(result, **kwargs)
@@ -1423,7 +1363,6 @@ class AnalysisIndicators(BasePandasObject):
high = self._get_column(kwargs.pop("high", "high"))
low = self._get_column(kwargs.pop("low", "low"))
close = self._get_column(kwargs.pop("close", "close"))
result = accbands(high=high, low=low, close=close, length=length, c=c, mamode=mamode, offset=offset, **kwargs)
return self._post_process(result, **kwargs)
@@ -1431,7 +1370,6 @@ class AnalysisIndicators(BasePandasObject):
high = self._get_column(kwargs.pop("high", "high"))
low = self._get_column(kwargs.pop("low", "low"))
close = self._get_column(kwargs.pop("close", "close"))
result = atr(high=high, low=low, close=close, length=length, mamode=mamode, offset=offset, **kwargs)
return self._post_process(result, **kwargs)
@@ -1443,7 +1381,6 @@ class AnalysisIndicators(BasePandasObject):
def donchian(self, lower_length=None, upper_length=None, offset=None, **kwargs):
high = self._get_column(kwargs.pop("high", "high"))
low = self._get_column(kwargs.pop("low", "low"))
result = donchian(high=high, low=low, lower_length=lower_length, upper_length=upper_length, offset=offset, **kwargs)
return self._post_process(result, **kwargs)
@@ -1456,14 +1393,12 @@ class AnalysisIndicators(BasePandasObject):
high = self._get_column(kwargs.pop("high", "high"))
low = self._get_column(kwargs.pop("low", "low"))
close = self._get_column(kwargs.pop("close", "close"))
result = kc(high=high, low=low, close=close, length=length, scalar=scalar, mamode=mamode, offset=offset, **kwargs)
return self._post_process(result, **kwargs)
def massi(self, fast=None, slow=None, offset=None, **kwargs):
high = self._get_column(kwargs.pop("high", "high"))
low = self._get_column(kwargs.pop("low", "low"))
result = massi(high=high, low=low, fast=fast, slow=slow, offset=offset, **kwargs)
return self._post_process(result, **kwargs)
@@ -1471,7 +1406,6 @@ class AnalysisIndicators(BasePandasObject):
high = self._get_column(kwargs.pop("high", "high"))
low = self._get_column(kwargs.pop("low", "low"))
close = self._get_column(kwargs.pop("close", "close"))
result = natr(high=high, low=low, close=close, length=length, mamode=mamode, scalar=scalar, offset=offset, **kwargs)
return self._post_process(result, **kwargs)
@@ -1480,7 +1414,6 @@ class AnalysisIndicators(BasePandasObject):
high = self._get_column(kwargs.pop("high", "high"))
low = self._get_column(kwargs.pop("low", "low"))
close = self._get_column(kwargs.pop("close", "close"))
result = pdist(open_=open_, high=high, low=low, close=close, drift=drift, offset=offset, **kwargs)
return self._post_process(result, **kwargs)
@@ -1488,14 +1421,12 @@ class AnalysisIndicators(BasePandasObject):
high = self._get_column(kwargs.pop("high", "high"))
low = self._get_column(kwargs.pop("low", "low"))
close = self._get_column(kwargs.pop("close", "close"))
result = rvi(high=high, low=low, close=close, length=length, scalar=scalar, refined=refined, thirds=thirds, mamode=mamode, drift=drift, offset=offset, **kwargs)
return self._post_process(result, **kwargs)
def thermo(self, long=None, short= None, length=None, mamode=None, drift=None, offset=None, **kwargs):
high = self._get_column(kwargs.pop("high", "high"))
low = self._get_column(kwargs.pop("low", "low"))
result = thermo(high=high, low=low, long=long, short=short, length=length, mamode=mamode, drift=drift, offset=offset, **kwargs)
return self._post_process(result, **kwargs)
@@ -1503,7 +1434,6 @@ class AnalysisIndicators(BasePandasObject):
high = self._get_column(kwargs.pop("high", "high"))
low = self._get_column(kwargs.pop("low", "low"))
close = self._get_column(kwargs.pop("close", "close"))
result = true_range(high=high, low=low, close=close, drift=drift, offset=offset, **kwargs)
return self._post_process(result, **kwargs)
@@ -1520,7 +1450,6 @@ class AnalysisIndicators(BasePandasObject):
low = self._get_column(kwargs.pop("low", "low"))
close = self._get_column(kwargs.pop("close", "close"))
volume = self._get_column(kwargs.pop("volume", "volume"))
result = ad(high=high, low=low, close=close, volume=volume, open_=open_, signed=signed, offset=offset, **kwargs)
return self._post_process(result, **kwargs)
@@ -1531,14 +1460,12 @@ class AnalysisIndicators(BasePandasObject):
low = self._get_column(kwargs.pop("low", "low"))
close = self._get_column(kwargs.pop("close", "close"))
volume = self._get_column(kwargs.pop("volume", "volume"))
result = adosc(high=high, low=low, close=close, volume=volume, open_=open_, fast=fast, slow=slow, signed=signed, offset=offset, **kwargs)
return self._post_process(result, **kwargs)
def aobv(self, fast=None, slow=None, mamode=None, max_lookback=None, min_lookback=None, offset=None, **kwargs):
close = self._get_column(kwargs.pop("close", "close"))
volume = self._get_column(kwargs.pop("volume", "volume"))
result = aobv(close=close, volume=volume, fast=fast, slow=slow, mamode=mamode, max_lookback=max_lookback, min_lookback=min_lookback, offset=offset, **kwargs)
return self._post_process(result, **kwargs)
@@ -1549,14 +1476,12 @@ class AnalysisIndicators(BasePandasObject):
low = self._get_column(kwargs.pop("low", "low"))
close = self._get_column(kwargs.pop("close", "close"))
volume = self._get_column(kwargs.pop("volume", "volume"))
result = cmf(high=high, low=low, close=close, volume=volume, open_=open_, length=length, offset=offset, **kwargs)
return self._post_process(result, **kwargs)
def efi(self, length=None, mamode=None, offset=None, drift=None, **kwargs):
close = self._get_column(kwargs.pop("close", "close"))
volume = self._get_column(kwargs.pop("volume", "volume"))
result = efi(close=close, volume=volume, length=length, offset=offset, mamode=mamode, drift=drift, **kwargs)
return self._post_process(result, **kwargs)
@@ -1565,7 +1490,6 @@ class AnalysisIndicators(BasePandasObject):
low = self._get_column(kwargs.pop("low", "low"))
close = self._get_column(kwargs.pop("close", "close"))
volume = self._get_column(kwargs.pop("volume", "volume"))
result = eom(high=high, low=low, close=close, volume=volume, length=length, divisor=divisor, offset=offset, drift=drift, **kwargs)
return self._post_process(result, **kwargs)
@@ -1574,55 +1498,47 @@ class AnalysisIndicators(BasePandasObject):
low = self._get_column(kwargs.pop("low", "low"))
close = self._get_column(kwargs.pop("close", "close"))
volume = self._get_column(kwargs.pop("volume", "volume"))
result = mfi(high=high, low=low, close=close, volume=volume, length=length, drift=drift, offset=offset, **kwargs)
return self._post_process(result, **kwargs)
def nvi(self, length=None, initial=None, signed=True, offset=None, **kwargs):
close = self._get_column(kwargs.pop("close", "close"))
volume = self._get_column(kwargs.pop("volume", "volume"))
result = nvi(close=close, volume=volume, length=length, initial=initial, signed=signed, offset=offset, **kwargs)
return self._post_process(result, **kwargs)
def obv(self, offset=None, **kwargs):
close = self._get_column(kwargs.pop("close", "close"))
volume = self._get_column(kwargs.pop("volume", "volume"))
result = obv(close=close, volume=volume, offset=offset, **kwargs)
return self._post_process(result, **kwargs)
def pvi(self, length=None, initial=None, signed=True, offset=None, **kwargs):
close = self._get_column(kwargs.pop("close", "close"))
volume = self._get_column(kwargs.pop("volume", "volume"))
result = pvi(close=close, volume=volume, length=length, initial=initial, signed=signed, offset=offset, **kwargs)
return self._post_process(result, **kwargs)
def pvol(self, volume=None, offset=None, **kwargs):
close = self._get_column(kwargs.pop("close", "close"))
volume = self._get_column(kwargs.pop("volume", "volume"))
result = pvol(close=close, volume=volume, offset=offset, **kwargs)
return self._post_process(result, **kwargs)
def pvr(self, **kwargs):
close = self._get_column(kwargs.pop("close", "close"))
volume = self._get_column(kwargs.pop("volume", "volume"))
result = pvr(close=close, volume=volume)
return self._post_process(result, **kwargs)
def pvt(self, offset=None, **kwargs):
close = self._get_column(kwargs.pop("close", "close"))
volume = self._get_column(kwargs.pop("volume", "volume"))
result = pvt(close=close, volume=volume, offset=offset, **kwargs)
return self._post_process(result, **kwargs)
def vp(self, width=None, percent=None, **kwargs):
close = self._get_column(kwargs.pop("close", "close"))
volume = self._get_column(kwargs.pop("volume", "volume"))
result = vp(close=close, volume=volume, width=width, percent=percent, **kwargs)
return self._post_process(result, **kwargs)