Skip to content

Wickra

Wickra is a streaming-first technical-indicators library. Every indicator is implemented in Rust as an O(1) state machine that consumes one input at a time, and the same engine is exposed through ergonomic bindings for Python, Node.js, WebAssembly, and Rust itself. The same update call you write inside a live trading loop also drives the historical backtest of that same strategy — there is no second code path that drifts behind the streaming one.

The project ships 244 indicators across seventeen families — moving averages, momentum oscillators, trend & directional, price oscillators, volatility & bands, bands & channels, trailing stops, volume, price statistics, Ehlers / cycle (DSP), pivots & S/R, DeMark, Ichimoku & charts, candlestick patterns, market profile, and risk / performance — plus a small set of supporting types (Candle, Tick, Chain). The Rust core forbids unsafe, so every binding inherits a memory-safe implementation. Install is one command on every supported platform: pip install wickra, cargo add wickra, npm install wickra — no system compilers, no C dependencies, no headers.

Wickra is licensed under the PolyForm Noncommercial 1.0.0 license. Personal projects, research, hobby trading bots, education, non-profits, and government use are all permitted; commercial sale of the software or of services built around it is not. If you want to use Wickra commercially, open an issue on GitHub to discuss a separate license.

Published versions

RegistryPackageVersion
crates.iowickra0.4.3
crates.iowickra-core0.4.3
crates.iowickra-data0.4.3
PyPIwickra0.4.3
npmwickra0.4.3
npmwickra-wasm0.4.3

Release notes and tagged builds: https://github.com/wickra-lib/wickra/releases.

Wiki contents

  • Quickstart: Pythonpip install wickra, a batch RSI on a NumPy array, a streaming RSI loop, and the multi-column NaN pattern that MACD and friends share.
  • Quickstart: Rustcargo add wickra, batch and streaming via the Indicator and BatchExt traits, and the Chain combinator.
  • Quickstart: Nodenpm install wickra, basic SMA and MACD calls, and the install surface.
  • Quickstart: WASMnpm install wickra-wasm, building with wasm-pack, and running indicators client-side in a browser or bundler.
  • Data Layer — the wickra-data crate: the CSV reader, the tick-to-candle aggregator, the multi-timeframe resampler, and the Binance live feed.
  • Streaming vs Batch — the conceptual difference between Wickra's O(1) update and the recompute-everything loops in batch-only libraries, with the benchmark numbers from the project README.
  • Warmup Periods — a verified table of every indicator's warmup_period(), plus the reasoning behind the off-by-one cases (RSI(14) needs 15 inputs because it needs 14 diffs).
  • Indicator ChainingChain::new(first, second) and .then(third), with a worked EMA(14) → RSI(7) example and the rule for stacked warmups.
  • Cookbook — copy-paste strategy recipes built on streaming indicators (RSI mean reversion, MACD crossover, Bollinger breakout, ADX-gated trend, multi-timeframe, SuperTrend trailing stop).
  • TA-Lib Migration — function-by-function mapping table from TA-Lib's talib.X(...) calls to the equivalent Wickra expressions.
  • FAQ — quick answers to the most common questions about warmup, NaN handling, thread safety, and the streaming-vs-batch contract.

Indicator reference

Start with Indicators-Overview for the full seventeen-family taxonomy with per-indicator formula / parameter / warmup tables. The links below are a quick alphabetical-by-family index into the 232 deep-dive pages.

Moving Averages (19)

Alligator · Alma · Dema · Ema · Evwma · Frama · Hma · Jma · Kama · McGinleyDynamic · Sma · Smma · T3 · Tema · Trima · Vidya · Vwma · Wma · Zlema

Momentum Oscillators (20)

AwesomeOscillator · Cci · Cmo · ConnorsRsi · Inertia · Kst · LaguerreRsi · Mfi · Mom · Pgo · Pmo · Roc · Rsi · Rvi · Smi · Stochastic · StochRsi · Tsi · UltimateOscillator · WilliamsR

Trend & Directional (13)

Adx · Adxr · Aroon · AroonOscillator · ChoppinessIndex · MacdIndicator · MassIndex · Rwi · Tii · Trix · VerticalHorizontalFilter · Vortex · WaveTrend

Price Oscillators (11)

AcceleratorOscillator · Apo · AwesomeOscillatorHistogram · BalanceOfPower · Cfo · Coppock · Dpo · ElderImpulse · Ppo · Stc · ZeroLagMacd

Volatility & Bands (18)

Atr · BollingerBands · BollingerBandwidth · ChaikinVolatility · DetrendedStdDev · Donchian · GarmanKlassVolatility · HistoricalVolatility · Keltner · Natr · ParkinsonVolatility · PercentB · RogersSatchellVolatility · RviVolatility · StdDev · TrueRange · UlcerIndex · YangZhangVolatility

Bands & Channels (11)

AccelerationBands · AtrBands · DoubleBollinger · FractalChaosBands · HurstChannel · LinRegChannel · MaEnvelope · StandardErrorBands · StarcBands · TtmSqueeze · VwapStdDevBands

Trailing Stops (12)

AtrTrailingStop · ChandeKrollStop · ChandelierExit · DonchianStop · HiLoActivator · PercentageTrailingStop · Psar · RenkoTrailingStop · StepTrailingStop · SuperTrend · VoltyStop · YoyoExit

Volume (19)

AdOscillator · Adl · AnchoredVwap · ChaikinMoneyFlow · ChaikinOscillator · DemandIndex · EaseOfMovement · ForceIndex · Kvo · MarketFacilitationIndex · Nvi · Obv · Pvi · RollingVwap · Tsv · VolumeOscillator · VolumePriceTrend · Vwap · Vzo

Price Statistics (19)

Autocorrelation · Beta · CoefficientOfVariation · HurstExponent · Kurtosis · LinearRegression · LinRegAngle · LinRegSlope · MedianAbsoluteDeviation · MedianPrice · PearsonCorrelation · RSquared · Skewness · SpearmanCorrelation · StandardError · TypicalPrice · Variance · WeightedClose · ZScore

Ehlers / Cycle (DSP) (16)

AdaptiveCycle · CenterOfGravity · CyberneticCycle · Decycler · DecyclerOscillator · EhlersStochastic · EmpiricalModeDecomposition · Fama · FisherTransform · HilbertDominantCycle · InstantaneousTrendline · InverseFisherTransform · Mama · RoofingFilter · SineWave · SuperSmoother

Pivots & S/R (7)

Camarilla · ClassicPivots · DemarkPivots · FibonacciPivots · WilliamsFractals · WoodiePivots · ZigZag

DeMark (12)

TdCombo · TdCountdown · TdDeMarker · TdDifferential · TdLines · TdOpen · TdPressure · TdRangeProjection · TdRei · TdRiskLevel · TdSequential · TdSetup

Ichimoku & Charts (2)

HeikinAshi · Ichimoku

Candlestick Patterns (15)

Doji · Engulfing · Hammer · HangingMan · Harami · InvertedHammer · Marubozu · MorningEveningStar · PiercingDarkCloud · ShootingStar · SpinningTop · ThreeInside · ThreeOutside · ThreeSoldiersOrCrows · Tweezer

Market Profile (3)

InitialBalance · OpeningRange · ValueArea

Risk / Performance (17)

Alpha · AverageDrawdown · CalmarRatio · ConditionalValueAtRisk · DrawdownDuration · GainLossRatio · InformationRatio · KellyCriterion · MaxDrawdown · OmegaRatio · PainIndex · ProfitFactor · RecoveryFactor · SharpeRatio · SortinoRatio · TreynorRatio · ValueAtRisk

Microstructure (13)

CumulativeVolumeDelta · DepthSlope · EffectiveSpread · Footprint · KylesLambda · Microprice · OrderBookImbalanceFull · OrderBookImbalanceTop1 · OrderBookImbalanceTopN · QuotedSpread · RealizedSpread · SignedVolume · TradeImbalance

See also