mirror of
https://github.com/wassname/pandas-ta.git
synced 2026-08-01 12:40:12 +08:00
40 KiB
40 KiB
In [1]:
from importlib.util import find_spec
from numpy import version as numpy_version
from pandas import concat, IndexSlice
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.32b0 Numba v0.55.1 talib v0.4.21
In [2]:
_df = ta.df.ta.ticker("SPY", period="5y", timed=True)[+] yf | SPY(1260, 7): 3380.2781 ms (3.3803 s)
In [3]:
df = _df.copy()
df.shapeOut [3]:
(1260, 7)
In [4]:
if has_numba:
ta.performance(df.iloc[-150:], top=10, talib=False)============================================================
Slowest 10 Indicators [145]
Observations: 150
============================================================
secs ms
Indicator
alligator 1.45920 1459.2033
reflex 0.24182 241.8210
trendflex 0.16111 161.1101
td_seq 0.11252 112.5188
ssf 0.11095 110.9542
ssf3 0.09521 95.2070
qqe 0.02522 25.2180
psar 0.01386 13.8627
cdl_pattern 0.01341 13.4125
hilo 0.01055 10.5541
============================================================
Time Stats:
secs ms
min 0.000020 0.023900
50% 0.001170 1.165000
mean 0.016922 16.921756
max 1.459200 1459.203300
total 2.453640 2453.654600
============================================================
In [5]:
pta_speedsdf, pta_statsdf = ta.performance(df, top=10, talib=False, stats=True, gradient=True, verbose=True)[+] aberration: 1.4722 ms (0.0015 s)
[+] accbands: 1.3315 ms (0.0013 s)
[+] ad: 1.0733 ms (0.0011 s)
[+] adosc: 1.8623 ms (0.0019 s)
[+] adx: 3.5369 ms (0.0035 s)
[+] alligator: 220.5254 ms (0.2205 s)
[+] alma: 0.6777 ms (0.0007 s)
[+] amat: 3.1196 ms (0.0031 s)
[+] ao: 0.5810 ms (0.0006 s)
[+] aobv: 6.0129 ms (0.0060 s)
[+] apo: 0.9975 ms (0.0010 s)
[+] aroon: 8.4711 ms (0.0085 s)
[+] atr: 1.6253 ms (0.0016 s)
[+] bbands: 1.6878 ms (0.0017 s)
[+] bias: 0.7043 ms (0.0007 s)
[+] bop: 0.9118 ms (0.0009 s)
[+] brar: 4.6133 ms (0.0046 s)
[+] cci: 16.5764 ms (0.0166 s)
[+] cdl_pattern: 11.0386 ms (0.0110 s)
[+] cdl_z: 1.8040 ms (0.0018 s)
[+] cfo: 0.4258 ms (0.0004 s)
[+] cg: 5.4734 ms (0.0055 s)
[+] chop: 1.6110 ms (0.0016 s)
[+] cksp: 1.4307 ms (0.0014 s)
[+] cmf: 1.2531 ms (0.0013 s)
[+] cmo: 2.4495 ms (0.0024 s)
[+] coppock: 0.3767 ms (0.0004 s)
[+] cti: 0.2171 ms (0.0002 s)
[+] cube: 0.6050 ms (0.0006 s)
[+] decay: 0.6650 ms (0.0007 s)
[+] decreasing: 0.3498 ms (0.0003 s)
[+] dema: 1.0834 ms (0.0011 s)
[+] dm: 2.4016 ms (0.0024 s)
[+] donchian: 1.0575 ms (0.0011 s)
[+] dpo: 0.5007 ms (0.0005 s)
[+] ebsw: 40.4991 ms (0.0405 s)
[+] efi: 0.4537 ms (0.0005 s)
[+] ema: 0.4947 ms (0.0005 s)
[+] entropy: 0.7234 ms (0.0007 s)
[+] eom: 1.0735 ms (0.0011 s)
[+] er: 0.7715 ms (0.0008 s)
[+] eri: 0.7635 ms (0.0008 s)
[+] fisher: 9.9180 ms (0.0099 s)
[+] fwma: 2.7818 ms (0.0028 s)
[+] ha: 77.3844 ms (0.0774 s)
[+] hilo: 84.6632 ms (0.0847 s)
[+] hl2: 0.3775 ms (0.0004 s)
[+] hlc3: 0.3831 ms (0.0004 s)
[+] hma: 0.4317 ms (0.0004 s)
[+] hwc: 8.5210 ms (0.0085 s)
[+] hwma: 6.6964 ms (0.0067 s)
[+] ifisher: 0.6250 ms (0.0006 s)
[+] increasing: 0.3676 ms (0.0004 s)
[+] inertia: 4.5042 ms (0.0045 s)
[+] jma: 28.7822 ms (0.0288 s)
[+] kama: 15.9558 ms (0.0160 s)
[+] kc: 0.9610 ms (0.0010 s)
[+] kdj: 1.6791 ms (0.0017 s)
[+] kst: 1.7736 ms (0.0018 s)
[+] kurtosis: 0.4567 ms (0.0005 s)
[+] kvo: 3.4107 ms (0.0034 s)
[+] linreg: 13.1770 ms (0.0132 s)
[+] log_return: 0.2290 ms (0.0002 s)
[+] long_run: 0.0252 ms (0.0000 s)
[+] macd: 2.7349 ms (0.0027 s)
[+] mad: 15.1011 ms (0.0151 s)
[+] massi: 1.3525 ms (0.0014 s)
[+] mcgd: 2.3523 ms (0.0024 s)
[+] median: 0.7421 ms (0.0007 s)
[+] mfi: 4.2362 ms (0.0042 s)
[+] midpoint: 0.6113 ms (0.0006 s)
[+] midprice: 0.7736 ms (0.0008 s)
[+] mom: 0.2211 ms (0.0002 s)
[+] natr: 1.8198 ms (0.0018 s)
[+] nvi: 2.7815 ms (0.0028 s)
[+] obv: 2.1530 ms (0.0022 s)
[+] ohlc4: 0.5163 ms (0.0005 s)
[+] pdist: 1.2728 ms (0.0013 s)
[+] percent_return: 0.2121 ms (0.0002 s)
[+] pgo: 0.6212 ms (0.0006 s)
[+] ppo: 1.6433 ms (0.0016 s)
[+] psar: 110.1239 ms (0.1101 s)
[+] psl: 1.8652 ms (0.0019 s)
[+] pvi: 2.9867 ms (0.0030 s)
[+] pvo: 0.7869 ms (0.0008 s)
[+] pvol: 0.3251 ms (0.0003 s)
[+] pvr: 1.4053 ms (0.0014 s)
[+] pvt: 0.4239 ms (0.0004 s)
[+] pwma: 2.2921 ms (0.0023 s)
[+] qqe: 202.4979 ms (0.2025 s)
[+] qstick: 0.5950 ms (0.0006 s)
[+] quantile: 0.8870 ms (0.0009 s)
[+] reflex: 0.2663 ms (0.0003 s)
[+] remap: 0.1999 ms (0.0002 s)
[+] rma: 0.3609 ms (0.0004 s)
[+] roc: 0.4297 ms (0.0004 s)
[+] rsi: 2.7048 ms (0.0027 s)
[+] rsx: 10.4901 ms (0.0105 s)
[+] rvgi: 8.2257 ms (0.0082 s)
[+] rvi: 4.5158 ms (0.0045 s)
[+] short_run: 0.0304 ms (0.0000 s)
[+] sinwma: 11.5249 ms (0.0115 s)
[+] skew: 0.3479 ms (0.0003 s)
[+] slope: 0.2849 ms (0.0003 s)
[+] sma: 0.4494 ms (0.0004 s)
[+] smi: 1.2362 ms (0.0012 s)
[+] smma: 72.9790 ms (0.0730 s)
[+] squeeze: 3.2773 ms (0.0033 s)
[+] squeeze_pro: 5.0077 ms (0.0050 s)
[+] ssf: 0.2083 ms (0.0002 s)
[+] ssf3: 0.1890 ms (0.0002 s)
[+] stc: 25.6936 ms (0.0257 s)
[+] stdev: 0.4910 ms (0.0005 s)
[+] stoch: 2.1889 ms (0.0022 s)
[+] stochf: 1.8831 ms (0.0019 s)
[+] stochrsi: 1.4041 ms (0.0014 s)
[+] supertrend: 55.8861 ms (0.0559 s)
[+] swma: 2.6545 ms (0.0027 s)
[+] t3: 2.6659 ms (0.0027 s)
[+] td_seq: 937.1583 ms (0.9372 s)
[+] tema: 1.8220 ms (0.0018 s)
[+] thermo: 1.6950 ms (0.0017 s)
[+] tos_stdevall: 3.3111 ms (0.0033 s)
[+] trendflex: 0.2563 ms (0.0003 s)
[+] trima: 0.7357 ms (0.0007 s)
[+] trix: 1.9558 ms (0.0020 s)
[+] true_range: 1.5495 ms (0.0015 s)
[+] tsi: 2.1724 ms (0.0022 s)
[+] tsignals: 0.0275 ms (0.0000 s)
[+] ttm_trend: 2.1432 ms (0.0021 s)
[+] ui: 1.4793 ms (0.0015 s)
[+] uo: 3.4682 ms (0.0035 s)
[+] variance: 0.4118 ms (0.0004 s)
[+] vhf: 1.1906 ms (0.0012 s)
[+] vidya: 51.9438 ms (0.0519 s)
[+] vortex: 1.8846 ms (0.0019 s)
[+] vwap: 2.2513 ms (0.0023 s)
[+] vwma: 0.4909 ms (0.0005 s)
[+] wb_tsv: 4.4283 ms (0.0044 s)
[+] wcp: 0.4215 ms (0.0004 s)
[+] willr: 1.0241 ms (0.0010 s)
[+] wma: 11.4104 ms (0.0114 s)
[+] xsignals: 0.0300 ms (0.0000 s)
[+] zlma: 0.7986 ms (0.0008 s)
[+] zscore: 1.0893 ms (0.0011 s)
============================================================
Slowest 10 Indicators [145]
Observations: 1260
============================================================
secs ms
Indicator
td_seq 0.93716 937.1583
alligator 0.22053 220.5254
qqe 0.20250 202.4979
psar 0.11012 110.1239
hilo 0.08466 84.6632
ha 0.07738 77.3844
smma 0.07298 72.9790
supertrend 0.05589 55.8861
vidya 0.05194 51.9438
ebsw 0.04050 40.4991
============================================================
Time Stats:
secs ms
min 0.000030 0.025200
50% 0.001470 1.472200
mean 0.015382 15.382661
max 0.937160 937.158300
total 2.230460 2230.485800
============================================================
In [6]:
pta_speedsdfOut [6]:
| secs | ms | |
|---|---|---|
| Indicator | ||
| td_seq | 0.937160 | 937.158300 |
| alligator | 0.220530 | 220.525400 |
| qqe | 0.202500 | 202.497900 |
| psar | 0.110120 | 110.123900 |
| hilo | 0.084660 | 84.663200 |
| ha | 0.077380 | 77.384400 |
| smma | 0.072980 | 72.979000 |
| supertrend | 0.055890 | 55.886100 |
| vidya | 0.051940 | 51.943800 |
| ebsw | 0.040500 | 40.499100 |
In [7]:
pta_statsdfOut [7]:
| secs | ms | |
|---|---|---|
| min | 0.000030 | 0.025200 |
| 50% | 0.001470 | 1.472200 |
| mean | 0.015382 | 15.382661 |
| max | 0.937160 | 937.158300 |
| total | 2.230460 | 2230.485800 |
In [8]:
tal_speedsdf, tal_statsdf = ta.performance(df, top=10, talib=True, stats=True, gradient=True, verbose=True)[+] aberration: 1.6333 ms (0.0016 s)
[+] accbands: 2.0687 ms (0.0021 s)
[+] ad: 0.6342 ms (0.0006 s)
[+] adosc: 0.5248 ms (0.0005 s)
[+] adx: 3.4648 ms (0.0035 s)
[+] alligator: 225.9000 ms (0.2259 s)
[+] alma: 0.5783 ms (0.0006 s)
[+] amat: 2.2699 ms (0.0023 s)
[+] ao: 0.5630 ms (0.0006 s)
[+] aobv: 3.0264 ms (0.0030 s)
[+] apo: 0.2437 ms (0.0002 s)
[+] aroon: 0.6769 ms (0.0007 s)
[+] atr: 0.4435 ms (0.0004 s)
[+] bbands: 1.0109 ms (0.0010 s)
[+] bias: 0.3372 ms (0.0003 s)
[+] bop: 0.5036 ms (0.0005 s)
[+] brar: 4.3784 ms (0.0044 s)
[+] cci: 0.5048 ms (0.0005 s)
[+] cdl_pattern: 11.8356 ms (0.0118 s)
[+] cdl_z: 1.7994 ms (0.0018 s)
[+] cfo: 0.4170 ms (0.0004 s)
[+] cg: 5.3630 ms (0.0054 s)
[+] chop: 1.3467 ms (0.0013 s)
[+] cksp: 1.7165 ms (0.0017 s)
[+] cmf: 1.4513 ms (0.0015 s)
[+] cmo: 0.2392 ms (0.0002 s)
[+] coppock: 0.3602 ms (0.0004 s)
[+] cti: 0.2123 ms (0.0002 s)
[+] cube: 0.6690 ms (0.0007 s)
[+] decay: 0.7886 ms (0.0008 s)
[+] decreasing: 0.3615 ms (0.0004 s)
[+] dema: 0.2139 ms (0.0002 s)
[+] dm: 0.5525 ms (0.0006 s)
[+] donchian: 1.0676 ms (0.0011 s)
[+] dpo: 0.5136 ms (0.0005 s)
[+] ebsw: 40.0562 ms (0.0401 s)
[+] efi: 0.4580 ms (0.0005 s)
[+] ema: 0.1940 ms (0.0002 s)
[+] entropy: 0.9792 ms (0.0010 s)
[+] eom: 1.0946 ms (0.0011 s)
[+] er: 0.7109 ms (0.0007 s)
[+] eri: 0.7485 ms (0.0007 s)
[+] fisher: 10.0558 ms (0.0101 s)
[+] fwma: 2.4774 ms (0.0025 s)
[+] ha: 76.2901 ms (0.0763 s)
[+] hilo: 85.5753 ms (0.0856 s)
[+] hl2: 0.4205 ms (0.0004 s)
[+] hlc3: 0.4163 ms (0.0004 s)
[+] hma: 0.4381 ms (0.0004 s)
[+] hwc: 8.7005 ms (0.0087 s)
[+] hwma: 6.8465 ms (0.0068 s)
[+] ifisher: 0.9197 ms (0.0009 s)
[+] increasing: 0.3971 ms (0.0004 s)
[+] inertia: 4.6250 ms (0.0046 s)
[+] jma: 30.0011 ms (0.0300 s)
[+] kama: 16.3468 ms (0.0163 s)
[+] kc: 1.0322 ms (0.0010 s)
[+] kdj: 1.7615 ms (0.0018 s)
[+] kst: 1.7984 ms (0.0018 s)
[+] kurtosis: 0.4013 ms (0.0004 s)
[+] kvo: 3.6646 ms (0.0037 s)
[+] linreg: 0.2294 ms (0.0002 s)
[+] log_return: 0.2223 ms (0.0002 s)
[+] long_run: 0.0255 ms (0.0000 s)
[+] macd: 0.5045 ms (0.0005 s)
[+] mad: 15.2406 ms (0.0152 s)
[+] massi: 0.8263 ms (0.0008 s)
[+] mcgd: 2.4424 ms (0.0024 s)
[+] median: 0.8675 ms (0.0009 s)
[+] mfi: 0.5305 ms (0.0005 s)
[+] midpoint: 0.1971 ms (0.0002 s)
[+] midprice: 0.2916 ms (0.0003 s)
[+] mom: 0.1814 ms (0.0002 s)
[+] natr: 0.3781 ms (0.0004 s)
[+] nvi: 2.9630 ms (0.0030 s)
[+] obv: 0.3137 ms (0.0003 s)
[+] ohlc4: 0.4619 ms (0.0005 s)
[+] pdist: 1.2474 ms (0.0012 s)
[+] percent_return: 0.2060 ms (0.0002 s)
[+] pgo: 0.6143 ms (0.0006 s)
[+] ppo: 0.5673 ms (0.0006 s)
[+] psar: 110.0718 ms (0.1101 s)
[+] psl: 1.6052 ms (0.0016 s)
[+] pvi: 2.9368 ms (0.0029 s)
[+] pvo: 0.7872 ms (0.0008 s)
[+] pvol: 0.3260 ms (0.0003 s)
[+] pvr: 1.3928 ms (0.0014 s)
[+] pvt: 0.4209 ms (0.0004 s)
[+] pwma: 2.8796 ms (0.0029 s)
[+] qqe: 202.6627 ms (0.2027 s)
[+] qstick: 0.6878 ms (0.0007 s)
[+] quantile: 0.8532 ms (0.0009 s)
[+] reflex: 0.2722 ms (0.0003 s)
[+] remap: 0.2016 ms (0.0002 s)
[+] rma: 0.3881 ms (0.0004 s)
[+] roc: 0.2223 ms (0.0002 s)
[+] rsi: 0.2119 ms (0.0002 s)
[+] rsx: 10.3597 ms (0.0104 s)
[+] rvgi: 8.5408 ms (0.0085 s)
[+] rvi: 4.7764 ms (0.0048 s)
[+] short_run: 0.0288 ms (0.0000 s)
[+] sinwma: 11.0433 ms (0.0110 s)
[+] skew: 0.3478 ms (0.0003 s)
[+] slope: 0.2846 ms (0.0003 s)
[+] sma: 0.1960 ms (0.0002 s)
[+] smi: 1.1860 ms (0.0012 s)
[+] smma: 73.3924 ms (0.0734 s)
[+] squeeze: 3.2106 ms (0.0032 s)
[+] squeeze_pro: 5.7890 ms (0.0058 s)
[+] ssf: 0.2241 ms (0.0002 s)
[+] ssf3: 0.1953 ms (0.0002 s)
[+] stc: 25.6733 ms (0.0257 s)
[+] stdev: 0.2156 ms (0.0002 s)
[+] stoch: 0.6277 ms (0.0006 s)
[+] stochf: 0.6085 ms (0.0006 s)
[+] stochrsi: 1.4290 ms (0.0014 s)
[+] supertrend: 56.6423 ms (0.0566 s)
[+] swma: 2.4290 ms (0.0024 s)
[+] t3: 0.2316 ms (0.0002 s)
[+] td_seq: 943.5405 ms (0.9435 s)
[+] tema: 0.3132 ms (0.0003 s)
[+] thermo: 1.6780 ms (0.0017 s)
[+] tos_stdevall: 3.5226 ms (0.0035 s)
[+] trendflex: 0.2508 ms (0.0003 s)
[+] trima: 0.2124 ms (0.0002 s)
[+] trix: 0.9600 ms (0.0010 s)
[+] true_range: 0.4009 ms (0.0004 s)
[+] tsi: 0.8260 ms (0.0008 s)
[+] tsignals: 0.0260 ms (0.0000 s)
[+] ttm_trend: 2.2236 ms (0.0022 s)
[+] ui: 1.1523 ms (0.0012 s)
[+] uo: 0.4464 ms (0.0004 s)
[+] variance: 0.1921 ms (0.0002 s)
[+] vhf: 1.3115 ms (0.0013 s)
[+] vidya: 52.4157 ms (0.0524 s)
[+] vortex: 1.6645 ms (0.0017 s)
[+] vwap: 2.1985 ms (0.0022 s)
[+] vwma: 0.5217 ms (0.0005 s)
[+] wb_tsv: 4.3712 ms (0.0044 s)
[+] wcp: 0.4314 ms (0.0004 s)
[+] willr: 0.4010 ms (0.0004 s)
[+] wma: 0.1849 ms (0.0002 s)
[+] xsignals: 0.0256 ms (0.0000 s)
[+] zlma: 0.3768 ms (0.0004 s)
[+] zscore: 0.4050 ms (0.0004 s)
============================================================
Slowest 10 Indicators [145]
Observations[talib]: 1260
============================================================
secs ms
Indicator
td_seq 0.94354 943.5405
alligator 0.22590 225.9000
qqe 0.20266 202.6627
psar 0.11007 110.0718
hilo 0.08558 85.5753
ha 0.07629 76.2901
smma 0.07339 73.3924
supertrend 0.05664 56.6423
vidya 0.05242 52.4157
ebsw 0.04006 40.0562
============================================================
Time Stats:
secs ms
min 0.000030 0.025500
50% 0.000710 0.710900
mean 0.014868 14.867553
max 0.943540 943.540500
total 2.155790 2155.795200
============================================================
In [9]:
tal_speedsdfOut [9]:
| secs | ms | |
|---|---|---|
| Indicator | ||
| td_seq | 0.943540 | 943.540500 |
| alligator | 0.225900 | 225.900000 |
| qqe | 0.202660 | 202.662700 |
| psar | 0.110070 | 110.071800 |
| hilo | 0.085580 | 85.575300 |
| ha | 0.076290 | 76.290100 |
| smma | 0.073390 | 73.392400 |
| supertrend | 0.056640 | 56.642300 |
| vidya | 0.052420 | 52.415700 |
| ebsw | 0.040060 | 40.056200 |
In [10]:
tal_statsdfOut [10]:
| secs | ms | |
|---|---|---|
| min | 0.000030 | 0.025500 |
| 50% | 0.000710 | 0.710900 |
| mean | 0.014868 | 14.867553 |
| max | 0.943540 | 943.540500 |
| total | 2.155790 | 2155.795200 |
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.00003 | 0.00071 | 0.014868 | 0.94354 | 2.15579 |
| ms | 0.02550 | 0.71090 | 14.867553 | 943.54050 | 2155.79520 | |
| Pandas TA | secs | 0.00003 | 0.00147 | 0.015382 | 0.93716 | 2.23046 |
| ms | 0.02520 | 1.47220 | 15.382661 | 937.15830 | 2230.48580 |
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.00076 | 0.000515 | 0.00638 | 0.07467 |
| ms | 0.0003 | 0.76130 | 0.515108 | 6.38220 | 74.69060 |
In [ ]: