lib-taliblisted
Install: claude install-skill howard-lynn-ye/fin-skills
# TA-Lib
The C reference every other Python indicator library is measured against — and the reason two
libraries computing "the same" RSI hand you two different backtests.
| | |
|---|---|
| pip / import | `pip install TA-Lib` · `import talib` (repo `ta-lib-python`, now the `ta-lib` org) |
| Version | **0.7.1 (2026-07-16)** · C core 0.7.1 · `requires_python >=3.9` |
| Licence | BSD-ish |
| Status | ✅ **54 wheels incl. `cp311-win_amd64`**, bundling the C library since **0.6.5 (2025-08-07)** |
## The trap that costs you money
🚨 **Every pure-Python port emits values *before* TA-Lib does, computed on partial windows —
silently wrong, not NaN.** TA-Lib's documented "unstable period" behaviour is exactly why its warm-up
start indices differ from every port. Swap libraries, or restart the calculation per symbol on a
short slice, and **the same strategy becomes two different backtests**.
Measured — TA-Lib python 0.7.1 / C core 0.7.1, pandas 3.0.5, numpy 2.4.6, 500-bar synthetic GBM,
seed 7; `maxabs` = max absolute difference over the overlapping non-NaN region:
| Library | SMA/BBands/CCI/OBV | RSI(14) | EMA(20) | ATR(14) | ADX(14) | MACD |
|---|---|---|---|---|---|---|
| **talipp 2.7.0** | exact | **1.4e-14, exact incl. warm-up start index** | 2.8e-14 | 3.2e-02 warm-up only | — | 0.155 warm-up only |
| **pandas-ta-classic 0.6.52** | ≤3e-11 | **3.6e-14** | 2.8e-14 | 8.9e-16 | 🚨 **4.25**, emits from bar 13 vs TA-Lib's 27 | 0.155 early bars |
| **ta 0.11.0** | identical | 🚨 **3.