Skip to content

Standard Performance: Python

Competitors: ta (bukosabino/ta, pandas-based) and pandas_ta (twopirllc/pandas-ta), called via the tulip_rs_python PyO3 binding.

Indicator tulip_rs_python (ns) ta (ns) ta / Python pandas_ta (ns) pandas_ta / Python
ad 5,569 156,033 28× N/A —
adaptivemsw 535,763 N/A — N/A —
adosc 6,728 N/A — N/A —
adx 22,590 21,606,753 956× 3,428,298 152×
adxr 22,790 N/A — N/A —
ao 7,447 190,379 26× 216,503 29×
apo 6,895 N/A — 140,628 20×
aroon 35,359 10,375,580 293× 12,688,722 359×
aroonosc 33,183 N/A — 12,740,991 384×
atr 14,109 11,399,702 808× 951,786 67×
avgprice 2,636 N/A — 53,567 20×
bbands 14,701 238,947 16× 560,564 38×
bop 5,744 N/A — 188,807 33×
ccfisher 229,102 N/A — N/A —
cci 92,655 25,820,513 279× 21,958,927 237×
chaikinmf 10,280 278,854 27× 330,750 32×
chandelierexit 33,477 N/A — 1,742,165 52×
cmo 8,419 N/A — 555,343 66×
cvi 7,546 N/A — N/A —
cybercycle 17,234 N/A — N/A —
dema 7,909 134,015 17× 287,176 36×
di 42,729 N/A — 2,103,241 49×
dm 25,510 N/A — 2,110,216 83×
donchianchannel 16,867 273,115 16× 407,091 24×
dpo 3,131 123,884 40× 145,449 46×
dx 30,049 N/A — 3,409,362 113×
ef 6,415 N/A — 154,287 24×
elderray 8,632 N/A — 301,713 35×
ema 6,102 57,546 9× 118,919 19×
emv 7,837 177,739 23× 332,298 42×
fisher 81,082 N/A — 7,858,961 97×
fosc 8,695 N/A — N/A —
highpass 6,607 N/A — N/A —
hilberttransform 19,350 N/A — N/A —
hma 21,006 10,214,832 486× 612,700 29×
homodynediscriminator 222,379 N/A — N/A —
ichimoku 94,234 N/A — 1,372,975 15×
instantaneoustrendline 222,751 N/A — 353,338 2×
kama 19,259 3,861,380 200× 10,438,272 542×
keltnerchannel 21,388 419,723 20× 1,272,791 60×
kvo 25,626 N/A — 1,190,018 46×
linreg 23,899 N/A — 17,282,202 723×
macd 24,354 197,360 8× 807,553 33×
mama 224,069 N/A — 272,353 1×
marketfi 3,782 N/A — N/A —
mass 7,631 210,661 28× 489,066 64×
max 8,357 N/A — N/A —
md 39,453 N/A — 21,716,513 550×
medprice 1,442 N/A — 32,487 23×
mfi 10,607 29,735,632 2,803× 196,923 19×
min 11,947 N/A — N/A —
mom 1,340 20,291 15× 27,524 21×
msw 132,976 N/A — N/A —
natr 16,445 N/A — 1,073,997 65×
nvi 9,326 65,947,770 7,072× 727,939 78×
obv 4,284 117,140 27× 363,789 85×
pivotpoint 611 N/A — 28,185 46×
ppo 9,064 230,822 25× 477,330 53×
psar 29,185 198,990,396 6,818× 4,942,455 169×
pvi 5,478 N/A — 287,276 52×
qstick 4,931 N/A — N/A —
roc 7,616 105,768 14× 33,725 4×
rocr 9,183 N/A — 45,996 5×
roofingfilter 14,929 N/A — N/A —
rsi 7,570 477,731 63× 501,591 66×
sma 4,464 74,148 17× 364,657 82×
smaenvelope 10,690 N/A — N/A —
stddev 8,117 N/A — 140,291 17×
stoch 31,356 299,433 10× 1,004,437 32×
stochrsi 39,761 908,818 23× 1,097,324 28×
supersmoother 11,399 N/A — 40,887 4×
supertrend 29,674 N/A — 44,159,173 1,488×
tema 9,021 215,165 24× 417,521 46×
tr 8,235 N/A — 772,989 94×
trendmode 220,367 N/A — N/A —
trima 7,370 N/A — 109,475 15×
trix 18,436 306,868 17× 765,369 42×
trvi 6,503 N/A — N/A —
tsf 17,008 N/A — 17,451,738 1,026×
typprice 1,716 N/A — 45,300 26×
ultosc 21,893 1,627,760 74× 1,946,821 89×
vhf 16,627 N/A — 492,150 30×
vidya 21,137 N/A — 82,683,140 3,912×
volatility 13,872 N/A — 142,681 10×
vortex 20,742 921,461 44× 1,269,357 61×
vosc 6,560 N/A — N/A —
vwap 8,371 N/A — 1,353,970 162×
vwma 8,211 N/A — 202,644 25×
wad 6,192 N/A — N/A —
wcprice 2,387 N/A — 48,985 21×
wilders 6,083 N/A — 65,969 11×
willr 21,444 298,910 14× 339,446 16×
wma 6,091 3,373,454 554× 212,001 35×
zlema 8,778 N/A — 227,239 26×
Notable results

tulip_rs_python beats ta on 35 of 35 compared indicators. Median speedup: ~27×.

Indicator ta / Python
nvi 7072×
psar 6818×
mfi 2803×
adx 956×
atr 808×
wma 554×
hma 486×
aroon 293×
cci 279×
kama 200×

The following indicators show the smallest gap, likely because ta uses a compiled numpy/pandas path rather than a pure-Python loop:

Indicator Rust native (ns) tulip_rs_python (ns) ta (ns) ta / Python
macd 6,331 24,354 197,360 8×
ema 4,784 6,102 57,546 9×
stoch 20,383 31,356 299,433 10×
roc 2,437 7,616 105,768 14×
willr 17,282 21,444 298,910 14×
mom 897 1,340 20,291 15×

tulip_rs_python beats pandas_ta on 72 of 72 compared indicators. Median speedup: ~42×.

Indicator pandas_ta / Python
vidya 3912×
supertrend 1488×
tsf 1026×
linreg 723×
md 550×
kama 542×
aroonosc 384×
aroon 359×
cci 237×
psar 169×