wickra-wasm 0.6.5 → 0.6.7

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=462" 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=474" 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 462 indicators; start at the
51
+ every one of the 474 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.** 474 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 474 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** | **474** | **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**: 462 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
- 462 streaming-first indicators across twenty-four families. Every one passes the
131
+ 474 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).
@@ -205,8 +145,8 @@ warmup) at [docs.wickra.org](https://docs.wickra.org/Indicators-Overview).
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
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 |
208
- | Pivots & S/R | Classic Pivots, Fibonacci Pivots, Camarilla, Woodie Pivots, DeMark Pivots, Williams Fractals, ZigZag |
209
- | 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 |
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 |
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, TD Camouflage, TD Clop, TD Clopwin, TD Propulsion, TD Trap, TD D-Wave, TD Moving Averages |
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) |
212
152
  | Candlestick Patterns | Doji, Hammer, Inverted Hammer, Hanging Man, Shooting Star, Engulfing, Harami, Morning/Evening Star, Three White Soldiers/Black Crows, Piercing Line/Dark Cloud Cover, Marubozu, Tweezer, Spinning Top, Three Inside Up/Down, Three Outside Up/Down, Two Crows, Upside Gap Two Crows, Identical Three Crows, Three Line Strike, Three Stars in the South, Abandoned Baby, Advance Block, Belt-hold, Breakaway, Counterattack, Doji Star, Dragonfly Doji, Gravestone Doji, Long-Legged Doji, Rickshaw Man, Evening Doji Star, Morning Doji Star, Gap Side-by-Side White, High-Wave, Hikkake, Modified Hikkake, Homing Pigeon, On-Neck, In-Neck, Thrusting, Separating Lines, Kicking, Kicking by Length, Ladder Bottom, Mat Hold, Matching Low, Long Line, Short Line, Rising Three Methods, Falling Three Methods, Upside Gap Three Methods, Downside Gap Three Methods, Stalled Pattern, Stick Sandwich, Takuri, Closing Marubozu, Opening Marubozu, Tasuki Gap, Unique Three River, Concealing Baby Swallow |
@@ -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 462 indicators
240
+ │ ├── wickra-core/ core engine + all 474 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.5",
8
+ "version": "0.6.7",
9
9
  "license": "MIT OR Apache-2.0",
