ta icon indicating copy to clipboard operation
ta copied to clipboard

ADX slow, can be vectorized

Open jaymegordo opened this issue 2 years ago • 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: Screen Shot 2022-03-10 at 11 58 31 AM

Seems like it would be easy to just copy their implementation and give attribution?

jaymegordo avatar Mar 10 '22 20:03 jaymegordo

@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

Groni3000 avatar Nov 04 '23 13:11 Groni3000