{
"cells": [
{
"cell_type": "markdown",
"id": "3dbbe3ae-2e85-46a1-b4c7-5bc942978bb6",
"metadata": {},
"source": [
"# Indicator Performance Check\n",
"\n",
"This Notebook shows the **Indicator Performance** with and without TA Lib\n",
"* Results will vary if ```vectorbt``` or ```numba``` is installed.\n",
"* These values are based on a M1 Macbook with 16GB Memory."
]
},
{
"cell_type": "code",
"execution_count": 1,
"id": "63c0934c-9bb3-4a3e-a65a-9f142aa346f9",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Package Versions:\n",
"Pandas TA v0.3.48b0\n",
"Numba v0.55.1\n",
"talib v0.4.21\n"
]
}
],
"source": [
"from importlib.util import find_spec\n",
"\n",
"from numpy import version as numpy_version\n",
"from pandas import concat, IndexSlice\n",
"from pandas import IndexSlice as idx\n",
"import pandas_ta as ta\n",
"\n",
"print(\"Package Versions:\")\n",
"print(f\"Pandas TA v{ta.version}\")\n",
"\n",
"has_numba = find_spec(\"numba\") is not None\n",
"if has_numba:\n",
" from numba import __version__ as numba_version\n",
" print(f\"Numba v{numba_version}\")\n",
" \n",
"if find_spec(\"talib\") is not None:\n",
" from talib import __version__ as tal_version\n",
" print(f\"talib v{tal_version}\")\n",
"\n",
"from pandas import read_csv\n",
"from pandas import DatetimeIndex as dti\n",
"%matplotlib inline"
]
},
{
"cell_type": "markdown",
"id": "68531949-cca4-47f5-89e7-00d77855e8a3",
"metadata": {},
"source": [
"### Fetch Sample Data"
]
},
{
"cell_type": "code",
"execution_count": 2,
"id": "efe05268-b2a1-4beb-9b7d-280e374d8d50",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"[+] yf | SPY(1260, 7): 3615.7968 ms (3.6158 s)\n"
]
}
],
"source": [
"_df = ta.df.ta.ticker(\"SPY\", period=\"5y\", timed=True)"
]
},
{
"cell_type": "code",
"execution_count": 3,
"id": "3f7ad492-a70c-4367-a60e-92bd186f1afb",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"(1260, 7)"
]
},
"execution_count": 3,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df = _df.copy()\n",
"df.shape"
]
},
{
"cell_type": "markdown",
"id": "ea75457d-9b95-41ae-9205-23b822c3a3d8",
"metadata": {},
"source": [
"### If ```numba``` installed, prep @njit"
]
},
{
"cell_type": "code",
"execution_count": 4,
"id": "38176845-652e-43dc-b426-12eaa9952c5f",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"\n",
"============================================================\n",
" Slowest 10 Indicators [145]\n",
" Observations: 150\n",
"============================================================\n",
" secs ms\n",
"Indicator \n",
"alligator 1.46619 1466.1912\n",
"reflex 0.24142 241.4170\n",
"trendflex 0.16184 161.8418\n",
"td_seq 0.11109 111.0865\n",
"ssf 0.11097 110.9743\n",
"ssf3 0.09494 94.9402\n",
"qqe 0.02390 23.9021\n",
"cdl_pattern 0.01395 13.9522\n",
"psar 0.01361 13.6084\n",
"hilo 0.01038 10.3839\n",
"\n",
"============================================================\n",
"Time Stats:\n",
" secs ms\n",
"min 0.000020 0.023400\n",
"50% 0.001160 1.160200\n",
"mean 0.016943 16.943373\n",
"max 1.466190 1466.191200\n",
"total 2.456780 2456.789100\n",
"\n",
"============================================================\n",
"\n"
]
}
],
"source": [
"if has_numba:\n",
" ta.performance(df.iloc[-150:], top=10, talib=False)"
]
},
{
"cell_type": "markdown",
"id": "4ce3fb06-5ca6-44e2-a8f1-6c35af7c0c23",
"metadata": {},
"source": [
"## Performance **without** TA Lib"
]
},