* feat: add Doji-family candlestick patterns Five single-/two-bar Doji patterns, all `Input = Candle`, `Output = f64`: - Doji Star (CDLDOJISTAR) — a long body followed by a doji gapping away in the trend direction; bullish +1 (after a black bar), bearish -1 (after a white bar). - Dragonfly Doji (CDLDRAGONFLYDOJI) — a doji opening and closing at the high with a long lower shadow; bullish +1. - Gravestone Doji (CDLGRAVESTONEDOJI) — a doji opening and closing at the low with a long upper shadow; bearish -1. - Long-Legged Doji (CDLLONGLEGGEDDOJI) — a doji with long shadows on both sides; a non-directional indecision flag, +1 on detection. - Rickshaw Man (CDLRICKSHAWMAN) — a long-legged doji with the body centred in the range; a non-directional indecision flag, +1 on detection. Counter 254 -> 259 (mod-count == lib counted block; FAMILIES total 249 -> 254). * chore: sync indicator count to 259 --------- Co-authored-by: wickra-bot <wickra-bot@users.noreply.github.com>
Wickra — Python
Streaming-first technical indicators for Python. pip install wickra — no
system dependencies, no C build tooling.
Wickra is a multi-language technical-analysis library with a Rust core and bindings for Python, Node.js, and WebAssembly. Every indicator is an O(1) streaming state machine, so live trading bots and historical backtests share the exact same implementation. This package is the Python binding (PyO3); it exposes 200+ streaming-first indicators across sixteen families.
Install
pip install wickra
Pre-built wheels ship for Linux, macOS, and Windows — there is nothing to compile and no C library to track down.
Quick start
import numpy as np
import wickra as ta
# Batch: classic TA-Lib-style usage over a whole array.
prices = np.linspace(100, 200, 1000)
rsi = ta.RSI(14)
values = rsi.batch(prices) # numpy array, NaN during warmup
# Streaming: the same indicator, fed tick by tick in O(1).
rsi = ta.RSI(14)
for price in live_feed:
value = rsi.update(price) # no recomputation over history
if value is not None and value > 70:
print("overbought")
batch(prices) and feeding the same prices through update() produce
identical values — the equivalence is enforced by the test suite.
Documentation
The full indicator catalogue, guides, quickstarts, and API reference live in the main repository and documentation site:
- Repository & full indicator list: https://github.com/wickra-lib/wickra
- Docs (quickstarts, cookbook, TA-Lib migration): https://docs.wickra.org
- Runnable examples:
examples/python/
Wickra ships four bindings — Python, Node.js, WebAssembly, and Rust — that all
expose the same indicators from the shared, unsafe-forbidden Rust core.
Disclaimer
Wickra is an indicator toolkit, not a trading system. The values it computes are deterministic transforms of the input data — they are not financial advice and do not predict the market. Any use in a live trading context is at your own risk. The library is provided as is, without warranty of any kind.
License
Licensed under the PolyForm Noncommercial License 1.0.0. Personal projects, research, education, non-profits, and hobby trading bots are all fine; the one thing not allowed is commercial sale of the software or of services built around it. See LICENSE.