diff --git a/README.md b/README.md
index e553654..69cbfa4 100644
--- a/README.md
+++ b/README.md
@@ -113,7 +113,7 @@ $ pip install pandas_ta
Latest Version
--------------
-Best choice! Version: *0.3.35b*
+Best choice! Version: *0.3.36b*
* 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
@@ -1000,7 +1000,7 @@ print(pf.returns_stats())
# **Sources**
-[Original TA-LIB](http://ta-lib.org/) | [TradingView](http://www.tradingview.com) | [Sierra Chart](https://search.sierrachart.com/?Query=indicators&submitted=true) | [MQL5](https://www.mql5.com) | [FM Labs](https://www.fmlabs.com/reference/default.htm) | [Pro Real Code](https://www.prorealcode.com/prorealtime-indicators) | [User 42](https://user42.tuxfamily.org/chart/manual/index.html)
+[Original TA-LIB](http://ta-lib.org/) | [TradingView](http://www.tradingview.com) | [Sierra Chart](https://search.sierrachart.com/?Query=indicators&submitted=true) | [MQL5](https://www.mql5.com) | [FM Labs](https://www.fmlabs.com/reference/default.htm) | [Pro Real Code](https://www.prorealcode.com/prorealtime-indicators) | [User 42](https://user42.tuxfamily.org/chart/manual/index.html) | [Technical Traders](http://technical.traders.com/tradersonline/FeedTT-2014.html)
diff --git a/pandas_ta/momentum/kdj.py b/pandas_ta/momentum/kdj.py
index 1874196..991572c 100644
--- a/pandas_ta/momentum/kdj.py
+++ b/pandas_ta/momentum/kdj.py
@@ -1,7 +1,6 @@
# -*- coding: utf-8 -*-
from pandas import DataFrame
-from pandas_ta.overlap import rma
-from pandas_ta.utils import get_offset, non_zero_range, verify_series
+from pandas_ta.utils import get_offset, non_zero_range, rma_pandas, verify_series
def kdj(high=None, low=None, close=None, length=None, signal=None, offset=None, **kwargs):
@@ -61,8 +60,8 @@ def kdj(high=None, low=None, close=None, length=None, signal=None, offset=None,
fastk = 100 * (close - lowest_low) / non_zero_range(highest_high, lowest_low)
- k = rma(fastk, length=signal)
- d = rma(k, length=signal)
+ k = rma_pandas(fastk, length=signal)
+ d = rma_pandas(k, length=signal)
j = 3 * k - 2 * d
# Offset
diff --git a/pandas_ta/utils/_core.py b/pandas_ta/utils/_core.py
index 40b3f0c..2497cd6 100644
--- a/pandas_ta/utils/_core.py
+++ b/pandas_ta/utils/_core.py
@@ -67,6 +67,13 @@ def recent_minimum_index(x):
return int(argmin(x[::-1]))
+def rma_pandas(series, length):
+ series = verify_series(series)
+ alpha = (1.0 / length) if length > 0 else 0.5
+ return series.ewm(alpha=alpha, min_periods=length).mean()
+
+
+
def signed_series(series: Series, initial: int, lag: int = None) -> Series:
"""Returns a Signed Series with or without an initial value
diff --git a/setup.py b/setup.py
index 74ea4cd..3a373f8 100644
--- a/setup.py
+++ b/setup.py
@@ -19,7 +19,7 @@ setup(
"pandas_ta.volatility",
"pandas_ta.volume"
],
- version=".".join(("0", "3", "35b")),
+ version=".".join(("0", "3", "36b")),
description=long_description,
long_description=long_description,
author="Kevin Johnson",
diff --git a/tests/test_indicator_overlap.py b/tests/test_indicator_overlap.py
index f2d7592..b86afba 100644
--- a/tests/test_indicator_overlap.py
+++ b/tests/test_indicator_overlap.py
@@ -1,6 +1,7 @@
from .config import CORRELATION, CORRELATION_THRESHOLD, error_analysis, sample_data, VERBOSE
from .context import pandas_ta
+from unittest import TestCase, skip
from unittest import TestCase
import pandas.testing as pdt
from pandas import DataFrame, Series