12,159 stars · BSD-2-Clause, read from /blob/master/LICENSE on 2026-09-29; short and permissive, and the file carries no named copyright holder · 0.8.1 (2026-09-21), from PyPI. THE LARGEST YEAR-TRAP ERROR IN THIS ARCHIVE: /releases/latest prints "21 Sep" with no year and it was read as 2017, a NINE-YEAR error where the previous record was two years. ungh's pushedAt of 2026-07-29 is also stale, because that release shipped on 21 September 2026. · Track this in Scout
More than 150 standard chart indicators for Python, computed by the long-established TA-Lib engine.
▶Repo detailsthe review · specs · pros & cons · install
What it is
A Python wrapper at 12,159 stars around TA-Lib, a C library that has been the reference implementation of technical indicators since the late 1990s. Version 0.8.1 was published to PyPI on 21 September 2026, and it supports Python 3.9 through 3.14.
What it is good for. Anyone testing a trading idea, drawing a chart that a reader recognises, or building features for a model from price history. The value is agreement rather than cleverness: when your RSI matches everybody else's RSI, an argument about results is about the idea instead of about the arithmetic.
- More than 150 indicators including ADX, MACD, RSI, Stochastic and Bollinger Bands, plus a large set of candlestick pattern recognisers.
- Prebuilt packages now include the C library. From version 0.6.5 onwards the project builds binary wheels for Linux, macOS and Windows across several processor types, so the old dependency fight is gone on common machines.
- BSD-2-Clause, read from the licence file on the
masterbranch. It is a short permissive licence with no conditions beyond keeping the notice.
- The README still states plainly that TA-Lib itself must be installed to use it, and the wheels are the exception rather than the rule. On an unusual platform or an old Python you are back to compiling C by hand.
- The interface is terse because it mirrors the C library. Functions are called things like
CDLEVENINGDOJISTAR, arguments are positional arrays, and nothing is named the way a Python library written today would name it. - An indicator is a description of the past. Having 150 of them makes it easy to test many combinations and find one that fits history by accident.
bukosabino/ta5,100 stars, MIT, 43 indicators in pure Python with pandas and numpy; far easier to install everywhere and a much smaller set, with 122 open issues.
Track this in Scout
jealous/stockstats1,500 stars, BSD-3-Clause, covered in Edition 10; indicators appear as columns on a DataFrame when you ask for them, which is the friendliest of the three to read.
Track this in Scout
nardew/talipp536 stars, MIT; it recomputes incrementally as each new value arrives, which suits live data and is the wrong shape for bulk history.
Track this in Scout
python3 -m venv venv source venv/bin/activate python -m pip install TA-Lib
