mirror of
https://github.com/wassname/pandas-ta.git
synced 2026-08-03 13:00:43 +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.48b0 Numba v0.55.1 talib v0.4.21
In [2]:
_df = ta.df.ta.ticker("SPY", period="5y", timed=True)[+] yf | SPY(1260, 7): 3615.7968 ms (3.6158 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.46619 1466.1912
reflex 0.24142 241.4170
trendflex 0.16184 161.8418
td_seq 0.11109 111.0865
ssf 0.11097 110.9743
ssf3 0.09494 94.9402
qqe 0.02390 23.9021
cdl_pattern 0.01395 13.9522
psar 0.01361 13.6084
hilo 0.01038 10.3839
============================================================
Time Stats:
secs ms
min 0.000020 0.023400
50% 0.001160 1.160200
mean 0.016943 16.943373
max 1.466190 1466.191200
total 2.456780 2456.789100
============================================================
In [5]:
pta_speedsdf, pta_statsdf = ta.performance(df, top=10, talib=False, stats=True, gradient=True, verbose=True)[+] aberration: 1.5327 ms (0.0015 s)
[+] accbands: 1.7769 ms (0.0018 s)
[+] ad: 1.1659 ms (0.0012 s)
[+] adosc: 1.9079 ms (0.0019 s)
[+] adx: 3.1693 ms (0.0032 s)
[+] alligator: 216.3262 ms (0.2163 s)
[+] alma: 0.6678 ms (0.0007 s)
[+] amat: 3.2197 ms (0.0032 s)
[+] ao: 0.5863 ms (0.0006 s)
[+] aobv: 6.1393 ms (0.0061 s)
[+] apo: 1.1099 ms (0.0011 s)
[+] aroon: 9.4521 ms (0.0095 s)
[+] atr: 1.9118 ms (0.0019 s)
[+] bbands: 1.6445 ms (0.0016 s)
[+] bias: 0.8155 ms (0.0008 s)
[+] bop: 0.9314 ms (0.0009 s)
[+] brar: 4.5026 ms (0.0045 s)
[+] cci: 16.4964 ms (0.0165 s)
[+] cdl_pattern: 11.4451 ms (0.0114 s)
[+] cdl_z: 1.8045 ms (0.0018 s)
[+] cfo: 0.4211 ms (0.0004 s)
[+] cg: 5.2015 ms (0.0052 s)
[+] chop: 1.3616 ms (0.0014 s)
[+] cksp: 1.6839 ms (0.0017 s)
[+] cmf: 1.4190 ms (0.0014 s)
[+] cmo: 2.3247 ms (0.0023 s)
[+] coppock: 0.3732 ms (0.0004 s)
[+] cti: 0.2155 ms (0.0002 s)
[+] cube: 0.6051 ms (0.0006 s)
[+] decay: 0.6636 ms (0.0007 s)
[+] decreasing: 0.3895 ms (0.0004 s)
[+] dema: 0.9932 ms (0.0010 s)
[+] dm: 2.2943 ms (0.0023 s)
[+] donchian: 1.0459 ms (0.0010 s)
[+] dpo: 0.5231 ms (0.0005 s)
[+] ebsw: 40.8104 ms (0.0408 s)
[+] efi: 0.4605 ms (0.0005 s)
[+] ema: 0.5838 ms (0.0006 s)
[+] entropy: 0.9794 ms (0.0010 s)
[+] eom: 1.2326 ms (0.0012 s)
[+] er: 0.7048 ms (0.0007 s)
[+] eri: 0.7430 ms (0.0007 s)
[+] fisher: 9.7973 ms (0.0098 s)
[+] fwma: 2.7743 ms (0.0028 s)
[+] ha: 76.5196 ms (0.0765 s)
[+] hilo: 84.3213 ms (0.0843 s)
[+] hl2: 0.3896 ms (0.0004 s)
[+] hlc3: 0.3794 ms (0.0004 s)
[+] hma: 0.4388 ms (0.0004 s)
[+] hwc: 8.4353 ms (0.0084 s)
[+] hwma: 6.5198 ms (0.0065 s)
[+] ifisher: 0.6574 ms (0.0007 s)
[+] increasing: 0.3812 ms (0.0004 s)
[+] inertia: 4.6299 ms (0.0046 s)
[+] jma: 28.3453 ms (0.0283 s)
[+] kama: 16.0117 ms (0.0160 s)
[+] kc: 0.9787 ms (0.0010 s)
[+] kdj: 1.7019 ms (0.0017 s)
[+] kst: 1.7683 ms (0.0018 s)
[+] kurtosis: 0.4624 ms (0.0005 s)
[+] kvo: 3.4134 ms (0.0034 s)
[+] linreg: 12.5020 ms (0.0125 s)
[+] log_return: 0.2260 ms (0.0002 s)
[+] long_run: 0.0248 ms (0.0000 s)
[+] macd: 2.8070 ms (0.0028 s)
[+] mad: 14.9942 ms (0.0150 s)
[+] massi: 1.3709 ms (0.0014 s)
[+] mcgd: 2.3848 ms (0.0024 s)
[+] median: 0.7515 ms (0.0008 s)
[+] mfi: 4.2428 ms (0.0042 s)
[+] midpoint: 0.6989 ms (0.0007 s)
[+] midprice: 0.7099 ms (0.0007 s)
[+] mom: 0.2238 ms (0.0002 s)
[+] natr: 1.9008 ms (0.0019 s)
[+] nvi: 2.9522 ms (0.0030 s)
[+] obv: 2.1671 ms (0.0022 s)
[+] ohlc4: 0.4788 ms (0.0005 s)
[+] pdist: 1.2553 ms (0.0013 s)
[+] percent_return: 0.2165 ms (0.0002 s)
[+] pgo: 0.6223 ms (0.0006 s)
[+] ppo: 1.6771 ms (0.0017 s)
[+] psar: 108.4812 ms (0.1085 s)
[+] psl: 1.7707 ms (0.0018 s)
[+] pvi: 2.8398 ms (0.0028 s)
[+] pvo: 0.7763 ms (0.0008 s)
[+] pvol: 0.3209 ms (0.0003 s)
[+] pvr: 1.3872 ms (0.0014 s)
[+] pvt: 0.4248 ms (0.0004 s)
[+] pwma: 2.6412 ms (0.0026 s)
[+] qqe: 196.9207 ms (0.1969 s)
[+] qstick: 0.5539 ms (0.0006 s)
[+] quantile: 0.7560 ms (0.0008 s)
[+] reflex: 0.2509 ms (0.0003 s)
[+] remap: 0.1996 ms (0.0002 s)
[+] rma: 0.4105 ms (0.0004 s)
[+] roc: 0.4310 ms (0.0004 s)
[+] rsi: 2.9662 ms (0.0030 s)
[+] rsx: 10.6649 ms (0.0107 s)
[+] rvgi: 7.4468 ms (0.0074 s)
[+] rvi: 4.5487 ms (0.0045 s)
[+] short_run: 0.0293 ms (0.0000 s)
[+] sinwma: 11.4138 ms (0.0114 s)
[+] skew: 0.3613 ms (0.0004 s)
[+] slope: 0.2908 ms (0.0003 s)
[+] sma: 0.4385 ms (0.0004 s)
[+] smi: 1.2245 ms (0.0012 s)
[+] smma: 75.6244 ms (0.0756 s)
[+] squeeze: 3.4781 ms (0.0035 s)
[+] squeeze_pro: 4.9684 ms (0.0050 s)
[+] ssf: 0.2245 ms (0.0002 s)
[+] ssf3: 0.1924 ms (0.0002 s)
[+] stc: 25.4543 ms (0.0255 s)
[+] stdev: 0.4278 ms (0.0004 s)
[+] stoch: 2.1585 ms (0.0022 s)
[+] stochf: 1.9095 ms (0.0019 s)
[+] stochrsi: 1.4200 ms (0.0014 s)
[+] supertrend: 54.8726 ms (0.0549 s)
[+] swma: 2.6174 ms (0.0026 s)
[+] t3: 2.7930 ms (0.0028 s)
[+] td_seq: 974.4067 ms (0.9744 s)
[+] tema: 1.8953 ms (0.0019 s)
[+] thermo: 1.8535 ms (0.0019 s)
[+] tos_stdevall: 3.2848 ms (0.0033 s)
[+] trendflex: 0.2511 ms (0.0003 s)
[+] trima: 0.7133 ms (0.0007 s)
[+] trix: 2.0507 ms (0.0021 s)
[+] true_range: 1.5320 ms (0.0015 s)
[+] tsi: 2.6424 ms (0.0026 s)
[+] tsignals: 0.0373 ms (0.0000 s)
[+] ttm_trend: 2.0251 ms (0.0020 s)
[+] ui: 0.9397 ms (0.0009 s)
[+] uo: 3.0819 ms (0.0031 s)
[+] variance: 0.3726 ms (0.0004 s)
[+] vhf: 1.1655 ms (0.0012 s)
[+] vidya: 51.9878 ms (0.0520 s)
[+] vortex: 1.9960 ms (0.0020 s)
[+] vwap: 2.2110 ms (0.0022 s)
[+] vwma: 0.5046 ms (0.0005 s)
[+] wb_tsv: 4.3750 ms (0.0044 s)
[+] wcp: 0.4249 ms (0.0004 s)
[+] willr: 1.0260 ms (0.0010 s)
[+] wma: 12.1530 ms (0.0122 s)
[+] xsignals: 0.0292 ms (0.0000 s)
[+] zlma: 0.8615 ms (0.0009 s)
[+] zscore: 1.1391 ms (0.0011 s)
============================================================
Slowest 10 Indicators [145]
Observations: 1260
============================================================
secs ms
Indicator
td_seq 0.97441 974.4067
alligator 0.21633 216.3262
qqe 0.19692 196.9207
psar 0.10848 108.4812
hilo 0.08432 84.3213
ha 0.07652 76.5196
smma 0.07562 75.6244
supertrend 0.05487 54.8726
vidya 0.05199 51.9878
ebsw 0.04081 40.8104
============================================================
Time Stats:
secs ms
min 0.000020 0.024800
50% 0.001530 1.532000
mean 0.015575 15.575298
max 0.974410 974.406700
total 2.258380 2258.418200
============================================================
In [6]:
pta_speedsdfOut [6]:
| secs | ms | |
|---|---|---|
| Indicator | ||
| td_seq | 0.974410 | 974.406700 |
| alligator | 0.216330 | 216.326200 |
| qqe | 0.196920 | 196.920700 |
| psar | 0.108480 | 108.481200 |
| hilo | 0.084320 | 84.321300 |
| ha | 0.076520 | 76.519600 |
| smma | 0.075620 | 75.624400 |
| supertrend | 0.054870 | 54.872600 |
| vidya | 0.051990 | 51.987800 |
| ebsw | 0.040810 | 40.810400 |
In [7]:
pta_statsdfOut [7]:
| secs | ms | |
|---|---|---|
| min | 0.000020 | 0.024800 |
| 50% | 0.001530 | 1.532000 |
| mean | 0.015575 | 15.575298 |
| max | 0.974410 | 974.406700 |
| total | 2.258380 | 2258.418200 |
In [8]:
tal_speedsdf, tal_statsdf = ta.performance(df, top=10, talib=True, stats=True, gradient=True, verbose=True)[+] aberration: 1.3997 ms (0.0014 s)
[+] accbands: 1.5715 ms (0.0016 s)
[+] ad: 0.5410 ms (0.0005 s)
[+] adosc: 0.4955 ms (0.0005 s)
[+] adx: 4.3656 ms (0.0044 s)
[+] alligator: 218.5501 ms (0.2186 s)
[+] alma: 0.5894 ms (0.0006 s)
[+] amat: 2.3295 ms (0.0023 s)
[+] ao: 0.5743 ms (0.0006 s)
[+] aobv: 2.8668 ms (0.0029 s)
[+] apo: 0.2542 ms (0.0003 s)
[+] aroon: 0.6400 ms (0.0006 s)
[+] atr: 0.4125 ms (0.0004 s)
[+] bbands: 0.9828 ms (0.0010 s)
[+] bias: 0.3328 ms (0.0003 s)
[+] bop: 0.4978 ms (0.0005 s)
[+] brar: 4.5548 ms (0.0046 s)
[+] cci: 0.5223 ms (0.0005 s)
[+] cdl_pattern: 12.5554 ms (0.0126 s)
[+] cdl_z: 1.7763 ms (0.0018 s)
[+] cfo: 0.4176 ms (0.0004 s)
[+] cg: 5.6833 ms (0.0057 s)
[+] chop: 1.2825 ms (0.0013 s)
[+] cksp: 1.5348 ms (0.0015 s)
[+] cmf: 1.2280 ms (0.0012 s)
[+] cmo: 0.2290 ms (0.0002 s)
[+] coppock: 0.3436 ms (0.0003 s)
[+] cti: 0.2040 ms (0.0002 s)
[+] cube: 0.6042 ms (0.0006 s)
[+] decay: 0.8007 ms (0.0008 s)
[+] decreasing: 0.3465 ms (0.0003 s)
[+] dema: 0.2054 ms (0.0002 s)
[+] dm: 0.5538 ms (0.0006 s)
[+] donchian: 1.0042 ms (0.0010 s)
[+] dpo: 0.4992 ms (0.0005 s)
[+] ebsw: 40.0872 ms (0.0401 s)
[+] efi: 0.5075 ms (0.0005 s)
[+] ema: 0.2051 ms (0.0002 s)
[+] entropy: 0.8241 ms (0.0008 s)
[+] eom: 1.0890 ms (0.0011 s)
[+] er: 0.6081 ms (0.0006 s)
[+] eri: 0.7362 ms (0.0007 s)
[+] fisher: 10.0660 ms (0.0101 s)
[+] fwma: 2.5385 ms (0.0025 s)
[+] ha: 77.2657 ms (0.0773 s)
[+] hilo: 84.1511 ms (0.0842 s)
[+] hl2: 0.3273 ms (0.0003 s)
[+] hlc3: 0.3886 ms (0.0004 s)
[+] hma: 0.4175 ms (0.0004 s)
[+] hwc: 8.7684 ms (0.0088 s)
[+] hwma: 6.8195 ms (0.0068 s)
[+] ifisher: 0.7055 ms (0.0007 s)
[+] increasing: 0.3857 ms (0.0004 s)
[+] inertia: 4.6454 ms (0.0046 s)
[+] jma: 28.8499 ms (0.0288 s)
[+] kama: 16.1395 ms (0.0161 s)
[+] kc: 1.0300 ms (0.0010 s)
[+] kdj: 1.7678 ms (0.0018 s)
[+] kst: 1.8943 ms (0.0019 s)
[+] kurtosis: 0.3698 ms (0.0004 s)
[+] kvo: 3.6475 ms (0.0036 s)
[+] linreg: 0.2259 ms (0.0002 s)
[+] log_return: 0.2183 ms (0.0002 s)
[+] long_run: 0.0255 ms (0.0000 s)
[+] macd: 0.4919 ms (0.0005 s)
[+] mad: 15.5197 ms (0.0155 s)
[+] massi: 0.8280 ms (0.0008 s)
[+] mcgd: 2.5448 ms (0.0025 s)
[+] median: 0.8207 ms (0.0008 s)
[+] mfi: 0.6164 ms (0.0006 s)
[+] midpoint: 0.2796 ms (0.0003 s)
[+] midprice: 0.3612 ms (0.0004 s)
[+] mom: 0.1926 ms (0.0002 s)
[+] natr: 0.4305 ms (0.0004 s)
[+] nvi: 3.3641 ms (0.0034 s)
[+] obv: 0.3551 ms (0.0004 s)
[+] ohlc4: 0.4696 ms (0.0005 s)
[+] pdist: 1.2775 ms (0.0013 s)
[+] percent_return: 0.2099 ms (0.0002 s)
[+] pgo: 0.6248 ms (0.0006 s)
[+] ppo: 0.5915 ms (0.0006 s)
[+] psar: 116.5620 ms (0.1166 s)
[+] psl: 2.2435 ms (0.0022 s)
[+] pvi: 3.0409 ms (0.0030 s)
[+] pvo: 1.1417 ms (0.0011 s)
[+] pvol: 0.4824 ms (0.0005 s)
[+] pvr: 2.0286 ms (0.0020 s)
[+] pvt: 0.7141 ms (0.0007 s)
[+] pwma: 2.4379 ms (0.0024 s)
[+] qqe: 204.6109 ms (0.2046 s)
[+] qstick: 0.7636 ms (0.0008 s)
[+] quantile: 0.8308 ms (0.0008 s)
[+] reflex: 0.2776 ms (0.0003 s)
[+] remap: 0.1995 ms (0.0002 s)
[+] rma: 0.3934 ms (0.0004 s)
[+] roc: 0.2270 ms (0.0002 s)
[+] rsi: 0.2160 ms (0.0002 s)
[+] rsx: 10.7125 ms (0.0107 s)
[+] rvgi: 8.4559 ms (0.0085 s)
[+] rvi: 5.1331 ms (0.0051 s)
[+] short_run: 0.0307 ms (0.0000 s)
[+] sinwma: 11.6453 ms (0.0116 s)
[+] skew: 0.6612 ms (0.0007 s)
[+] slope: 0.3808 ms (0.0004 s)
[+] sma: 0.2257 ms (0.0002 s)
[+] smi: 1.3777 ms (0.0014 s)
[+] smma: 72.7116 ms (0.0727 s)
[+] squeeze: 3.6359 ms (0.0036 s)
[+] squeeze_pro: 5.9578 ms (0.0060 s)
[+] ssf: 0.2405 ms (0.0002 s)
[+] ssf3: 0.1993 ms (0.0002 s)
[+] stc: 25.7170 ms (0.0257 s)
[+] stdev: 0.2226 ms (0.0002 s)
[+] stoch: 0.6385 ms (0.0006 s)
[+] stochf: 0.6130 ms (0.0006 s)
[+] stochrsi: 1.4542 ms (0.0015 s)
[+] supertrend: 56.8238 ms (0.0568 s)
[+] swma: 2.7622 ms (0.0028 s)
[+] t3: 0.2826 ms (0.0003 s)
[+] td_seq: 961.1572 ms (0.9612 s)
[+] tema: 0.3082 ms (0.0003 s)
[+] thermo: 1.6463 ms (0.0016 s)
[+] tos_stdevall: 3.4891 ms (0.0035 s)
[+] trendflex: 0.2553 ms (0.0003 s)
[+] trima: 0.2115 ms (0.0002 s)
[+] trix: 0.9661 ms (0.0010 s)
[+] true_range: 0.3955 ms (0.0004 s)
[+] tsi: 0.8169 ms (0.0008 s)
[+] tsignals: 0.0269 ms (0.0000 s)
[+] ttm_trend: 1.9096 ms (0.0019 s)
[+] ui: 0.9255 ms (0.0009 s)
[+] uo: 0.4292 ms (0.0004 s)
[+] variance: 0.1917 ms (0.0002 s)
[+] vhf: 1.7259 ms (0.0017 s)
[+] vidya: 50.1970 ms (0.0502 s)
[+] vortex: 1.6858 ms (0.0017 s)
[+] vwap: 2.1889 ms (0.0022 s)
[+] vwma: 0.5210 ms (0.0005 s)
[+] wb_tsv: 4.3906 ms (0.0044 s)
[+] wcp: 0.4350 ms (0.0004 s)
[+] willr: 0.3989 ms (0.0004 s)
[+] wma: 0.1878 ms (0.0002 s)
[+] xsignals: 0.0252 ms (0.0000 s)
[+] zlma: 0.3721 ms (0.0004 s)
[+] zscore: 0.4181 ms (0.0004 s)
============================================================
Slowest 10 Indicators [145]
Observations[talib]: 1260
============================================================
secs ms
Indicator
td_seq 0.96116 961.1572
alligator 0.21855 218.5501
qqe 0.20461 204.6109
psar 0.11656 116.5620
hilo 0.08415 84.1511
ha 0.07727 77.2657
smma 0.07271 72.7116
supertrend 0.05682 56.8238
vidya 0.05020 50.1970
ebsw 0.04009 40.0872
============================================================
Time Stats:
secs ms
min 0.000030 0.025200
50% 0.000710 0.714100
mean 0.015006 15.005234
max 0.961160 961.157200
total 2.175830 2175.759000
============================================================
In [9]:
tal_speedsdfOut [9]:
| secs | ms | |
|---|---|---|
| Indicator | ||
| td_seq | 0.961160 | 961.157200 |
| alligator | 0.218550 | 218.550100 |
| qqe | 0.204610 | 204.610900 |
| psar | 0.116560 | 116.562000 |
| hilo | 0.084150 | 84.151100 |
| ha | 0.077270 | 77.265700 |
| smma | 0.072710 | 72.711600 |
| supertrend | 0.056820 | 56.823800 |
| vidya | 0.050200 | 50.197000 |
| ebsw | 0.040090 | 40.087200 |
In [10]:
tal_statsdfOut [10]:
| secs | ms | |
|---|---|---|
| min | 0.000030 | 0.025200 |
| 50% | 0.000710 | 0.714100 |
| mean | 0.015006 | 15.005234 |
| max | 0.961160 | 961.157200 |
| total | 2.175830 | 2175.759000 |
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.015006 | 0.96116 | 2.17583 |
| ms | 0.02520 | 0.71410 | 15.005234 | 961.15720 | 2175.75900 | |
| Pandas TA | secs | 0.00002 | 0.00153 | 0.015575 | 0.97441 | 2.25838 |
| ms | 0.02480 | 1.53200 | 15.575298 | 974.40670 | 2258.41820 |
In [12]:
diffdf = (tal_statsdf - pta_statsdf).abs().T
diffdf.columns.name = "Differences"
diffdfOut [12]:
| Differences | min | 50% | mean | max | total |
|---|---|---|---|---|---|
| secs | 0.00001 | 0.00082 | 0.000569 | 0.01325 | 0.08255 |
| ms | 0.00040 | 0.81790 | 0.570063 | 13.24950 | 82.65920 |
In [ ]: