diff --git a/README.md b/README.md index 07b2308..e5711cb 100644 --- a/README.md +++ b/README.md @@ -118,7 +118,7 @@ $ pip install pandas_ta Latest Version -------------- -Best choice! Version: *0.3.42b* +Best choice! Version: *0.3.43b* * Includes all fixes and updates between **pypi** and what is covered in this README. ```sh $ pip install -U git+https://github.com/twopirllc/pandas-ta @@ -219,7 +219,7 @@ Thanks for using **Pandas TA**! _Thank you for your contributions!_ - +
@@ -1034,7 +1034,7 @@ help(ta.sample) ## **New Indicators** * _Bill Williams Alligator_ (**alligator**) attempts to identify if an asset is trending. See ```help(ta.alligator)``` -* _Cross Signals_ (**xsignals**) was created by Kevin Johnson. It is a wrapper of Trade Signals that returns Trends, Trades, Entries and Exits. Cross Signals are commonly used for **bbands**, **rsi**, **zscore** crossing some value either above or below two values at different times. See ```help(ta.xsignals)``` +* _Cross Signals_ (**xsignals**) is a wrapper of Trend Signals (```help(ta.tsignals)```) that returns Trends, Trades, Entries and Exits. Cross Signals are commonly used for **bbands**, **rsi**, **zscore** crossing some value either above or below two values at different times. See ```help(ta.xsignals)``` * _Directional Movement_ (**dm**) developed by J. Welles Wilder in 1978 attempts to determine which direction the price of an asset is moving. See ```help(ta.dm)``` * _Jurik Moving Average_ (**jma**) attempts to eliminate noise to see the "true" underlying activity. See: ```help(ta.jma)``` * _Smoothed Moving Average_ (**smma**) can be used to confirm trends and define areas of support and resistance. See: ```help(ta.smma)``` @@ -1069,7 +1069,7 @@ help(ta.sample) # **Support** Feeling generous, like the package or want to see it become more a mature package? -* Donations help cover data and API costs so that other platform indicataors (like [TradingView](https://github.com/tradingview/)) are accurate and consistent. +* Donations help cover data and API costs so platform indicataors (like [TradingView](https://github.com/tradingview/)) are accurate. * I appreciate **ALL** of those that have bought me Coffee/Beer/Wine et al. I greatly appreciate it! 😎
diff --git a/pandas_ta/momentum/stoch.py b/pandas_ta/momentum/stoch.py index e83537d..7f5654a 100644 --- a/pandas_ta/momentum/stoch.py +++ b/pandas_ta/momentum/stoch.py @@ -40,7 +40,7 @@ def stoch(high, low, close, k=None, d=None, smooth_k=None, mamode=None, talib=No Returns: pd.DataFrame: %K, %D columns. """ - # Validate arguments + # Validate k = k if k and k > 0 else 14 d = d if d and d > 0 else 3 smooth_k = smooth_k if smooth_k and smooth_k > 0 else 3 @@ -54,7 +54,7 @@ def stoch(high, low, close, k=None, d=None, smooth_k=None, mamode=None, talib=No if high is None or low is None or close is None: return - # Calculate Result + # Calculate if Imports["talib"] and mode_tal: from talib import STOCH stoch_ = STOCH(high, low, close, k, d, tal_ma(mamode), d, tal_ma(mamode)) @@ -74,7 +74,7 @@ def stoch(high, low, close, k=None, d=None, smooth_k=None, mamode=None, talib=No stoch_k = stoch_k.shift(offset) stoch_d = stoch_d.shift(offset) - # Handle fills + # Fill if "fillna" in kwargs: stoch_k.fillna(kwargs["fillna"], inplace=True) stoch_d.fillna(kwargs["fillna"], inplace=True) @@ -82,14 +82,14 @@ def stoch(high, low, close, k=None, d=None, smooth_k=None, mamode=None, talib=No stoch_k.fillna(method=kwargs["fill_method"], inplace=True) stoch_d.fillna(method=kwargs["fill_method"], inplace=True) - # Name and Categorize it + # Name and Category _name = "STOCH" _props = f"_{k}_{d}_{smooth_k}" stoch_k.name = f"{_name}k{_props}" stoch_d.name = f"{_name}d{_props}" stoch_k.category = stoch_d.category = "momentum" - # Prepare DataFrame to return + # Return DataFrame data = {stoch_k.name: stoch_k, stoch_d.name: stoch_d} df = DataFrame(data, index=close.index) df.name = f"{_name}{_props}" diff --git a/pandas_ta/momentum/stochf.py b/pandas_ta/momentum/stochf.py index f5e536e..bace768 100644 --- a/pandas_ta/momentum/stochf.py +++ b/pandas_ta/momentum/stochf.py @@ -34,7 +34,7 @@ def stochf(high, low, close, k=None, d=None, mamode=None, talib=None, offset=Non Returns: pd.DataFrame: Fast %K, %D columns. """ - # Validate arguments + # Validate k = k if k and k > 0 else 14 d = d if d and d > 0 else 3 _length = max(k, d) @@ -47,7 +47,7 @@ def stochf(high, low, close, k=None, d=None, mamode=None, talib=None, offset=Non if high is None or low is None or close is None: return - # Calculate Result + # Calculate if Imports["talib"] and mode_tal: from talib import STOCHF stochf_ = STOCHF(high, low, close, k, d, tal_ma(mamode)) @@ -65,7 +65,7 @@ def stochf(high, low, close, k=None, d=None, mamode=None, talib=None, offset=Non stochf_k = stochf_k.shift(offset) stochf_d = stochf_d.shift(offset) - # Handle fills + # Fill if "fillna" in kwargs: stochf_k.fillna(kwargs["fillna"], inplace=True) stochf_d.fillna(kwargs["fillna"], inplace=True) @@ -73,14 +73,14 @@ def stochf(high, low, close, k=None, d=None, mamode=None, talib=None, offset=Non stochf_k.fillna(method=kwargs["fill_method"], inplace=True) stochf_d.fillna(method=kwargs["fill_method"], inplace=True) - # Name and Categorize it + # Name and Category _name = "STOCHF" _props = f"_{k}_{d}" stochf_k.name = f"{_name}k{_props}" stochf_d.name = f"{_name}d{_props}" stochf_k.category = stochf_d.category = "momentum" - # Prepare DataFrame to return + # Return DataFrame data = {stochf_k.name: stochf_k, stochf_d.name: stochf_d} df = DataFrame(data, index=close.index) df.name = f"{_name}{_props}" diff --git a/pandas_ta/momentum/stochrsi.py b/pandas_ta/momentum/stochrsi.py index eb545a3..23899e0 100644 --- a/pandas_ta/momentum/stochrsi.py +++ b/pandas_ta/momentum/stochrsi.py @@ -36,7 +36,7 @@ def stochrsi(close, length=None, rsi_length=None, k=None, d=None, mamode=None, o Returns: pd.DataFrame: RSI %K, RSI %D columns. """ - # Validate arguments + # Validate length = length if length and length > 0 else 14 rsi_length = rsi_length if rsi_length and rsi_length > 0 else 14 k = k if k and k > 0 else 3 @@ -47,7 +47,7 @@ def stochrsi(close, length=None, rsi_length=None, k=None, d=None, mamode=None, o if close is None: return - # Calculate Result + # Calculate rsi_ = rsi(close, length=rsi_length) lowest_rsi = rsi_.rolling(length).min() highest_rsi = rsi_.rolling(length).max() @@ -63,7 +63,7 @@ def stochrsi(close, length=None, rsi_length=None, k=None, d=None, mamode=None, o stochrsi_k = stochrsi_k.shift(offset) stochrsi_d = stochrsi_d.shift(offset) - # Handle fills + # Fill if "fillna" in kwargs: stochrsi_k.fillna(kwargs["fillna"], inplace=True) stochrsi_d.fillna(kwargs["fillna"], inplace=True) @@ -71,14 +71,14 @@ def stochrsi(close, length=None, rsi_length=None, k=None, d=None, mamode=None, o stochrsi_k.fillna(method=kwargs["fill_method"], inplace=True) stochrsi_d.fillna(method=kwargs["fill_method"], inplace=True) - # Name and Categorize it + # Name and Categorize _name = "STOCHRSI" _props = f"_{length}_{rsi_length}_{k}_{d}" stochrsi_k.name = f"{_name}k{_props}" stochrsi_d.name = f"{_name}d{_props}" stochrsi_k.category = stochrsi_d.category = "momentum" - # Prepare DataFrame to return + # Return DataFrame data = {stochrsi_k.name: stochrsi_k, stochrsi_d.name: stochrsi_d} df = DataFrame(data) df.name = f"{_name}{_props}" diff --git a/setup.py b/setup.py index 76c36da..d078075 100644 --- a/setup.py +++ b/setup.py @@ -19,7 +19,7 @@ setup( "pandas_ta.volatility", "pandas_ta.volume" ], - version=".".join(("0", "3", "42b")), + version=".".join(("0", "3", "43b")), description=long_description, long_description=long_description, author="Kevin Johnson",