ADX slow, can be vectorized
jaymegordo opened this issue · 1 comments
I notice the ADX indicator is very slow (~1s to calculate for a df with ~200k rows), and I'm noticing the implementation uses several for loops.
I'm not exactly sure how the ADX calculation works, but in pandas_ta for example, they have a vectorized implementation which is ~10x faster. Included the TA-Lib c implementation just for comparison:
Seems like it would be easy to just copy their implementation and give attribution?
@jaymegordo Don't know talib implementation, but about pandas_ta... They use different smoothing method: it is the exponentially weighted moving average with alpha = 1 / window, adjusted version.
ta atr using another smoothing method, that cannot be vectorized, though it can be faster (~6.5 times), it requires little changes. You can find better explanation here: #326