
{
"cell_type": "code",
"execution_count": 5,
"id": "6404c4d7-3318-4749-a2b7-c5dd9c5e3f59",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"\n",
"[+] aberration: 1.5327 ms (0.0015 s)\n",
"[+] accbands: 1.7769 ms (0.0018 s)\n",
"[+] ad: 1.1659 ms (0.0012 s)\n",
"[+] adosc: 1.9079 ms (0.0019 s)\n",
"[+] adx: 3.1693 ms (0.0032 s)\n",
"[+] alligator: 216.3262 ms (0.2163 s)\n",
"[+] alma: 0.6678 ms (0.0007 s)\n",
"[+] amat: 3.2197 ms (0.0032 s)\n",
"[+] ao: 0.5863 ms (0.0006 s)\n",
"[+] aobv: 6.1393 ms (0.0061 s)\n",
"[+] apo: 1.1099 ms (0.0011 s)\n",
"[+] aroon: 9.4521 ms (0.0095 s)\n",
"[+] atr: 1.9118 ms (0.0019 s)\n",
"[+] bbands: 1.6445 ms (0.0016 s)\n",
"[+] bias: 0.8155 ms (0.0008 s)\n",
"[+] bop: 0.9314 ms (0.0009 s)\n",
"[+] brar: 4.5026 ms (0.0045 s)\n",
"[+] cci: 16.4964 ms (0.0165 s)\n",
"[+] cdl_pattern: 11.4451 ms (0.0114 s)\n",
"[+] cdl_z: 1.8045 ms (0.0018 s)\n",
"[+] cfo: 0.4211 ms (0.0004 s)\n",
"[+] cg: 5.2015 ms (0.0052 s)\n",
"[+] chop: 1.3616 ms (0.0014 s)\n",
"[+] cksp: 1.6839 ms (0.0017 s)\n",
"[+] cmf: 1.4190 ms (0.0014 s)\n",
"[+] cmo: 2.3247 ms (0.0023 s)\n",
"[+] coppock: 0.3732 ms (0.0004 s)\n",
"[+] cti: 0.2155 ms (0.0002 s)\n",
"[+] cube: 0.6051 ms (0.0006 s)\n",
"[+] decay: 0.6636 ms (0.0007 s)\n",
"[+] decreasing: 0.3895 ms (0.0004 s)\n",
"[+] dema: 0.9932 ms (0.0010 s)\n",
"[+] dm: 2.2943 ms (0.0023 s)\n",
"[+] donchian: 1.0459 ms (0.0010 s)\n",
"[+] dpo: 0.5231 ms (0.0005 s)\n",
"[+] ebsw: 40.8104 ms (0.0408 s)\n",
"[+] efi: 0.4605 ms (0.0005 s)\n",
"[+] ema: 0.5838 ms (0.0006 s)\n",
"[+] entropy: 0.9794 ms (0.0010 s)\n",
"[+] eom: 1.2326 ms (0.0012 s)\n",
"[+] er: 0.7048 ms (0.0007 s)\n",
"[+] eri: 0.7430 ms (0.0007 s)\n",
"[+] fisher: 9.7973 ms (0.0098 s)\n",
"[+] fwma: 2.7743 ms (0.0028 s)\n",
"[+] ha: 76.5196 ms (0.0765 s)\n",
"[+] hilo: 84.3213 ms (0.0843 s)\n",
"[+] hl2: 0.3896 ms (0.0004 s)\n",
"[+] hlc3: 0.3794 ms (0.0004 s)\n",
"[+] hma: 0.4388 ms (0.0004 s)\n",
"[+] hwc: 8.4353 ms (0.0084 s)\n",
"[+] hwma: 6.5198 ms (0.0065 s)\n",
"[+] ifisher: 0.6574 ms (0.0007 s)\n",
"[+] increasing: 0.3812 ms (0.0004 s)\n",
"[+] inertia: 4.6299 ms (0.0046 s)\n",
"[+] jma: 28.3453 ms (0.0283 s)\n",
"[+] kama: 16.0117 ms (0.0160 s)\n",
"[+] kc: 0.9787 ms (0.0010 s)\n",
"[+] kdj: 1.7019 ms (0.0017 s)\n",
"[+] kst: 1.7683 ms (0.0018 s)\n",
"[+] kurtosis: 0.4624 ms (0.0005 s)\n",
"[+] kvo: 3.4134 ms (0.0034 s)\n",
"[+] linreg: 12.5020 ms (0.0125 s)\n",
"[+] log_return: 0.2260 ms (0.0002 s)\n",
"[+] long_run: 0.0248 ms (0.0000 s)\n",
"[+] macd: 2.8070 ms (0.0028 s)\n",
"[+] mad: 14.9942 ms (0.0150 s)\n",
"[+] massi: 1.3709 ms (0.0014 s)\n",
"[+] mcgd: 2.3848 ms (0.0024 s)\n",
"[+] median: 0.7515 ms (0.0008 s)\n",
"[+] mfi: 4.2428 ms (0.0042 s)\n",
"[+] midpoint: 0.6989 ms (0.0007 s)\n",
"[+] midprice: 0.7099 ms (0.0007 s)\n",
"[+] mom: 0.2238 ms (0.0002 s)\n",
"[+] natr: 1.9008 ms (0.0019 s)\n",
"[+] nvi: 2.9522 ms (0.0030 s)\n",
"[+] obv: 2.1671 ms (0.0022 s)\n",
"[+] ohlc4: 0.4788 ms (0.0005 s)\n",
"[+] pdist: 1.2553 ms (0.0013 s)\n",
"[+] percent_return: 0.2165 ms (0.0002 s)\n",
"[+] pgo: 0.6223 ms (0.0006 s)\n",
"[+] ppo: 1.6771 ms (0.0017 s)\n",
"[+] psar: 108.4812 ms (0.1085 s)\n",
"[+] psl: 1.7707 ms (0.0018 s)\n",
"[+] pvi: 2.8398 ms (0.0028 s)\n",
"[+] pvo: 0.7763 ms (0.0008 s)\n",
"[+] pvol: 0.3209 ms (0.0003 s)\n",
"[+] pvr: 1.3872 ms (0.0014 s)\n",
"[+] pvt: 0.4248 ms (0.0004 s)\n",
"[+] pwma: 2.6412 ms (0.0026 s)\n",
"[+] qqe: 196.9207 ms (0.1969 s)\n",
"[+] qstick: 0.5539 ms (0.0006 s)\n",
"[+] quantile: 0.7560 ms (0.0008 s)\n",
"[+] reflex: 0.2509 ms (0.0003 s)\n",
"[+] remap: 0.1996 ms (0.0002 s)\n",
"[+] rma: 0.4105 ms (0.0004 s)\n",
"[+] roc: 0.4310 ms (0.0004 s)\n",
"[+] rsi: 2.9662 ms (0.0030 s)\n",
"[+] rsx: 10.6649 ms (0.0107 s)\n",
"[+] rvgi: 7.4468 ms (0.0074 s)\n",
"[+] rvi: 4.5487 ms (0.0045 s)\n",
"[+] short_run: 0.0293 ms (0.0000 s)\n",
"[+] sinwma: 11.4138 ms (0.0114 s)\n",
"[+] skew: 0.3613 ms (0.0004 s)\n",
"[+] slope: 0.2908 ms (0.0003 s)\n",
"[+] sma: 0.4385 ms (0.0004 s)\n",
"[+] smi: 1.2245 ms (0.0012 s)\n",
"[+] smma: 75.6244 ms (0.0756 s)\n",
"[+] squeeze: 3.4781 ms (0.0035 s)\n",
"[+] squeeze_pro: 4.9684 ms (0.0050 s)\n",
"[+] ssf: 0.2245 ms (0.0002 s)\n",
"[+] ssf3: 0.1924 ms (0.0002 s)\n",
"[+] stc: 25.4543 ms (0.0255 s)\n",
"[+] stdev: 0.4278 ms (0.0004 s)\n",
"[+] stoch: 2.1585 ms (0.0022 s)\n",
"[+] stochf: 1.9095 ms (0.0019 s)\n",
"[+] stochrsi: 1.4200 ms (0.0014 s)\n",
"[+] supertrend: 54.8726 ms (0.0549 s)\n",
"[+] swma: 2.6174 ms (0.0026 s)\n",
"[+] t3: 2.7930 ms (0.0028 s)\n",
"[+] td_seq: 974.4067 ms (0.9744 s)\n",
"[+] tema: 1.8953 ms (0.0019 s)\n",
"[+] thermo: 1.8535 ms (0.0019 s)\n",
"[+] tos_stdevall: 3.2848 ms (0.0033 s)\n",
"[+] trendflex: 0.2511 ms (0.0003 s)\n",
"[+] trima: 0.7133 ms (0.0007 s)\n",
"[+] trix: 2.0507 ms (0.0021 s)\n",
"[+] true_range: 1.5320 ms (0.0015 s)\n",
"[+] tsi: 2.6424 ms (0.0026 s)\n",
"[+] tsignals: 0.0373 ms (0.0000 s)\n",
"[+] ttm_trend: 2.0251 ms (0.0020 s)\n",
"[+] ui: 0.9397 ms (0.0009 s)\n",
"[+] uo: 3.0819 ms (0.0031 s)\n",
"[+] variance: 0.3726 ms (0.0004 s)\n",
"[+] vhf: 1.1655 ms (0.0012 s)\n",
"[+] vidya: 51.9878 ms (0.0520 s)\n",
"[+] vortex: 1.9960 ms (0.0020 s)\n",
"[+] vwap: 2.2110 ms (0.0022 s)\n",
"[+] vwma: 0.5046 ms (0.0005 s)\n",
"[+] wb_tsv: 4.3750 ms (0.0044 s)\n",
"[+] wcp: 0.4249 ms (0.0004 s)\n",
"[+] willr: 1.0260 ms (0.0010 s)\n",
"[+] wma: 12.1530 ms (0.0122 s)\n",
"[+] xsignals: 0.0292 ms (0.0000 s)\n",
"[+] zlma: 0.8615 ms (0.0009 s)\n",
"[+] zscore: 1.1391 ms (0.0011 s)\n",
"\n",
"============================================================\n",
" Slowest 10 Indicators [145]\n",
" Observations: 1260\n",
"============================================================\n",
" secs ms\n",
"Indicator \n",
"td_seq 0.97441 974.4067\n",
"alligator 0.21633 216.3262\n",
"qqe 0.19692 196.9207\n",
"psar 0.10848 108.4812\n",
"hilo 0.08432 84.3213\n",
"ha 0.07652 76.5196\n",
"smma 0.07562 75.6244\n",
"supertrend 0.05487 54.8726\n",
"vidya 0.05199 51.9878\n",
"ebsw 0.04081 40.8104\n",
"\n",
"============================================================\n",
"Time Stats:\n",
" secs ms\n",
"min 0.000020 0.024800\n",
"50% 0.001530 1.532000\n",
"mean 0.015575 15.575298\n",
"max 0.974410 974.406700\n",
"total 2.258380 2258.418200\n",
"\n",
"============================================================\n",
"\n"
]
}
],
"source": [
"pta_speedsdf, pta_statsdf = ta.performance(df, top=10, talib=False, stats=True, gradient=True, verbose=True)"
]
},