wickra-wasm 0.4.6 → 0.5.0

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=314" 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=339" 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)
@@ -9,7 +9,7 @@
9
9
  [![crates.io](https://img.shields.io/crates/v/wickra.svg?logo=rust&color=orange)](https://crates.io/crates/wickra)
10
10
  [![PyPI](https://img.shields.io/pypi/v/wickra.svg?logo=pypi&color=blue)](https://pypi.org/project/wickra/)
11
11
  [![npm](https://img.shields.io/npm/v/wickra.svg?logo=npm&color=red)](https://www.npmjs.com/package/wickra)
12
- [![License: PolyForm-NC](https://img.shields.io/badge/license-PolyForm--NC--1.0.0-purple)](LICENSE)
12
+ [![License: MIT OR Apache-2.0](https://img.shields.io/badge/license-MIT_OR_Apache--2.0-blue)](#license)
13
13
  [![OpenSSF Scorecard](https://api.securityscorecards.dev/projects/github.com/wickra-lib/wickra/badge)](https://scorecard.dev/viewer/?uri=github.com/wickra-lib/wickra)
14
14
  [![Build provenance](https://img.shields.io/badge/provenance-attested-brightgreen?logo=github)](https://github.com/wickra-lib/wickra/attestations)
15
15
  [![Docs](https://img.shields.io/badge/docs-docs.wickra.org-0ea5e9?logo=readthedocs&logoColor=white)](https://docs.wickra.org)
@@ -47,7 +47,7 @@ Full documentation lives at **[docs.wickra.org](https://docs.wickra.org)**:
47
47
  [Node](https://docs.wickra.org/Quickstart-Node),
48
48
  [WASM](https://docs.wickra.org/Quickstart-WASM).
49
49
  - **Indicators** — a per-indicator deep dive (formula, parameters, warmup) for
50
- every one of the 314 indicators; start at the
50
+ every one of the 339 indicators; start at the
51
51
  [indicators overview](https://docs.wickra.org/Indicators-Overview).
52
52
  - **Reference** — [warmup periods](https://docs.wickra.org/Warmup-Periods),
53
53
  [streaming vs batch](https://docs.wickra.org/Streaming-vs-Batch),
@@ -135,7 +135,7 @@ python -m benchmarks.compare_libraries
135
135
 
136
136
  ## Indicators
137
137
 
138
- 314 streaming-first indicators across nineteen families. Every one passes the
138
+ 339 streaming-first indicators across twenty families. Every one passes the
139
139
  `batch == streaming` equivalence test, reference-value tests, and reset
140
140
  semantics tests. Each has a per-indicator deep dive (formula, parameters,
141
141
  warmup) at [docs.wickra.org](https://docs.wickra.org/Indicators-Overview).
@@ -150,7 +150,7 @@ warmup) at [docs.wickra.org](https://docs.wickra.org/Indicators-Overview).
150
150
  | Bands & Channels | MA Envelope, Acceleration Bands, STARC Bands, ATR Bands, Hurst Channel, LinReg Channel, Standard Error Bands, Double Bollinger Bands, TTM Squeeze, Fractal Chaos Bands, VWAP StdDev Bands |
151
151
  | 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 |
152
152
  | 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 |
153
- | 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 |
153
+ | 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 |
154
154
  | 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 |
155
155
  | Pivots & S/R | Classic Pivots, Fibonacci Pivots, Camarilla, Woodie Pivots, DeMark Pivots, Williams Fractals, ZigZag |
156
156
  | 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 |
@@ -160,6 +160,7 @@ warmup) at [docs.wickra.org](https://docs.wickra.org/Indicators-Overview).
160
160
  | Microstructure | Order-Book Imbalance (Top-1 / Top-N / Full), Microprice, Quoted Spread, Depth Slope, Signed Volume, Cumulative Volume Delta, Trade Imbalance, Effective Spread, Realized Spread, Kyle's Lambda, Footprint |
161
161
  | Derivatives | Funding Rate, Funding Rate Mean, Funding Rate Z-Score, Funding Basis, Open-Interest Delta, OI / Price Divergence, OI-Weighted Price, Long/Short Ratio, Taker Buy/Sell Ratio, Liquidation Features, Term-Structure Basis, Calendar Spread |
162
162
  | Market Profile | Value Area (POC / VAH / VAL), Volume Profile (histogram), TPO Profile, Initial Balance, Opening Range |
163
+ | Market Breadth | Advance/Decline Line, Advance/Decline Ratio, Advance/Decline Volume Line, McClellan Oscillator, McClellan Summation Index, TRIN / Arms Index, Breadth Thrust, New Highs - New Lows, High-Low Index, Percent Above Moving Average, Up/Down Volume Ratio, Bullish Percent Index, Cumulative Volume Index, Absolute Breadth Index, TICK Index |
163
164
  | Risk / Performance | Sharpe Ratio, Sortino Ratio, Calmar Ratio, Omega Ratio, Max Drawdown, Average Drawdown, Drawdown Duration, Pain Index, Value at Risk, Conditional Value at Risk (CVaR), Profit Factor, Gain/Loss Ratio, Recovery Factor, Kelly Criterion, Treynor Ratio, Information Ratio, Alpha (Jensen) |
164
165
 
165
166
  Every candlestick pattern emits a signed per-bar value — `+1.0` bullish,
@@ -239,7 +240,7 @@ A Python live-trading example using the public `websockets` package lives at
239
240
  ```
240
241
  wickra/
241
242
  ├── crates/
242
- │ ├── wickra-core/ core engine + all 314 indicators
243
+ │ ├── wickra-core/ core engine + all 339 indicators
243
244
  │ ├── wickra/ top-level facade crate (publishes on crates.io) + benches/
244
245
  │ └── wickra-data/ CSV reader, tick aggregator, live exchange feeds
245
246
  ├── bindings/
@@ -323,13 +324,20 @@ shape together before you invest the time.
323
324
 
324
325
  ## License
325
326
 
326
- Licensed under the **PolyForm Noncommercial License 1.0.0**. See [LICENSE](LICENSE).
327
+ Licensed under either of
327
328
 
328
- In plain English: use it, fork it, modify it, redistribute it, file issues, send
329
- pull requests — all welcome. Personal projects, research, education, non-profits,
330
- government, hobby trading bots: all fine. The one thing that's not allowed is
331
- commercial sale of the software or of services built around it. If you want to
332
- use Wickra commercially, get in touch about a license.
329
+ - Apache License, Version 2.0 ([LICENSE-APACHE](LICENSE-APACHE) or
330
+ <http://www.apache.org/licenses/LICENSE-2.0>)
331
+ - MIT license ([LICENSE-MIT](LICENSE-MIT) or <http://opensource.org/licenses/MIT>)
332
+
333
+ at your option. Use it, fork it, modify it, redistribute it — commercially or
334
+ not — file issues, send pull requests; all welcome.
335
+
336
+ ### Contribution
337
+
338
+ Unless you explicitly state otherwise, any contribution intentionally submitted
339
+ for inclusion in the work by you, as defined in the Apache-2.0 license, shall be
340
+ dual licensed as above, without any additional terms or conditions.
333
341
 
334
342
  ## Disclaimer
335
343
 
package/package.json CHANGED
@@ -5,8 +5,8 @@
5
5
  "kingchenc <support@wickra.org>"
6
6
  ],
7
7
  "description": "WASM bindings for the Wickra streaming-first technical indicators library.",
8
- "version": "0.4.6",
9
- "license": "PolyForm-Noncommercial-1.0.0",
8
+ "version": "0.5.0",
9
+ "license": "MIT OR Apache-2.0",
10
10
  "repository": {
11
11
  "type": "git",
12
12
  "url": "https://github.com/wickra-lib/wickra"
package/wickra_wasm.d.ts CHANGED
@@ -89,6 +89,16 @@ export class AbandonedBaby {
89
89
  warmupPeriod(): number;
90
90
  }
91
91
 
92
+ export class AbsoluteBreadthIndex {
93
+ free(): void;
94
+ [Symbol.dispose](): void;
95
+ isReady(): boolean;
96
+ constructor();
97
+ reset(): void;
98
+ update(change: Float64Array, volume: Float64Array, new_high: Float64Array, new_low: Float64Array): number | undefined;
99
+ warmupPeriod(): number;
100
+ }
101
+
92
102
  export class AccelerationBands {
93
103
  free(): void;
94
104
  [Symbol.dispose](): void;
@@ -112,6 +122,16 @@ export class AcceleratorOscillator {
112
122
  update(high: number, low: number): number | undefined;
113
123
  }
114
124
 
125
+ export class AdVolumeLine {
126
+ free(): void;
127
+ [Symbol.dispose](): void;
128
+ isReady(): boolean;
129
+ constructor();
130
+ reset(): void;
131
+ update(change: Float64Array, volume: Float64Array, new_high: Float64Array, new_low: Float64Array): number | undefined;
132
+ warmupPeriod(): number;
133
+ }
134
+
115
135
  export class AdaptiveCycle {
116
136
  free(): void;
117
137
  [Symbol.dispose](): void;
@@ -134,6 +154,26 @@ export class AdvanceBlock {
134
154
  warmupPeriod(): number;
135
155
  }
136
156
 
157
+ export class AdvanceDecline {
158
+ free(): void;
159
+ [Symbol.dispose](): void;
160
+ isReady(): boolean;
161
+ constructor();
162
+ reset(): void;
163
+ update(change: Float64Array, volume: Float64Array, new_high: Float64Array, new_low: Float64Array): number | undefined;
164
+ warmupPeriod(): number;
165
+ }
166
+
167
+ export class AdvanceDeclineRatio {
168
+ free(): void;
169
+ [Symbol.dispose](): void;
170
+ isReady(): boolean;
171
+ constructor();
172
+ reset(): void;
173
+ update(change: Float64Array, volume: Float64Array, new_high: Float64Array, new_low: Float64Array): number | undefined;
174
+ warmupPeriod(): number;
175
+ }
176
+
137
177
  export class Alligator {
138
178
  free(): void;
139
179
  [Symbol.dispose](): void;
@@ -309,6 +349,21 @@ export class Beta {
309
349
  warmupPeriod(): number;
310
350
  }
311
351
 
352
+ export class BetaNeutralSpread {
353
+ free(): void;
354
+ [Symbol.dispose](): void;
355
+ /**
356
+ * Batch over two equally-sized arrays. Returns one `f64` per
357
+ * input position (`NaN` during warmup).
358
+ */
359
+ batch(x: Float64Array, y: Float64Array): Float64Array;
360
+ isReady(): boolean;
361
+ constructor(period: number);
362
+ reset(): void;
363
+ update(x: number, y: number): number | undefined;
364
+ warmupPeriod(): number;
365
+ }
366
+
312
367
  export class BollingerBands {
313
368
  free(): void;
314
369
  [Symbol.dispose](): void;
@@ -332,6 +387,16 @@ export class BollingerBandwidth {
332
387
  warmupPeriod(): number;
333
388
  }
334
389
 
390
+ export class BreadthThrust {
391
+ free(): void;
392
+ [Symbol.dispose](): void;
393
+ isReady(): boolean;
394
+ constructor(period: number);
395
+ reset(): void;
396
+ update(change: Float64Array, volume: Float64Array, new_high: Float64Array, new_low: Float64Array): number | undefined;
397
+ warmupPeriod(): number;
398
+ }
399
+
335
400
  export class Breakaway {
336
401
  free(): void;
337
402
  [Symbol.dispose](): void;
@@ -343,6 +408,16 @@ export class Breakaway {
343
408
  warmupPeriod(): number;
344
409
  }
345
410
 
411
+ export class BullishPercentIndex {
412
+ free(): void;
413
+ [Symbol.dispose](): void;
414
+ isReady(): boolean;
415
+ constructor();
416
+ reset(): void;
417
+ update(change: Float64Array, volume: Float64Array, new_high: Float64Array, new_low: Float64Array, on_buy_signal: Float64Array): number | undefined;
418
+ warmupPeriod(): number;
419
+ }
420
+
346
421
  export class CCI {
347
422
  free(): void;
348
423
  [Symbol.dispose](): void;
@@ -601,6 +676,16 @@ export class CumulativeVolumeDelta {
601
676
  warmupPeriod(): number;
602
677
  }
603
678
 
679
+ export class CumulativeVolumeIndex {
680
+ free(): void;
681
+ [Symbol.dispose](): void;
682
+ isReady(): boolean;
683
+ constructor();
684
+ reset(): void;
685
+ update(change: Float64Array, volume: Float64Array, new_high: Float64Array, new_low: Float64Array): number | undefined;
686
+ warmupPeriod(): number;
687
+ }
688
+
604
689
  export class CyberneticCycle {
605
690
  free(): void;
606
691
  [Symbol.dispose](): void;
@@ -706,6 +791,21 @@ export class DetrendedStdDev {
706
791
  warmupPeriod(): number;
707
792
  }
708
793
 
794
+ export class DistanceSsd {
795
+ free(): void;
796
+ [Symbol.dispose](): void;
797
+ /**
798
+ * Batch over two equally-sized arrays. Returns one `f64` per
799
+ * input position (`NaN` during warmup).
800
+ */
801
+ batch(x: Float64Array, y: Float64Array): Float64Array;
802
+ isReady(): boolean;
803
+ constructor(period: number);
804
+ reset(): void;
805
+ update(x: number, y: number): number | undefined;
806
+ warmupPeriod(): number;
807
+ }
808
+
709
809
  export class Doji {
710
810
  free(): void;
711
811
  [Symbol.dispose](): void;
@@ -1062,6 +1162,21 @@ export class GarmanKlassVolatility {
1062
1162
  warmupPeriod(): number;
1063
1163
  }
1064
1164
 
1165
+ export class GrangerCausality {
1166
+ free(): void;
1167
+ [Symbol.dispose](): void;
1168
+ /**
1169
+ * Batch over two equally-sized arrays of prices. Returns one `f64` per
1170
+ * input position (`NaN` during warmup).
1171
+ */
1172
+ batch(a: Float64Array, b: Float64Array): Float64Array;
1173
+ isReady(): boolean;
1174
+ constructor(period: number, lag: number);
1175
+ reset(): void;
1176
+ update(a: number, b: number): number | undefined;
1177
+ warmupPeriod(): number;
1178
+ }
1179
+
1065
1180
  export class GravestoneDoji {
1066
1181
  free(): void;
1067
1182
  [Symbol.dispose](): void;
@@ -1178,6 +1293,16 @@ export class HiLoActivator {
1178
1293
  update(high: number, low: number, close: number): number | undefined;
1179
1294
  }
1180
1295
 
1296
+ export class HighLowIndex {
1297
+ free(): void;
1298
+ [Symbol.dispose](): void;
1299
+ isReady(): boolean;
1300
+ constructor(period: number);
1301
+ reset(): void;
1302
+ update(change: Float64Array, volume: Float64Array, new_high: Float64Array, new_low: Float64Array): number | undefined;
1303
+ warmupPeriod(): number;
1304
+ }
1305
+
1181
1306
  export class HighWave {
1182
1307
  free(): void;
1183
1308
  [Symbol.dispose](): void;
@@ -1434,6 +1559,24 @@ export class KagiBars {
1434
1559
  update(close: number): Array<any>;
1435
1560
  }
1436
1561
 
1562
+ export class KalmanHedgeRatio {
1563
+ free(): void;
1564
+ [Symbol.dispose](): void;
1565
+ /**
1566
+ * Flat `Float64Array` of length `3 * n`:
1567
+ * `[hedgeRatio0, intercept0, spread0, hedgeRatio1, ...]`. Warmup rows are NaN.
1568
+ */
1569
+ batch(a: Float64Array, b: Float64Array): Float64Array;
1570
+ isReady(): boolean;
1571
+ constructor(delta: number, observation_var: number);
1572
+ reset(): void;
1573
+ /**
1574
+ * Returns `{ hedgeRatio, intercept, spread }`, or `null` during warmup.
1575
+ */
1576
+ update(a: number, b: number): any;
1577
+ warmupPeriod(): number;
1578
+ }
1579
+
1437
1580
  export class KellyCriterion {
1438
1581
  free(): void;
1439
1582
  [Symbol.dispose](): void;
@@ -1831,6 +1974,26 @@ export class MaxDrawdown {
1831
1974
  warmupPeriod(): number;
1832
1975
  }
1833
1976
 
1977
+ export class McClellanOscillator {
1978
+ free(): void;
1979
+ [Symbol.dispose](): void;
1980
+ isReady(): boolean;
1981
+ constructor();
1982
+ reset(): void;
1983
+ update(change: Float64Array, volume: Float64Array, new_high: Float64Array, new_low: Float64Array): number | undefined;
1984
+ warmupPeriod(): number;
1985
+ }
1986
+
1987
+ export class McClellanSummationIndex {
1988
+ free(): void;
1989
+ [Symbol.dispose](): void;
1990
+ isReady(): boolean;
1991
+ constructor();
1992
+ reset(): void;
1993
+ update(change: Float64Array, volume: Float64Array, new_high: Float64Array, new_low: Float64Array): number | undefined;
1994
+ warmupPeriod(): number;
1995
+ }
1996
+
1834
1997
  export class McGinleyDynamic {
1835
1998
  free(): void;
1836
1999
  [Symbol.dispose](): void;
@@ -1912,6 +2075,16 @@ export class NVI {
1912
2075
  update(close: number, volume: number): number | undefined;
1913
2076
  }
1914
2077
 
2078
+ export class NewHighsNewLows {
2079
+ free(): void;
2080
+ [Symbol.dispose](): void;
2081
+ isReady(): boolean;
2082
+ constructor();
2083
+ reset(): void;
2084
+ update(change: Float64Array, volume: Float64Array, new_high: Float64Array, new_low: Float64Array): number | undefined;
2085
+ warmupPeriod(): number;
2086
+ }
2087
+
1915
2088
  export class OBV {
1916
2089
  free(): void;
1917
2090
  [Symbol.dispose](): void;
@@ -2031,6 +2204,21 @@ export class OrderBookImbalanceTopN {
2031
2204
  warmupPeriod(): number;
2032
2205
  }
2033
2206
 
2207
+ export class OuHalfLife {
2208
+ free(): void;
2209
+ [Symbol.dispose](): void;
2210
+ /**
2211
+ * Batch over two equally-sized arrays. Returns one `f64` per
2212
+ * input position (`NaN` during warmup).
2213
+ */
2214
+ batch(x: Float64Array, y: Float64Array): Float64Array;
2215
+ isReady(): boolean;
2216
+ constructor(period: number);
2217
+ reset(): void;
2218
+ update(x: number, y: number): number | undefined;
2219
+ warmupPeriod(): number;
2220
+ }
2221
+
2034
2222
  export class PGO {
2035
2223
  free(): void;
2036
2224
  [Symbol.dispose](): void;
@@ -2169,6 +2357,16 @@ export class PearsonCorrelation {
2169
2357
  warmupPeriod(): number;
2170
2358
  }
2171
2359
 
2360
+ export class PercentAboveMa {
2361
+ free(): void;
2362
+ [Symbol.dispose](): void;
2363
+ isReady(): boolean;
2364
+ constructor();
2365
+ reset(): void;
2366
+ update(change: Float64Array, volume: Float64Array, new_high: Float64Array, new_low: Float64Array, above_ma: Float64Array): number | undefined;
2367
+ warmupPeriod(): number;
2368
+ }
2369
+
2172
2370
  export class PercentB {
2173
2371
  free(): void;
2174
2372
  [Symbol.dispose](): void;
@@ -2429,6 +2627,36 @@ export class RogersSatchellVolatility {
2429
2627
  warmupPeriod(): number;
2430
2628
  }
2431
2629
 
2630
+ export class RollingCorrelation {
2631
+ free(): void;
2632
+ [Symbol.dispose](): void;
2633
+ /**
2634
+ * Batch over two equally-sized arrays. Returns one `f64` per
2635
+ * input position (`NaN` during warmup).
2636
+ */
2637
+ batch(x: Float64Array, y: Float64Array): Float64Array;
2638
+ isReady(): boolean;
2639
+ constructor(period: number);
2640
+ reset(): void;
2641
+ update(x: number, y: number): number | undefined;
2642
+ warmupPeriod(): number;
2643
+ }
2644
+
2645
+ export class RollingCovariance {
2646
+ free(): void;
2647
+ [Symbol.dispose](): void;
2648
+ /**
2649
+ * Batch over two equally-sized arrays. Returns one `f64` per
2650
+ * input position (`NaN` during warmup).
2651
+ */
2652
+ batch(x: Float64Array, y: Float64Array): Float64Array;
2653
+ isReady(): boolean;
2654
+ constructor(period: number);
2655
+ reset(): void;
2656
+ update(x: number, y: number): number | undefined;
2657
+ warmupPeriod(): number;
2658
+ }
2659
+
2432
2660
  export class RollingVWAP {
2433
2661
  free(): void;
2434
2662
  [Symbol.dispose](): void;
@@ -2619,6 +2847,39 @@ export class SpinningTop {
2619
2847
  warmupPeriod(): number;
2620
2848
  }
2621
2849
 
2850
+ export class SpreadBollingerBands {
2851
+ free(): void;
2852
+ [Symbol.dispose](): void;
2853
+ /**
2854
+ * Flat `Float64Array` of length `4 * n`:
2855
+ * `[middle0, upper0, lower0, percentB0, middle1, ...]`. Warmup rows are NaN.
2856
+ */
2857
+ batch(a: Float64Array, b: Float64Array): Float64Array;
2858
+ isReady(): boolean;
2859
+ constructor(period: number, num_std: number);
2860
+ reset(): void;
2861
+ /**
2862
+ * Returns `{ middle, upper, lower, percentB }`, or `null` during warmup.
2863
+ */
2864
+ update(a: number, b: number): any;
2865
+ warmupPeriod(): number;
2866
+ }
2867
+
2868
+ export class SpreadHurst {
2869
+ free(): void;
2870
+ [Symbol.dispose](): void;
2871
+ /**
2872
+ * Batch over two equally-sized arrays. Returns one `f64` per
2873
+ * input position (`NaN` during warmup).
2874
+ */
2875
+ batch(x: Float64Array, y: Float64Array): Float64Array;
2876
+ isReady(): boolean;
2877
+ constructor(period: number);
2878
+ reset(): void;
2879
+ update(x: number, y: number): number | undefined;
2880
+ warmupPeriod(): number;
2881
+ }
2882
+
2622
2883
  export class StalledPattern {
2623
2884
  free(): void;
2624
2885
  [Symbol.dispose](): void;
@@ -3100,6 +3361,16 @@ export class Thrusting {
3100
3361
  warmupPeriod(): number;
3101
3362
  }
3102
3363
 
3364
+ export class TickIndex {
3365
+ free(): void;
3366
+ [Symbol.dispose](): void;
3367
+ isReady(): boolean;
3368
+ constructor();
3369
+ reset(): void;
3370
+ update(change: Float64Array, volume: Float64Array, new_high: Float64Array, new_low: Float64Array): number | undefined;
3371
+ warmupPeriod(): number;
3372
+ }
3373
+
3103
3374
  export class TpoProfile {
3104
3375
  free(): void;
3105
3376
  [Symbol.dispose](): void;
@@ -3135,6 +3406,16 @@ export class TreynorRatio {
3135
3406
  warmupPeriod(): number;
3136
3407
  }
3137
3408
 
3409
+ export class Trin {
3410
+ free(): void;
3411
+ [Symbol.dispose](): void;
3412
+ isReady(): boolean;
3413
+ constructor();
3414
+ reset(): void;
3415
+ update(change: Float64Array, volume: Float64Array, new_high: Float64Array, new_low: Float64Array): number | undefined;
3416
+ warmupPeriod(): number;
3417
+ }
3418
+
3138
3419
  export class TrueRange {
3139
3420
  free(): void;
3140
3421
  [Symbol.dispose](): void;
@@ -3220,6 +3501,16 @@ export class UniqueThreeRiver {
3220
3501
  warmupPeriod(): number;
3221
3502
  }
3222
3503
 
3504
+ export class UpDownVolumeRatio {
3505
+ free(): void;
3506
+ [Symbol.dispose](): void;
3507
+ isReady(): boolean;
3508
+ constructor();
3509
+ reset(): void;
3510
+ update(change: Float64Array, volume: Float64Array, new_high: Float64Array, new_low: Float64Array): number | undefined;
3511
+ warmupPeriod(): number;
3512
+ }
3513
+
3223
3514
  export class UpsideGapThreeMethods {
3224
3515
  free(): void;
3225
3516
  [Symbol.dispose](): void;
@@ -3318,6 +3609,21 @@ export class Variance {
3318
3609
  warmupPeriod(): number;
3319
3610
  }
3320
3611
 
3612
+ export class VarianceRatio {
3613
+ free(): void;
3614
+ [Symbol.dispose](): void;
3615
+ /**
3616
+ * Batch over two equally-sized arrays of prices. Returns one `f64` per
3617
+ * input position (`NaN` during warmup).
3618
+ */
3619
+ batch(a: Float64Array, b: Float64Array): Float64Array;
3620
+ isReady(): boolean;
3621
+ constructor(period: number, q: number);
3622
+ reset(): void;
3623
+ update(a: number, b: number): number | undefined;
3624
+ warmupPeriod(): number;
3625
+ }
3626
+
3321
3627
  export class VerticalHorizontalFilter {
3322
3628
  free(): void;
3323
3629
  [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, AccelerationBands, AcceleratorOscillator, AdaptiveCycle, AdvanceBlock, Alligator, Alpha, AnchoredRSI, AnchoredVWAP, Aroon, AroonOscillator, AtrBands, AtrTrailingStop, Autocorrelation, AverageDrawdown, AwesomeOscillator, AwesomeOscillatorHistogram, BalanceOfPower, BeltHold, Beta, BollingerBands, BollingerBandwidth, Breakaway, CCI, CFO, CMO, CalendarSpread, CalmarRatio, Camarilla, CenterOfGravity, ChaikinMoneyFlow, ChaikinOscillator, ChaikinVolatility, ChandeKrollStop, ChandelierExit, ChoppinessIndex, ClassicPivots, ClosingMarubozu, CoefficientOfVariation, Cointegration, ConcealingBabySwallow, ConditionalValueAtRisk, ConnorsRSI, Coppock, Counterattack, CumulativeVolumeDelta, CyberneticCycle, DEMA, DPO, DX, Decycler, DecyclerOscillator, DemandIndex, DemarkPivots, DepthSlope, DetrendedStdDev, Doji, DojiStar, Donchian, DonchianStop, DoubleBollinger, DownsideGapThreeMethods, DragonflyDoji, DrawdownDuration, EMA, EVWMA, EaseOfMovement, EffectiveSpread, EhlersStochastic, ElderImpulse, EmpiricalModeDecomposition, Engulfing, EveningDojiStar, FAMA, FRAMA, FallingThreeMethods, FibonacciPivots, FisherTransform, Footprint, ForceIndex, FractalChaosBands, FundingBasis, FundingRate, FundingRateMean, FundingRateZScore, GainLossRatio, GapSideBySideWhite, GarmanKlassVolatility, GravestoneDoji, HMA, HT_DCPHASE, HT_PHASOR, HT_TRENDMODE, Hammer, HangingMan, Harami, HeikinAshi, HiLoActivator, HighWave, Hikkake, HikkakeModified, HilbertDominantCycle, HistoricalVolatility, HomingPigeon, HurstChannel, HurstExponent, Ichimoku, IdenticalThreeCrows, InNeck, Inertia, InformationRatio, InitialBalance, InstantaneousTrendline, InverseFisherTransform, InvertedHammer, JMA, KAMA, KST, KVO, KagiBars, KellyCriterion, Keltner, Kicking, KickingByLength, Kurtosis, KylesLambda, LINEARREG_INTERCEPT, LadderBottom, LaguerreRSI, LeadLagCrossCorrelation, LinRegAngle, LinRegChannel, LinRegSlope, LinearRegression, LiquidationFeatures, LongLeggedDoji, LongLine, LongShortRatio, MACD, MACDEXT, MACDFIX, MAMA, MFI, MIDPOINT, MIDPRICE, MINUS_DI, MINUS_DM, MOM, MaEnvelope, MarketFacilitationIndex, Marubozu, MassIndex, MatHold, MatchingLow, MaxDrawdown, McGinleyDynamic, MedianAbsoluteDeviation, MedianPrice, Microprice, MorningDojiStar, MorningEveningStar, NATR, NVI, OBV, OIPriceDivergence, OIWeighted, OmegaRatio, OnNeck, OpenInterestDelta, OpeningMarubozu, OpeningRange, OrderBookImbalanceFull, OrderBookImbalanceTop1, OrderBookImbalanceTopN, PGO, PLUS_DI, PLUS_DM, PMO, PPO, PSAR, PVI, PainIndex, PairSpreadZScore, PairwiseBeta, ParkinsonVolatility, PearsonCorrelation, PercentB, PercentageTrailingStop, PiercingDarkCloud, PointAndFigureBars, ProfitFactor, QuotedSpread, ROC, ROCP, ROCR, ROCR100, RSI, RSquared, RVI, RVIVolatility, RWI, RealizedSpread, RecoveryFactor, RelativeStrengthAB, RenkoBars, RenkoTrailingStop, RickshawMan, RisingThreeMethods, RogersSatchellVolatility, RollingVWAP, RoofingFilter, SAREXT, SMA, SMI, SMMA, STC, SeparatingLines, SharpeRatio, ShootingStar, ShortLine, SignedVolume, SineWave, Skewness, SortinoRatio, SpearmanCorrelation, SpinningTop, StalledPattern, StandardError, StandardErrorBands, StarcBands, StdDev, StepTrailingStop, StickSandwich, StochRSI, Stochastic, SuperSmoother, SuperTrend, T3, TDCombo, TDCountdown, TDDeMarker, TDDifferential, TDLines, TDOpen, TDPressure, TDREI, TDRangeProjection, TDRiskLevel, TDSequential, TDSetup, TEMA, TII, TRIMA, TRIX, TSF, TSI, TSV, TakerBuySellRatio, Takuri, TasukiGap, TermStructureBasis, ThreeInside, ThreeLineStrike, ThreeOutside, ThreeSoldiersOrCrows, ThreeStarsInSouth, Thrusting, TpoProfile, TradeImbalance, TreynorRatio, TrueRange, TtmSqueeze, Tweezer, TwoCrows, TypicalPrice, UlcerIndex, UltimateOscillator, UniqueThreeRiver, UpsideGapThreeMethods, UpsideGapTwoCrows, VIDYA, VWAP, VWMA, VZO, ValueArea, ValueAtRisk, Variance, VerticalHorizontalFilter, VoltyStop, VolumeOscillator, VolumePriceTrend, VolumeProfile, Vortex, VwapStdDevBands, WMA, WaveTrend, WeightedClose, WilliamsAD, WilliamsFractals, WilliamsR, WoodiePivots, YangZhangVolatility, YoyoExit, ZLEMA, ZScore, ZeroLagMACD, ZigZag, installPanicHook, version
8
+ ADL, ADX, ADXR, ALMA, APO, ATR, AVGPRICE, AbandonedBaby, AbsoluteBreadthIndex, AccelerationBands, AcceleratorOscillator, AdVolumeLine, AdaptiveCycle, AdvanceBlock, AdvanceDecline, AdvanceDeclineRatio, Alligator, Alpha, AnchoredRSI, AnchoredVWAP, Aroon, AroonOscillator, AtrBands, AtrTrailingStop, Autocorrelation, AverageDrawdown, AwesomeOscillator, AwesomeOscillatorHistogram, BalanceOfPower, BeltHold, Beta, BetaNeutralSpread, BollingerBands, BollingerBandwidth, BreadthThrust, Breakaway, BullishPercentIndex, CCI, CFO, CMO, CalendarSpread, CalmarRatio, Camarilla, CenterOfGravity, ChaikinMoneyFlow, ChaikinOscillator, ChaikinVolatility, ChandeKrollStop, ChandelierExit, ChoppinessIndex, ClassicPivots, ClosingMarubozu, CoefficientOfVariation, Cointegration, ConcealingBabySwallow, ConditionalValueAtRisk, ConnorsRSI, Coppock, Counterattack, CumulativeVolumeDelta, CumulativeVolumeIndex, CyberneticCycle, DEMA, DPO, DX, Decycler, DecyclerOscillator, DemandIndex, DemarkPivots, DepthSlope, DetrendedStdDev, DistanceSsd, Doji, DojiStar, Donchian, DonchianStop, DoubleBollinger, DownsideGapThreeMethods, DragonflyDoji, DrawdownDuration, EMA, EVWMA, EaseOfMovement, EffectiveSpread, EhlersStochastic, ElderImpulse, EmpiricalModeDecomposition, Engulfing, EveningDojiStar, FAMA, FRAMA, FallingThreeMethods, FibonacciPivots, FisherTransform, Footprint, ForceIndex, FractalChaosBands, FundingBasis, FundingRate, FundingRateMean, FundingRateZScore, GainLossRatio, GapSideBySideWhite, GarmanKlassVolatility, GrangerCausality, GravestoneDoji, HMA, HT_DCPHASE, HT_PHASOR, HT_TRENDMODE, Hammer, HangingMan, Harami, HeikinAshi, HiLoActivator, HighLowIndex, HighWave, Hikkake, HikkakeModified, HilbertDominantCycle, HistoricalVolatility, HomingPigeon, HurstChannel, HurstExponent, Ichimoku, IdenticalThreeCrows, InNeck, Inertia, InformationRatio, InitialBalance, InstantaneousTrendline, InverseFisherTransform, InvertedHammer, JMA, KAMA, KST, KVO, KagiBars, KalmanHedgeRatio, KellyCriterion, Keltner, Kicking, KickingByLength, Kurtosis, KylesLambda, LINEARREG_INTERCEPT, LadderBottom, LaguerreRSI, LeadLagCrossCorrelation, LinRegAngle, LinRegChannel, LinRegSlope, LinearRegression, LiquidationFeatures, LongLeggedDoji, LongLine, LongShortRatio, MACD, MACDEXT, MACDFIX, MAMA, MFI, MIDPOINT, MIDPRICE, MINUS_DI, MINUS_DM, MOM, MaEnvelope, MarketFacilitationIndex, Marubozu, MassIndex, MatHold, MatchingLow, MaxDrawdown, McClellanOscillator, McClellanSummationIndex, McGinleyDynamic, MedianAbsoluteDeviation, MedianPrice, Microprice, MorningDojiStar, MorningEveningStar, NATR, NVI, NewHighsNewLows, OBV, OIPriceDivergence, OIWeighted, OmegaRatio, OnNeck, OpenInterestDelta, OpeningMarubozu, OpeningRange, OrderBookImbalanceFull, OrderBookImbalanceTop1, OrderBookImbalanceTopN, OuHalfLife, PGO, PLUS_DI, PLUS_DM, PMO, PPO, PSAR, PVI, PainIndex, PairSpreadZScore, PairwiseBeta, ParkinsonVolatility, PearsonCorrelation, PercentAboveMa, PercentB, PercentageTrailingStop, PiercingDarkCloud, PointAndFigureBars, ProfitFactor, QuotedSpread, ROC, ROCP, ROCR, ROCR100, RSI, RSquared, RVI, RVIVolatility, RWI, RealizedSpread, RecoveryFactor, RelativeStrengthAB, RenkoBars, RenkoTrailingStop, RickshawMan, RisingThreeMethods, RogersSatchellVolatility, RollingCorrelation, RollingCovariance, RollingVWAP, RoofingFilter, SAREXT, SMA, SMI, SMMA, STC, SeparatingLines, SharpeRatio, ShootingStar, ShortLine, SignedVolume, SineWave, Skewness, SortinoRatio, SpearmanCorrelation, SpinningTop, SpreadBollingerBands, SpreadHurst, StalledPattern, StandardError, StandardErrorBands, StarcBands, StdDev, StepTrailingStop, StickSandwich, StochRSI, Stochastic, SuperSmoother, SuperTrend, T3, TDCombo, TDCountdown, TDDeMarker, TDDifferential, TDLines, TDOpen, TDPressure, TDREI, TDRangeProjection, TDRiskLevel, TDSequential, TDSetup, TEMA, TII, TRIMA, TRIX, TSF, TSI, TSV, TakerBuySellRatio, Takuri, TasukiGap, TermStructureBasis, ThreeInside, ThreeLineStrike, ThreeOutside, ThreeSoldiersOrCrows, ThreeStarsInSouth, Thrusting, TickIndex, TpoProfile, TradeImbalance, TreynorRatio, Trin, TrueRange, TtmSqueeze, Tweezer, TwoCrows, TypicalPrice, UlcerIndex, UltimateOscillator, UniqueThreeRiver, UpDownVolumeRatio, UpsideGapThreeMethods, UpsideGapTwoCrows, VIDYA, VWAP, VWMA, VZO, ValueArea, ValueAtRisk, Variance, VarianceRatio, VerticalHorizontalFilter, VoltyStop, VolumeOscillator, VolumePriceTrend, VolumeProfile, Vortex, VwapStdDevBands, WMA, WaveTrend, WeightedClose, WilliamsAD, WilliamsFractals, WilliamsR, WoodiePivots, YangZhangVolatility, YoyoExit, ZLEMA, ZScore, ZeroLagMACD, ZigZag, installPanicHook, version
9
9
  } from "./wickra_wasm_bg.js";