ta-lib-takt
TA-Lib 0.8.1 for Python with a faster core. The Python package is the official TA-Lib wrapper,
unchanged (import talib); only the C library inside it is replaced by a TAKT build of TA-Lib 0.8.1.
Every output is identical to the official library, bit for bit.
Install
pip uninstall -y TA-Lib # both packages provide `import talib`
pip install ta-lib-takt
Linux x86-64 with glibc 2.29 or newer, Python 3.9 to 3.14. The faster paths need AVX2 and FMA (Intel Haswell, AMD Zen or newer); on other CPUs the original code runs. Gains need long series: for short ones (a few thousand bars) the original code runs at the original speed.
How much faster
A parameter sweep (99 periods over one million bars) through the unchanged Python wrapper, the whole process timed, against the official TA-Lib 0.8.1 wheel from PyPI. AMD Zen 3 (Threadripper PRO 5975WX), 7 interleaved rounds with takt-harness; the output was identical in every run:
| Indicator | Wall-time factor | Indicator | Wall-time factor |
|---|---|---|---|
| CCI | 6.35× | EMA | 2.17× |
| DX | 2.81× | RSI | 2.03× |
| ADX | 2.80× | BBANDS | 1.23× |
| SAR | 2.58× | MACD | 1.20× |
| STOCH | 2.18× | ATR | 1.14× |
Called from C the same library is 2.3–7.4× faster on these seven indicators, on AMD Zen 3 and Zen 4. All other TA-Lib functions run the original code. Full measurements, readings and the reproduction steps: https://taktcycles.com/showcase/talib/README.html?src=pypi
The same output, bit for bit
Every output array and both output indices match the official TA-Lib library: 4.59 million C API
calls and 40,824 calls through this Python wrapper were compared with zero differences, over random
walks, constant, alternating and volatile series, NaN and infinity inserts, magnitudes from 1e-300
to 1e300, lengths from 1 to one million and 20 periods. To check on your own data, compute the same
indicators in two virtual environments (one with TA-Lib, one with ta-lib-takt) and compare the
arrays with numpy.array_equal (NaN in the same places counts as equal: use equal_nan=True).
Your own code, this fast?
TAKT speeds up the hot code of backtests, parameter sweeps and model training, with output identical to the original, and measures the speedup before you pay. Free speed check: https://taktcycles.com/?src=pypi#start · Measurements and updates: https://t.me/taktcycles
Licence
The Python wrapper is TA-Lib's (BSD 2-clause, John Benediktsson). The C library is a modified build of TA-Lib 0.8.1 (BSD 3-clause, Mario Fortier); the source of the modified functions is not published. Both licences are included. This package is not affiliated with the TA-Lib project.
Questions, bugs, a function you want faster: https://github.com/abx-takt/ta-lib-takt/issues
Metadata
Release files for ta-lib-takt 0.8.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Built distributions (wheels)
| File | Reset | |||
|---|---|---|---|---|
| ta_lib_takt-0.8.1-cp314-cp314-manylinux_2_29_x86_64.whl | CPython 3.14 | CPython 3.14 | Linux glibc 2.29+ x86-64 | Details |
| ta_lib_takt-0.8.1-cp313-cp313-manylinux_2_29_x86_64.whl | CPython 3.13 | CPython 3.13 | Linux glibc 2.29+ x86-64 | Details |
| ta_lib_takt-0.8.1-cp312-cp312-manylinux_2_29_x86_64.whl | CPython 3.12 | CPython 3.12 | Linux glibc 2.29+ x86-64 | Details |
| ta_lib_takt-0.8.1-cp311-cp311-manylinux_2_29_x86_64.whl | CPython 3.11 | CPython 3.11 | Linux glibc 2.29+ x86-64 | Details |
| ta_lib_takt-0.8.1-cp310-cp310-manylinux_2_29_x86_64.whl | CPython 3.10 | CPython 3.10 | Linux glibc 2.29+ x86-64 | Details |
| ta_lib_takt-0.8.1-cp39-cp39-manylinux_2_29_x86_64.whl | CPython 3.9 | CPython 3.9 | Linux glibc 2.29+ x86-64 | Details |
Total release size: 21.9 MB
Release files / ta_lib_takt-0.8.1-cp314-cp314-manylinux_2_29_x86_64.whl
| Download URL | ta_lib_takt-0.8.1-cp314-cp314-manylinux_2_29_x86_64.whl |
|---|---|
| Size | 3.7 MB |
| Tags | CPython 3.14 Linux glibc 2.29+ x86-64 |
|
SHA-256 checksum How to use checksums |
afe6f1d10c26a16144735b554980a3404850b5d5e7c561b4a28e7fe3326f8aaf
|
|
BLAKE2b-256 checksum How to use checksums |
ae9eae63929939d1c0a469dc04f999b2cd4bc19d941de2e7510079e8c8e9259f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.3
|
Release files / ta_lib_takt-0.8.1-cp313-cp313-manylinux_2_29_x86_64.whl
| Download URL | ta_lib_takt-0.8.1-cp313-cp313-manylinux_2_29_x86_64.whl |
|---|---|
| Size | 3.7 MB |
| Tags | CPython 3.13 Linux glibc 2.29+ x86-64 |
|
SHA-256 checksum How to use checksums |
78b81ebe44644b710670d3e167cd872b6e3405e95e71ba4a244a3021270a56dc
|
|
BLAKE2b-256 checksum How to use checksums |
a85f349aa33779d04debf513a40cf343107e81bb2797e5471eb6b38fc7959e74
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.3
|
Release files / ta_lib_takt-0.8.1-cp312-cp312-manylinux_2_29_x86_64.whl
| Download URL | ta_lib_takt-0.8.1-cp312-cp312-manylinux_2_29_x86_64.whl |
|---|---|
| Size | 3.7 MB |
| Tags | CPython 3.12 Linux glibc 2.29+ x86-64 |
|
SHA-256 checksum How to use checksums |
86b0410903a4dc0e2b53cb71ef702f69e7786a8eb8966897c477a2fa951da26b
|
|
BLAKE2b-256 checksum How to use checksums |
fa3a35fbccbfecfcde4d0026a6d3b771933dfa6119a273e2c29d807676aa2aad
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.3
|
Release files / ta_lib_takt-0.8.1-cp311-cp311-manylinux_2_29_x86_64.whl
| Download URL | ta_lib_takt-0.8.1-cp311-cp311-manylinux_2_29_x86_64.whl |
|---|---|
| Size | 3.6 MB |
| Tags | CPython 3.11 Linux glibc 2.29+ x86-64 |
|
SHA-256 checksum How to use checksums |
76a7acbed0267fca868c17551ebb940854bc8530d3b99d1da1377ffa273e4644
|
|
BLAKE2b-256 checksum How to use checksums |
5137527bd21aabc9f347546ecda09c74c491616096116f7aeb4e38db2b84930a
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.3
|
Release files / ta_lib_takt-0.8.1-cp310-cp310-manylinux_2_29_x86_64.whl
| Download URL | ta_lib_takt-0.8.1-cp310-cp310-manylinux_2_29_x86_64.whl |
|---|---|
| Size | 3.7 MB |
| Tags | CPython 3.10 Linux glibc 2.29+ x86-64 |
|
SHA-256 checksum How to use checksums |
08428a88a44defd26d35e03de0e7d29197ac6bffb8b9cd977fe993f559610771
|
|
BLAKE2b-256 checksum How to use checksums |
6c3a2fcbc972ab78206a7438fcf4edcdf1b263f7d9d4b97b26e477a86c20ccb8
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.3
|
Release files / ta_lib_takt-0.8.1-cp39-cp39-manylinux_2_29_x86_64.whl
| Download URL | ta_lib_takt-0.8.1-cp39-cp39-manylinux_2_29_x86_64.whl |
|---|---|
| Size | 3.7 MB |
| Tags | CPython 3.9 Linux glibc 2.29+ x86-64 |
|
SHA-256 checksum How to use checksums |
2b56ccaaa99ace4802db1356256dadb2194846573b688edcb74b5c6b58ad1a7b
|
|
BLAKE2b-256 checksum How to use checksums |
c4bb281c044f20b031d424d0314231d949d6c8763d14d468937b7c83d2e5adc1
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.3
|