
{
"cell_type": "code",
"execution_count": 6,
"id": "b3a753e2-9634-4cc8-9544-5c28c92130a3",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"
\n",
" \n",
" \n",
" | | \n",
" secs | \n",
" ms | \n",
"
\n",
" \n",
" | Indicator | \n",
" | \n",
" | \n",
"
\n",
" \n",
" \n",
" \n",
" | td_seq | \n",
" 0.974410 | \n",
" 974.406700 | \n",
"
\n",
" \n",
" | alligator | \n",
" 0.216330 | \n",
" 216.326200 | \n",
"
\n",
" \n",
" | qqe | \n",
" 0.196920 | \n",
" 196.920700 | \n",
"
\n",
" \n",
" | psar | \n",
" 0.108480 | \n",
" 108.481200 | \n",
"
\n",
" \n",
" | hilo | \n",
" 0.084320 | \n",
" 84.321300 | \n",
"
\n",
" \n",
" | ha | \n",
" 0.076520 | \n",
" 76.519600 | \n",
"
\n",
" \n",
" | smma | \n",
" 0.075620 | \n",
" 75.624400 | \n",
"
\n",
" \n",
" | supertrend | \n",
" 0.054870 | \n",
" 54.872600 | \n",
"
\n",
" \n",
" | vidya | \n",
" 0.051990 | \n",
" 51.987800 | \n",
"
\n",
" \n",
" | ebsw | \n",
" 0.040810 | \n",
" 40.810400 | \n",
"
\n",
" \n",
"
\n"
],
"text/plain": [
""
]
},
"execution_count": 6,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"pta_speedsdf"
]
},