The 33 Markdown files under docs/wiki/ were never tracked. Commit them
into the repository so the documentation is versioned alongside the
code: 8 top-level pages plus 25 per-indicator deep dives under
indicators/{momentum,trend,volatility,volume}/.
The pages are kept in-repo (not pushed to a flat GitHub Wiki), so the
relative indicators/<family>/... links in Home.md resolve correctly
when rendered on GitHub.
5.2 KiB
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 25 indicators across the four classical families (trend,
momentum, volatility, volume) and 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
| Registry | Package | Version |
|---|---|---|
| crates.io | wickra |
0.1.4 |
| crates.io | wickra-core |
0.1.4 |
| crates.io | wickra-data |
0.1.4 |
| PyPI | wickra |
0.1.4 |
| npm | wickra |
0.1.4 |
| npm | wickra-wasm |
0.1.4 |
Release notes and tagged builds: https://github.com/kingchenc/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 current Windows install caveat (wickra-win32-x64-msvc@0.1.4is held by the npm spam filter). - 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.
Indicator reference
Start with Indicators-Overview.md for the
cross-cutting taxonomy (trend / momentum / volatility / volume) 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.
Trend — smooth the price series to surface direction.
- Indicator-Sma.md
- Indicator-Ema.md
- Indicator-Wma.md
- Indicator-Dema.md
- Indicator-Tema.md
- Indicator-Hma.md
- Indicator-Kama.md
Momentum — measure the rate of price change rather than the level.
- Indicator-Rsi.md
- Indicator-MacdIndicator.md
- Indicator-Stochastic.md
- Indicator-Cci.md
- Indicator-Roc.md
- Indicator-WilliamsR.md
- Indicator-Adx.md
- Indicator-Mfi.md
- Indicator-Trix.md
- Indicator-AwesomeOscillator.md
- Indicator-Aroon.md
Volatility — envelope width and per-bar dispersion measures.
- Indicator-BollingerBands.md
- Indicator-Atr.md
- Indicator-Keltner.md
- Indicator-Donchian.md
- Indicator-Psar.md
Volume — price moves weighted or confirmed by traded volume.
See also
- Source code: https://github.com/kingchenc/wickra
- Releases: https://github.com/kingchenc/wickra/releases
- Issue tracker: https://github.com/kingchenc/wickra/issues