mirror of
https://github.com/wassname/pandas-ta.git
synced 2026-08-02 12:50:22 +08:00
40 KiB
40 KiB
In [1]:
from importlib.util import find_spec
from numpy import version as numpy_version
from pandas import IndexSlice, concat, read_csv
from pandas import IndexSlice as idx
import pandas_ta as ta
print("Package Versions:")
print(f"Pandas TA v{ta.version}")
has_numba = find_spec("numba") is not None
if has_numba:
from numba import __version__ as numba_version
print(f"Numba v{numba_version}")
if find_spec("talib") is not None:
from talib import __version__ as tal_version
print(f"talib v{tal_version}")
from pandas import read_csv
from pandas import DatetimeIndex as dti
%matplotlib inlinePackage Versions: Pandas TA v0.3.54b0 Numba v0.55.1 talib v0.4.21
In [2]:
_df = ta.df.ta.ticker("SPY", period="5y", timed=True)[+] yf | SPY(1260, 7): 3355.3888 ms (3.3554 s)
In [3]:
df = _df.copy()
df.shapeOut [3]:
(1260, 7)
In [4]:
if has_numba:
ta.speed_test(df.iloc[-150:], top=10, talib=False)============================================================
Slowest 10 Indicators [145]
Observations: 150
============================================================
secs ms
Indicator
alligator 1.39078 1390.7823
reflex 0.23892 238.9168
trendflex 0.15877 158.7684
td_seq 0.11098 110.9794
ssf 0.10814 108.1379
ssf3 0.09241 92.4070
qqe 0.02413 24.1271
psar 0.01360 13.5950
cdl_pattern 0.01313 13.1322
hilo 0.01056 10.5648
============================================================
Time Stats:
secs ms
min 0.000000 0.001100
50% 0.001140 1.137000
mean 0.016311 16.311186
max 1.390780 1390.782300
total 2.365160 2365.122000
============================================================
In [5]:
pta_speedsdf, pta_statsdf = ta.speed_test(df, top=10, talib=False, stats=True, gradient=True, verbose=True)[+] aberration: 1.1456 ms (0.0011 s)
[+] accbands: 1.2985 ms (0.0013 s)
[+] ad: 1.0111 ms (0.0010 s)
[+] adosc: 2.3665 ms (0.0024 s)
[+] adx: 3.6593 ms (0.0037 s)
[+] alligator: 212.5608 ms (0.2126 s)
[+] alma: 0.6202 ms (0.0006 s)
[+] amat: 3.0693 ms (0.0031 s)
[+] ao: 0.5373 ms (0.0005 s)
[+] aobv: 5.7827 ms (0.0058 s)
[+] apo: 0.9649 ms (0.0010 s)
[+] aroon: 8.4203 ms (0.0084 s)
[+] atr: 1.6937 ms (0.0017 s)
[+] bbands: 1.6370 ms (0.0016 s)
[+] bias: 0.7042 ms (0.0007 s)
[+] bop: 0.8832 ms (0.0009 s)
[+] brar: 4.5992 ms (0.0046 s)
[+] cci: 16.4651 ms (0.0165 s)
[+] cdl_pattern: 11.0512 ms (0.0111 s)
[+] cdl_z: 1.7945 ms (0.0018 s)
[+] cfo: 0.3885 ms (0.0004 s)
[+] cg: 5.5234 ms (0.0055 s)
[+] chop: 1.3423 ms (0.0013 s)
[+] cksp: 1.7096 ms (0.0017 s)
[+] cmf: 1.2463 ms (0.0012 s)
[+] cmo: 2.1820 ms (0.0022 s)
[+] coppock: 0.3601 ms (0.0004 s)
[+] cti: 0.1902 ms (0.0002 s)
[+] cube: 0.5717 ms (0.0006 s)
[+] decay: 0.6384 ms (0.0006 s)
[+] decreasing: 0.3125 ms (0.0003 s)
[+] dema: 1.0388 ms (0.0010 s)
[+] dm: 2.3403 ms (0.0023 s)
[+] donchian: 1.0336 ms (0.0010 s)
[+] dpo: 0.4773 ms (0.0005 s)
[+] ebsw: 40.3750 ms (0.0404 s)
[+] efi: 0.4263 ms (0.0004 s)
[+] ema: 0.4665 ms (0.0005 s)
[+] entropy: 0.8704 ms (0.0009 s)
[+] eom: 1.0508 ms (0.0011 s)
[+] er: 0.5745 ms (0.0006 s)
[+] eri: 0.6998 ms (0.0007 s)
[+] fisher: 9.9191 ms (0.0099 s)
[+] fwma: 2.6361 ms (0.0026 s)
[+] ha: 78.3370 ms (0.0783 s)
[+] hilo: 88.1582 ms (0.0882 s)
[+] hl2: 0.3772 ms (0.0004 s)
[+] hlc3: 0.3641 ms (0.0004 s)
[+] hma: 0.4196 ms (0.0004 s)
[+] hwc: 8.9592 ms (0.0090 s)
[+] hwma: 6.5110 ms (0.0065 s)
[+] ifisher: 0.6865 ms (0.0007 s)
[+] increasing: 0.3654 ms (0.0004 s)
[+] inertia: 4.6722 ms (0.0047 s)
[+] jma: 28.5862 ms (0.0286 s)
[+] kama: 15.8190 ms (0.0158 s)
[+] kc: 0.9789 ms (0.0010 s)
[+] kdj: 1.9249 ms (0.0019 s)
[+] kst: 1.7457 ms (0.0017 s)
[+] kurtosis: 0.3827 ms (0.0004 s)
[+] kvo: 3.7043 ms (0.0037 s)
[+] linreg: 12.6359 ms (0.0126 s)
[+] log_return: 0.2109 ms (0.0002 s)
[+] long_run: 0.0013 ms (0.0000 s)
[+] macd: 2.8276 ms (0.0028 s)
[+] mad: 15.0358 ms (0.0150 s)
[+] massi: 1.3350 ms (0.0013 s)
[+] mcgd: 2.2671 ms (0.0023 s)
[+] median: 0.7818 ms (0.0008 s)
[+] mfi: 4.2815 ms (0.0043 s)
[+] midpoint: 0.6688 ms (0.0007 s)
[+] midprice: 0.6778 ms (0.0007 s)
[+] mom: 0.1995 ms (0.0002 s)
[+] natr: 1.8785 ms (0.0019 s)
[+] nvi: 2.7662 ms (0.0028 s)
[+] obv: 2.1081 ms (0.0021 s)
[+] ohlc4: 0.4587 ms (0.0005 s)
[+] pdist: 1.3172 ms (0.0013 s)
[+] percent_return: 0.1963 ms (0.0002 s)
[+] pgo: 0.6337 ms (0.0006 s)
[+] ppo: 1.7161 ms (0.0017 s)
[+] psar: 108.9982 ms (0.1090 s)
[+] psl: 1.7282 ms (0.0017 s)
[+] pvi: 2.7499 ms (0.0027 s)
[+] pvo: 0.7652 ms (0.0008 s)
[+] pvol: 0.2969 ms (0.0003 s)
[+] pvr: 1.3529 ms (0.0014 s)
[+] pvt: 0.3959 ms (0.0004 s)
[+] pwma: 2.3196 ms (0.0023 s)
[+] qqe: 196.9609 ms (0.1970 s)
[+] qstick: 0.8610 ms (0.0009 s)
[+] quantile: 0.7692 ms (0.0008 s)
[+] reflex: 0.2250 ms (0.0002 s)
[+] remap: 0.1758 ms (0.0002 s)
[+] rma: 0.3221 ms (0.0003 s)
[+] roc: 0.4424 ms (0.0004 s)
[+] rsi: 2.5839 ms (0.0026 s)
[+] rsx: 10.0975 ms (0.0101 s)
[+] rvgi: 7.5413 ms (0.0075 s)
[+] rvi: 4.2737 ms (0.0043 s)
[+] short_run: 0.0015 ms (0.0000 s)
[+] sinwma: 11.4942 ms (0.0115 s)
[+] skew: 0.5697 ms (0.0006 s)
[+] slope: 0.3690 ms (0.0004 s)
[+] sma: 0.5113 ms (0.0005 s)
[+] smi: 1.3082 ms (0.0013 s)
[+] smma: 71.8654 ms (0.0719 s)
[+] squeeze: 3.3569 ms (0.0034 s)
[+] squeeze_pro: 5.0170 ms (0.0050 s)
[+] ssf: 0.1861 ms (0.0002 s)
[+] ssf3: 0.1665 ms (0.0002 s)
[+] stc: 24.6567 ms (0.0247 s)
[+] stdev: 0.4545 ms (0.0005 s)
[+] stoch: 2.0917 ms (0.0021 s)
[+] stochf: 1.8937 ms (0.0019 s)
[+] stochrsi: 1.3749 ms (0.0014 s)
[+] supertrend: 53.3542 ms (0.0534 s)
[+] swma: 2.4871 ms (0.0025 s)
[+] t3: 2.4323 ms (0.0024 s)
[+] td_seq: 914.2004 ms (0.9142 s)
[+] tema: 1.5158 ms (0.0015 s)
[+] thermo: 1.5802 ms (0.0016 s)
[+] tos_stdevall: 3.0723 ms (0.0031 s)
[+] trendflex: 0.2148 ms (0.0002 s)
[+] trima: 0.6923 ms (0.0007 s)
[+] trix: 1.8449 ms (0.0018 s)
[+] true_range: 1.3857 ms (0.0014 s)
[+] tsi: 1.9481 ms (0.0019 s)
[+] tsignals: 0.0015 ms (0.0000 s)
[+] ttm_trend: 1.8538 ms (0.0019 s)
[+] ui: 0.9041 ms (0.0009 s)
[+] uo: 2.9892 ms (0.0030 s)
[+] variance: 0.3331 ms (0.0003 s)
[+] vhf: 1.0348 ms (0.0010 s)
[+] vidya: 49.6284 ms (0.0496 s)
[+] vortex: 1.6013 ms (0.0016 s)
[+] vwap: 1.9849 ms (0.0020 s)
[+] vwma: 0.4579 ms (0.0005 s)
[+] wb_tsv: 4.0840 ms (0.0041 s)
[+] wcp: 0.3736 ms (0.0004 s)
[+] willr: 0.9798 ms (0.0010 s)
[+] wma: 11.3445 ms (0.0113 s)
[+] xsignals: 0.0014 ms (0.0000 s)
[+] zlma: 0.6628 ms (0.0007 s)
[+] zscore: 1.0129 ms (0.0010 s)
============================================================
Slowest 10 Indicators [145]
Observations: 1260
============================================================
secs ms
Indicator
td_seq 0.91420 914.2004
alligator 0.21256 212.5608
qqe 0.19696 196.9609
psar 0.10900 108.9982
hilo 0.08816 88.1582
ha 0.07834 78.3370
smma 0.07187 71.8654
supertrend 0.05335 53.3542
vidya 0.04963 49.6284
ebsw 0.04038 40.3750
============================================================
Time Stats:
secs ms
min 0.000000 0.001300
50% 0.001350 1.352900
mean 0.015054 15.053662
max 0.914200 914.200400
total 2.182790 2182.781000
============================================================
In [6]:
pta_speedsdfOut [6]:
| secs | ms | |
|---|---|---|
| Indicator | ||
| td_seq | 0.914200 | 914.200400 |
| alligator | 0.212560 | 212.560800 |
| qqe | 0.196960 | 196.960900 |
| psar | 0.109000 | 108.998200 |
| hilo | 0.088160 | 88.158200 |
| ha | 0.078340 | 78.337000 |
| smma | 0.071870 | 71.865400 |
| supertrend | 0.053350 | 53.354200 |
| vidya | 0.049630 | 49.628400 |
| ebsw | 0.040380 | 40.375000 |
In [7]:
pta_statsdfOut [7]:
| secs | ms | |
|---|---|---|
| min | 0.000000 | 0.001300 |
| 50% | 0.001350 | 1.352900 |
| mean | 0.015054 | 15.053662 |
| max | 0.914200 | 914.200400 |
| total | 2.182790 | 2182.781000 |
In [8]:
tal_speedsdf, tal_statsdf = ta.speed_test(df, top=10, talib=True, stats=True, gradient=True, verbose=True)[+] aberration: 1.6712 ms (0.0017 s)
[+] accbands: 1.6530 ms (0.0017 s)
[+] ad: 0.6278 ms (0.0006 s)
[+] adosc: 0.6367 ms (0.0006 s)
[+] adx: 3.9251 ms (0.0039 s)
[+] alligator: 213.2352 ms (0.2132 s)
[+] alma: 0.5386 ms (0.0005 s)
[+] amat: 2.2675 ms (0.0023 s)
[+] ao: 0.5618 ms (0.0006 s)
[+] aobv: 2.9535 ms (0.0030 s)
[+] apo: 0.2270 ms (0.0002 s)
[+] aroon: 0.6380 ms (0.0006 s)
[+] atr: 0.3922 ms (0.0004 s)
[+] bbands: 0.9583 ms (0.0010 s)
[+] bias: 0.3105 ms (0.0003 s)
[+] bop: 0.4727 ms (0.0005 s)
[+] brar: 4.3192 ms (0.0043 s)
[+] cci: 0.4120 ms (0.0004 s)
[+] cdl_pattern: 11.4396 ms (0.0114 s)
[+] cdl_z: 1.7711 ms (0.0018 s)
[+] cfo: 0.3807 ms (0.0004 s)
[+] cg: 5.4135 ms (0.0054 s)
[+] chop: 1.4270 ms (0.0014 s)
[+] cksp: 1.7219 ms (0.0017 s)
[+] cmf: 1.3268 ms (0.0013 s)
[+] cmo: 0.2003 ms (0.0002 s)
[+] coppock: 0.3301 ms (0.0003 s)
[+] cti: 0.1857 ms (0.0002 s)
[+] cube: 0.5715 ms (0.0006 s)
[+] decay: 0.8335 ms (0.0008 s)
[+] decreasing: 0.3362 ms (0.0003 s)
[+] dema: 0.1886 ms (0.0002 s)
[+] dm: 0.5403 ms (0.0005 s)
[+] donchian: 1.0650 ms (0.0011 s)
[+] dpo: 0.4687 ms (0.0005 s)
[+] ebsw: 40.1970 ms (0.0402 s)
[+] efi: 0.4208 ms (0.0004 s)
[+] ema: 0.1655 ms (0.0002 s)
[+] entropy: 0.6737 ms (0.0007 s)
[+] eom: 1.0302 ms (0.0010 s)
[+] er: 0.5670 ms (0.0006 s)
[+] eri: 0.6949 ms (0.0007 s)
[+] fisher: 10.0484 ms (0.0100 s)
[+] fwma: 2.5911 ms (0.0026 s)
[+] ha: 77.0000 ms (0.0770 s)
[+] hilo: 82.5885 ms (0.0826 s)
[+] hl2: 0.3007 ms (0.0003 s)
[+] hlc3: 0.3609 ms (0.0004 s)
[+] hma: 0.3957 ms (0.0004 s)
[+] hwc: 8.8935 ms (0.0089 s)
[+] hwma: 6.2470 ms (0.0062 s)
[+] ifisher: 0.6125 ms (0.0006 s)
[+] increasing: 0.3415 ms (0.0003 s)
[+] inertia: 4.2041 ms (0.0042 s)
[+] jma: 28.0654 ms (0.0281 s)
[+] kama: 15.5335 ms (0.0155 s)
[+] kc: 0.9612 ms (0.0010 s)
[+] kdj: 1.7077 ms (0.0017 s)
[+] kst: 1.9600 ms (0.0020 s)
[+] kurtosis: 0.4316 ms (0.0004 s)
[+] kvo: 3.4707 ms (0.0035 s)
[+] linreg: 0.1940 ms (0.0002 s)
[+] log_return: 0.1908 ms (0.0002 s)
[+] long_run: 0.0012 ms (0.0000 s)
[+] macd: 0.4594 ms (0.0005 s)
[+] mad: 14.9323 ms (0.0149 s)
[+] massi: 0.8308 ms (0.0008 s)
[+] mcgd: 2.3739 ms (0.0024 s)
[+] median: 0.8246 ms (0.0008 s)
[+] mfi: 0.4850 ms (0.0005 s)
[+] midpoint: 0.1723 ms (0.0002 s)
[+] midprice: 0.2578 ms (0.0003 s)
[+] mom: 0.1613 ms (0.0002 s)
[+] natr: 0.3584 ms (0.0004 s)
[+] nvi: 2.8606 ms (0.0029 s)
[+] obv: 0.2942 ms (0.0003 s)
[+] ohlc4: 0.4482 ms (0.0004 s)
[+] pdist: 1.3666 ms (0.0014 s)
[+] percent_return: 0.1928 ms (0.0002 s)
[+] pgo: 0.5993 ms (0.0006 s)
[+] ppo: 0.5450 ms (0.0005 s)
[+] psar: 107.3772 ms (0.1074 s)
[+] psl: 1.7135 ms (0.0017 s)
[+] pvi: 2.7448 ms (0.0027 s)
[+] pvo: 0.7494 ms (0.0007 s)
[+] pvol: 0.2937 ms (0.0003 s)
[+] pvr: 1.3526 ms (0.0014 s)
[+] pvt: 0.3934 ms (0.0004 s)
[+] pwma: 2.5975 ms (0.0026 s)
[+] qqe: 197.4433 ms (0.1974 s)
[+] qstick: 0.6420 ms (0.0006 s)
[+] quantile: 0.7476 ms (0.0007 s)
[+] reflex: 0.2276 ms (0.0002 s)
[+] remap: 0.1762 ms (0.0002 s)
[+] rma: 0.3756 ms (0.0004 s)
[+] roc: 0.1708 ms (0.0002 s)
[+] rsi: 0.1703 ms (0.0002 s)
[+] rsx: 10.0999 ms (0.0101 s)
[+] rvgi: 8.2282 ms (0.0082 s)
[+] rvi: 4.5243 ms (0.0045 s)
[+] short_run: 0.0015 ms (0.0000 s)
[+] sinwma: 10.7480 ms (0.0107 s)
[+] skew: 0.3062 ms (0.0003 s)
[+] slope: 0.2510 ms (0.0003 s)
[+] sma: 0.1660 ms (0.0002 s)
[+] smi: 1.1754 ms (0.0012 s)
[+] smma: 71.3380 ms (0.0713 s)
[+] squeeze: 3.1300 ms (0.0031 s)
[+] squeeze_pro: 5.5751 ms (0.0056 s)
[+] ssf: 0.1944 ms (0.0002 s)
[+] ssf3: 0.1687 ms (0.0002 s)
[+] stc: 24.6713 ms (0.0247 s)
[+] stdev: 0.1866 ms (0.0002 s)
[+] stoch: 0.5962 ms (0.0006 s)
[+] stochf: 0.5749 ms (0.0006 s)
[+] stochrsi: 1.3901 ms (0.0014 s)
[+] supertrend: 53.9695 ms (0.0540 s)
[+] swma: 2.1357 ms (0.0021 s)
[+] t3: 0.1875 ms (0.0002 s)
[+] td_seq: 919.0886 ms (0.9191 s)
[+] tema: 0.2817 ms (0.0003 s)
[+] thermo: 1.8349 ms (0.0018 s)
[+] tos_stdevall: 3.2026 ms (0.0032 s)
[+] trendflex: 0.2153 ms (0.0002 s)
[+] trima: 0.1792 ms (0.0002 s)
[+] trix: 0.9219 ms (0.0009 s)
[+] true_range: 0.3660 ms (0.0004 s)
[+] tsi: 0.8074 ms (0.0008 s)
[+] tsignals: 0.0016 ms (0.0000 s)
[+] ttm_trend: 2.0149 ms (0.0020 s)
[+] ui: 1.0273 ms (0.0010 s)
[+] uo: 0.4113 ms (0.0004 s)
[+] variance: 0.1669 ms (0.0002 s)
[+] vhf: 1.2475 ms (0.0012 s)
[+] vidya: 50.6357 ms (0.0506 s)
[+] vortex: 1.7260 ms (0.0017 s)
[+] vwap: 2.1095 ms (0.0021 s)
[+] vwma: 0.4720 ms (0.0005 s)
[+] wb_tsv: 4.1343 ms (0.0041 s)
[+] wcp: 0.3865 ms (0.0004 s)
[+] willr: 0.3631 ms (0.0004 s)
[+] wma: 0.1553 ms (0.0002 s)
[+] xsignals: 0.0016 ms (0.0000 s)
[+] zlma: 0.3429 ms (0.0003 s)
[+] zscore: 0.3980 ms (0.0004 s)
============================================================
Slowest 10 Indicators [145]
Observations[talib]: 1260
============================================================
secs ms
Indicator
td_seq 0.91909 919.0886
alligator 0.21324 213.2352
qqe 0.19744 197.4433
psar 0.10738 107.3772
hilo 0.08259 82.5885
ha 0.07700 77.0000
smma 0.07134 71.3380
supertrend 0.05397 53.9695
vidya 0.05064 50.6357
ebsw 0.04020 40.1970
============================================================
Time Stats:
secs ms
min 0.000000 0.001200
50% 0.000640 0.638000
mean 0.014416 14.415851
max 0.919090 919.088600
total 2.090310 2090.298400
============================================================
In [9]:
tal_speedsdfOut [9]:
| secs | ms | |
|---|---|---|
| Indicator | ||
| td_seq | 0.919090 | 919.088600 |
| alligator | 0.213240 | 213.235200 |
| qqe | 0.197440 | 197.443300 |
| psar | 0.107380 | 107.377200 |
| hilo | 0.082590 | 82.588500 |
| ha | 0.077000 | 77.000000 |
| smma | 0.071340 | 71.338000 |
| supertrend | 0.053970 | 53.969500 |
| vidya | 0.050640 | 50.635700 |
| ebsw | 0.040200 | 40.197000 |
In [10]:
tal_statsdfOut [10]:
| secs | ms | |
|---|---|---|
| min | 0.000000 | 0.001200 |
| 50% | 0.000640 | 0.638000 |
| mean | 0.014416 | 14.415851 |
| max | 0.919090 | 919.088600 |
| total | 2.090310 | 2090.298400 |
In [11]:
print(df.shape)
compdf = concat([tal_statsdf, pta_statsdf], keys=["TA Lib", "Pandas TA"], axis=1).T
compdfOut [11]:
(1260, 7)
| min | 50% | mean | max | total | ||
|---|---|---|---|---|---|---|
| TA Lib | secs | 0.0000 | 0.00064 | 0.014416 | 0.91909 | 2.09031 |
| ms | 0.0012 | 0.63800 | 14.415851 | 919.08860 | 2090.29840 | |
| Pandas TA | secs | 0.0000 | 0.00135 | 0.015054 | 0.91420 | 2.18279 |
| ms | 0.0013 | 1.35290 | 15.053662 | 914.20040 | 2182.78100 |
In [12]:
diffdf = (tal_statsdf - pta_statsdf).abs().T
diffdf.columns.name = "Differences"
diffdfOut [12]:
| Differences | min | 50% | mean | max | total |
|---|---|---|---|---|---|
| secs | 0.0000 | 0.00071 | 0.000638 | 0.00489 | 0.09248 |
| ms | 0.0001 | 0.71490 | 0.637811 | 4.88820 | 92.48260 |