
{
"cell_type": "code",
"execution_count": 7,
"id": "715520de-ad95-47a6-aa41-5f00d1b23eac",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" secs | \n",
" ms | \n",
"
\n",
" \n",
" \n",
" \n",
" | min | \n",
" 0.000020 | \n",
" 0.024800 | \n",
"
\n",
" \n",
" | 50% | \n",
" 0.001530 | \n",
" 1.532000 | \n",
"
\n",
" \n",
" | mean | \n",
" 0.015575 | \n",
" 15.575298 | \n",
"
\n",
" \n",
" | max | \n",
" 0.974410 | \n",
" 974.406700 | \n",
"
\n",
" \n",
" | total | \n",
" 2.258380 | \n",
" 2258.418200 | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" secs ms\n",
"min 0.000020 0.024800\n",
"50% 0.001530 1.532000\n",
"mean 0.015575 15.575298\n",
"max 0.974410 974.406700\n",
"total 2.258380 2258.418200"
]
},
"execution_count": 7,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"pta_statsdf"
]
},
{
"cell_type": "markdown",
"id": "942e3b8a-e3d9-480f-82b4-75d311b54cfa",
"metadata": {},
"source": [
"## Performance **with** TA Lib"
]
},
{
"cell_type": "code",
"execution_count": 8,
"id": "b4757c9e-7a8f-4b82-93a9-8b3e4837a1d0",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"\n",
"[+] aberration: 1.3997 ms (0.0014 s)\n",
"[+] accbands: 1.5715 ms (0.0016 s)\n",
"[+] ad: 0.5410 ms (0.0005 s)\n",
"[+] adosc: 0.4955 ms (0.0005 s)\n",
"[+] adx: 4.3656 ms (0.0044 s)\n",
"[+] alligator: 218.5501 ms (0.2186 s)\n",
"[+] alma: 0.5894 ms (0.0006 s)\n",
"[+] amat: 2.3295 ms (0.0023 s)\n",
"[+] ao: 0.5743 ms (0.0006 s)\n",
"[+] aobv: 2.8668 ms (0.0029 s)\n",
"[+] apo: 0.2542 ms (0.0003 s)\n",
"[+] aroon: 0.6400 ms (0.0006 s)\n",
"[+] atr: 0.4125 ms (0.0004 s)\n",
"[+] bbands: 0.9828 ms (0.0010 s)\n",
"[+] bias: 0.3328 ms (0.0003 s)\n",
"[+] bop: 0.4978 ms (0.0005 s)\n",
"[+] brar: 4.5548 ms (0.0046 s)\n",
"[+] cci: 0.5223 ms (0.0005 s)\n",
"[+] cdl_pattern: 12.5554 ms (0.0126 s)\n",
"[+] cdl_z: 1.7763 ms (0.0018 s)\n",
"[+] cfo: 0.4176 ms (0.0004 s)\n",
"[+] cg: 5.6833 ms (0.0057 s)\n",
"[+] chop: 1.2825 ms (0.0013 s)\n",
"[+] cksp: 1.5348 ms (0.0015 s)\n",
"[+] cmf: 1.2280 ms (0.0012 s)\n",
"[+] cmo: 0.2290 ms (0.0002 s)\n",
"[+] coppock: 0.3436 ms (0.0003 s)\n",
"[+] cti: 0.2040 ms (0.0002 s)\n",
"[+] cube: 0.6042 ms (0.0006 s)\n",
"[+] decay: 0.8007 ms (0.0008 s)\n",
"[+] decreasing: 0.3465 ms (0.0003 s)\n",
"[+] dema: 0.2054 ms (0.0002 s)\n",
"[+] dm: 0.5538 ms (0.0006 s)\n",
"[+] donchian: 1.0042 ms (0.0010 s)\n",
"[+] dpo: 0.4992 ms (0.0005 s)\n",
"[+] ebsw: 40.0872 ms (0.0401 s)\n",
"[+] efi: 0.5075 ms (0.0005 s)\n",
"[+] ema: 0.2051 ms (0.0002 s)\n",
"[+] entropy: 0.8241 ms (0.0008 s)\n",
"[+] eom: 1.0890 ms (0.0011 s)\n",
"[+] er: 0.6081 ms (0.0006 s)\n",
"[+] eri: 0.7362 ms (0.0007 s)\n",
"[+] fisher: 10.0660 ms (0.0101 s)\n",
"[+] fwma: 2.5385 ms (0.0025 s)\n",
"[+] ha: 77.2657 ms (0.0773 s)\n",
"[+] hilo: 84.1511 ms (0.0842 s)\n",
"[+] hl2: 0.3273 ms (0.0003 s)\n",
"[+] hlc3: 0.3886 ms (0.0004 s)\n",
"[+] hma: 0.4175 ms (0.0004 s)\n",
"[+] hwc: 8.7684 ms (0.0088 s)\n",
"[+] hwma: 6.8195 ms (0.0068 s)\n",
"[+] ifisher: 0.7055 ms (0.0007 s)\n",
"[+] increasing: 0.3857 ms (0.0004 s)\n",
"[+] inertia: 4.6454 ms (0.0046 s)\n",
"[+] jma: 28.8499 ms (0.0288 s)\n",
"[+] kama: 16.1395 ms (0.0161 s)\n",
"[+] kc: 1.0300 ms (0.0010 s)\n",
"[+] kdj: 1.7678 ms (0.0018 s)\n",
"[+] kst: 1.8943 ms (0.0019 s)\n",
"[+] kurtosis: 0.3698 ms (0.0004 s)\n",
"[+] kvo: 3.6475 ms (0.0036 s)\n",
"[+] linreg: 0.2259 ms (0.0002 s)\n",
"[+] log_return: 0.2183 ms (0.0002 s)\n",
"[+] long_run: 0.0255 ms (0.0000 s)\n",
"[+] macd: 0.4919 ms (0.0005 s)\n",
"[+] mad: 15.5197 ms (0.0155 s)\n",
"[+] massi: 0.8280 ms (0.0008 s)\n",
"[+] mcgd: 2.5448 ms (0.0025 s)\n",
"[+] median: 0.8207 ms (0.0008 s)\n",
"[+] mfi: 0.6164 ms (0.0006 s)\n",
"[+] midpoint: 0.2796 ms (0.0003 s)\n",
"[+] midprice: 0.3612 ms (0.0004 s)\n",
"[+] mom: 0.1926 ms (0.0002 s)\n",
"[+] natr: 0.4305 ms (0.0004 s)\n",
"[+] nvi: 3.3641 ms (0.0034 s)\n",
"[+] obv: 0.3551 ms (0.0004 s)\n",
"[+] ohlc4: 0.4696 ms (0.0005 s)\n",
"[+] pdist: 1.2775 ms (0.0013 s)\n",
"[+] percent_return: 0.2099 ms (0.0002 s)\n",
"[+] pgo: 0.6248 ms (0.0006 s)\n",
"[+] ppo: 0.5915 ms (0.0006 s)\n",
"[+] psar: 116.5620 ms (0.1166 s)\n",
"[+] psl: 2.2435 ms (0.0022 s)\n",
"[+] pvi: 3.0409 ms (0.0030 s)\n",
"[+] pvo: 1.1417 ms (0.0011 s)\n",
"[+] pvol: 0.4824 ms (0.0005 s)\n",
"[+] pvr: 2.0286 ms (0.0020 s)\n",
"[+] pvt: 0.7141 ms (0.0007 s)\n",
"[+] pwma: 2.4379 ms (0.0024 s)\n",
"[+] qqe: 204.6109 ms (0.2046 s)\n",
"[+] qstick: 0.7636 ms (0.0008 s)\n",
"[+] quantile: 0.8308 ms (0.0008 s)\n",
"[+] reflex: 0.2776 ms (0.0003 s)\n",
"[+] remap: 0.1995 ms (0.0002 s)\n",
"[+] rma: 0.3934 ms (0.0004 s)\n",
"[+] roc: 0.2270 ms (0.0002 s)\n",
"[+] rsi: 0.2160 ms (0.0002 s)\n",
"[+] rsx: 10.7125 ms (0.0107 s)\n",
"[+] rvgi: 8.4559 ms (0.0085 s)\n",
"[+] rvi: 5.1331 ms (0.0051 s)\n",
"[+] short_run: 0.0307 ms (0.0000 s)\n",
"[+] sinwma: 11.6453 ms (0.0116 s)\n",
"[+] skew: 0.6612 ms (0.0007 s)\n",
"[+] slope: 0.3808 ms (0.0004 s)\n",
"[+] sma: 0.2257 ms (0.0002 s)\n",
"[+] smi: 1.3777 ms (0.0014 s)\n",
"[+] smma: 72.7116 ms (0.0727 s)\n",
"[+] squeeze: 3.6359 ms (0.0036 s)\n",
"[+] squeeze_pro: 5.9578 ms (0.0060 s)\n",
"[+] ssf: 0.2405 ms (0.0002 s)\n",
"[+] ssf3: 0.1993 ms (0.0002 s)\n",
"[+] stc: 25.7170 ms (0.0257 s)\n",
"[+] stdev: 0.2226 ms (0.0002 s)\n",
"[+] stoch: 0.6385 ms (0.0006 s)\n",
"[+] stochf: 0.6130 ms (0.0006 s)\n",
"[+] stochrsi: 1.4542 ms (0.0015 s)\n",
"[+] supertrend: 56.8238 ms (0.0568 s)\n",
"[+] swma: 2.7622 ms (0.0028 s)\n",
"[+] t3: 0.2826 ms (0.0003 s)\n",
"[+] td_seq: 961.1572 ms (0.9612 s)\n",
"[+] tema: 0.3082 ms (0.0003 s)\n",
"[+] thermo: 1.6463 ms (0.0016 s)\n",
"[+] tos_stdevall: 3.4891 ms (0.0035 s)\n",
"[+] trendflex: 0.2553 ms (0.0003 s)\n",
"[+] trima: 0.2115 ms (0.0002 s)\n",
"[+] trix: 0.9661 ms (0.0010 s)\n",
"[+] true_range: 0.3955 ms (0.0004 s)\n",
"[+] tsi: 0.8169 ms (0.0008 s)\n",
"[+] tsignals: 0.0269 ms (0.0000 s)\n",
"[+] ttm_trend: 1.9096 ms (0.0019 s)\n",
"[+] ui: 0.9255 ms (0.0009 s)\n",
"[+] uo: 0.4292 ms (0.0004 s)\n",
"[+] variance: 0.1917 ms (0.0002 s)\n",
"[+] vhf: 1.7259 ms (0.0017 s)\n",
"[+] vidya: 50.1970 ms (0.0502 s)\n",
"[+] vortex: 1.6858 ms (0.0017 s)\n",
"[+] vwap: 2.1889 ms (0.0022 s)\n",
"[+] vwma: 0.5210 ms (0.0005 s)\n",
"[+] wb_tsv: 4.3906 ms (0.0044 s)\n",
"[+] wcp: 0.4350 ms (0.0004 s)\n",
"[+] willr: 0.3989 ms (0.0004 s)\n",
"[+] wma: 0.1878 ms (0.0002 s)\n",
"[+] xsignals: 0.0252 ms (0.0000 s)\n",
"[+] zlma: 0.3721 ms (0.0004 s)\n",
"[+] zscore: 0.4181 ms (0.0004 s)\n",
"\n",
"============================================================\n",
" Slowest 10 Indicators [145]\n",
" Observations[talib]: 1260\n",
"============================================================\n",
" secs ms\n",
"Indicator \n",
"td_seq 0.96116 961.1572\n",
"alligator 0.21855 218.5501\n",
"qqe 0.20461 204.6109\n",
"psar 0.11656 116.5620\n",
"hilo 0.08415 84.1511\n",
"ha 0.07727 77.2657\n",
"smma 0.07271 72.7116\n",
"supertrend 0.05682 56.8238\n",
"vidya 0.05020 50.1970\n",
"ebsw 0.04009 40.0872\n",
"\n",
"============================================================\n",
"Time Stats:\n",
" secs ms\n",
"min 0.000030 0.025200\n",
"50% 0.000710 0.714100\n",
"mean 0.015006 15.005234\n",
"max 0.961160 961.157200\n",
"total 2.175830 2175.759000\n",
"\n",
"============================================================\n",
"\n"
]
}
],
"source": [
"tal_speedsdf, tal_statsdf = ta.performance(df, top=10, talib=True, stats=True, gradient=True, verbose=True)"
]
},