3ab2d6ec2d
## Summary Adds the **Seasonality & Session** family — the first family that reads the wall-clock fields of `Candle::timestamp`. A new private `calendar` module decomposes an epoch-millisecond instant (shifted by a per-indicator `utc_offset_minutes`) into civil fields via Howard Hinnant's branch-light `civil_from_days` algorithm. Session / day / month rollovers are detected automatically, so callers never have to invoke `reset()` at a boundary. Indicator counter **339 → 351**; family count **20 → 21**. ## Indicators | Shape | Indicators | |-------|-----------| | Scalar (`f64`) | `SessionVwap`, `AverageDailyRange`, `OvernightGap`, `TurnOfMonth`, `SeasonalZScore` | | Struct | `SessionHighLow`, `SessionRange` (Asia/EU/US), `OvernightIntradayReturn` | | Profile (`Vec<f64>`) | `TimeOfDayReturnProfile`, `DayOfWeekProfile`, `IntradayVolatilityProfile`, `VolumeByTimeProfile` | ## Bindings The input is the **full** candle (`open, high, low, close, volume, timestamp`), not the `high/low/close` slice the value-indicator helper assumes, so the Python / Node / WASM bindings are custom full-candle implementations: - **Python** — `update((o,h,l,c,v,ts))`; `batch(open, high, low, close, volume, timestamp)` → `PyArray1` (scalar) / `PyArray2` (struct & profile), warmup rows `NaN`. - **Node** — `update(open, high, low, close, volume, timestamp)`; `batch(...)` → flat `Vec<f64>`; struct outputs as `#[napi(object)]` values. - **WASM** — `update` only (multi-input precedent); profiles as `Float64Array`, structs as camelCase objects, `timestamp` as `BigInt`. ## Verification - `wickra-core`: full per-branch unit tests, **100%** coverage target; 2852 lib tests + 334 doctests green. - `cargo clippy --workspace --all-targets --all-features -- -D warnings`: clean. - Node: 428 tests (dedicated `seasonality.test.js` streaming-vs-batch). - Python: full suite + dedicated `test_seasonality.py` streaming-vs-batch. - Counter check: mod-count == counted lib block == 351.
32 lines
1.5 KiB
Markdown
32 lines
1.5 KiB
Markdown
# Documentation
|
|
|
|
Wickra's full documentation lives at **[docs.wickra.org](https://docs.wickra.org)**.
|
|
|
|
That includes:
|
|
|
|
- **Quickstarts** for [Rust](https://docs.wickra.org/Quickstart-Rust),
|
|
[Python](https://docs.wickra.org/Quickstart-Python),
|
|
[Node](https://docs.wickra.org/Quickstart-Node), and
|
|
[WASM](https://docs.wickra.org/Quickstart-WASM).
|
|
- A per-indicator deep dive for every one of the **351 indicators** across
|
|
the sixteen 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) — see the
|
|
[indicators overview](https://docs.wickra.org/Indicators-Overview).
|
|
- **Reference pages**: [warmup periods](https://docs.wickra.org/Warmup-Periods),
|
|
[streaming vs batch](https://docs.wickra.org/Streaming-vs-Batch),
|
|
[indicator chaining](https://docs.wickra.org/Indicator-Chaining), and the
|
|
[data layer](https://docs.wickra.org/Data-Layer).
|
|
- **Guides**: [Cookbook](https://docs.wickra.org/Cookbook),
|
|
[TA-Lib migration](https://docs.wickra.org/TA-Lib-Migration),
|
|
[FAQ](https://docs.wickra.org/FAQ).
|
|
|
|
## Editing the docs
|
|
|
|
The documentation site is a separate git repository at
|
|
`https://github.com/wickra-lib/wickra-docs`. Open a pull request there to
|
|
propose changes; the site is built with VitePress and deploys to
|
|
`docs.wickra.org`.
|