Showcase
Every indicator of the catalog, drawn from what kestrel-chartkit computes: default parameters on synthetic 4-hour bars of a fictitious CASOON share with invented prices, the latest alerts as markers. chartlet does the drawing. Pick an indicator for its chart and the Rust call that builds it.
Regime and signals
Market regime
examples/site_showcase.rsDetail: Market regime →let mut adx = build_checked("adx", &HashMap::new())?;
let mut atr = build_checked("atr", &HashMap::new())?;
for (i, bar) in bars.iter().enumerate() {
let (Some(a), Some(t)) = (adx.on_bar(bar), atr.on_bar(bar)) else { continue };
// The ATR indicator reports 100 * ATR / close; classify_regime expects the fraction.
let regime = classify_regime(&bars[..=i], a.value, t.value / 100.0);
}Composite signal
examples/site_showcase.rsDetail: Composite signal →let subscores = vec![
score_indicator("macd", &macd_out, &macd.alerts()),
score_indicator("vortex", &vortex_out, &vortex.alerts()),
score_indicator("trend_quality", &tq_out, &tq.alerts()),
];
let regime = classify_regime(&bars[..=i], adx_out.value, atr_out.value / 100.0);
let signal = aggregate_subscores(subscores, None, regime, Vec::new(), Some(bar), atr_out.extra["raw"]);
// signal.trigger, signal.score, signal.permissionMoving averages, bands and trend lines
smaSimple Moving Average
anchored_vwapAnchored VWAP Engine
emaExponential Moving Average
wmaWeighted Moving Average
vwmaVolume-Weighted Moving Average
hmaHull Moving Average
demaDouble Exponential Moving Average
temaTriple Exponential Moving Average
kamaKaufman's Adaptive Moving Average
lsmaLeast Squares Moving Average / Linear Regression
mcginleyMcGinley Dynamic Moving Average
t3Tillson T3
vidyaVariable Index Dynamic Average
alligatorWilliams Alligator
envelopeMoving Average Envelopes
vwapRolling Volume Weighted Average Price with sigma bands and slope
trend_relationshipAdaptive trend relationship between two configurable smoothers
ichimokuIchimoku Kinko Hyo Cloud
supertrendSupertrend ATR Trailing Stop
parabolic_sarParabolic SAR
donchianDonchian Channels
keltnerKeltner Channels
bollingerBollinger Bands
twapAnchored Time Weighted Average Price
midasMIDAS launch-anchored curve with Topfinder/Bottomfinder projection
Oscillators
macdMoving Average Convergence Divergence
pmoPrice Momentum Oscillator
smiStochastic Momentum Index
rciRank Correlation Index
trixTRIX
tsiTrue Strength Index
stochasticClassic Stochastic Oscillator
rocRate of Change / Momentum
ultimate_oscillatorUltimate Oscillator
awesome_oscillatorAwesome Oscillator
ppoPercentage Price Oscillator
cmoChande Momentum Oscillator
elder_rayElder Ray Index
connors_rsiConnors RSI
coppockCoppock Curve
dpoDetrended Price Oscillator
kstKnow Sure Thing Oscillator
rviRelative Vigor Index
bopBalance of Power
bbtrendBBTrend
zscoreRolling Z-Score Engine
rsiRelative Strength Index
stoch_rsiStochastic RSI
cciCommodity Channel Index
mfiMoney Flow Index
williams_rWilliams %R
fisher_transformFisher Transform
wavetrendWaveTrend Oscillator
Volatility and trend strength
atrAverage True Range
adxAverage Directional Index
dmiDirectional Movement Index
aroonAroon Indicator
vortexVortex Indicator
choppinessChoppiness Index
relative_volatilityRelative Volatility Index
ulcer_indexUlcer Index
true_rangeTrue Range in price units
historical_volatilityAnnualized Historical Volatility
garman_klassGarman-Klass Volatility Estimator
mass_indexMass Index Reversal Detector
chande_krollChande Kroll Stop
chandelier_exitChandelier Exit
adaptive_chandelierChandelier Exit ratchet extended with adaptive multiplier, body-filtered weak flips, and bull/bear trap det…
vix_fixWilliams Vix Fix volatility spike detector: panic lows
efficiencyKaufman-style leg efficiency ratio
cusumTwo-sided CUSUM of standardized close-to-close returns
volatility_regimeVolatility Regime & Squeeze Detector
Volume
pvtPrice Volume Trend
efiElder's Force Index
rvatRelative Volume at Time
hires_volume_flowHigh-resolution volume flow with absorption detection
extended_volume_profileFull-bin price/volume profile with HVN/LVN/AVN classification, a delta profile, and zone formation
persistent_volume_profileFixed-price-grid volume profile with real bin lifecycle
volume_profilePrice/volume distribution profile with point-of-control
money_flow_profileVolume-by-price profile binned by dollar volume
volumeVolume and Average Volume
rvolRelative Volume vs Moving Average
obvOn-Balance Volume
cmfChaikin Money Flow
acc_distAccumulation / Distribution Line
cvdCumulative Volume Delta
klingerKlinger Volume Force Oscillator
eomEase of Movement
nviNegative Volume Index
pviPositive Volume Index
chaikin_oscillatorChaikin Oscillator
Market structure and patterns
order_blockOrder block detection from displacement candles
liquidity_fvgFair value gap
gapPrice gap between consecutive bars: the open beyond the previous bar's range or close, size in ATR of the p…
point_and_figurePoint-and-figure chart: columns of X and O from a box size and a reversal in boxes; the current column with…
market_structure_breaksBreak of structure / change of character
pivots_structureSwing pivot detection with a rolling structure score
candle_classificationNormalised candle classification — reports every pattern it recognises
zigzagZigZag Swing Leg Engine
pivot_setsMulti-Pivot Set Engine
bos_chochBOS and CHoCH Market Structure Engine
liquidity_sweepsLiquidity Sweeps and EQH/EQL Detector
zone_rejectionFailed breakout at a confirmed pivot-cluster zone: wick through support/resistance, close back; extra["wick…
double_patternDouble bottom/top as a streaming event: forming on the second pivot
bottom_formationBottom/top formation as a sequence of stages: attempt
pivot_divergencePrice-pivot-anchored divergence
oscillator_pivot_divergenceDivergence with the pivots found in the oscillator
wavetrend_divergenceDivergence on WaveTrend
stoch_rsi_divergenceDivergence on Stoch RSI
liquidity_poolsBSL/SSL liquidity pools with explicit stop-hunt/breakout/reclaim classification
wyckoffWyckoff accumulation/distribution state machine: range from climax and counter-move
zigzag_advancedZigZag with backstep, running-leg/confirmation status, and ATR-mode deviation
trendlinesTrendlines through confirmed zigzag_advanced nodes: a support line through the lows and a resistance line t…
Composite read-outs, part 1
flow_exhaustionFlow Exhaustion
overextension_riskOverextension Risk: overextension score per side from three roles — stretch
smoothed_supertrendSmoothed Supertrend: baseline = EMA(ema_len) of WMA(wma_len) of the supertrend midline
coil_releaseCoil Release: coil strength from symbolic complexity, box-counting fractal dimension and efficiency over le…
compression_zonesCompression Zones: compression zones from a 0..80 score
roc_contextROC Context: percentage ROC
tradability_filterTradability Filter: no-trade filter with an eight-state machine
reaction_speedReaction Speed: tracks one structure event at a time
market_state_chainMarket State Chain: six debounced states
rsi_cycle_statsRSI Cycle Statistics: cycle state machine origin -> armed -> success / failure / timeout between the overbo…
price_average_relationPrice-Average Relation: price against one moving average
Composite read-outs, part 2
leg_convictionLeg Conviction: each confirmed pivot-to-pivot leg scored 0..100 from speed
trend_break_riskTrend Break Risk: risk 0..100 that the prevailing
sweep_reversal_scoreSweep Reversal Score
equal_level_liquidityEqual-Level Liquidity: equal-high/low levels clustered within eq_tolerance_atr ATR, pruned by age and dista…
leg_characterLeg Character: character of the live leg from the last alternating pivot
accumulation_phaseAccumulation Phase: accumulation
reversal_setup_scoreReversal Setup Score
structure_zonesStructure Zones
structural_flowStructural Flow
trend_qualityTrend Quality Score Engine
buy_sell_pressureBuy/Sell Pressure Estimator
multi_factorMulti-Factor Composite Market Score