-
Notifications
You must be signed in to change notification settings - Fork 0
Home
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 196 indicators across nine families — moving averages,
momentum oscillators, trend & directional, price oscillators, volatility &
bands, bands & channels, trailing stops, volume, and price statistics — 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.
| Registry | Package | Version |
|---|---|---|
| crates.io | wickra |
0.2.7 |
| crates.io | wickra-core |
0.2.7 |
| crates.io | wickra-data |
0.2.7 |
| PyPI | wickra |
0.2.7 |
| npm | wickra |
0.2.7 |
| npm | wickra-wasm |
0.2.7 |
Release notes and tagged builds: https://github.com/kingchenc/wickra/releases.
-
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. Windows x64 was previously blocked by an npm spam filter onwickra-win32-x64-msvc; that was resolved with npm Support, and 0.2.1 is the first release in whichnpm install wickraworks end-to-end on Windows. -
Quickstart: WASM —
npm install wickra-wasm, building withwasm-pack, and running indicators client-side in a browser or bundler. -
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.
Start with Indicators-Overview for the full
eight-family taxonomy and the shared Indicator trait surface. The
per-indicator pages below cover formulas, parameters, warmup behaviour, edge
cases, and verified Rust / Python / Node examples. They are grouped by family,
mirroring the indicators/<family>/ directory layout.
Moving Averages — smooth the price series to surface direction.
- Indicator-Sma
- Indicator-Ema
- Indicator-Wma
- Indicator-Dema
- Indicator-Tema
- Indicator-Hma
- Indicator-Kama
- Indicator-Smma
- Indicator-Trima
- Indicator-Zlema
- Indicator-T3
- Indicator-Vwma
Momentum Oscillators — measure the rate of price change.
- Indicator-Rsi
- Indicator-Stochastic
- Indicator-Cci
- Indicator-Roc
- Indicator-WilliamsR
- Indicator-Mfi
- Indicator-AwesomeOscillator
- Indicator-Mom
- Indicator-Cmo
- Indicator-Tsi
- Indicator-Pmo
- Indicator-StochRsi
- Indicator-UltimateOscillator
Trend & Directional — is there a trend, and which way?
- Indicator-MacdIndicator
- Indicator-Adx
- Indicator-Aroon
- Indicator-Trix
- Indicator-AroonOscillator
- Indicator-Vortex
- Indicator-MassIndex
- Indicator-ChoppinessIndex
- Indicator-VerticalHorizontalFilter
Price Oscillators — difference-of-averages momentum around zero.
- Indicator-Ppo
- Indicator-Dpo
- Indicator-Coppock
- Indicator-AcceleratorOscillator
- Indicator-BalanceOfPower
Volatility & Bands — dispersion measures and price envelopes.
- Indicator-Atr
- Indicator-BollingerBands
- Indicator-Keltner
- Indicator-Donchian
- Indicator-Natr
- Indicator-StdDev
- Indicator-UlcerIndex
- Indicator-HistoricalVolatility
- Indicator-BollingerBandwidth
- Indicator-PercentB
- Indicator-TrueRange
- Indicator-ChaikinVolatility
Trailing Stops — ATR-driven stop-loss trackers.
- Indicator-Psar
- Indicator-SuperTrend
- Indicator-ChandelierExit
- Indicator-ChandeKrollStop
- Indicator-AtrTrailingStop
Volume — price moves weighted or confirmed by traded volume.
- Indicator-Obv
- Indicator-Vwap
- Indicator-Adl
- Indicator-VolumePriceTrend
- Indicator-ChaikinMoneyFlow
- Indicator-ChaikinOscillator
- Indicator-ForceIndex
- Indicator-EaseOfMovement
Price Statistics — per-bar transforms and rolling regressions.
- Indicator-TypicalPrice
- Indicator-MedianPrice
- Indicator-WeightedClose
- Indicator-LinearRegression
- Indicator-LinRegSlope
- Indicator-ZScore
- Indicator-LinRegAngle
- Source code: https://github.com/kingchenc/wickra
- Releases: https://github.com/kingchenc/wickra/releases
- Issue tracker: https://github.com/kingchenc/wickra/issues
Wickra on GitHub · crates.io · PyPI · npm · License: PolyForm-Noncommercial-1.0.0
- Alligator
- Alma
- Dema
- Ema
- Evwma
- Frama
- Hma
- Jma
- Kama
- McGinleyDynamic
- Sma
- Smma
- T3
- Tema
- Trima
- Vidya
- Vwma
- Wma
- Zlema
- AwesomeOscillator
- Cci
- Cmo
- ConnorsRSI
- Inertia
- Kst
- LaguerreRSI
- Mfi
- Mom
- Pgo
- Pmo
- Roc
- Rsi
- Rvi
- Smi
- Stochastic
- StochRsi
- Tsi
- UltimateOscillator
- WilliamsR
- Adx
- Adxr
- Aroon
- AroonOscillator
- ChoppinessIndex
- MacdIndicator
- MassIndex
- Rwi
- Tii
- Trix
- VerticalHorizontalFilter
- Vortex
- WaveTrend
- Atr
- BollingerBands
- BollingerBandwidth
- ChaikinVolatility
- Donchian
- GarmanKlassVolatility
- HistoricalVolatility
- Keltner
- Natr
- ParkinsonVolatility
- PercentB
- RogersSatchellVolatility
- RviVolatility
- StdDev
- TrueRange
- UlcerIndex
- YangZhangVolatility