Support Matrix

The primary product is the Python technical analysis library: TA-Lib-style indicator calls backed by a Rust implementation.

Indicator compatibility

Status

Scope

Notes

Exact parity

Common TA-Lib-compatible indicators such as SMA, WMA, BBANDS, RSI, ATR, NATR, CCI, STOCH, STOCHRSI, and most candlestick patterns

Matches TA-Lib numerically within floating-point tolerance in the current comparison suite.

Approximate parity

EMA-family indicators (EMA, DEMA, TEMA, T3, MACD), MAMA / FAMA, SAR / SAREXT, and HT_* cycle indicators

Same API and intended use, with convergence-window or floating-point differences documented in the migration guide.

Intentionally different

ferro-ta-only indicators such as VWAP, SUPERTREND, ICHIMOKU, DONCHIAN, KELTNER_CHANNELS, HULL_MA, CHANDELIER_EXIT, VWMA, and CHOPPINESS_INDEX

These extend the library beyond TA-Lib and are not parity claims.

For migration details and known indicator-specific differences, see Migration from TA-Lib.

Module status

Surface

Status

Notes

Top-level indicators and category submodules

Stable core

This is the main supported surface of the project.

ferro_ta.batch

Supported

Public API is supported; internal dispatch may evolve.

ferro_ta.streaming

Supported, still evolving

Suitable for live workflows; some API details are still marked experimental in the stability policy.

ferro_ta.extended

Supported extension

Useful indicators beyond TA-Lib, but not part of drop-in parity claims.

ferro_ta.analysis.*

Adjacent tooling

Useful analytics helpers, but not the primary product story.

ferro_ta.analysis.resample

Supported (v1.1.0)

resample_ohlcv(), align_to_coarse(), resample_ohlcv_labels() — pure-NumPy OHLCV bar aggregation across timeframes.

ferro_ta.analysis.multitf

Supported (v1.1.0)

MultiTimeframeEngine — multi-timeframe signal generation with automatic alignment.

ferro_ta.analysis.adjust

Supported (v1.1.0)

adjust_ohlcv(), adjust_for_splits(), adjust_for_dividends() — backward-adjusted price series for equity/index strategies.

ferro_ta.analysis.plot

Supported (v1.1.0)

plot_backtest() — interactive Plotly backtest visualization (requires plotly).

ferro_ta.analysis.regime

Supported (v1.1.0)

detect_volatility_regime(), detect_trend_regime(), detect_combined_regime(), RegimeFilter — pure-NumPy 6-state market regime labeling; no ML dependencies.

ferro_ta.analysis.optimize

Supported (v1.1.0)

PortfolioOptimizer, mean_variance_optimize(), risk_parity_optimize(), max_sharpe_optimize() — portfolio optimization via SLSQP (requires scipy).

ferro_ta.analysis.live

Supported (v1.1.0)

PaperTrader — event-driven paper trading bridge matching backtest logic exactly.

MCP, WASM, GPU, plugin, and agent-oriented tooling

Experimental or adjacent

Evaluate these independently from the core indicator library.

Backtesting engine features

Feature

Status

Notes

Flat/proportional commission

Supported

Via CommissionModel presets and BacktestEngine.with_commission_model().

Bid-ask spread model (spread_bps)

Supported (v1.1.0)

New CommissionModel.spread_bps field; half-spread deducted per leg.

Short borrow cost (short_borrow_rate_annual)

Supported (v1.1.0)

New CommissionModel.short_borrow_rate_annual field; accrued per bar for short positions.

Trailing stop loss

Supported

BacktestEngine.with_trailing_stop(pct) — intrabar high-water mark tracking.

Breakeven stop (breakeven_pct)

Supported (v1.1.0)

BacktestEngine.with_breakeven_stop(pct) — moves stop to entry once profit reaches pct.

Bracket order priority

Supported (v1.1.0)

When both SL and TP are breached on the same bar, the level closer to open fires first.

Leverage / margin modeling

Supported (v1.1.0)

BacktestEngine.with_leverage(margin_ratio, margin_call_pct) — tracks margin and triggers force-close on margin call.

Loss circuit breakers

Supported (v1.1.0)

BacktestEngine.with_loss_limits(daily, total) — halts trading on drawdown breach.

Portfolio constraints

Supported (v1.1.0)

BacktestEngine.with_portfolio_constraints(max_asset_weight, max_gross_exposure, max_net_exposure) for multi-asset backtests.

Volatility-target position sizing

Supported

BacktestEngine.with_position_sizing("volatility_target", ...).

Walk-forward / Monte Carlo

Supported

Available via BacktestEngine higher-level methods.

Benchmark comparison

Supported

BacktestEngine.with_benchmark(close_array) — alpha, beta, information ratio.

Supported Python versions

Python

Status

3.13

Supported and tested in CI

3.12

Supported and tested in CI

3.11

Supported and tested in CI

3.10

Supported and tested in CI

< 3.10

Not supported

Tested wheel targets

OS

Architecture

Wheel status

Linux

x86_64 (manylinux2014 / manylinux_2_17)

Tested wheel target

macOS

universal2

Tested wheel target for Intel and Apple Silicon

Windows

x86_64

Tested wheel target

For source builds, packaging details, and platform notes, see PLATFORMS.md.

Release status

These docs track package version 1.1.4.

If the package version, docs version, or support matrix disagree, treat that as a documentation bug.