All Classes and Interfaces
Class
Description
Incremental indicator that optionally decorates (wraps) another indicator.
Base class for EMA RT Indicators
Base class for an ExecutionCallback, storing execution results and emitting info signals
Base class for indicators that compute values incrementally from a stream of updates.
Base implementation of
KlineStrategy.Base Nameable impl.
Base RT indicator class
Base strategy class
Base class
Base class for a StrategySignal
Base class for all subscribable strategies with included RT indicators group support.
Base class for the listeners a strategy hangs off a window: it reacts when the window closes
rather than on every tick, with strategy sugar methods on top.
Base class for RT indicators that use a single
WindowSeriesStore.Accelerator Oscillator (Bill Williams) with O(1) per-tick computation.
Adaptive Fisher Transform indicator using Kaufman Efficiency Ratio for period adaptation.
Adjusted SOPR (aSOPR).
Accumulation/Distribution Line (ADL) with O(1) per-tick computation.
Average Directional Index (ADX) with O(1) per-tick Wilder's smoothing.
Arnaud Legoux Moving Average (ALMA) with O(n) per-tick computation.
Represents an amount of a currency
Aroon Indicator with O(n) worst-case per-tick.
Engine-owned single asset / currency code (e.g.
Atomically Count updates RT Indicator
Average True Range (ATR) with O(1) per-tick Wilder's smoothing.
Rolling Lag-1 Autocorrelation with O(1) per-tick updates.
Awesome Oscillator (Bill Williams) with O(1) per-tick computation.
The simulation half of an
ExecutionConfig: funding, fee rates and the pluggable fee,
slippage and fill models a backtest run is executed under.Balance of Power (BOP) with O(1) per-tick computation.
Rolling Beta coefficient with O(1) per-tick updates.
Allow to apply a function to update from 2 RTIndicators
Bollinger bands RTIndicator
Bollinger BandWidth RT Indicator.
Bollinger %B indicator with O(1) per-tick computation.
Elder's Bull and Bear Power with O(1) per-tick computation.
Buy hint signal
Opt-in contract for an indicator that can state its own math identity, so a series it produced
over one dataset can be replayed instead of recomputed.
Rolling Calmar Ratio with O(1) per-tick updates.
Commodity Channel Index (CCI) RTIndicator.
Chaikin Oscillator with O(1) per-tick computation.
Chande Forecast Oscillator (CFO) with O(1) per-tick computation.
Chande Kroll Stop with O(n) per-tick computation (due to highest/lowest scans).
Chandelier Exit with O(n) worst-case per-tick.
Choppiness Index (CHOP) with O(n) per-tick computation.
Allow to apply a predicate function to colapse/clamp to a single value
Clamp a RTIndicator's value to a fixed range
Chaikin Money Flow (CMF) with O(1) amortized per-tick computation.
Chande Momentum Oscillator (CMO) with O(1) amortized per-tick computation.
Inmutable Compound RT Indicator
Allow to apply a predicate function to update or not from a RTIndicator
Unchecked exception for configuration exceptions
Connors RSI with O(1) per-tick computation (amortized).
Basic inmutable RT Indicator holding a value
Coppock Curve with O(1) per-tick computation.
Rolling Pearson Correlation coefficient with O(1) per-tick updates.
Update counter RT Indicator
Rolling population covariance with O(1) per-tick updates.
Tracks whether
left is above or below right across calls and reports the
transition, if any, on CrossDetector.check(double, double).The transition reported by one
CrossDetector.check(double, double) call.A delivery contract that expires on a fixed date:
BTC/USDT:USDT-240628.Default execution callback implementation
Double Exponential Moving Average (DEMA) with O(1) per-tick computation.
Detrended Price Oscillator (DPO) with O(1) per-tick computation.
How an indicator's value should be presented — the typed view of the
IndicatorMeta.DISPLAY
metadata entry.Distance From Moving Average (value - MA)/MA
Distance from 2 indicators
Donchian Channel with O(n) worst-case per-tick (eviction scan).
Ease of Movement (EOM) with O(1) per-tick computation.
Kaufman Efficiency Ratio (ER) indicator with O(1) per-tick computation.
Elder Force Index (EFI) with O(1) per-tick computation.
EMA RT Indicator
The qtsurfer-engine version of the jar this class ships in.
Envelopes (Moving Average Envelopes) with O(1) per-tick computation.
Event interface
EWMA (Exponentially Weighted Moving Average) Volatility with O(1) per-tick updates.
Strategy's callback with execution results
Everything the execution layer needs to run a strategy, in one object: how a backtest is
simulated (
ExecutionConfig.backtest()), which risk guards apply (ExecutionConfig.risk()), and how much of the
available balance an entry locks (ExecutionConfig.getPercentAmountToLock()).Defines the type of execution pipeline a strategy uses.
Represents an execution result
Counts what an execution pipeline did, per strategy.
The inputs a
FeeModel needs to decide a fill's fee rate.Which leg of the instrument pair a backtest fill's fee is charged on
.
Decides the fee RATE (decimal, e.g. 0.001 = 0.1%) charged on a backtest fill
.
Decides WHEN a backtest signal fills.
Fisher Transform indicator with O(n) per-tick computation.
A
SlippageModel that moves the execution price a fixed number of basis points
adverse-to-trader: BUY fills execute higher than the signal price, SELL fills execute lower
.The DEFAULT
FeeModel: a fixed decimal rate per side, ignoring liquidity
.Fractal Adaptive Moving Average (FRAMA) by John Ehlers.
Engine-owned, exchange-agnostic funding rate (perpetual-swap funding).
Defines a FundingRate strategy
FundingRate enumeration of value sources, aligned with XChange's FundingRateInterval.
Tracks positive price changes (gains) between consecutive updates.
Garman-Klass Volatility estimator with O(1) per-tick updates.
Hull Moving Average (HMA) RTIndicator.
Rolling Hurst Exponent with O(n) per-tick updates.
Ichimoku Kinko Hyo (Ichimoku Cloud) with O(1) per-tick computation.
The DEFAULT
FillPolicy: every signal fills on the same tick it was raised on
— reproducing today's inline fill timing byte-for-byte.Descriptive metadata an indicator carries about itself, kept separate from its registered name
.
A
Notice an indicator group raises about its own wiring: it names the indicator concerned
and the instrument whose group raised it, which is what makes a notice actionable when a strategy
runs the same indicator set across many instruments.What makes a notice unique: the condition, and the indicator it concerns.
Rolling Information Ratio with O(1) per-tick updates.
Simple StrategySignal using StrategyEvent's properties as data backend
Normalised instrument identity in the CCXT unified format.
Groups an instrument indicator map and extra indicators as a whole with a builder interface
A map of RTIndicators for an instrument
A map of RTIndicators for an instrument fed from a kline stream — the kline-side counterpart of
InstrumentMapTickerSourceRTIndicator.A map of RTIndicators for an instrument
Allow building other compound/helper RTIndicators around an existing map of indicators.
A map of RTIndicators for an instrument
Kaufman Adaptive Moving Average (KAMA) RTIndicator.
Keltner Channel with O(1) per-tick computation.
Exchange-agnostic kline (candlestick) DTO.
Exchange-agnostic kline interval enum.
Primitive-double view of a
Kline.Scalar-update helpers for a
KlineValueSource against a MarketSnapshot, mirroring
TickerSnapshots for the kline path.Defines a Kline (candlestick) strategy.
Value sources available on a kline (bar): the OHLCV fields shared with every market snapshot plus
the kline-only trade count.
Klinger Volume Oscillator (KVO) with O(1) per-tick computation.
Know Sure Thing (KST) — Martin Pring's multi-timeframe ROC oscillator — with O(1) per-tick
computation.
Rolling Excess Kurtosis with O(1) per-tick updates.
Least Squares Moving Average (LSMA) with O(1) per-tick computation.
Rolling Linear Regression Slope with O(1) per-tick updates.
Which side of the order book a fill takes, for maker/taker fee routing
.
Tracks negative price changes (losses) between consecutive updates.
MACD RTIndicator
A
FeeModel charging a different rate depending on whether the fill made or took
liquidity.Enum of managed market data sources
Market hint signal
Immutable primitive view over a market data point (ticker or kline).
Common supertype for the scalar field selectors of the sealed market snapshot hierarchy:
TickerValueSource (ticker fields incl. bid/ask/vwap) and KlineValueSource (kline
OHLCV + trade stats).Mass Index with O(1) per-tick computation.
Rolling Maximum Drawdown with O(1) per-tick updates.
Max value RT Indicator.
McGinley Dynamic with O(1) per-tick computation.
KV on memory State store implementation
Money Flow Index (MFI) with O(1) amortized per-tick computation.
Min value RT Indicator.
Modified moving average RT Indicator
Momentum indicator with O(1) per-tick computation.
MovingAverage
Market Value to Realized Value (MVRV) Ratio.
Allows get/setting an object's name
Allows getting an object's name
Normalized Average True Range (NATR) with O(1) per-tick computation.
Negative Volume Index (NVI) with O(1) per-tick computation.
The DEFAULT
SlippageModel: returns the signal price unchanged
— reproducing today's zero-slippage fills byte-for-byte.A diagnostic the engine raises about how a run is wired or behaving — something the caller should
know that is not an exception and not a market event.
Severity, ordered least to most serious.
Network Value to Transactions (NVT) Ratio.
On Balance Volume (OBV) with O(1) per-tick computation.
Rolling Omega Ratio with O(1) per-tick updates.
Interface for on-chain indicators that compute metrics from blockchain data.
Aggregated on-chain data for a specific point in time (block or daily).
Incremental indicator that fires change notifications to registered listeners
whenever its value changes.
Lightweight operations-per-second meter.
Canonical order side (direction) for the engine domain.
Canonical order status for the engine domain.
Parabolic SAR (Stop and Reverse) with O(1) per-tick computation.
Parkinson Volatility estimator with O(1) per-tick updates.
Calculates the percent change over periods tracked by a
PeriodCounter indicator.Volatility indicator that measures percent price changes between updates,
averaged via a smoothing indicator.
Interface for a period counter
Incremental indicator that counts the number of consecutive periods (updates).
A perpetual contract — a derivative with no expiry:
BTC/USDT:USDT when margined in the
quote currency, BTC/USD:BTC when margined in the base.Immutable snapshot of an aggregated multi-entry position
Allow count/reset based on a predicate
Allow to apply a predicate function to update or not from a RTIndicator
Fluent factories for the paid-tier indicators, hung off an existing group:
Optional numeric range hints for a
PropertyInfo: a suggested minimum,
maximum and step for the property value.Defines a property metadata
Price Volume Trend (PVT) with O(1) per-tick computation.
Gets the rate of change of an RTIndicator between updates
Avoids update the wrapped RTIndicator
Rolling Realized Volatility with O(1) per-tick updates.
Relative Vigor Index (RVI) with O(1) per-tick computation.
Relative Volatility Index (RVI) — RSI applied to standard deviation instead of price.
Real-time indicator that consumes a full
MarketSnapshot rather than a single scalar
value.The risk half of an
ExecutionConfig: the opt-in guards that stop a strategy from buying
straight back in after a loss, from holding too many positions at once, or from losing more than
a day's budget.Rate of Change (ROC) with O(1) per-tick computation.
Rogers-Satchell Volatility estimator with O(1) per-tick updates.
Rolling Percentile with O(n) per-tick updates via sorted insertion.
Round RTIndicator
RSI RTIndicator
Interface for a Real Time Indicator.
Adapts a TA4j indicator to a RTIndicator.
Sell hint signal
Rolling Sharpe Ratio with O(1) per-tick updates.
Full rolling OLS regression with O(1) per-tick updates.
Rolling Skewness with O(1) per-tick updates.
The inputs a
SlippageModel needs to adjust a signal price into an execution price.Adjusts a signal price into the price a backtest fill actually executes at
.
Simple 2-period and N periods SMA RT Indicator
Smoothed Moving Average (SMMA) — alias for the Modified Moving Average (MMA).
Spent Output Profit Ratio (SOPR).
Rolling Sortino Ratio with O(1) per-tick updates.
Represents a spent transaction output (UTXO) with its USD value at creation and spending time.
A spot pair, settled in nothing:
BTC/USDT.Rolling standard deviation with O(1) per-tick updates.
Std Deviation RT Indicator
Interface for a simple KV state store
Supplies the
StateStore that holds a strategy's state for one instrument.Stochastic Oscillator (%K and %D) with O(n) worst-case per-tick.
Stochastic RSI RTIndicator
Whitelist/blacklist asset filtering with pattern matching support.
Strategy event is the base interface for yields and signals
StrategyEvent's types
A
Notice about the strategy itself rather than about one of its indicators — a condition
that concerns the whole run, so it names neither an indicator nor an instrument.Declarative annotation for strategy properties.
Extendable Strategy property definition
Strategies may emit signals: eg: function result ema(price), a buy signal, a sell signal
(optimistic yield) etc
Manages strategy stats and performance
Represents a yield result from a Strategy
Defines a subscription to a stream of updates of type T
Accumulating indicator that maintains a running sum of all values produced
by the decorated indicator.
SuperTrend indicator with O(1) per-tick computation.
Rolling Tail Ratio with O(n) per-tick updates via sorted insertion.
Adapts a TA-Lib batch function to the
RTIndicator streaming interface.Functional interface wrapping a TA-Lib batch computation.
Triple Exponential Moving Average (TEMA) RTIndicator.
Engine-owned, exchange-agnostic ticker.
Indicator that extracts a scalar value from a
MarketSnapshot via a configurable
MarketSnapshotValueSource.Primitive-double view of a
Ticker.Scalar-update helpers for a
TickerValueSource against a MarketSnapshot.Defines a Ticker strategy
Ticker enumeration of value sources
Canonical trade record for the engine domain (replaces XChange
UserTrade in domain code).Allow to apply a transformation function to a RTIndicator value
Rolling Treynor Ratio with O(1) per-tick updates.
TRIX (Triple Exponential Average) with O(1) per-tick computation.
True Strength Index (TSI) with O(1) per-tick computation.
Base TypeSafe's Config wrapper class
TypeSafeConfig builder
Rolling Ulcer Index with O(n) per-tick updates.
Ultimate Oscillator (UO) with O(1) amortized per-tick computation.
Interface to allow desubscribing/disposing of subscriptions.
Rolling parametric (Gaussian) Value at Risk with O(1) per-tick updates.
Simplest RT Indicator holding a value
Rolling variance with O(1) per-tick updates using a single window.
Variance RTIndicator
Measures price volatility by tracking whether consecutive values change.
Vortex Indicator with O(1) amortized per-tick computation.
Volume Weighted Average Price (VWAP) with O(1) per-tick computation.
Williams %R with O(n) worst-case per-tick (eviction scan).
Defines a readable Window view of data series
Stores n periods of past data.
Time-based windowed indicator that batches updates over a configurable duration.
Implemented by a listener that needs to know which window fired it.
WindowTimeRTIndicator Builder
Weighted Moving Average (WMA) with O(1) incremental updates.
Weighted Moving Average (WMA) RTIndicator.
Defines a writable WindowSeries
Yang-Zhang Volatility estimator with O(1) per-tick updates.
Rolling Z-Score with O(1) per-tick updates.