Streaming market intelligence

Market signals,
without a time machine.

RTTA is a low-latency C++23 engine for technical indicators, online change detection, regime monitoring, and research signals—wrapped in a clean Python API and designed to stay causal one tick at a time.

  • Apache 2.0
  • Python 3.9+
  • C++23 / nanobind
  • Tick-by-tick state
RTTA / CAUSAL ENGINE Live state
Average update + result 84.9 ns

Across three published CPU runs

A black-and-white Silkie chicken, the RTTA mascot
Tick streamRSI(14)
  1. 12:45:01.1233471.2561.8
  2. 12:45:01.1243471.2662.1
  3. 12:45:01.1253471.1958.7
  4. 12:45:01.1263471.2863.0
188

Benchmarked causal algorithms
in the current registry

70.2ns

Average state-only advance
Across published CPU runs

84.9ns

Average update with result
Across published CPU runs

3CPU families

Published benchmark ledgers
ARM · x86 · LoongArch

01 / CAUSAL BY CONSTRUCTION

One tick in. One honest answer out.

RTTA algorithms are stateful objects. They consume observations in chronological order and can only react to what they have already seen—so the API itself helps keep accidental lookahead out of live systems and research loops.

01 / OBSERVE
A new market event arrives.

Close, OHLCV, quote, trade, feature, or cross-asset observation.

02 / UPDATE
Advance exactly one state.

Call update when you need a value, or advance when you only need the transition.

03 / REMEMBER
Keep the minimum live state.

Rolling windows, filters, regimes, and detectors remain ready for the next tick.

04 / REACT
Read the current result.

Feed a feature, risk check, research signal, dashboard, or simulator decision.

Future data: lockedThe next observation cannot leak backward through the object API.
live_signal.py
import rtta

rsi = rtta.RSI()

for close in close_stream:
    value = rsi.update(close)

    if value > 70.0:
        reduce_position()

# State is already ready for the next tick.
THE OBVIOUS API IS THE LIVE API

No dataframe ceremony on the hot path.

Use small stateful objects in streaming code. For restart and research workflows, batch and replay paths consume history causally in C++ and leave the same object ready for its next live observation.

02 / WHAT IT WATCHES

More than chart indicators.

RTTA puts classic technical analysis beside online model health, liquidity state, market microstructure, and research-grade streaming signals—all behind a consistent incremental surface.

01

Technical indicators that belong in a live loop.

Moving averages, momentum, oscillators, bands, channels, volatility, volume, returns, price transforms, and adaptive state-space filters.

Browse the catalog
02

Detect when the process changes.

CUSUM, Page-Hinkley, ADWIN, KSWIN, EWMA shifts, residual drift, calibration drift, and rolling two-window detectors for means, variance, beta, correlation, and liquidity.

Inspect a detector
03

Keep market regimes online.

Threshold and hysteresis regimes, volatility states, trend/chop, order-flow, correlation, pairs spreads, bounded BOCPD, HMM-style filters, and Gaussian mixtures.

See regime monitoring
04

Read the market below the candle.

Order-flow imbalance, bid-ask bounce, VPIN, Amihud illiquidity, Kyle lambda, spread features, quote stuffing, lead-lag state, and execution-cost regimes.

Explore microstructure

03 / ONE ENGINE, MANY JOBS

A full market toolbox, kept online.

The same update, advance, last, batch, and replay conventions carry across simple rolling values and multi-output research systems. Learn one shape; move through the whole catalog.

Read the API guide
CLASSIC TA

Trend + momentum

EMA · SMA · RSI · MACD · STOCHASTIC · AROON · SUPERTREND · KST · TSI · VORTEX

ADAPTIVE STATE

Filters + envelopes

KALMAN · PARTICLE FILTER · IMM · GAUSSIAN PROCESS · SAVITZKY–GOLAY · NADARAYA–WATSON

MODEL HEALTH

Shift + drift

CUSUM · ADWIN · DDM · EDDM · HDDM · KSWIN · PAGE-HINKLEY · EWMA Z-SCORE

MARKET STATE

Regimes + transitions

BOCPD · ONLINE HMM · STICKY HMM · GMM · VOLATILITY · LIQUIDITY · AUCTION TRANSITIONS

MICROSTRUCTURE

Flow + liquidity

OFI · VPIN · KYLE LAMBDA · AMIHUD · SPREAD FEATURES · QUOTE INTENSITY · BID-ASK BOUNCE

RESEARCH SIGNALS

Higher-order live features

MATCHED FLOW · CLOCK ECHO · CLOSE PRESSURE · COINTEGRATION BREAKDOWN · LEAD-LAG

04 / MEASURED LIVE PATH

Nanoseconds, not vibes.

Across three published architecture runs, the per-CPU medians average 70.2 ns for a state-only advance and 84.9 ns for an update that returns a Python result. Every source page still publishes its environment and full 188-algorithm ledger.

These summaries are the simple average of the three published per-CPU medians. They describe the tested systems as a group, not a processor contest.
Typical published per-tick latency Average of per-CPU medians
State only / advance(...) 70.2ns

Average state-transition latency across the three published architecture runs.

Update + Python result / update(...) 84.9ns

Average latency to change state and return the current value or result.

Coverage188 algorithms / run
Sample size50,000 updates
Published runsARM · x86 · LoongArch

05 / START STREAMING

Bring your next tick.

Install the Python distribution as pyrtta, then import rtta. The C++ extension, NumPy integration, and stateful algorithm surface arrive together.

Terminal / Python 3.9+
$ pip install pyrtta