wickra-wasm 0.6.4 → 0.6.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -1,5 +1,5 @@
1
1
  <p align="center">
2
- <a href="https://wickra.org"><img src="https://raw.githubusercontent.com/wickra-lib/.github/main/profile/wickra-banner.webp?v=452" alt="Wickra — streaming-first technical indicators" width="100%"></a>
2
+ <a href="https://wickra.org"><img src="https://raw.githubusercontent.com/wickra-lib/.github/main/profile/wickra-banner.webp?v=467" alt="Wickra — streaming-first technical indicators" width="100%"></a>
3
3
  </p>
4
4
 
5
5
  [![CI](https://github.com/wickra-lib/wickra/actions/workflows/ci.yml/badge.svg)](https://github.com/wickra-lib/wickra/actions/workflows/ci.yml)
@@ -48,7 +48,7 @@ Full documentation lives at **[docs.wickra.org](https://docs.wickra.org)**:
48
48
  [Node](https://docs.wickra.org/Quickstart-Node),
49
49
  [WASM](https://docs.wickra.org/Quickstart-WASM).
50
50
  - **Indicators** — a per-indicator deep dive (formula, parameters, warmup) for
51
- every one of the 452 indicators; start at the
51
+ every one of the 467 indicators; start at the
52
52
  [indicators overview](https://docs.wickra.org/Indicators-Overview).
53
53
  - **Reference** — [warmup periods](https://docs.wickra.org/Warmup-Periods),
54
54
  [streaming vs batch](https://docs.wickra.org/Streaming-vs-Batch),
@@ -58,19 +58,44 @@ Full documentation lives at **[docs.wickra.org](https://docs.wickra.org)**:
58
58
  [TA-Lib migration](https://docs.wickra.org/TA-Lib-Migration),
59
59
  [FAQ](https://docs.wickra.org/FAQ).
60
60
 
61
- ## Why Wickra exists
62
-
63
- Wickra started as a personal itch. The existing TA libraries never quite fit the
64
- projects I was building, so I decided to build one from the ground up — partly to
65
- learn, partly because I genuinely enjoy taking something that already exists and
66
- trying to do it differently (and, ideally, better). It's open source because the
67
- useful version of that itch is the one other people can build on too.
68
-
69
- Plenty of TA libraries are fast. Each one forces a trade-off Wickra does not:
61
+ ## Why Wickra
62
+
63
+ Most TA libraries are fast, *or* multi-language, *or* broad. Wickra refuses to
64
+ pick. It's the streaming-first engine built for the workload the others treat as
65
+ an afterthought **live, tick-by-tick data** without giving up the breadth of
66
+ a full batch library, and without making you reimplement your indicators four
67
+ times to get there.
68
+
69
+ - **The biggest streaming-native catalogue, period.** 467 indicators across 24
70
+ families — candlesticks, harmonic & chart patterns, market profile, market
71
+ breadth, Renko/Kagi/Point&Figure bars, Ehlers DSP cycles, risk/performance
72
+ metrics — every single one updating in **O(1) per tick**. TA-Lib ships ~150 and
73
+ none of them stream.
74
+ - **One Rust core, four first-class targets.** Native **Python · Node.js ·
75
+ WebAssembly · Rust** — identical math, identical results, zero per-language
76
+ reimplementation and zero GIL bottleneck.
77
+ - **Correct by construction, not by hope.** Every `update` validates its input,
78
+ runs a real warmup, and returns an `Option` so a single bad tick can't silently
79
+ poison state. `batch == streaming` is **bit-exact, fuzzed and 100 %-line-covered
80
+ for all 467 indicators**.
81
+ - **Orders of magnitude faster where it counts.** In streaming Wickra is **9–58×**
82
+ faster than the only other incremental peer and **thousands of times** faster
83
+ than recompute-on-every-tick libraries. On batch it wins several rows outright
84
+ and trades the simple recurrences (SMA, EMA, MACD) for its guarantees — and
85
+ the losses are shown, not hidden.
86
+ - **Install in one line, anywhere.** `pip install wickra` / `npm install wickra` —
87
+ precompiled wheels and binaries, **no C toolchain, none of TA-Lib's setup pain**.
88
+ macOS · Linux · Windows.
89
+ - **Batteries included.** Indicator chaining, a streaming OHLCV CSV reader, and a
90
+ live Binance kline feed ship in the box.
91
+ - **Truly permissive.** **MIT OR Apache-2.0** — drop it straight into commercial
92
+ and closed-source work.
93
+
94
+ Every other library forces one of those compromises. Wickra doesn't:
70
95
 
71
96
  | Library | Install | Streaming | Languages | Indicators | Active |
72
97
  |------------------|-------------|-------------|-----------------------------|-----------:|--------|
73
- | **★&nbsp;Wickra**| **clean** | **yes, O(1)** | **Python · Node · WASM · Rust** | **423** | **yes** |
98
+ | **★&nbsp;Wickra**| **clean** | **yes, O(1)** | **Python · Node · WASM · Rust** | **467** | **yes** |
74
99
  | kand | clean | yes | Python · WASM · Rust | ~60 | yes |
75
100
  | ta-rs | clean | yes | Rust only | ~30 | stale |
76
101
  | yata | clean | partial | Rust only | ~35 | yes |
@@ -79,116 +104,31 @@ Plenty of TA libraries are fast. Each one forces a trade-off Wickra does not:
79
104
  | finta | clean | no | Python | ~80 | stale |
80
105
  | talipp | clean | yes | Python | ~40 | yes |
81
106
 
82
- Wickra's edge is **breadth with reach**: 452 indicators that all update in O(1)
83
- per tick and ship natively to Python, Node.js, WebAssembly and Rust from a
84
- single engine.
85
-
86
- **On speed — and why Wickra isn't the fastest.** It deliberately isn't. The
87
- leaner Rust crates (kand, ta-rs) win several of the micro-benchmarks below, and
88
- those losses are shown rather than hidden. The gap is a *choice*, not a ceiling:
89
- every `update` validates its input, runs a real warmup before it emits a value,
90
- and returns an `Option` so a single bad tick can't silently poison the state.
91
- ta-rs, by contrast, hands back a bare `f64` from the first tick with no
92
- validation. If Wickra threw all of that away — raw `f64` out, no checks, no
93
- warmup contract — it would match or beat the leanest crate on every row. It
94
- keeps the guarantees instead, and still wins RSI, Bollinger and ATR against kand.
95
- What no other library matches is the *combination*: catalogue size, native O(1)
96
- streaming, NaN-safety, and four first-class language targets at once.
107
+ Broad, multi-language, streaming-native **and** honest about its trade-offs at
108
+ the same time. That's the combination no one else ships.
109
+
110
+ ## Why Wickra exists
111
+
112
+ Wickra started as a personal itch. The existing TA libraries never quite fit the
113
+ projects I was building, so I decided to build one from the ground up — partly to
114
+ learn, partly because I genuinely enjoy taking something that already exists and
115
+ trying to do it differently (and, ideally, better). It's open source because the
116
+ useful version of that itch is the one other people can build on too.
97
117
 
98
118
  ## Benchmarks
99
119
 
100
- Three comparisons, split by layer and mode. Read them as **relative** speedups
101
- on identical inputabsolute µs depend on CPU, memory clock and OS scheduler,
102
- not a universal contract.
103
-
104
- - **Reproduced on:** Windows 11 Pro 26200, AMD Ryzen 9 9950X, 64 GB DDR5,
105
- Rust 1.92 (release: `lto = "fat"`, `codegen-units = 1`), Python 3.12.
106
- - **Reproduce yourself:**
107
- - Rust core vs Rust crates: `cargo bench -p wickra-bench`
108
- - Python vs Python libs: `pip install -e bindings/python[bench]` then
109
- `python -m benchmarks.compare_libraries` (auto-detects installed peers).
110
-
111
- ### 1. Rust core vs the other Rust TA crates
112
-
113
- Like-for-like, no language-binding overhead, over a 50 000-bar series (µs for
114
- the whole series, lower = faster). This is the honest engine comparison —
115
- Wickra wins some and loses some, and both are shown.
116
-
117
- **Streaming** (one value fed per `update`):
118
-
119
- | Indicator | **★&nbsp;Wickra** | kand | ta-rs | yata |
120
- |------------------|------------------:|-----:|------:|-----:|
121
- | SMA(20) | 50 | 38 | 47 | 38 |
122
- | EMA(20) | 154 | 69 | 56 | 69 |
123
- | RSI(14) | 164 | 216 | 74 | — |
124
- | MACD(12, 26, 9) | 275 | 143 | 66 | — |
125
- | Bollinger(20, 2) | **128 ★** | 248 | 168 | — |
126
- | ATR(14) | 152 | 166 | 61 | — |
127
-
128
- **Batch** (whole series at once). Only Wickra and kand expose a batch API;
129
- ta-rs and yata are streaming-only.
130
-
131
- | Indicator | **★&nbsp;Wickra** | kand |
132
- |------------------|------------------:|-----:|
133
- | SMA(20) | 82 | 42 |
134
- | EMA(20) | 159 | 74 |
135
- | RSI(14) | **253 ★** | 274 |
136
- | MACD(12, 26, 9) | 681 | 283 |
137
- | Bollinger(20, 2) | **445 ★** | 462 |
138
- | ATR(14) | 175 | 173 |
139
-
140
- ta-rs is the per-indicator speed champion on almost every row — it returns a
141
- bare `f64` with no warmup state and no input validation, trading away the
142
- `None`-warmup and NaN-safety semantics Wickra keeps. Against kand, Wickra wins
143
- streaming RSI, Bollinger and ATR (and batch RSI + Bollinger); Bollinger is the
144
- one row where Wickra is the outright fastest of all four. The leaner crates
145
- still win the pure recurrences (EMA, MACD) and SMA. yata exposes only SMA/EMA as
146
- raw-value methods, so its other rows are omitted rather than faked.
147
-
148
- ### 2. Python vs the Python TA ecosystem — batch
149
-
150
- Full pass over a 20 000-bar series, µs/op (lower = faster). **★** per row.
151
-
152
- | Indicator | **★&nbsp;Wickra** | finta | TA-Lib | tulipy |
153
- |------------------|------------------:|---------------------|--------|--------|
154
- | SMA(20) | **59.6 ★** | 354.2 (5.9× slower) | ⧗ | ⧗ |
155
- | EMA(20) | **88.4 ★** | 309.3 (3.5× slower) | ⧗ | ⧗ |
156
- | RSI(14) | **77.3 ★** | 1 283 (16.6× slower)| ⧗ | ⧗ |
157
- | MACD(12, 26, 9) | **116.4 ★** | 529.5 (4.6× slower) | ⧗ | ⧗ |
158
- | Bollinger(20, 2) | **146.0 ★** | 1 246 (8.5× slower) | ⧗ | ⧗ |
159
- | ATR(14) | **135.8 ★** | 3 812 (28× slower) | ⧗ | ⧗ |
160
-
161
- > ⧗ = published by the CI Linux job. TA-Lib and tulipy ship C extensions that
162
- > don't build cleanly on every desktop, so their canonical numbers come from the
163
- > `cross-library-bench` workflow rather than this local table. pandas-ta needs
164
- > Python ≥ 3.12 and isn't in the 3.11 CI matrix. The script auto-detects
165
- > whichever peers are installed in your environment.
166
-
167
- ### 3. Python — streaming (per-tick latency)
168
-
169
- Seed 5 000 bars, then feed ticks one at a time. talipp is the only Python peer
170
- with a true incremental API; batch-only libraries like TA-Lib must recompute the
171
- entire history on every tick — Wickra updates in O(1).
172
-
173
- | Indicator | **★&nbsp;Wickra (per tick)** | talipp (per tick) |
174
- |------------------|------------------------------:|-------------------------|
175
- | SMA(20) | **0.067 µs ★** | 0.63 µs (9.4× slower) |
176
- | EMA(20) | **0.051 µs ★** | 0.63 µs (12.2× slower) |
177
- | RSI(14) | **0.053 µs ★** | 1.00 µs (19.1× slower) |
178
- | MACD(12, 26, 9) | **0.071 µs ★** | 3.64 µs (51.5× slower) |
179
- | Bollinger(20, 2) | **0.085 µs ★** | 4.87 µs (57.2× slower) |
180
-
181
- Run the suite yourself:
120
+ Wickra updates every indicator in **O(1)** per tick. In **streaming** — the
121
+ workload it is built for it is **9–58× faster** than the only other incremental
122
+ peer and **thousands of times** faster than recompute-on-every-tick libraries.
123
+ **Batch** is competitive: it wins several rows outright and trades a few µs
124
+ elsewhere for `None`-warmup, NaN-safety and bit-exact `batch == streaming`.
182
125
 
183
- ```bash
184
- cargo bench -p wickra-bench # Rust core vs kand / ta-rs / yata
185
- pip install -e bindings/python[bench] # Python peers
186
- python -m benchmarks.compare_libraries
187
- ```
126
+ Full tables (Rust + Python, streaming + batch) and how to reproduce them live in
127
+ **[BENCHMARKS.md](BENCHMARKS.md)**.
188
128
 
189
129
  ## Indicators
190
130
 
191
- 452 streaming-first indicators across twenty-four families. Every one passes the
131
+ 467 streaming-first indicators across twenty-four families. Every one passes the
192
132
  `batch == streaming` equivalence test, reference-value tests, and reset
193
133
  semantics tests. Each has a per-indicator deep dive (formula, parameters,
194
134
  warmup) at [docs.wickra.org](https://docs.wickra.org/Indicators-Overview).
@@ -204,8 +144,8 @@ warmup) at [docs.wickra.org](https://docs.wickra.org/Indicators-Overview).
204
144
  | Trailing Stops | Parabolic SAR, Parabolic SAR Extended (SAREXT), SuperTrend, Chandelier Exit, Chande Kroll Stop, ATR Trailing Stop, HiLo Activator, Volty Stop, Yo-Yo Exit, Donchian Channel Stop, Percentage Trailing Stop, Step Trailing Stop, Renko Trailing Stop, Kase DevStop, Elder SafeZone, ATR Ratchet, NRTR, Time-Based Stop, Modified MA Stop |
205
145
  | Volume | OBV, VWAP (cumulative + rolling), ADL, Volume-Price Trend, Chaikin Money Flow, Chaikin Oscillator, Force Index, Ease of Movement, Klinger Volume Oscillator, Volume Oscillator, NVI, PVI, Williams A/D, Anchored VWAP, Demand Index, TSV, VZO, Market Facilitation Index, Volume RSI, Williams Accumulation/Distribution, Twiggs Money Flow, Trade Volume Index, Intraday Intensity Index, Better Volume, Volume-Weighted MACD |
206
146
  | Price Statistics | Typical Price, Median Price, Weighted Close, Linear Regression, Linear Regression Slope, Z-Score, Linear Regression Angle, Variance, Coefficient of Variation, Skewness, Kurtosis, Standard Error, Detrended StdDev, R², Median Absolute Deviation, Autocorrelation, Hurst Exponent, Pearson Correlation, Beta, Pairwise Beta, Pair Spread Z-Score, Lead-Lag Cross-Correlation, Cointegration, Relative Strength A-vs-B, Spearman Correlation, Mid Price, Mid Point, Average Price, Linear Regression Intercept, Time Series Forecast, Rolling Correlation, Rolling Covariance, OU Half-Life, Spread Hurst, Distance SSD, Beta-Neutral Spread, Variance Ratio, Granger Causality, Kalman Hedge Ratio, Spread Bollinger Bands, Spread AR(1) Coefficient, Jarque-Bera, Rolling Min-Max Scaler, Shannon Entropy, Sample Entropy, Kendall Tau |
207
- | Ehlers / Cycle (DSP) | MAMA, FAMA, Fisher Transform, Inverse Fisher Transform, SuperSmoother, Hilbert Dominant Cycle, Hilbert Phasor, Hilbert DC Phase, Hilbert Trend Mode, Sine Wave, Decycler, Decycler Oscillator, Roofing Filter, Center of Gravity, Cybernetic Cycle, Adaptive Cycle, Empirical Mode Decomposition, Ehlers Stochastic, Instantaneous Trendline |
208
- | Pivots & S/R | Classic Pivots, Fibonacci Pivots, Camarilla, Woodie Pivots, DeMark Pivots, Williams Fractals, ZigZag |
147
+ | Ehlers / Cycle (DSP) | MAMA, FAMA, Fisher Transform, Inverse Fisher Transform, SuperSmoother, Hilbert Dominant Cycle, Hilbert Phasor, Hilbert DC Phase, Hilbert Trend Mode, Sine Wave, Decycler, Decycler Oscillator, Roofing Filter, Center of Gravity, Cybernetic Cycle, Adaptive Cycle, Empirical Mode Decomposition, Ehlers Stochastic, Instantaneous Trendline, Highpass Filter, Reflex, Trendflex, Correlation Trend Indicator, Adaptive RSI, Universal Oscillator, Adaptive CCI, Bandpass Filter, Even Better Sinewave, Autocorrelation Periodogram |
148
+ | Pivots & S/R | Classic Pivots, Fibonacci Pivots, Camarilla, Woodie Pivots, DeMark Pivots, Williams Fractals, ZigZag, Central Pivot Range, Murrey Math Lines, Andrews Pitchfork, Volume-Weighted Support/Resistance, Pivot Reversal |
209
149
  | DeMark | TD Setup, TD Sequential, TD DeMarker, TD REI, TD Pressure, TD Combo, TD Countdown, TD Lines, TD Range Projection, TD Differential, TD Open, TD Risk Level |
210
150
  | Ichimoku & Charts | Ichimoku Kinko Hyo (Tenkan, Kijun, Senkou A/B, Chikou), Heikin-Ashi |
211
151
  | Alt-Chart Bars | Renko (box-size bricks), Kagi (reversal-amount lines), Point & Figure (X/O columns) |
@@ -297,7 +237,7 @@ A Python live-trading example using the public `websockets` package lives at
297
237
  ```
298
238
  wickra/
299
239
  ├── crates/
300
- │ ├── wickra-core/ core engine + all 452 indicators
240
+ │ ├── wickra-core/ core engine + all 467 indicators
301
241
  │ ├── wickra/ top-level facade crate (publishes on crates.io) + benches/
302
242
  │ ├── wickra-data/ CSV reader, tick aggregator, live exchange feeds
303
243
  │ └── wickra-bench/ internal cross-library benchmark harness (not published)
package/package.json CHANGED
@@ -5,7 +5,7 @@
5
5
  "kingchenc <support@wickra.org>"
6
6
  ],
7
7
  "description": "WASM bindings for the Wickra streaming-first technical indicators library.",
8
- "version": "0.6.4",
8
+ "version": "0.6.6",
9
9
  "license": "MIT OR Apache-2.0",
10
10
  "repository": {
11
11
  "type": "git",
package/wickra_wasm.d.ts CHANGED
@@ -1,6 +1,26 @@
1
1
  /* tslint:disable */
2
2
  /* eslint-disable */
3
3
 
4
+ export class ADAPTIVECCI {
5
+ free(): void;
6
+ [Symbol.dispose](): void;
7
+ batch(high: Float64Array, low: Float64Array, close: Float64Array): Float64Array;
8
+ constructor(period: number);
9
+ reset(): void;
10
+ update(high: number, low: number, close: number): number | undefined;
11
+ }
12
+
13
+ export class ADAPTIVERSI {
14
+ free(): void;
15
+ [Symbol.dispose](): void;
16
+ batch(prices: Float64Array): Float64Array;
17
+ isReady(): boolean;
18
+ constructor(period: number);
19
+ reset(): void;
20
+ update(value: number): number | undefined;
21
+ warmupPeriod(): number;
22
+ }
23
+
4
24
  export class ADL {
5
25
  free(): void;
6
26
  [Symbol.dispose](): void;
@@ -69,6 +89,17 @@ export class ATR {
69
89
  update(high: number, low: number, close: number): number | undefined;
70
90
  }
71
91
 
92
+ export class AUTOCORRPGRAM {
93
+ free(): void;
94
+ [Symbol.dispose](): void;
95
+ batch(prices: Float64Array): Float64Array;
96
+ isReady(): boolean;
97
+ constructor(min_period: number, max_period: number);
98
+ reset(): void;
99
+ update(value: number): number | undefined;
100
+ warmupPeriod(): number;
101
+ }
102
+
72
103
  export class AVGPRICE {
73
104
  free(): void;
74
105
  [Symbol.dispose](): void;
@@ -256,6 +287,17 @@ export class AnchoredVWAP {
256
287
  update(high: number, low: number, close: number, volume: number): number | undefined;
257
288
  }
258
289
 
290
+ export class AndrewsPitchfork {
291
+ free(): void;
292
+ [Symbol.dispose](): void;
293
+ batch(high: Float64Array, low: Float64Array): Float64Array;
294
+ isReady(): boolean;
295
+ constructor(strength: number);
296
+ reset(): void;
297
+ update(high: number, low: number): any;
298
+ warmupPeriod(): number;
299
+ }
300
+
259
301
  export class Aroon {
260
302
  free(): void;
261
303
  [Symbol.dispose](): void;
@@ -383,6 +425,17 @@ export class AwesomeOscillatorHistogram {
383
425
  warmupPeriod(): number;
384
426
  }
385
427
 
428
+ export class BANDPASS {
429
+ free(): void;
430
+ [Symbol.dispose](): void;
431
+ batch(prices: Float64Array): Float64Array;
432
+ isReady(): boolean;
433
+ constructor(period: number, bandwidth: number);
434
+ reset(): void;
435
+ update(value: number): number | undefined;
436
+ warmupPeriod(): number;
437
+ }
438
+
386
439
  export class BalanceOfPower {
387
440
  free(): void;
388
441
  [Symbol.dispose](): void;
@@ -584,6 +637,17 @@ export class CMO {
584
637
  warmupPeriod(): number;
585
638
  }
586
639
 
640
+ export class CTI {
641
+ free(): void;
642
+ [Symbol.dispose](): void;
643
+ batch(prices: Float64Array): Float64Array;
644
+ isReady(): boolean;
645
+ constructor(period: number);
646
+ reset(): void;
647
+ update(value: number): number | undefined;
648
+ warmupPeriod(): number;
649
+ }
650
+
587
651
  export class CalendarSpread {
588
652
  free(): void;
589
653
  [Symbol.dispose](): void;
@@ -627,6 +691,17 @@ export class CenterOfGravity {
627
691
  warmupPeriod(): number;
628
692
  }
629
693
 
694
+ export class CentralPivotRange {
695
+ free(): void;
696
+ [Symbol.dispose](): void;
697
+ batch(high: Float64Array, low: Float64Array, close: Float64Array): Float64Array;
698
+ isReady(): boolean;
699
+ constructor();
700
+ reset(): void;
701
+ update(high: number, low: number, close: number): any;
702
+ warmupPeriod(): number;
703
+ }
704
+
630
705
  export class ChaikinMoneyFlow {
631
706
  free(): void;
632
707
  [Symbol.dispose](): void;
@@ -1157,6 +1232,17 @@ export class EMA {
1157
1232
  warmupPeriod(): number;
1158
1233
  }
1159
1234
 
1235
+ export class EVENBETTERSINE {
1236
+ free(): void;
1237
+ [Symbol.dispose](): void;
1238
+ batch(prices: Float64Array): Float64Array;
1239
+ isReady(): boolean;
1240
+ constructor(hp_period: number, ssf_length: number);
1241
+ reset(): void;
1242
+ update(value: number): number | undefined;
1243
+ warmupPeriod(): number;
1244
+ }
1245
+
1160
1246
  export class EVWMA {
1161
1247
  free(): void;
1162
1248
  [Symbol.dispose](): void;
@@ -1666,6 +1752,17 @@ export class GravestoneDoji {
1666
1752
  warmupPeriod(): number;
1667
1753
  }
1668
1754
 
1755
+ export class HIGHPASS {
1756
+ free(): void;
1757
+ [Symbol.dispose](): void;
1758
+ batch(prices: Float64Array): Float64Array;
1759
+ isReady(): boolean;
1760
+ constructor(period: number);
1761
+ reset(): void;
1762
+ update(value: number): number | undefined;
1763
+ warmupPeriod(): number;
1764
+ }
1765
+
1669
1766
  export class HMA {
1670
1767
  free(): void;
1671
1768
  [Symbol.dispose](): void;
@@ -2735,6 +2832,17 @@ export class MorningEveningStar {
2735
2832
  warmupPeriod(): number;
2736
2833
  }
2737
2834
 
2835
+ export class MurreyMathLines {
2836
+ free(): void;
2837
+ [Symbol.dispose](): void;
2838
+ batch(high: Float64Array, low: Float64Array): Float64Array;
2839
+ isReady(): boolean;
2840
+ constructor(period: number);
2841
+ reset(): void;
2842
+ update(high: number, low: number): any;
2843
+ warmupPeriod(): number;
2844
+ }
2845
+
2738
2846
  export class NATR {
2739
2847
  free(): void;
2740
2848
  [Symbol.dispose](): void;
@@ -3134,6 +3242,17 @@ export class PiercingDarkCloud {
3134
3242
  warmupPeriod(): number;
3135
3243
  }
3136
3244
 
3245
+ export class PivotReversal {
3246
+ free(): void;
3247
+ [Symbol.dispose](): void;
3248
+ batch(high: Float64Array, low: Float64Array, close: Float64Array): Float64Array;
3249
+ isReady(): boolean;
3250
+ constructor(left: number, right: number);
3251
+ reset(): void;
3252
+ update(high: number, low: number, close: number): number | undefined;
3253
+ warmupPeriod(): number;
3254
+ }
3255
+
3137
3256
  export class PointAndFigureBars {
3138
3257
  free(): void;
3139
3258
  [Symbol.dispose](): void;
@@ -3245,6 +3364,17 @@ export class QuotedSpread {
3245
3364
  warmupPeriod(): number;
3246
3365
  }
3247
3366
 
3367
+ export class REFLEX {
3368
+ free(): void;
3369
+ [Symbol.dispose](): void;
3370
+ batch(prices: Float64Array): Float64Array;
3371
+ isReady(): boolean;
3372
+ constructor(period: number);
3373
+ reset(): void;
3374
+ update(value: number): number | undefined;
3375
+ warmupPeriod(): number;
3376
+ }
3377
+
3248
3378
  export class RMI {
3249
3379
  free(): void;
3250
3380
  [Symbol.dispose](): void;
@@ -4231,6 +4361,17 @@ export class TII {
4231
4361
  warmupPeriod(): number;
4232
4362
  }
4233
4363
 
4364
+ export class TRENDFLEX {
4365
+ free(): void;
4366
+ [Symbol.dispose](): void;
4367
+ batch(prices: Float64Array): Float64Array;
4368
+ isReady(): boolean;
4369
+ constructor(period: number);
4370
+ reset(): void;
4371
+ update(value: number): number | undefined;
4372
+ warmupPeriod(): number;
4373
+ }
4374
+
4234
4375
  export class TREND_STRENGTH_INDEX {
4235
4376
  free(): void;
4236
4377
  [Symbol.dispose](): void;
@@ -4628,6 +4769,17 @@ export class TypicalPrice {
4628
4769
  update(high: number, low: number, close: number): number | undefined;
4629
4770
  }
4630
4771
 
4772
+ export class UNIVERSALOSC {
4773
+ free(): void;
4774
+ [Symbol.dispose](): void;
4775
+ batch(prices: Float64Array): Float64Array;
4776
+ isReady(): boolean;
4777
+ constructor(period: number);
4778
+ reset(): void;
4779
+ update(value: number): number | undefined;
4780
+ warmupPeriod(): number;
4781
+ }
4782
+
4631
4783
  export class UlcerIndex {
4632
4784
  free(): void;
4633
4785
  [Symbol.dispose](): void;
@@ -4905,6 +5057,17 @@ export class VolumeWeightedMacd {
4905
5057
  warmupPeriod(): number;
4906
5058
  }
4907
5059
 
5060
+ export class VolumeWeightedSr {
5061
+ free(): void;
5062
+ [Symbol.dispose](): void;
5063
+ batch(high: Float64Array, low: Float64Array, volume: Float64Array): Float64Array;
5064
+ isReady(): boolean;
5065
+ constructor(period: number);
5066
+ reset(): void;
5067
+ update(high: number, low: number, volume: number): any;
5068
+ warmupPeriod(): number;
5069
+ }
5070
+
4908
5071
  export class Vortex {
4909
5072
  free(): void;
4910
5073
  [Symbol.dispose](): void;
package/wickra_wasm.js CHANGED
@@ -5,5 +5,5 @@ import { __wbg_set_wasm } from "./wickra_wasm_bg.js";
5
5
  __wbg_set_wasm(wasm);
6
6
 
7
7
  export {
8
- ADL, ADX, ADXR, ALMA, APO, ATR, AVGPRICE, AbandonedBaby, Abcd, AbsoluteBreadthIndex, AccelerationBands, AcceleratorOscillator, AdVolumeLine, AdaptiveCycle, AdaptiveLaguerre, AdvanceBlock, AdvanceDecline, AdvanceDeclineRatio, Alligator, Alpha, AmihudIlliquidity, AnchoredRSI, AnchoredVWAP, Aroon, AroonOscillator, AtrBands, AtrRatchet, AtrTrailingStop, AutoFib, Autocorrelation, AverageDailyRange, AverageDrawdown, AwesomeOscillator, AwesomeOscillatorHistogram, BalanceOfPower, Bat, BeltHold, Beta, BetaNeutralSpread, BetterVolume, BipowerVariation, BodySizePct, BollingerBands, BollingerBandwidth, BomarBands, BreadthThrust, Breakaway, BullishPercentIndex, Butterfly, CCI, CFO, CMO, CalendarSpread, CalmarRatio, Camarilla, CenterOfGravity, ChaikinMoneyFlow, ChaikinOscillator, ChaikinVolatility, ChandeKrollStop, ChandelierExit, ChoppinessIndex, ClassicPivots, CloseVsOpen, ClosingMarubozu, CoefficientOfVariation, Cointegration, ConcealingBabySwallow, ConditionalValueAtRisk, ConnorsRSI, Coppock, Counterattack, Crab, CumulativeVolumeDelta, CumulativeVolumeIndex, CupAndHandle, CyberneticCycle, Cypher, DEMA, DPO, DX, DayOfWeekProfile, Decycler, DecyclerOscillator, DemandIndex, DemarkPivots, DepthSlope, DerivativeOscillator, DetrendedStdDev, DisparityIndex, DistanceSsd, Doji, DojiStar, Donchian, DonchianStop, DoubleBollinger, DoubleTopBottom, DownsideGapThreeMethods, DragonflyDoji, DrawdownDuration, DynamicMomentumIndex, EHMA, EMA, EVWMA, EaseOfMovement, EffectiveSpread, EhlersStochastic, ElderImpulse, ElderRay, ElderSafeZone, EmpiricalModeDecomposition, Engulfing, EveningDojiStar, EwmaVolatility, Expectancy, FAMA, FRAMA, FallingThreeMethods, FibArcs, FibChannel, FibConfluence, FibExtension, FibFan, FibProjection, FibRetracement, FibTimeZones, FibonacciPivots, FisherRSI, FisherTransform, FlagPennant, Footprint, ForceIndex, FractalChaosBands, FundingBasis, FundingRate, FundingRateMean, FundingRateZScore, GD, GMA, GainLossRatio, GapSideBySideWhite, Garch11, GarmanKlassVolatility, Gartley, GatorOscillator, GoldenPocket, GrangerCausality, GravestoneDoji, HMA, HT_DCPHASE, HT_PHASOR, HT_TRENDMODE, Hammer, HangingMan, Harami, HeadAndShoulders, HeikinAshi, HiLoActivator, HighLowIndex, HighLowRange, HighWave, Hikkake, HikkakeModified, HilbertDominantCycle, HistoricalVolatility, HoltWinters, HomingPigeon, HurstChannel, HurstExponent, IMI, Ichimoku, IdenticalThreeCrows, InNeck, Inertia, InformationRatio, InitialBalance, InstantaneousTrendline, IntradayIntensity, IntradayVolatilityProfile, InverseFisherTransform, InvertedHammer, JARQUEBERA, JMA, JumpIndicator, KAMA, KST, KVO, KagiBars, KalmanHedgeRatio, KaseDevStop, KasePermissionStochastic, KellyCriterion, Keltner, KendallTau, Kicking, KickingByLength, Kurtosis, KylesLambda, LINEARREG_INTERCEPT, LadderBottom, LaguerreRSI, LeadLagCrossCorrelation, LinRegAngle, LinRegChannel, LinRegSlope, LinearRegression, LiquidationFeatures, LogReturn, LongLeggedDoji, LongLine, LongShortRatio, MACD, MACDEXT, MACDFIX, MAMA, MFI, MIDPOINT, MIDPRICE, MINUS_DI, MINUS_DM, MOM, MaEnvelope, MacdHistogram, MarketFacilitationIndex, Marubozu, MassIndex, MatHold, MatchingLow, MaxDrawdown, McClellanOscillator, McClellanSummationIndex, McGinleyDynamic, MedianAbsoluteDeviation, MedianChannel, MedianMA, MedianPrice, Microprice, ModifiedMaStop, MorningDojiStar, MorningEveningStar, NATR, NVI, NewHighsNewLows, Nrtr, OBV, OIPriceDivergence, OIWeighted, OmegaRatio, OnNeck, OpenInterestDelta, OpeningMarubozu, OpeningRange, OrderBookImbalanceFull, OrderBookImbalanceTop1, OrderBookImbalanceTopN, OrderFlowImbalance, OuHalfLife, OvernightGap, OvernightIntradayReturn, PGO, PLUS_DI, PLUS_DM, PMO, POLARIZED_FRACTAL_EFFICIENCY, PPO, PSAR, PVI, PainIndex, PairSpreadZScore, PairwiseBeta, ParkinsonVolatility, PearsonCorrelation, PercentAboveMa, PercentB, PercentageTrailingStop, PiercingDarkCloud, PointAndFigureBars, PpoHistogram, ProfitFactor, ProjectionBands, ProjectionOscillator, QQE, Qstick, QuartileBands, QuotedSpread, RMI, ROC, ROCP, ROCR, ROCR100, ROLLINGMINMAX, RSI, RSX, RSquared, RVI, RVIVolatility, RWI, RealizedSpread, RealizedVolatility, RecoveryFactor, RectangleRange, RegimeLabel, RelativeStrengthAB, RenkoBars, RenkoTrailingStop, RickshawMan, RisingThreeMethods, RogersSatchellVolatility, RollMeasure, RollingCorrelation, RollingCovariance, RollingIqr, RollingPercentileRank, RollingQuantile, RollingVWAP, RoofingFilter, SAMPLEENT, SAREXT, SHANNONENT, SMA, SMI, SMMA, STC, SWMA, SeasonalZScore, SeparatingLines, SessionHighLow, SessionRange, SessionVwap, Shark, SharpeRatio, ShootingStar, ShortLine, SignedVolume, SineWave, Skewness, SortinoRatio, SpearmanCorrelation, SpinningTop, SpreadAr1Coefficient, SpreadBollingerBands, SpreadHurst, StalledPattern, StandardError, StandardErrorBands, StarcBands, StdDev, StepTrailingStop, StickSandwich, StochRSI, Stochastic, StochasticCCI, SuperSmoother, SuperTrend, T3, TDCombo, TDCountdown, TDDeMarker, TDDifferential, TDLines, TDOpen, TDPressure, TDREI, TDRangeProjection, TDRiskLevel, TDSequential, TDSetup, TEMA, TII, TREND_STRENGTH_INDEX, TRIMA, TRIX, TSF, TSI, TSV, TTM_TREND, TakerBuySellRatio, Takuri, TasukiGap, TermStructureBasis, ThreeDrives, ThreeInside, ThreeLineStrike, ThreeOutside, ThreeSoldiersOrCrows, ThreeStarsInSouth, Thrusting, TickIndex, TimeBasedStop, TimeOfDayReturnProfile, TpoProfile, TradeImbalance, TradeVolumeIndex, TrendLabel, TreynorRatio, Triangle, Trin, TripleTopBottom, TrueRange, TsfOscillator, TtmSqueeze, TurnOfMonth, Tweezer, TwiggsMoneyFlow, TwoCrows, TypicalPrice, UlcerIndex, UltimateOscillator, UniqueThreeRiver, UpDownVolumeRatio, UpsideGapThreeMethods, UpsideGapTwoCrows, VIDYA, VWAP, VWMA, VZO, ValueArea, ValueAtRisk, Variance, VarianceRatio, VerticalHorizontalFilter, VolatilityCone, VolatilityOfVolatility, VolatilityRatio, VoltyStop, VolumeByTimeProfile, VolumeOscillator, VolumePriceTrend, VolumeProfile, VolumeRsi, VolumeWeightedMacd, Vortex, Vpin, VwapStdDevBands, WAVE_PM, WMA, Wad, WaveTrend, Wedge, WeightedClose, WickRatio, WilliamsAD, WilliamsFractals, WilliamsR, WinRate, WoodiePivots, YangZhangVolatility, YoyoExit, ZLEMA, ZScore, ZeroLagMACD, ZigZag, installPanicHook, version
8
+ ADAPTIVECCI, ADAPTIVERSI, ADL, ADX, ADXR, ALMA, APO, ATR, AUTOCORRPGRAM, AVGPRICE, AbandonedBaby, Abcd, AbsoluteBreadthIndex, AccelerationBands, AcceleratorOscillator, AdVolumeLine, AdaptiveCycle, AdaptiveLaguerre, AdvanceBlock, AdvanceDecline, AdvanceDeclineRatio, Alligator, Alpha, AmihudIlliquidity, AnchoredRSI, AnchoredVWAP, AndrewsPitchfork, Aroon, AroonOscillator, AtrBands, AtrRatchet, AtrTrailingStop, AutoFib, Autocorrelation, AverageDailyRange, AverageDrawdown, AwesomeOscillator, AwesomeOscillatorHistogram, BANDPASS, BalanceOfPower, Bat, BeltHold, Beta, BetaNeutralSpread, BetterVolume, BipowerVariation, BodySizePct, BollingerBands, BollingerBandwidth, BomarBands, BreadthThrust, Breakaway, BullishPercentIndex, Butterfly, CCI, CFO, CMO, CTI, CalendarSpread, CalmarRatio, Camarilla, CenterOfGravity, CentralPivotRange, ChaikinMoneyFlow, ChaikinOscillator, ChaikinVolatility, ChandeKrollStop, ChandelierExit, ChoppinessIndex, ClassicPivots, CloseVsOpen, ClosingMarubozu, CoefficientOfVariation, Cointegration, ConcealingBabySwallow, ConditionalValueAtRisk, ConnorsRSI, Coppock, Counterattack, Crab, CumulativeVolumeDelta, CumulativeVolumeIndex, CupAndHandle, CyberneticCycle, Cypher, DEMA, DPO, DX, DayOfWeekProfile, Decycler, DecyclerOscillator, DemandIndex, DemarkPivots, DepthSlope, DerivativeOscillator, DetrendedStdDev, DisparityIndex, DistanceSsd, Doji, DojiStar, Donchian, DonchianStop, DoubleBollinger, DoubleTopBottom, DownsideGapThreeMethods, DragonflyDoji, DrawdownDuration, DynamicMomentumIndex, EHMA, EMA, EVENBETTERSINE, EVWMA, EaseOfMovement, EffectiveSpread, EhlersStochastic, ElderImpulse, ElderRay, ElderSafeZone, EmpiricalModeDecomposition, Engulfing, EveningDojiStar, EwmaVolatility, Expectancy, FAMA, FRAMA, FallingThreeMethods, FibArcs, FibChannel, FibConfluence, FibExtension, FibFan, FibProjection, FibRetracement, FibTimeZones, FibonacciPivots, FisherRSI, FisherTransform, FlagPennant, Footprint, ForceIndex, FractalChaosBands, FundingBasis, FundingRate, FundingRateMean, FundingRateZScore, GD, GMA, GainLossRatio, GapSideBySideWhite, Garch11, GarmanKlassVolatility, Gartley, GatorOscillator, GoldenPocket, GrangerCausality, GravestoneDoji, HIGHPASS, HMA, HT_DCPHASE, HT_PHASOR, HT_TRENDMODE, Hammer, HangingMan, Harami, HeadAndShoulders, HeikinAshi, HiLoActivator, HighLowIndex, HighLowRange, HighWave, Hikkake, HikkakeModified, HilbertDominantCycle, HistoricalVolatility, HoltWinters, HomingPigeon, HurstChannel, HurstExponent, IMI, Ichimoku, IdenticalThreeCrows, InNeck, Inertia, InformationRatio, InitialBalance, InstantaneousTrendline, IntradayIntensity, IntradayVolatilityProfile, InverseFisherTransform, InvertedHammer, JARQUEBERA, JMA, JumpIndicator, KAMA, KST, KVO, KagiBars, KalmanHedgeRatio, KaseDevStop, KasePermissionStochastic, KellyCriterion, Keltner, KendallTau, Kicking, KickingByLength, Kurtosis, KylesLambda, LINEARREG_INTERCEPT, LadderBottom, LaguerreRSI, LeadLagCrossCorrelation, LinRegAngle, LinRegChannel, LinRegSlope, LinearRegression, LiquidationFeatures, LogReturn, LongLeggedDoji, LongLine, LongShortRatio, MACD, MACDEXT, MACDFIX, MAMA, MFI, MIDPOINT, MIDPRICE, MINUS_DI, MINUS_DM, MOM, MaEnvelope, MacdHistogram, MarketFacilitationIndex, Marubozu, MassIndex, MatHold, MatchingLow, MaxDrawdown, McClellanOscillator, McClellanSummationIndex, McGinleyDynamic, MedianAbsoluteDeviation, MedianChannel, MedianMA, MedianPrice, Microprice, ModifiedMaStop, MorningDojiStar, MorningEveningStar, MurreyMathLines, NATR, NVI, NewHighsNewLows, Nrtr, OBV, OIPriceDivergence, OIWeighted, OmegaRatio, OnNeck, OpenInterestDelta, OpeningMarubozu, OpeningRange, OrderBookImbalanceFull, OrderBookImbalanceTop1, OrderBookImbalanceTopN, OrderFlowImbalance, OuHalfLife, OvernightGap, OvernightIntradayReturn, PGO, PLUS_DI, PLUS_DM, PMO, POLARIZED_FRACTAL_EFFICIENCY, PPO, PSAR, PVI, PainIndex, PairSpreadZScore, PairwiseBeta, ParkinsonVolatility, PearsonCorrelation, PercentAboveMa, PercentB, PercentageTrailingStop, PiercingDarkCloud, PivotReversal, PointAndFigureBars, PpoHistogram, ProfitFactor, ProjectionBands, ProjectionOscillator, QQE, Qstick, QuartileBands, QuotedSpread, REFLEX, RMI, ROC, ROCP, ROCR, ROCR100, ROLLINGMINMAX, RSI, RSX, RSquared, RVI, RVIVolatility, RWI, RealizedSpread, RealizedVolatility, RecoveryFactor, RectangleRange, RegimeLabel, RelativeStrengthAB, RenkoBars, RenkoTrailingStop, RickshawMan, RisingThreeMethods, RogersSatchellVolatility, RollMeasure, RollingCorrelation, RollingCovariance, RollingIqr, RollingPercentileRank, RollingQuantile, RollingVWAP, RoofingFilter, SAMPLEENT, SAREXT, SHANNONENT, SMA, SMI, SMMA, STC, SWMA, SeasonalZScore, SeparatingLines, SessionHighLow, SessionRange, SessionVwap, Shark, SharpeRatio, ShootingStar, ShortLine, SignedVolume, SineWave, Skewness, SortinoRatio, SpearmanCorrelation, SpinningTop, SpreadAr1Coefficient, SpreadBollingerBands, SpreadHurst, StalledPattern, StandardError, StandardErrorBands, StarcBands, StdDev, StepTrailingStop, StickSandwich, StochRSI, Stochastic, StochasticCCI, SuperSmoother, SuperTrend, T3, TDCombo, TDCountdown, TDDeMarker, TDDifferential, TDLines, TDOpen, TDPressure, TDREI, TDRangeProjection, TDRiskLevel, TDSequential, TDSetup, TEMA, TII, TRENDFLEX, TREND_STRENGTH_INDEX, TRIMA, TRIX, TSF, TSI, TSV, TTM_TREND, TakerBuySellRatio, Takuri, TasukiGap, TermStructureBasis, ThreeDrives, ThreeInside, ThreeLineStrike, ThreeOutside, ThreeSoldiersOrCrows, ThreeStarsInSouth, Thrusting, TickIndex, TimeBasedStop, TimeOfDayReturnProfile, TpoProfile, TradeImbalance, TradeVolumeIndex, TrendLabel, TreynorRatio, Triangle, Trin, TripleTopBottom, TrueRange, TsfOscillator, TtmSqueeze, TurnOfMonth, Tweezer, TwiggsMoneyFlow, TwoCrows, TypicalPrice, UNIVERSALOSC, UlcerIndex, UltimateOscillator, UniqueThreeRiver, UpDownVolumeRatio, UpsideGapThreeMethods, UpsideGapTwoCrows, VIDYA, VWAP, VWMA, VZO, ValueArea, ValueAtRisk, Variance, VarianceRatio, VerticalHorizontalFilter, VolatilityCone, VolatilityOfVolatility, VolatilityRatio, VoltyStop, VolumeByTimeProfile, VolumeOscillator, VolumePriceTrend, VolumeProfile, VolumeRsi, VolumeWeightedMacd, VolumeWeightedSr, Vortex, Vpin, VwapStdDevBands, WAVE_PM, WMA, Wad, WaveTrend, Wedge, WeightedClose, WickRatio, WilliamsAD, WilliamsFractals, WilliamsR, WinRate, WoodiePivots, YangZhangVolatility, YoyoExit, ZLEMA, ZScore, ZeroLagMACD, ZigZag, installPanicHook, version
9
9
  } from "./wickra_wasm_bg.js";