10
10
  "repository": {
11
11
  "type": "git",
package/wickra_wasm.d.ts CHANGED
@@ -287,6 +287,17 @@ export class AnchoredVWAP {
287
287
  update(high: number, low: number, close: number, volume: number): number | undefined;
288
288
  }
289
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
+
290
301
  export class Aroon {
291
302
  free(): void;
292
303
  [Symbol.dispose](): void;
@@ -680,6 +691,17 @@ export class CenterOfGravity {
680
691
  warmupPeriod(): number;
681
692
  }
682
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
+
683
705
  export class ChaikinMoneyFlow {
684
706
  free(): void;
685
707
  [Symbol.dispose](): void;
@@ -2810,6 +2832,17 @@ export class MorningEveningStar {
2810
2832
  warmupPeriod(): number;
2811
2833
  }
2812
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
+
2813
2846
  export class NATR {
2814
2847
  free(): void;
2815
2848
  [Symbol.dispose](): void;
@@ -3209,6 +3242,17 @@ export class PiercingDarkCloud {
3209
3242
  warmupPeriod(): number;
3210
3243
  }
3211
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
+
3212
3256
  export class PointAndFigureBars {
3213
3257
  free(): void;
3214
3258
  [Symbol.dispose](): void;
@@ -4138,6 +4182,39 @@ export class T3 {
4138
4182
  warmupPeriod(): number;
4139
4183
  }
4140
4184
 
4185
+ export class TDCamouflage {
4186
+ free(): void;
4187
+ [Symbol.dispose](): void;
4188
+ batch(open: Float64Array, high: Float64Array, low: Float64Array, close: Float64Array): Float64Array;
4189
+ isReady(): boolean;
4190
+ constructor();
4191
+ reset(): void;
4192
+ update(open: number, high: number, low: number, close: number): number | undefined;
4193
+ warmupPeriod(): number;
4194
+ }
4195
+
4196
+ export class TDClop {
4197
+ free(): void;
4198
+ [Symbol.dispose](): void;
4199
+ batch(open: Float64Array, high: Float64Array, low: Float64Array, close: Float64Array): Float64Array;
4200
+ isReady(): boolean;
4201
+ constructor();
4202
+ reset(): void;
4203
+ update(open: number, high: number, low: number, close: number): number | undefined;
4204
+ warmupPeriod(): number;
4205
+ }
4206
+
4207
+ export class TDClopwin {
4208
+ free(): void;
4209
+ [Symbol.dispose](): void;
4210
+ batch(open: Float64Array, high: Float64Array, low: Float64Array, close: Float64Array): Float64Array;
4211
+ isReady(): boolean;
4212
+ constructor();
4213
+ reset(): void;
4214
+ update(open: number, high: number, low: number, close: number): number | undefined;
4215
+ warmupPeriod(): number;
4216
+ }
4217
+
4141
4218
  export class TDCombo {
4142
4219
  free(): void;
4143
4220
  [Symbol.dispose](): void;
@@ -4160,6 +4237,17 @@ export class TDCountdown {
4160
4237
  warmupPeriod(): number;
4161
4238
  }
4162
4239
 
4240
+ export class TDDWave {
4241
+ free(): void;
4242
+ [Symbol.dispose](): void;
4243
+ batch(high: Float64Array, low: Float64Array, close: Float64Array): Float64Array;
4244
+ isReady(): boolean;
4245
+ constructor(strength: number);
4246
+ reset(): void;
4247
+ update(high: number, low: number, close: number): number | undefined;
4248
+ warmupPeriod(): number;
4249
+ }
4250
+
4163
4251
  export class TDDeMarker {
4164
4252
  free(): void;
4165
4253
  [Symbol.dispose](): void;
@@ -4199,6 +4287,17 @@ export class TDLines {
4199
4287
  warmupPeriod(): number;
4200
4288
  }
4201
4289
 
4290
+ export class TDMovingAverage {
4291
+ free(): void;
4292
+ [Symbol.dispose](): void;
4293
+ batch(high: Float64Array, low: Float64Array): Float64Array;
4294
+ isReady(): boolean;
4295
+ constructor(period_st1: number, period_st2: number);
4296
+ reset(): void;
4297
+ update(high: number, low: number): any;
4298
+ warmupPeriod(): number;
4299
+ }
4300
+
4202
4301
  export class TDOpen {
4203
4302
  free(): void;
4204
4303
  [Symbol.dispose](): void;
@@ -4221,6 +4320,17 @@ export class TDPressure {
4221
4320
  warmupPeriod(): number;
4222
4321
  }
4223
4322
 
4323
+ export class TDPropulsion {
4324
+ free(): void;
4325
+ [Symbol.dispose](): void;
4326
+ batch(open: Float64Array, high: Float64Array, low: Float64Array, close: Float64Array): Float64Array;
4327
+ isReady(): boolean;
4328
+ constructor();
4329
+ reset(): void;
4330
+ update(open: number, high: number, low: number, close: number): number | undefined;
4331
+ warmupPeriod(): number;
4332
+ }
4333
+
4224
4334
  export class TDREI {
4225
4335
  free(): void;
4226
4336
  [Symbol.dispose](): void;
@@ -4295,6 +4405,17 @@ export class TDSetup {
4295
4405
  warmupPeriod(): number;
4296
4406
  }
4297
4407
 
4408
+ export class TDTrap {
4409
+ free(): void;
4410
+ [Symbol.dispose](): void;
4411
+ batch(open: Float64Array, high: Float64Array, low: Float64Array, close: Float64Array): Float64Array;
4412
+ isReady(): boolean;
4413
+ constructor();
4414
+ reset(): void;
4415
+ update(open: number, high: number, low: number, close: number): number | undefined;
4416
+ warmupPeriod(): number;
4417
+ }
4418
+
4298
4419
  export class TEMA {
4299
4420
  free(): void;
4300
4421
  [Symbol.dispose](): void;
@@ -5013,6 +5134,17 @@ export class VolumeWeightedMacd {
5013
5134
  warmupPeriod(): number;
5014
5135
  }
5015
5136
 
5137
+ export class VolumeWeightedSr {
5138
+ free(): void;
5139
+ [Symbol.dispose](): void;
5140
+ batch(high: Float64Array, low: Float64Array, volume: Float64Array): Float64Array;
5141
+ isReady(): boolean;
5142
+ constructor(period: number);
5143
+ reset(): void;
5144
+ update(high: number, low: number, volume: number): any;
5145
+ warmupPeriod(): number;
5146
+ }
5147
+
5016
5148
  export class Vortex {
5017
5149
  free(): void;
5018
5150
  [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
- 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, 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, 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, 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, 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, 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, TDCamouflage, TDClop, TDClopwin, TDCombo, TDCountdown, TDDWave, TDDeMarker, TDDifferential, TDLines, TDMovingAverage, TDOpen, TDPressure, TDPropulsion, TDREI, TDRangeProjection, TDRiskLevel, TDSequential, TDSetup, TDTrap, 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";