Files
ferro-ta/TA_LIB_COMPATIBILITY.md
Pratik Bhadane 71b6343e92 feat: refresh benchmark coverage and harden CI tooling
Refresh the benchmark and performance surface across the repo. This updates the benchmark wrappers and helper scripts, regenerates the checked-in benchmark and perf-contract artifacts, and folds in the related roadmap, compatibility, and example notebook changes that belong with this performance-focused pass.

Harden the Python CI and local pre-push flow so the same checks pass reliably in both places. The workflow and pre-push script now use module-safe uv typecheck invocations, the Python test environment installs the optional MCP dependency needed by the MCP server tests, and one-off root benchmark outputs are ignored to keep the repo clean.

Align local tooling with the current project configuration by updating the Ruff pre-commit hook, tightening the API typing and MCP server helpers, and refreshing the lockfile to pick up the audited PyJWT fix while preserving the rest of the staged source changes.
2026-03-24 14:52:20 +05:30

19 KiB
Raw Permalink Blame History

TA-Lib Compatibility

ferro-ta covers 100% of TA-Lib's function set (162+ indicators). This file keeps the full GitHub-facing parity matrix in one place so the root README.md can stay product-focused.

See also:

Legend

Symbol Meaning
Exact Values match TA-Lib to floating-point precision
Close Values match after a short convergence window (EMA-seed difference)
⚠️ Corr Strong correlation (> 0.95) but not numerically identical (Wilder smoothing seed or algorithm variant)
⚠️ Shape Same output shape / NaN structure; values differ due to algorithm variant
Not yet implemented

Overlap Studies

TA-Lib Function ferro-ta Accuracy Notes
BBANDS Exact Bollinger Bands
DEMA Close Double EMA; converges after ~20 bars
EMA Close Exponential Moving Average; converges after ~20 bars
KAMA Exact Kaufman Adaptive MA (values match after seed bar)
MA Exact Moving average (generic, type-selectable)
MAMA ⚠️ Corr MESA Adaptive MA
MAVP Exact MA with variable period
MIDPOINT Exact Midpoint over period
MIDPRICE Exact Midpoint price over period
SAR ⚠️ Shape Parabolic SAR (same shape; reversal history diverges)
SAREXT ⚠️ Shape Parabolic SAR Extended
SMA Exact Simple Moving Average
T3 Close Triple Exponential MA (T3); converges after ~50 bars
TEMA Close Triple EMA; converges after ~20 bars
TRIMA Exact Triangular Moving Average
WMA Exact Weighted Moving Average

Momentum Indicators

TA-Lib Function ferro-ta Accuracy Notes
ADX Close Avg Directional Movement Index (TA-Lib Wilder sum-seeding)
ADXR Close ADX Rating (inherits ADX; TA-Lib seeding)
APO Close Absolute Price Oscillator (EMA-based)
AROON Exact Aroon Up/Down
AROONOSC Exact Aroon Oscillator
BOP Exact Balance Of Power
CCI Exact Commodity Channel Index (TA-Lib-compatible MAD formula)
CMO Close Chande Momentum Oscillator (rolling window, TA-Lib-compatible)
DX Close Directional Movement Index (TA-Lib Wilder sum-seeding)
MACD Close MACD (EMA-based; converges after ~30 bars)
MACDEXT Close MACD with controllable MA type (EMA-based; converges)
MACDFIX Close MACD Fixed 12/26 (EMA-based; converges)
MFI Exact Money Flow Index
MINUS_DI Close Minus Directional Indicator (TA-Lib Wilder sum-seeding)
MINUS_DM Close Minus Directional Movement (TA-Lib Wilder sum-seeding)
MOM Exact Momentum
PLUS_DI Close Plus Directional Indicator (TA-Lib Wilder sum-seeding)
PLUS_DM Close Plus Directional Movement (TA-Lib Wilder sum-seeding)
PPO Close Percentage Price Oscillator (EMA-based)
ROC Exact Rate of Change
ROCP Exact Rate of Change Percentage
ROCR Exact Rate of Change Ratio
ROCR100 Exact Rate of Change Ratio × 100
RSI Close Relative Strength Index (TA-Lib Wilder seeding; converges after ~1 seed bar)
STOCH Close Stochastic (TA-Lib-compatible SMA smoothing for slowk and slowd)
STOCHF Exact Stochastic Fast (%K exact; %D NaN offset ±2)
STOCHRSI Close Stochastic RSI (TA-Lib-compatible; SMA fastd, Wilder-seeded RSI)
TRIX Close 1-day ROC of Triple EMA (EMA-based; converges)
ULTOSC Exact Ultimate Oscillator
WILLR Exact Williams' %R

Volume Indicators

TA-Lib Function ferro-ta Accuracy Notes
AD Exact Chaikin A/D Line
ADOSC Exact Chaikin A/D Oscillator
OBV Exact On Balance Volume (increments identical; constant offset at bar 0)

Volatility Indicators

TA-Lib Function ferro-ta Accuracy Notes
ATR Close Average True Range (TA-Lib Wilder seeding; matches from bar timeperiod)
NATR Close Normalized ATR (TA-Lib Wilder seeding)
TRANGE Exact True Range (bar 0 differs; all others identical)

Cycle Indicators

TA-Lib Function ferro-ta Accuracy Notes
HT_DCPERIOD ⚠️ Shape Hilbert Transform Dominant Cycle Period (Ehlers algorithm)
HT_DCPHASE ⚠️ Shape Hilbert Transform Dominant Cycle Phase
HT_PHASOR ⚠️ Shape Hilbert Transform Phasor Components (inphase, quadrature)
HT_SINE ⚠️ Shape Hilbert Transform SineWave (sine, leadsine)
HT_TRENDLINE ⚠️ Shape Hilbert Transform Instantaneous Trendline
HT_TRENDMODE ⚠️ Shape Hilbert Transform Trend vs Cycle Mode (1=trend, 0=cycle)

