Candle-driven technical indicators shipped as independent shared-library plugins
(.dll on Windows, .so on Linux). Computed in
decimal_t on every finalized candle, with bounded output history and
zero allocation in the hot path — accessible from your algo through a single typed lookup.
Every indicator is an independent V2 shared library (.dll on Windows,
.so on Linux). ttTrader loads only the indicator types referenced by
your candle-series configuration, caches their function tables, instantiates them per series,
warms them up from historical candles, and updates them exactly once per finalized candle.
Trades or BBO events build candles in candleSeries_c. Each finalized candle is
dispatched to the attached indicators before your algo's onFinalizedCandle()
callback fires — output offset 0 always matches the candle you just received.
| Property | Guarantee |
|---|---|
| Financial math | All calculations in decimal_t — no float rounding |
| Hot path | Zero dynamic allocation on finalized-candle updates |
| History | Bounded output history sized by the candle series |
| Warm-up | Historical candles initialize indicators chronologically |
| Consistency | Duplicate/out-of-order candles cannot advance state |
ttGetIndicatorApiV2. The host validates API version, type enum, descriptor schema,
and an ABI fingerprint derived from the shared financial and candle value layouts — a plugin
from a different build is rejected at startup.
Forty-seven native indicators ship with the framework — each as its own certified shared-library plugin.
Smooth price action to reveal direction, strength, and dynamic support/resistance.
smaEqual-weighted average of the last N candles.
Baseline trend direction, long-term regime filters.
emaExponentially weighted average that reacts faster to recent price.
Trend filters, fast/slow crossovers, dynamic S/R.
wmaLinearly weighted average emphasizing the newest candles.
Quicker trend reads than SMA with controlled noise.
hmaHull moving average — minimal lag while staying smooth.
Fast turn detection, low-latency trend flips.
vwmaVolume-weighted moving average over N candles.
Volume-backed trend filters, divergence vs. simple MAs.
Measure speed and magnitude of price moves to spot exhaustion and divergence.
macdDifference of two EMAs with signal line and histogram.
Momentum shifts, signal-line crossovers, divergence.
rsiWilder-smoothed 0–100 overbought/oversold oscillator.
Mean-reversion extremes, divergence in ranges.
stochasticClose position within the recent high/low range (%K/%D).
Reversal timing, range-bound entries.
rocPercentage price change over a configurable lookback.
Momentum strength, acceleration/deceleration.
cciDeviation of price from its statistical mean.
Cyclical turns, extremes beyond ±100.
stochRsiStochastic applied to RSI — amplified %K/%D sensitivity.
Fine-tuned timing inside RSI extremes.
williamsRInverse stochastic on the high/low range, scaled −100 to 0.
Fast overbought/oversold reads.
momentumRaw price difference over N candles.
Pure velocity signals, zero-line crosses.
trixTriple-smoothed EMA rate of change.
Noise-filtered momentum, signal-line crosses.
kstKnow Sure Thing — summed smoothed ROCs across four periods, with signal line.
Longer-cycle momentum turns.
ppoPercentage Price Oscillator — EMA difference in percent with signal and histogram.
MACD-style momentum comparable across price levels.
ultimateOscillatorWeighted blend of buying pressure across three timeframes.
Multi-timeframe divergence, fewer false extremes.
vortexPositive/negative trend movement (VI+ / VI−) normalized by true range.
Trend-start crossovers.
elderRayBull and bear power — high/low distance from an EMA.
Entry timing within an established trend.
Quantify price dispersion and envelope markets in adaptive channels.
bollingerSMA ± k·σ bands with middle, upper, lower, and normalized width.
Squeezes, mean reversion, volatility breakouts.
atrWilder-smoothed average true range.
Stop distance, position sizing, volatility filters.
keltnerEMA envelope at ± k·ATR around the midline.
Trend pullbacks, breakout confirmation.
donchianHighest-high / lowest-low channel over N candles.
Breakout entries, trailing stops.
stddevStatistical dispersion of price around its mean.
Volatility regime detection, strategy filters.
atrChannelsATR-based envelope around a midline — upper, middle, lower.
Volatility-adaptive bands, breakout zones.
zscoreDistance of price from its mean, measured in standard deviations.
Statistical extremes, mean-reversion triggers.
chop0–100 index separating trending from choppy markets.
Regime filter — gate trend strategies on trendiness.
linregBest-fit regression line with upper/lower deviation bands.
Fair value, channel-extreme fades.
Confirm moves, detect accumulation/distribution, and locate high-interest price levels.
obvCumulative volume signed by close direction.
Confirmation and divergence vs. price.
mfiVolume-weighted RSI measuring money flow pressure.
Flow-based overbought/oversold extremes.
vwapVolume-weighted average price of the session.
Execution benchmark, intraday directional bias.
cmfChaikin Money Flow — buying/selling pressure over N candles.
Accumulation/distribution pressure.
volumeProfileVolume traded per price level — POC, VAH, VAL outputs.
Support/resistance zones, value-area trading.
adAccumulation/Distribution line from close location × volume.
Money-flow trend, divergence signals.
chaikinOscillatorFast/slow EMA difference of the A/D line.
Money-flow momentum shifts, A/D divergence.
forceIndexPrice change multiplied by volume, EMA-smoothed.
Conviction behind moves, exhaustion detection.
eomPrice progress per unit of volume.
Low-resistance moves, breakout quality.
rvolCurrent volume against its historical average.
Breakout confirmation, unusual-activity alerts.
trinAdvancing/declining ratio weighted by volume.
Short-term breadth extremes, contrarian reads.
volumeIndexNegative/Positive Volume Index — updates only on down/up-volume candles.
Smart-money (NVI) vs. crowd (PVI) tracking.
Multi-line systems and level tools that map trend state, strength, stops, and projected zones.
psarTrailing stop-and-reverse dots with accelerating factor.
Trailing stops, trend-flip signals.
ichimokuFive-line system: tenkan, kijun, senkou A/B, future cloud.
Complete trend state, forward S/R zones.
adxAverage Directional Index with +DI / −DI directional lines.
Trend-strength filters, DI crossovers.
supertrendATR-based trailing band that flips with the trend — value plus direction.
Trend-following entries, trailing stops.
alligatorThree smoothed moving averages: jaw, teeth, lips.
Trend awakening, breakout direction.
fibonacciAuto-computed retracement levels from the swing range.
Pullback targets, S/R confluence.
pivotPointsClassic, Camarilla, or Woodie pivots with R1–R3 / S1–S3.
Session S/R grids, mean-reversion levels.
| Output | Enum |
|---|---|
| Bollinger middle / upper / lower / width | EIO_BOLLINGER_* |
| MACD line / signal / histogram | EIO_MACD* |
| Stochastic %K / %D | EIO_STOCHASTIC_K/D |
| Ichimoku tenkan / kijun / senkou A / senkou B | EIO_ICHIMOKU_* |
| Keltner middle / upper / lower | EIO_KELTNER_* |
| Donchian upper / middle / lower | EIO_DONCHIAN_* |
| Volume Profile POC / VAH / VAL | EIO_VOLUMEPROFILE_POC/VAH/VAL |
| Linear Regression line / upper / lower | EIO_LINEARREG_* |
| Stochastic RSI %K / %D | EIO_STOCHRSI_* |
| ADX / +DI / −DI | EIO_ADX, EIO_DMI_* |
| Supertrend line / direction | EIO_SUPERTREND* |
| Alligator jaw / teeth / lips | EIO_ALLIGATOR_* |
| Elder Ray bull / bear power | EIO_ELDER_* |
| Fibonacci levels | EIO_FIB_* |
| Pivot / R1–R3 / S1–S3 | EIO_PIVOT* |
| KST line / signal | EIO_KST, EIO_KST_SIGNAL |
| Vortex VI+ / VI− | EIO_VORTEX_PLUS/MINUS |
| PPO line / signal / histogram | EIO_PPO* |
| ATR Channels middle / upper / lower | EIO_ATRCHANNEL_* |
| NVI / PVI | EIO_NVI, EIO_PVI |
Indicators are declared in the instrument's OHLC config — unique ID, type, and parameters. Periods validate at load time; invalid types, bounds, or inputs reject the whole series configuration transactionally. Nothing is parsed at runtime: lookups use cached enums and function pointers only.
| Input | Value |
|---|---|
open / high / low / close |
Single candle price (close = default) |
hl2 |
(high + low) / 2 |
hlc3 |
(high + low + close) / 3 |
ohlc4 |
(open + high + low + close) / 4 |
vwap |
Candle VWAP when the metric is enabled |
Supported by EMA, SMA, WMA, HMA, Bollinger Bands, RSI, MACD, ROC, Standard Deviation, and OBV's comparison price. All remaining indicators — ATR, Stochastic, Parabolic SAR, Ichimoku, ADX/DMI, Supertrend, and the rest — are full-candle calculations.
| Status | Meaning |
|---|---|
EIVS_VALID |
Ready for trading logic |
EIVS_WARMUP |
Not enough valid candles yet |
EIVS_NOT_FOUND |
Indicator, output, or offset unavailable |
EIVS_INVALID |
No meaningful result produced |
Every lookup returns a typed indicatorValue_s. Invalid or
missing input produces an explicit non-valid status — never an implicit zero signal.
Read outputs by configured indicator ID and output enum — from the finalized-candle callback or through the framework helper. Publication-order offsets keep history semantics correct even on sparse series.
Need an indicator we don't ship? The V2 runtime is built for extension — and we develop custom
native indicators on request, delivered as certified shared-library plugins
(.dll on Windows, .so on Linux) against the documented SDK.
nativeIndicatorBase_cconfigure(); keep onCandleClose() allocation-freedecimal_t
precision, HFT-safe update paths, and deterministic certification coverage. Delivered against the
documented plugin SDK so it drops straight into your configuration.
Get in touch with your
requirements.