Files
wickra/docs/wiki/Home.md
T
kingchenc 8b4a847d24 docs(wiki): add Cookbook, TA-Lib migration table and FAQ
Three content gaps in the wiki: there was no migration story for users
porting from TA-Lib, no strategy cookbook, and no FAQ. Add all three as
self-contained pages and link them from Home.md's "Wiki contents".

* docs/wiki/TA-Lib-Migration.md — full one-to-one mapping table from
  every common talib.X(...) call to the equivalent Wickra expression,
  plus a "what Wickra has that TA-Lib does not" / "what TA-Lib has that
  Wickra does not (yet)" delta.
* docs/wiki/Cookbook.md — seven concrete strategy recipes (RSI mean
  reversion, MACD histogram crossover, Bollinger breakout, ADX-gated
  trend, multi-timeframe confirmation, SuperTrend trailing stop,
  Chain<EMA, RSI>) with Rust or Python snippets.
* docs/wiki/FAQ.md — common questions on warmup, NaN handling, thread
  safety, installation, performance and comparing Wickra to TA-Lib /
  pandas-ta / talipp / finta.

Also extend the [Unreleased] CHANGELOG entry that records the
examples/<lang>/ restructure with the wiki additions; Home.md gains
three new bullets under "Wiki contents".
2026-05-23 00:23:00 +02:00

10 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 71 indicators across eight families — moving averages, momentum oscillators, trend & directional, price oscillators, volatility & bands, 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.

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: 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 current Windows install caveat (wickra-win32-x64-msvc@0.1.4 is held by the npm spam filter).
  • 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.md 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.

Momentum Oscillators — measure the rate of price change.

Trend & Directional — is there a trend, and which way?

Price Oscillators — difference-of-averages momentum around zero.

Volatility & Bands — dispersion measures and price envelopes.

Trailing Stops — ATR-driven stop-loss trackers.

Volume — price moves weighted or confirmed by traded volume.

Price Statistics — per-bar transforms and rolling regressions.

See also