Price Transformations

TA-Lib Function ferro-ta Accuracy Notes
AVGPRICE Exact Average Price
MEDPRICE Exact Median Price
TYPPRICE Exact Typical Price
WCLPRICE Exact Weighted Close Price

Statistic Functions

TA-Lib Function ferro-ta Accuracy Notes
BETA Close Beta coefficient (returns-based regression matching TA-Lib)
CORREL Exact Pearson Correlation Coefficient
LINEARREG Exact Linear Regression
LINEARREG_ANGLE Exact Linear Regression Angle
LINEARREG_INTERCEPT Exact Linear Regression Intercept
LINEARREG_SLOPE Exact Linear Regression Slope
STDDEV Exact Standard Deviation
TSF Exact Time Series Forecast
VAR Exact Variance

Pattern Recognition

ferro-ta implements all 61 candlestick patterns. All return the same {-100, 0, 100} convention as TA-Lib. Pattern thresholds may differ slightly from the full TA-Lib implementation.

TA-Lib Function ferro-ta Notes
CDL2CROWS Two Crows
CDL3BLACKCROWS Three Black Crows
CDL3INSIDE Three Inside Up/Down
CDL3LINESTRIKE Three-Line Strike
CDL3OUTSIDE Three Outside Up/Down
CDL3STARSINSOUTH Three Stars In The South
CDL3WHITESOLDIERS Three Advancing White Soldiers
CDLABANDONEDBABY Abandoned Baby
CDLADVANCEBLOCK Advance Block
CDLBELTHOLD Belt-hold
CDLBREAKAWAY Breakaway
CDLCLOSINGMARUBOZU Closing Marubozu
CDLCONCEALBABYSWALL Concealing Baby Swallow
CDLCOUNTERATTACK Counterattack
CDLDARKCLOUDCOVER Dark Cloud Cover
CDLDOJI Doji
CDLDOJISTAR Doji Star
CDLDRAGONFLYDOJI Dragonfly Doji
CDLENGULFING Engulfing Pattern
CDLEVENINGDOJISTAR Evening Doji Star
CDLEVENINGSTAR Evening Star
CDLGAPSIDESIDEWHITE Up/Down-gap side-by-side white lines
CDLGRAVESTONEDOJI Gravestone Doji
CDLHAMMER Hammer
CDLHANGINGMAN Hanging Man
CDLHARAMI Harami Pattern
CDLHARAMICROSS Harami Cross Pattern
CDLHIGHWAVE High-Wave Candle
CDLHIKKAKE Hikkake Pattern
CDLHIKKAKEMOD Modified Hikkake Pattern
CDLHOMINGPIGEON Homing Pigeon
CDLIDENTICAL3CROWS Identical Three Crows
CDLINNECK In-Neck Pattern
CDLINVERTEDHAMMER Inverted Hammer
CDLKICKING Kicking
CDLKICKINGBYLENGTH Kicking by the longer Marubozu
CDLLADDERBOTTOM Ladder Bottom
CDLLONGLEGGEDDOJI Long Legged Doji
CDLLONGLINE Long Line Candle
CDLMARUBOZU Marubozu
CDLMATCHINGLOW Matching Low
CDLMATHOLD Mat Hold
CDLMORNINGDOJISTAR Morning Doji Star
CDLMORNINGSTAR Morning Star
CDLONNECK On-Neck Pattern
CDLPIERCING Piercing Pattern
CDLRICKSHAWMAN Rickshaw Man
CDLRISEFALL3METHODS Rising/Falling Three Methods
CDLSEPARATINGLINES Separating Lines
CDLSHOOTINGSTAR Shooting Star
CDLSHORTLINE Short Line Candle
CDLSPINNINGTOP Spinning Top
CDLSTALLEDPATTERN Stalled Pattern
CDLSTICKSANDWICH Stick Sandwich
CDLTAKURI Takuri (Dragonfly Doji with very long lower shadow)
CDLTASUKIGAP Tasuki Gap
CDLTHRUSTING Thrusting Pattern
CDLTRISTAR Tristar Pattern
CDLUNIQUE3RIVER Unique 3 River
CDLUPSIDEGAP2CROWS Upside Gap Two Crows
CDLXSIDEGAP3METHODS Upside/Downside Gap Three Methods

Math Operators / Math Transforms

ferro-ta provides TA-Lib-compatible wrappers for all arithmetic and math-transform functions. Rolling functions (SUM, MAX, MIN) produce NaN for the first timeperiod - 1 bars.

TA-Lib Function ferro-ta Notes
ADD Element-wise addition
SUB Element-wise subtraction
MULT Element-wise multiplication
DIV Element-wise division
SUM Rolling sum over timeperiod
MAX / MAXINDEX Rolling maximum / index
MIN / MININDEX Rolling minimum / index
ACOS / ASIN / ATAN Arc trig transforms
CEIL / FLOOR Round up / down
COS / SIN / TAN Trig transforms
COSH / SINH / TANH Hyperbolic transforms
EXP / LN / LOG10 Exponential / log transforms
SQRT Square root

Implementation Coverage Summary

Category Implemented Not Implemented
Overlap Studies 19 0
Momentum Indicators 28 0
Volume Indicators 3 0
Volatility Indicators 3 0
Cycle Indicators 6 0
Price Transforms 4 0
Statistic Functions 9 0
Pattern Recognition 61 0
Math Operators / Transforms 24 0
Extended Indicators 10 -
Streaming Classes 9 -
Total 162+ 0

ferro-ta implements 100% of TA-Lib's function set. NaN values are placed at the beginning of each output array for the warmup period.