
{
"cell_type": "code",
"execution_count": 9,
"id": "3fe877e5-b1eb-4e68-9720-67a1e7ee6827",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
" \n",
" \n",
" | | \n",
" secs | \n",
" ms | \n",
"
\n",
" \n",
" | Indicator | \n",
" | \n",
" | \n",
"
\n",
" \n",
" \n",
" \n",
" | td_seq | \n",
" 0.961160 | \n",
" 961.157200 | \n",
"
\n",
" \n",
" | alligator | \n",
" 0.218550 | \n",
" 218.550100 | \n",
"
\n",
" \n",
" | qqe | \n",
" 0.204610 | \n",
" 204.610900 | \n",
"
\n",
" \n",
" | psar | \n",
" 0.116560 | \n",
" 116.562000 | \n",
"
\n",
" \n",
" | hilo | \n",
" 0.084150 | \n",
" 84.151100 | \n",
"
\n",
" \n",
" | ha | \n",
" 0.077270 | \n",
" 77.265700 | \n",
"
\n",
" \n",
" | smma | \n",
" 0.072710 | \n",
" 72.711600 | \n",
"
\n",
" \n",
" | supertrend | \n",
" 0.056820 | \n",
" 56.823800 | \n",
"
\n",
" \n",
" | vidya | \n",
" 0.050200 | \n",
" 50.197000 | \n",
"
\n",
" \n",
" | ebsw | \n",
" 0.040090 | \n",
" 40.087200 | \n",
"
\n",
" \n",
"
\n"
],
"text/plain": [
""
]
},
"execution_count": 9,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"tal_speedsdf"
]
},