mirror of
https://github.com/wassname/pandas-ta.git
synced 2026-07-24 13:10:26 +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.53b0 Numba v0.55.1 talib v0.4.21
In [2]:
_df = ta.df.ta.ticker("SPY", period="5y", timed=True)[+] yf | SPY(1260, 7): 3021.3010 ms (3.0213 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.49179 1491.7925
reflex 0.24176 241.7576
trendflex 0.17356 173.5640
td_seq 0.11696 116.9565
ssf 0.11040 110.4000
ssf3 0.09443 94.4307
qqe 0.02406 24.0637
cdl_pattern 0.01379 13.7947
psar 0.01376 13.7594
ha 0.01098 10.9793
============================================================
Time Stats:
secs ms
min 0.000000 0.001200
50% 0.001160 1.163700
mean 0.017315 17.314715
max 1.491790 1491.792500
total 2.510610 2510.633700
============================================================
In [5]:
pta_speedsdf, pta_statsdf = ta.speed_test(df, top=10, talib=False, stats=True, gradient=True, verbose=True)[+] aberration: 1.6990 ms (0.0017 s)
[+] accbands: 1.8994 ms (0.0019 s)
[+] ad: 1.2811 ms (0.0013 s)
[+] adosc: 2.9222 ms (0.0029 s)
[+] adx: 4.5722 ms (0.0046 s)
[+] alligator: 226.0575 ms (0.2261 s)
[+] alma: 0.5551 ms (0.0006 s)
[+] amat: 3.4300 ms (0.0034 s)
[+] ao: 0.6411 ms (0.0006 s)
[+] aobv: 6.0598 ms (0.0061 s)
[+] apo: 0.9210 ms (0.0009 s)
[+] aroon: 8.8892 ms (0.0089 s)
[+] atr: 1.7015 ms (0.0017 s)
[+] bbands: 1.6626 ms (0.0017 s)
[+] bias: 0.6522 ms (0.0007 s)
[+] bop: 0.8675 ms (0.0009 s)
[+] brar: 4.3142 ms (0.0043 s)
[+] cci: 16.5590 ms (0.0166 s)
[+] cdl_pattern: 11.1535 ms (0.0112 s)
[+] cdl_z: 1.7875 ms (0.0018 s)
[+] cfo: 0.3952 ms (0.0004 s)
[+] cg: 5.4697 ms (0.0055 s)
[+] chop: 1.4557 ms (0.0015 s)
[+] cksp: 1.6924 ms (0.0017 s)
[+] cmf: 1.2164 ms (0.0012 s)
[+] cmo: 2.4125 ms (0.0024 s)
[+] coppock: 0.3712 ms (0.0004 s)
[+] cti: 0.1973 ms (0.0002 s)
[+] cube: 0.5875 ms (0.0006 s)
[+] decay: 0.6320 ms (0.0006 s)
[+] decreasing: 0.3385 ms (0.0003 s)
[+] dema: 0.9428 ms (0.0009 s)
[+] dm: 2.4339 ms (0.0024 s)
[+] donchian: 1.0355 ms (0.0010 s)
[+] dpo: 0.5002 ms (0.0005 s)
[+] ebsw: 40.8816 ms (0.0409 s)
[+] efi: 0.4551 ms (0.0005 s)
[+] ema: 0.4725 ms (0.0005 s)
[+] entropy: 0.8759 ms (0.0009 s)
[+] eom: 1.0703 ms (0.0011 s)
[+] er: 0.6870 ms (0.0007 s)
[+] eri: 0.7210 ms (0.0007 s)
[+] fisher: 10.0844 ms (0.0101 s)
[+] fwma: 2.5778 ms (0.0026 s)
[+] ha: 77.6224 ms (0.0776 s)
[+] hilo: 83.8590 ms (0.0839 s)
[+] hl2: 0.3308 ms (0.0003 s)
[+] hlc3: 0.3575 ms (0.0004 s)
[+] hma: 0.4153 ms (0.0004 s)
[+] hwc: 8.5444 ms (0.0085 s)
[+] hwma: 6.3970 ms (0.0064 s)
[+] ifisher: 0.7444 ms (0.0007 s)
[+] increasing: 0.3444 ms (0.0003 s)
[+] inertia: 4.2545 ms (0.0043 s)
[+] jma: 29.2913 ms (0.0293 s)
[+] kama: 15.8392 ms (0.0158 s)
[+] kc: 0.9329 ms (0.0009 s)
[+] kdj: 1.6008 ms (0.0016 s)
[+] kst: 1.6042 ms (0.0016 s)
[+] kurtosis: 0.3775 ms (0.0004 s)
[+] kvo: 3.5412 ms (0.0035 s)
[+] linreg: 13.0964 ms (0.0131 s)
[+] log_return: 0.2040 ms (0.0002 s)
[+] long_run: 0.0013 ms (0.0000 s)
[+] macd: 2.5436 ms (0.0025 s)
[+] mad: 15.4106 ms (0.0154 s)
[+] massi: 1.3134 ms (0.0013 s)
[+] mcgd: 2.3588 ms (0.0024 s)
[+] median: 0.7268 ms (0.0007 s)
[+] mfi: 4.2106 ms (0.0042 s)
[+] midpoint: 0.6627 ms (0.0007 s)
[+] midprice: 0.7458 ms (0.0007 s)
[+] mom: 0.1954 ms (0.0002 s)
[+] natr: 1.8642 ms (0.0019 s)
[+] nvi: 2.9060 ms (0.0029 s)
[+] obv: 2.1550 ms (0.0022 s)
[+] ohlc4: 0.4605 ms (0.0005 s)
[+] pdist: 1.2077 ms (0.0012 s)
[+] percent_return: 0.1893 ms (0.0002 s)
[+] pgo: 0.6018 ms (0.0006 s)
[+] ppo: 1.6487 ms (0.0016 s)
[+] psar: 109.3518 ms (0.1094 s)
[+] psl: 1.8030 ms (0.0018 s)
[+] pvi: 3.3031 ms (0.0033 s)
[+] pvo: 0.8551 ms (0.0009 s)
[+] pvol: 0.3116 ms (0.0003 s)
[+] pvr: 1.4845 ms (0.0015 s)
[+] pvt: 0.4651 ms (0.0005 s)
[+] pwma: 2.4545 ms (0.0025 s)
[+] qqe: 206.4712 ms (0.2065 s)
[+] qstick: 0.9601 ms (0.0010 s)
[+] quantile: 1.1280 ms (0.0011 s)
[+] reflex: 0.3011 ms (0.0003 s)
[+] remap: 0.1953 ms (0.0002 s)
[+] rma: 0.3529 ms (0.0004 s)
[+] roc: 0.5170 ms (0.0005 s)
[+] rsi: 3.3309 ms (0.0033 s)
[+] rsx: 10.6474 ms (0.0106 s)
[+] rvgi: 9.2533 ms (0.0093 s)
[+] rvi: 4.9665 ms (0.0050 s)
[+] short_run: 0.0019 ms (0.0000 s)
[+] sinwma: 11.9132 ms (0.0119 s)
[+] skew: 0.5036 ms (0.0005 s)
[+] slope: 0.3027 ms (0.0003 s)
[+] sma: 0.4217 ms (0.0004 s)
[+] smi: 1.3297 ms (0.0013 s)
[+] smma: 75.4902 ms (0.0755 s)
[+] squeeze: 3.5868 ms (0.0036 s)
[+] squeeze_pro: 5.3236 ms (0.0053 s)
[+] ssf: 0.2360 ms (0.0002 s)
[+] ssf3: 0.1757 ms (0.0002 s)
[+] stc: 27.1239 ms (0.0271 s)
[+] stdev: 0.5240 ms (0.0005 s)
[+] stoch: 2.3041 ms (0.0023 s)
[+] stochf: 2.0025 ms (0.0020 s)
[+] stochrsi: 1.5106 ms (0.0015 s)
[+] supertrend: 56.9796 ms (0.0570 s)
[+] swma: 2.8700 ms (0.0029 s)
[+] t3: 3.1274 ms (0.0031 s)
[+] td_seq: 924.8030 ms (0.9248 s)
[+] tema: 2.2817 ms (0.0023 s)
[+] thermo: 2.2034 ms (0.0022 s)
[+] tos_stdevall: 3.7372 ms (0.0037 s)
[+] trendflex: 0.2847 ms (0.0003 s)
[+] trima: 0.6991 ms (0.0007 s)
[+] trix: 2.4016 ms (0.0024 s)
[+] true_range: 1.5648 ms (0.0016 s)
[+] tsi: 2.4255 ms (0.0024 s)
[+] tsignals: 0.0019 ms (0.0000 s)
[+] ttm_trend: 2.1762 ms (0.0022 s)
[+] ui: 0.9940 ms (0.0010 s)
[+] uo: 3.6072 ms (0.0036 s)
[+] variance: 0.3985 ms (0.0004 s)
[+] vhf: 1.1904 ms (0.0012 s)
[+] vidya: 51.5321 ms (0.0515 s)
[+] vortex: 1.9518 ms (0.0020 s)
[+] vwap: 2.2675 ms (0.0023 s)
[+] vwma: 0.5045 ms (0.0005 s)
[+] wb_tsv: 4.6214 ms (0.0046 s)
[+] wcp: 0.5947 ms (0.0006 s)
[+] willr: 1.1791 ms (0.0012 s)
[+] wma: 12.1194 ms (0.0121 s)
[+] xsignals: 0.0018 ms (0.0000 s)
[+] zlma: 1.0490 ms (0.0010 s)
[+] zscore: 1.1023 ms (0.0011 s)
============================================================
Slowest 10 Indicators [145]
Observations: 1260
============================================================
secs ms
Indicator
td_seq 0.92480 924.8030
alligator 0.22606 226.0575
qqe 0.20647 206.4712
psar 0.10935 109.3518
hilo 0.08386 83.8590
ha 0.07762 77.6224
smma 0.07549 75.4902
supertrend 0.05698 56.9796
vidya 0.05153 51.5321
ebsw 0.04088 40.8816
============================================================
Time Stats:
secs ms
min 0.00000 0.001300
50% 0.00156 1.564800
mean 0.01547 15.470785
max 0.92480 924.803000
total 2.24321 2243.263800
============================================================
In [6]:
pta_speedsdfOut [6]:
| secs | ms | |
|---|---|---|
| Indicator | ||
| td_seq | 0.924800 | 924.803000 |
| alligator | 0.226060 | 226.057500 |
| qqe | 0.206470 | 206.471200 |
| psar | 0.109350 | 109.351800 |
| hilo | 0.083860 | 83.859000 |
| ha | 0.077620 | 77.622400 |
| smma | 0.075490 | 75.490200 |
| supertrend | 0.056980 | 56.979600 |
| vidya | 0.051530 | 51.532100 |
| ebsw | 0.040880 | 40.881600 |
In [7]:
pta_statsdfOut [7]:
| secs | ms | |
|---|---|---|
| min | 0.00000 | 0.001300 |
| 50% | 0.00156 | 1.564800 |
| mean | 0.01547 | 15.470785 |
| max | 0.92480 | 924.803000 |
| total | 2.24321 | 2243.263800 |
In [8]:
tal_speedsdf, tal_statsdf = ta.speed_test(df, top=10, talib=True, stats=True, gradient=True, verbose=True)[+] aberration: 1.3489 ms (0.0013 s)
[+] accbands: 2.4293 ms (0.0024 s)
[+] ad: 0.9455 ms (0.0009 s)
[+] adosc: 0.7832 ms (0.0008 s)
[+] adx: 5.4440 ms (0.0054 s)
[+] alligator: 223.6330 ms (0.2236 s)
[+] alma: 0.5845 ms (0.0006 s)
[+] amat: 2.3477 ms (0.0023 s)
[+] ao: 0.5491 ms (0.0005 s)
[+] aobv: 2.9005 ms (0.0029 s)
[+] apo: 0.2188 ms (0.0002 s)
[+] aroon: 0.6285 ms (0.0006 s)
[+] atr: 0.3972 ms (0.0004 s)
[+] bbands: 1.0745 ms (0.0011 s)
[+] bias: 0.3144 ms (0.0003 s)
[+] bop: 0.5317 ms (0.0005 s)
[+] brar: 4.5775 ms (0.0046 s)
[+] cci: 0.4110 ms (0.0004 s)
[+] cdl_pattern: 11.3495 ms (0.0113 s)
[+] cdl_z: 1.7693 ms (0.0018 s)
[+] cfo: 0.3880 ms (0.0004 s)
[+] cg: 5.4936 ms (0.0055 s)
[+] chop: 1.5248 ms (0.0015 s)
[+] cksp: 1.7432 ms (0.0017 s)
[+] cmf: 1.2950 ms (0.0013 s)
[+] cmo: 0.2060 ms (0.0002 s)
[+] coppock: 0.3344 ms (0.0003 s)
[+] cti: 0.1915 ms (0.0002 s)
[+] cube: 0.5648 ms (0.0006 s)
[+] decay: 0.7421 ms (0.0007 s)
[+] decreasing: 0.3255 ms (0.0003 s)
[+] dema: 0.1846 ms (0.0002 s)
[+] dm: 0.5300 ms (0.0005 s)
[+] donchian: 1.0090 ms (0.0010 s)
[+] dpo: 0.4582 ms (0.0005 s)
[+] ebsw: 39.9616 ms (0.0400 s)
[+] efi: 0.4260 ms (0.0004 s)
[+] ema: 0.1680 ms (0.0002 s)
[+] entropy: 0.7691 ms (0.0008 s)
[+] eom: 1.0576 ms (0.0011 s)
[+] er: 0.5908 ms (0.0006 s)
[+] eri: 0.7143 ms (0.0007 s)
[+] fisher: 9.8485 ms (0.0098 s)
[+] fwma: 2.7073 ms (0.0027 s)
[+] ha: 78.0391 ms (0.0780 s)
[+] hilo: 83.0280 ms (0.0830 s)
[+] hl2: 0.3353 ms (0.0003 s)
[+] hlc3: 0.3761 ms (0.0004 s)
[+] hma: 0.4238 ms (0.0004 s)
[+] hwc: 8.7674 ms (0.0088 s)
[+] hwma: 6.3823 ms (0.0064 s)
[+] ifisher: 0.6245 ms (0.0006 s)
[+] increasing: 0.3509 ms (0.0004 s)
[+] inertia: 4.5350 ms (0.0045 s)
[+] jma: 29.0445 ms (0.0290 s)
[+] kama: 15.7992 ms (0.0158 s)
[+] kc: 0.9468 ms (0.0009 s)
[+] kdj: 2.2830 ms (0.0023 s)
[+] kst: 2.1218 ms (0.0021 s)
[+] kurtosis: 0.4168 ms (0.0004 s)
[+] kvo: 3.5203 ms (0.0035 s)
[+] linreg: 0.1928 ms (0.0002 s)
[+] log_return: 0.2250 ms (0.0002 s)
[+] long_run: 0.0012 ms (0.0000 s)
[+] macd: 0.5909 ms (0.0006 s)
[+] mad: 15.6281 ms (0.0156 s)
[+] massi: 0.8248 ms (0.0008 s)
[+] mcgd: 2.4290 ms (0.0024 s)
[+] median: 0.7134 ms (0.0007 s)
[+] mfi: 0.4927 ms (0.0005 s)
[+] midpoint: 0.1744 ms (0.0002 s)
[+] midprice: 0.2610 ms (0.0003 s)
[+] mom: 0.1597 ms (0.0002 s)
[+] natr: 0.3542 ms (0.0004 s)
[+] nvi: 2.8844 ms (0.0029 s)
[+] obv: 0.2790 ms (0.0003 s)
[+] ohlc4: 0.4323 ms (0.0004 s)
[+] pdist: 1.2215 ms (0.0012 s)
[+] percent_return: 0.1815 ms (0.0002 s)
[+] pgo: 0.5857 ms (0.0006 s)
[+] ppo: 0.5495 ms (0.0005 s)
[+] psar: 112.1881 ms (0.1122 s)
[+] psl: 2.0118 ms (0.0020 s)
[+] pvi: 3.9342 ms (0.0039 s)
[+] pvo: 1.0618 ms (0.0011 s)
[+] pvol: 0.3546 ms (0.0004 s)
[+] pvr: 1.5022 ms (0.0015 s)
[+] pvt: 0.4697 ms (0.0005 s)
[+] pwma: 2.7101 ms (0.0027 s)
[+] qqe: 204.8261 ms (0.2048 s)
[+] qstick: 0.7035 ms (0.0007 s)
[+] quantile: 1.0763 ms (0.0011 s)
[+] reflex: 0.2878 ms (0.0003 s)
[+] remap: 0.1859 ms (0.0002 s)
[+] rma: 0.3788 ms (0.0004 s)
[+] roc: 0.2313 ms (0.0002 s)
[+] rsi: 0.2051 ms (0.0002 s)
[+] rsx: 10.8439 ms (0.0108 s)
[+] rvgi: 8.8667 ms (0.0089 s)
[+] rvi: 4.7788 ms (0.0048 s)
[+] short_run: 0.0015 ms (0.0000 s)
[+] sinwma: 12.2524 ms (0.0123 s)
[+] skew: 0.4899 ms (0.0005 s)
[+] slope: 0.3041 ms (0.0003 s)
[+] sma: 0.1882 ms (0.0002 s)
[+] smi: 1.3069 ms (0.0013 s)
[+] smma: 75.5255 ms (0.0755 s)
[+] squeeze: 3.7737 ms (0.0038 s)
[+] squeeze_pro: 5.9985 ms (0.0060 s)
[+] ssf: 0.2486 ms (0.0002 s)
[+] ssf3: 0.1862 ms (0.0002 s)
[+] stc: 27.0081 ms (0.0270 s)
[+] stdev: 0.2499 ms (0.0002 s)
[+] stoch: 0.6170 ms (0.0006 s)
[+] stochf: 0.5804 ms (0.0006 s)
[+] stochrsi: 1.4117 ms (0.0014 s)
[+] supertrend: 55.7674 ms (0.0558 s)
[+] swma: 3.0320 ms (0.0030 s)
[+] t3: 0.2453 ms (0.0002 s)
[+] td_seq: 941.5795 ms (0.9416 s)
[+] tema: 0.3026 ms (0.0003 s)
[+] thermo: 1.9388 ms (0.0019 s)
[+] tos_stdevall: 4.7227 ms (0.0047 s)
[+] trendflex: 0.3933 ms (0.0004 s)
[+] trima: 0.3540 ms (0.0004 s)
[+] trix: 1.2669 ms (0.0013 s)
[+] true_range: 0.4323 ms (0.0004 s)
[+] tsi: 0.9440 ms (0.0009 s)
[+] tsignals: 0.0012 ms (0.0000 s)
[+] ttm_trend: 2.1110 ms (0.0021 s)
[+] ui: 0.8789 ms (0.0009 s)
[+] uo: 0.4450 ms (0.0004 s)
[+] variance: 0.1747 ms (0.0002 s)
[+] vhf: 1.3563 ms (0.0014 s)
[+] vidya: 54.0799 ms (0.0541 s)
[+] vortex: 2.6115 ms (0.0026 s)
[+] vwap: 2.2898 ms (0.0023 s)
[+] vwma: 0.5058 ms (0.0005 s)
[+] wb_tsv: 4.7364 ms (0.0047 s)
[+] wcp: 0.4440 ms (0.0004 s)
[+] willr: 0.3801 ms (0.0004 s)
[+] wma: 0.1650 ms (0.0002 s)
[+] xsignals: 0.0016 ms (0.0000 s)
[+] zlma: 0.3880 ms (0.0004 s)
[+] zscore: 0.4089 ms (0.0004 s)
============================================================
Slowest 10 Indicators [145]
Observations[talib]: 1260
============================================================
secs ms
Indicator
td_seq 0.94158 941.5795
alligator 0.22363 223.6330
qqe 0.20483 204.8261
psar 0.11219 112.1881
hilo 0.08303 83.0280
ha 0.07804 78.0391
smma 0.07553 75.5255
supertrend 0.05577 55.7674
vidya 0.05408 54.0799
ebsw 0.03996 39.9616
============================================================
Time Stats:
secs ms
min 0.000000 0.001200
50% 0.000710 0.713400
mean 0.014947 14.947339
max 0.941580 941.579500
total 2.167320 2167.364100
============================================================
In [9]:
tal_speedsdfOut [9]:
| secs | ms | |
|---|---|---|
| Indicator | ||
| td_seq | 0.941580 | 941.579500 |
| alligator | 0.223630 | 223.633000 |
| qqe | 0.204830 | 204.826100 |
| psar | 0.112190 | 112.188100 |
| hilo | 0.083030 | 83.028000 |
| ha | 0.078040 | 78.039100 |
| smma | 0.075530 | 75.525500 |
| supertrend | 0.055770 | 55.767400 |
| vidya | 0.054080 | 54.079900 |
| ebsw | 0.039960 | 39.961600 |
In [10]:
tal_statsdfOut [10]:
| secs | ms | |
|---|---|---|
| min | 0.000000 | 0.001200 |
| 50% | 0.000710 | 0.713400 |
| mean | 0.014947 | 14.947339 |
| max | 0.941580 | 941.579500 |
| total | 2.167320 | 2167.364100 |
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.00071 | 0.014947 | 0.94158 | 2.16732 |
| ms | 0.0012 | 0.71340 | 14.947339 | 941.57950 | 2167.36410 | |
| Pandas TA | secs | 0.0000 | 0.00156 | 0.015470 | 0.92480 | 2.24321 |
| ms | 0.0013 | 1.56480 | 15.470785 | 924.80300 | 2243.26380 |
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.00085 | 0.000523 | 0.01678 | 0.07589 |
| ms | 0.0001 | 0.85140 | 0.523446 | 16.77650 | 75.89970 |
In [ ]: