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, plus a C ABI that any C-capable language (C, C++, Go, C#, Java, R) links against. 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 514 indicators across twenty-four 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, risk / performance, microstructure, and derivatives — 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 dual-licensed under the MIT and Apache-2.0 licenses; you may use it under either at your option. It is OSI-approved, permissive open source — free for any use, commercial or not.
Published versions
| Registry | Package | Version |
|---|---|---|
| crates.io | wickra | 0.7.7 |
| crates.io | wickra-core | 0.7.7 |
| crates.io | wickra-data | 0.7.7 |
| PyPI | wickra | 0.7.7 |
| npm | wickra | 0.7.7 |
| npm | wickra-wasm | 0.7.7 |
Release notes and tagged builds: https://github.com/wickra-lib/wickra/releases.
Wiki contents
- Quickstart: Python —
pip 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: Rust —
cargo add wickra, batch and streaming via theIndicatorandBatchExttraits, and theChaincombinator. - Quickstart: Node —
npm install wickra, basicSMAandMACDcalls, and the install surface. - Quickstart: WASM —
npm install wickra-wasm, building withwasm-pack, and running indicators client-side in a browser or bundler. - Quickstart: C — link the generated
wickra.h+ library, the five-function opaque-handle shape, multi-output structs, and thewickra.hppC++ RAII wrapper. - Quickstart: C# —
dotnet add package Wickra, idiomaticIDisposableindicator classes, and nullablerecord structmulti-output. - Quickstart: Go —
go getthe cgo binding, idiomatic types withNew<Indicator>/Close, and(value, ok)multi-output. - Quickstart: R — install the
.Callbinding, indicator constructors withupdate/batch/reset, and named-vector multi-output. - Data Layer — the
wickra-datacrate: 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)
updateand 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 Chaining —
Chain::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 twenty-family taxonomy with per-indicator formula / parameter / warmup tables. The links below are a quick alphabetical-by-family index into the 514 deep-dive pages.
Moving Averages (26)
AdaptiveLaguerreFilter · Alligator · Alma · Dema · Ehma · Ema · Evwma · Frama · GeneralizedDema · GeometricMa · Hma · HoltWinters · Jma · Kama · McGinleyDynamic · MedianMa · SineWeightedMa · Sma · Smma · T3 · Tema · Trima · Vidya · Vwma · Wma · Zlema
Momentum Oscillators (33)
AnchoredRsi · AwesomeOscillator · Cci · Cmo · ConnorsRsi · DerivativeOscillator · DisparityIndex · DynamicMomentumIndex · ElderRay · FisherRsi · Inertia · IntradayMomentumIndex · Kst · LaguerreRsi · Mfi · Mom · Pmo · Qqe · Rmi · Roc · Rocp · Rocr · Rocr100 · Rsi · Rsx · Rvi · Smi · Stochastic · StochasticCci · StochRsi · Tsi · UltimateOscillator · WilliamsR
Trend & Directional (28)
Adx · Adxr · Aroon · AroonOscillator · ChoppinessIndex · Dx · GatorOscillator · KasePermissionStochastic · MacdExt · MacdFix · MacdIndicator · MassIndex · MinusDi · MinusDm · PlusDi · PlusDm · PolarizedFractalEfficiency · Qstick · Rwi · Tii · TrendLabel · TrendStrengthIndex · Trix · TtmTrend · VerticalHorizontalFilter · Vortex · WavePm · WaveTrend
Price Oscillators (15)
AcceleratorOscillator · Apo · AwesomeOscillatorHistogram · BalanceOfPower · Cfo · Coppock · Dpo · ElderImpulse · MacdHistogram · Pgo · Ppo · PpoHistogram · Stc · TsfOscillator · ZeroLagMacd
Volatility & Bands (26)
Atr · BipowerVariation · BollingerBands · BollingerBandwidth · ChaikinVolatility · DetrendedStdDev · Donchian · EwmaVolatility · Garch11 · GarmanKlassVolatility · HistoricalVolatility · JumpIndicator · Keltner · Natr · ParkinsonVolatility · PercentB · RegimeLabel · RogersSatchellVolatility · RviVolatility · StdDev · TrueRange · UlcerIndex · VolatilityCone · VolatilityOfVolatility · VolatilityRatio · YangZhangVolatility
Bands & Channels (16)
AccelerationBands · AtrBands · BomarBands · DoubleBollinger · FractalChaosBands · HurstChannel · LinRegChannel · MaEnvelope · MedianChannel · ProjectionBands · ProjectionOscillator · QuartileBands · StandardErrorBands · StarcBands · TtmSqueeze · VwapStdDevBands
Trailing Stops (19)
AtrRatchet · AtrTrailingStop · ChandeKrollStop · ChandelierExit · DonchianStop · ElderSafeZone · HiLoActivator · KaseDevStop · ModifiedMaStop · Nrtr · PercentageTrailingStop · Psar · RenkoTrailingStop · SarExt · StepTrailingStop · SuperTrend · TimeBasedStop · VoltyStop · YoyoExit
Volume (26)
Adl · AdOscillator · AnchoredVwap · BetterVolume · ChaikinMoneyFlow · ChaikinOscillator · DemandIndex · EaseOfMovement · ForceIndex · IntradayIntensity · Kvo · MarketFacilitationIndex · Nvi · Obv · Pvi · RollingVwap · TradeVolumeIndex · Tsv · TwiggsMoneyFlow · VolumeOscillator · VolumePriceTrend · VolumeRsi · VolumeWeightedMacd · Vwap · Vzo · Wad
Price Statistics (54)
Autocorrelation · AvgPrice · Beta · BetaNeutralSpread · BodySizePct · CloseVsOpen · CoefficientOfVariation · Cointegration · DistanceSsd · GrangerCausality · HighLowRange · HurstExponent · JarqueBera · KalmanHedgeRatio · KendallTau · Kurtosis · LeadLagCrossCorrelation · LinearRegression · LinRegAngle · LinRegIntercept · LinRegSlope · LogReturn · MedianAbsoluteDeviation · MedianPrice · MidPoint · MidPrice · OuHalfLife · PairSpreadZScore · PairwiseBeta · PearsonCorrelation · RealizedVolatility · RelativeStrengthAB · RollingCorrelation · RollingCovariance · RollingIqr · RollingMinMaxScaler · RollingPercentileRank · RollingQuantile · RSquared · SampleEntropy · ShannonEntropy · Skewness · SpearmanCorrelation · SpreadAr1Coefficient · SpreadBollingerBands · SpreadHurst · StandardError · Tsf · TypicalPrice · Variance · VarianceRatio · WeightedClose · WickRatio · ZScore
Ehlers / Cycle (DSP) (29)
AdaptiveCci · AdaptiveCycle · AdaptiveRsi · AutocorrelationPeriodogram · BandpassFilter · CenterOfGravity · CorrelationTrendIndicator · CyberneticCycle · Decycler · DecyclerOscillator · EhlersStochastic · EmpiricalModeDecomposition · EvenBetterSinewave · Fama · FisherTransform · HighpassFilter · HilbertDominantCycle · HtDcPhase · HtPhasor · HtTrendMode · InstantaneousTrendline · InverseFisherTransform · Mama · Reflex · RoofingFilter · SineWave · SuperSmoother · Trendflex · UniversalOscillator
Pivots & S/R (12)
AndrewsPitchfork · Camarilla · CentralPivotRange · ClassicPivots · DemarkPivots · FibonacciPivots · MurreyMathLines · PivotReversal · VolumeWeightedSr · WilliamsFractals · WoodiePivots · ZigZag
DeMark (19)
TdCamouflage · TdClop · TdClopwin · TdCombo · TdCountdown · TdDeMarker · TdDifferential · TdDWave · TdLines · TdMovingAverage · TdOpen · TdPressure · TdPropulsion · TdRangeProjection · TdRei · TdRiskLevel · TdSequential · TdSetup · TdTrap
Ichimoku & Charts (7)
CandleVolume · Equivolume · HeikinAshi · HeikinAshiOscillator · Ichimoku · SmoothedHeikinAshi · ThreeLineBreak
Candlestick Patterns (66)
AbandonedBaby · AdvanceBlock · BeltHold · Breakaway · ClosingMarubozu · ConcealingBabySwallow · Counterattack · Doji · DojiStar · DownsideGapThreeMethods · DragonflyDoji · DumplingTop · Engulfing · EveningDojiStar · FallingThreeMethods · FryPanBottom · GapSideBySideWhite · GravestoneDoji · Hammer · HangingMan · Harami · HaramiCross · HighWave · Hikkake · HikkakeModified · HomingPigeon · IdenticalThreeCrows · InNeck · InvertedHammer · Kicking · KickingByLength · LadderBottom · LongLeggedDoji · LongLine · Marubozu · MatchingLow · MatHold · MorningDojiStar · MorningEveningStar · NewPriceLines · OnNeck · OpeningMarubozu · PiercingDarkCloud · RickshawMan · RisingThreeMethods · SeparatingLines · ShootingStar · ShortLine · SpinningTop · StalledPattern · StickSandwich · Takuri · TasukiGap · ThreeInside · ThreeLineStrike · ThreeOutside · ThreeSoldiersOrCrows · ThreeStarsInSouth · Thrusting · TowerTopBottom · Tristar · Tweezer · TwoCrows · UniqueThreeRiver · UpsideGapThreeMethods · UpsideGapTwoCrows
Market Profile (10)
CompositeProfile · HighLowVolumeNodes · InitialBalance · NakedPoc · OpeningRange · ProfileShape · SinglePrints · TpoProfile · ValueArea · VolumeProfile
Risk / Performance (28)
Alpha · AverageDrawdown · BurkeRatio · CalmarRatio · CommonSenseRatio · ConditionalValueAtRisk · DrawdownDuration · Expectancy · GainLossRatio · GainToPainRatio · InformationRatio · KellyCriterion · KRatio · M2Measure · MartinRatio · MaxDrawdown · OmegaRatio · PainIndex · ProfitFactor · RecoveryFactor · SharpeRatio · SortinoRatio · SterlingRatio · TailRatio · TreynorRatio · UpsidePotentialRatio · ValueAtRisk · WinRate
Microstructure (20)
AmihudIlliquidity · CumulativeVolumeDelta · DepthSlope · EffectiveSpread · Footprint · HasbrouckInformationShare · KylesLambda · Microprice · OrderBookImbalanceFull · OrderBookImbalanceTop1 · OrderBookImbalanceTopN · OrderFlowImbalance · Pin · QuotedSpread · RealizedSpread · RollMeasure · SignedVolume · TradeImbalance · TradeSignAutocorrelation · Vpin
Derivatives (17)
CalendarSpread · EstimatedLeverageRatio · FundingBasis · FundingImpliedApr · FundingRate · FundingRateMean · FundingRateZScore · LiquidationFeatures · LongShortRatio · OIPriceDivergence · OiToVolumeRatio · OIWeighted · OpenInterestDelta · OpenInterestMomentum · PerpetualPremiumIndex · TakerBuySellRatio · TermStructureBasis
Alt-Chart Bars (10)
DollarBars · ImbalanceBars · KagiBars · PointAndFigureBars · RangeBars · RenkoBars · RunBars · ThreeLineBreakBars · TickBars · VolumeBars
Market Breadth (15)
AbsoluteBreadthIndex · AdvanceDecline · AdvanceDeclineRatio · AdVolumeLine · BreadthThrust · BullishPercentIndex · CumulativeVolumeIndex · HighLowIndex · McClellanOscillator · McClellanSummationIndex · NewHighsNewLows · PercentAboveMa · TickIndex · Trin · UpDownVolumeRatio
Seasonality & Session (12)
AverageDailyRange · DayOfWeekProfile · IntradayVolatilityProfile · OvernightGap · OvernightIntradayReturn · SeasonalZScore · SessionHighLow · SessionRange · SessionVwap · TimeOfDayReturnProfile · TurnOfMonth · VolumeByTimeProfile
Chart Patterns (8)
CupAndHandle · DoubleTopBottom · FlagPennant · HeadAndShoulders · RectangleRange · Triangle · TripleTopBottom · Wedge
Harmonic Patterns (8)
Abcd · Bat · Butterfly · Crab · Cypher · Gartley · Shark · ThreeDrives
Fibonacci (10)
AutoFib · FibArcs · FibChannel · FibConfluence · FibExtension · FibFan · FibProjection · FibRetracement · FibTimeZones · GoldenPocket
See also
- Source code: https://github.com/wickra-lib/wickra
- Releases: https://github.com/wickra-lib/wickra/releases
- Issue tracker: https://github.com/wickra-lib/wickra/issues