
{
"cell_type": "code",
"execution_count": 10,
"id": "bf35b59d-4253-41e3-895e-432a824789fb",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" secs | \n",
" ms | \n",
"
\n",
" \n",
" \n",
" \n",
" | min | \n",
" 0.000030 | \n",
" 0.025200 | \n",
"
\n",
" \n",
" | 50% | \n",
" 0.000710 | \n",
" 0.714100 | \n",
"
\n",
" \n",
" | mean | \n",
" 0.015006 | \n",
" 15.005234 | \n",
"
\n",
" \n",
" | max | \n",
" 0.961160 | \n",
" 961.157200 | \n",
"
\n",
" \n",
" | total | \n",
" 2.175830 | \n",
" 2175.759000 | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" secs ms\n",
"min 0.000030 0.025200\n",
"50% 0.000710 0.714100\n",
"mean 0.015006 15.005234\n",
"max 0.961160 961.157200\n",
"total 2.175830 2175.759000"
]
},
"execution_count": 10,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"tal_statsdf"
]
},
{
"cell_type": "markdown",
"id": "c33c37fa-8062-4258-90ba-0c19d115698d",
"metadata": {},
"source": [
"# Comparisons"
]
},
{
"cell_type": "code",
"execution_count": 11,
"id": "35454271-cee2-4bc0-84b7-4099730bb0ed",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"(1260, 7)\n"
]
},
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" | \n",
" min | \n",
" 50% | \n",
" mean | \n",
" max | \n",
" total | \n",
"
\n",
" \n",
" \n",
" \n",
" | TA Lib | \n",
" secs | \n",
" 0.00003 | \n",
" 0.00071 | \n",
" 0.015006 | \n",
" 0.96116 | \n",
" 2.17583 | \n",
"
\n",
" \n",
" | ms | \n",
" 0.02520 | \n",
" 0.71410 | \n",
" 15.005234 | \n",
" 961.15720 | \n",
" 2175.75900 | \n",
"
\n",
" \n",
" | Pandas TA | \n",
" secs | \n",
" 0.00002 | \n",
" 0.00153 | \n",
" 0.015575 | \n",
" 0.97441 | \n",
" 2.25838 | \n",
"
\n",
" \n",
" | ms | \n",
" 0.02480 | \n",
" 1.53200 | \n",
" 15.575298 | \n",
" 974.40670 | \n",
" 2258.41820 | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" min 50% mean max total\n",
"TA Lib secs 0.00003 0.00071 0.015006 0.96116 2.17583\n",
" ms 0.02520 0.71410 15.005234 961.15720 2175.75900\n",
"Pandas TA secs 0.00002 0.00153 0.015575 0.97441 2.25838\n",
" ms 0.02480 1.53200 15.575298 974.40670 2258.41820"
]
},
"execution_count": 11,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"print(df.shape)\n",
"compdf = concat([tal_statsdf, pta_statsdf], keys=[\"TA Lib\", \"Pandas TA\"], axis=1).T\n",
"compdf"
]
},
{
"cell_type": "code",
"execution_count": 12,
"id": "167b311f-5180-4abf-95e7-1b41a96a6a1d",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | Differences | \n",
" min | \n",
" 50% | \n",
" mean | \n",
" max | \n",
" total | \n",
"
\n",
" \n",
" \n",
" \n",
" | secs | \n",
" 0.00001 | \n",
" 0.00082 | \n",
" 0.000569 | \n",
" 0.01325 | \n",
" 0.08255 | \n",
"
\n",
" \n",
" | ms | \n",
" 0.00040 | \n",
" 0.81790 | \n",
" 0.570063 | \n",
" 13.24950 | \n",
" 82.65920 | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
"Differences min 50% mean max total\n",
"secs 0.00001 0.00082 0.000569 0.01325 0.08255\n",
"ms 0.00040 0.81790 0.570063 13.24950 82.65920"
]
},
"execution_count": 12,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"diffdf = (tal_statsdf - pta_statsdf).abs().T\n",
"diffdf.columns.name = \"Differences\"\n",
"diffdf"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "25dc4fbc-9c04-4530-ae2d-283522ec8179",
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3 (ipykernel)",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.9.1"
}
},
"nbformat": 4,
"nbformat_minor": 5
}