wickra-wasm 0.4.5 → 0.4.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=295" 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=325" 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)
@@ -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 295 indicators; start at the
50
+ every one of the 325 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
- 295 streaming-first indicators across nineteen families. Every one passes the
138
+ 325 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).
@@ -143,15 +143,15 @@ warmup) at [docs.wickra.org](https://docs.wickra.org/Indicators-Overview).
143
143
  | Family | Indicators |
144
144
  |--------|-----------|
145
145
  | Moving Averages | SMA, EMA, WMA, DEMA, TEMA, HMA, KAMA, SMMA, TRIMA, ZLEMA, T3, VWMA, ALMA, McGinley Dynamic, FRAMA, VIDYA, JMA, Alligator, EVWMA |
146
- | Momentum Oscillators | RSI (Wilder), Anchored RSI, Stochastic, CCI, ROC, Williams %R, MFI, Awesome Oscillator, MOM, CMO, TSI, PMO, StochRSI, Ultimate Oscillator, RVI, PGO, KST, SMI, Laguerre RSI, Connors RSI, Inertia |
147
- | Trend & Directional | MACD, ADX (+DI/-DI), ADXR, Aroon, TRIX, Aroon Oscillator, Vortex, Random Walk Index, Trend Intensity Index, Wave Trend Oscillator, Mass Index, Choppiness Index, Vertical Horizontal Filter |
146
+ | Momentum Oscillators | RSI (Wilder), Anchored RSI, Stochastic, CCI, ROC, Williams %R, MFI, Awesome Oscillator, MOM, CMO, TSI, PMO, StochRSI, Ultimate Oscillator, RVI, PGO, KST, SMI, Laguerre RSI, Connors RSI, Inertia, ROC Percentage (ROCP), ROC Ratio (ROCR), ROC Ratio 100 (ROCR100) |
147
+ | Trend & Directional | MACD, MACD Fixed (MACDFIX), MACD Extended (MACDEXT), ADX (+DI/-DI), ADXR, Aroon, TRIX, Aroon Oscillator, Vortex, Random Walk Index, Trend Intensity Index, Wave Trend Oscillator, Mass Index, Choppiness Index, Vertical Horizontal Filter, Plus DM, Minus DM, Plus DI, Minus DI, DX |
148
148
  | Price Oscillators | PPO, DPO, Coppock, Accelerator Oscillator, Balance of Power, APO, AO Histogram, CFO, Zero-Lag MACD, Elder Impulse, STC |
149
149
  | Volatility & Bands | ATR, Bollinger Bands, Keltner Channels, Donchian Channels, NATR, StdDev, Ulcer Index, Historical Volatility, Bollinger Bandwidth, %B, True Range, Chaikin Volatility, RVI (Relative Volatility Index), Parkinson Volatility, Garman-Klass Volatility, Rogers-Satchell Volatility, Yang-Zhang Volatility |
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
- | Trailing Stops | Parabolic SAR, 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 |
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 |
154
- | Ehlers / Cycle (DSP) | MAMA, FAMA, Fisher Transform, Inverse Fisher Transform, SuperSmoother, Hilbert Dominant Cycle, Sine Wave, Decycler, Decycler Oscillator, Roofing Filter, Center of Gravity, Cybernetic Cycle, Adaptive Cycle, Empirical Mode Decomposition, Ehlers Stochastic, Instantaneous Trendline |
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
+ | 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 |
157
157
  | Ichimoku & Charts | Ichimoku Kinko Hyo (Tenkan, Kijun, Senkou A/B, Chikou), Heikin-Ashi |
@@ -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 |
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 295 indicators
243
+ │ ├── wickra-core/ core engine + all 325 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/
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.4.5",
8
+ "version": "0.4.7",
9
9
  "license": "PolyForm-Noncommercial-1.0.0",
10
10
  "repository": {
11
11
  "type": "git",
package/wickra_wasm.d.ts CHANGED
@@ -69,6 +69,15 @@ export class ATR {
69
69
  update(high: number, low: number, close: number): number | undefined;
70
70
  }
71
71
 
72
+ export class AVGPRICE {
73
+ free(): void;
74
+ [Symbol.dispose](): void;
75
+ batch(open: Float64Array, high: Float64Array, low: Float64Array, close: Float64Array): Float64Array;
76
+ constructor();
77
+ reset(): void;
78
+ update(open: number, high: number, low: number, close: number): number | undefined;
79
+ }
80
+
72
81
  export class AbandonedBaby {
73
82
  free(): void;
74
83
  [Symbol.dispose](): void;
@@ -125,6 +134,16 @@ export class AdvanceBlock {
125
134
  warmupPeriod(): number;
126
135
  }
127
136
 
137
+ export class AdvanceDecline {
138
+ free(): void;
139
+ [Symbol.dispose](): void;
140
+ isReady(): boolean;
141
+ constructor();
142
+ reset(): void;
143
+ update(change: Float64Array, volume: Float64Array, new_high: Float64Array, new_low: Float64Array): number | undefined;
144
+ warmupPeriod(): number;
145
+ }
146
+
128
147
  export class Alligator {
129
148
  free(): void;
130
149
  [Symbol.dispose](): void;
@@ -300,6 +319,21 @@ export class Beta {
300
319
  warmupPeriod(): number;
301
320
  }
302
321
 
322
+ export class BetaNeutralSpread {
323
+ free(): void;
324
+ [Symbol.dispose](): void;
325
+ /**
326
+ * Batch over two equally-sized arrays. Returns one `f64` per
327
+ * input position (`NaN` during warmup).
328
+ */
329
+ batch(x: Float64Array, y: Float64Array): Float64Array;
330
+ isReady(): boolean;
331
+ constructor(period: number);
332
+ reset(): void;
333
+ update(x: number, y: number): number | undefined;
334
+ warmupPeriod(): number;
335
+ }
336
+
303
337
  export class BollingerBands {
304
338
  free(): void;
305
339
  [Symbol.dispose](): void;
@@ -625,6 +659,15 @@ export class DPO {
625
659
  warmupPeriod(): number;
626
660
  }
627
661
 
662
+ export class DX {
663
+ free(): void;
664
+ [Symbol.dispose](): void;
665
+ batch(high: Float64Array, low: Float64Array, close: Float64Array): Float64Array;
666
+ constructor(period: number);
667
+ reset(): void;
668
+ update(high: number, low: number, close: number): number | undefined;
669
+ }
670
+
628
671
  export class Decycler {
629
672
  free(): void;
630
673
  [Symbol.dispose](): void;
@@ -688,6 +731,21 @@ export class DetrendedStdDev {
688
731
  warmupPeriod(): number;
689
732
  }
690
733
 
734
+ export class DistanceSsd {
735
+ free(): void;
736
+ [Symbol.dispose](): void;
737
+ /**
738
+ * Batch over two equally-sized arrays. Returns one `f64` per
739
+ * input position (`NaN` during warmup).
740
+ */
741
+ batch(x: Float64Array, y: Float64Array): Float64Array;
742
+ isReady(): boolean;
743
+ constructor(period: number);
744
+ reset(): void;
745
+ update(x: number, y: number): number | undefined;
746
+ warmupPeriod(): number;
747
+ }
748
+
691
749
  export class Doji {
692
750
  free(): void;
693
751
  [Symbol.dispose](): void;
@@ -1044,6 +1102,21 @@ export class GarmanKlassVolatility {
1044
1102
  warmupPeriod(): number;
1045
1103
  }
1046
1104
 
1105
+ export class GrangerCausality {
1106
+ free(): void;
1107
+ [Symbol.dispose](): void;
1108
+ /**
1109
+ * Batch over two equally-sized arrays of prices. Returns one `f64` per
1110
+ * input position (`NaN` during warmup).
1111
+ */
1112
+ batch(a: Float64Array, b: Float64Array): Float64Array;
1113
+ isReady(): boolean;
1114
+ constructor(period: number, lag: number);
1115
+ reset(): void;
1116
+ update(a: number, b: number): number | undefined;
1117
+ warmupPeriod(): number;
1118
+ }
1119
+
1047
1120
  export class GravestoneDoji {
1048
1121
  free(): void;
1049
1122
  [Symbol.dispose](): void;
@@ -1066,6 +1139,40 @@ export class HMA {
1066
1139
  warmupPeriod(): number;
1067
1140
  }
1068
1141
 
1142
+ export class HT_DCPHASE {
1143
+ free(): void;
1144
+ [Symbol.dispose](): void;
1145
+ batch(prices: Float64Array): Float64Array;
1146
+ isReady(): boolean;
1147
+ constructor();
1148
+ reset(): void;
1149
+ update(value: number): number | undefined;
1150
+ warmupPeriod(): number;
1151
+ }
1152
+
1153
+ export class HT_PHASOR {
1154
+ free(): void;
1155
+ [Symbol.dispose](): void;
1156
+ /**
1157
+ * Returns a flat `Float64Array` of length `2 * n`: `[inphase0, quad0, ...]`.
1158
+ */
1159
+ batch(prices: Float64Array): Float64Array;
1160
+ constructor();
1161
+ reset(): void;
1162
+ update(value: number): any;
1163
+ }
1164
+
1165
+ export class HT_TRENDMODE {
1166
+ free(): void;
1167
+ [Symbol.dispose](): void;
1168
+ batch(prices: Float64Array): Float64Array;
1169
+ isReady(): boolean;
1170
+ constructor();
1171
+ reset(): void;
1172
+ update(value: number): number | undefined;
1173
+ warmupPeriod(): number;
1174
+ }
1175
+
1069
1176
  export class Hammer {
1070
1177
  free(): void;
1071
1178
  [Symbol.dispose](): void;
@@ -1382,6 +1489,24 @@ export class KagiBars {
1382
1489
  update(close: number): Array<any>;
1383
1490
  }
1384
1491
 
1492
+ export class KalmanHedgeRatio {
1493
+ free(): void;
1494
+ [Symbol.dispose](): void;
1495
+ /**
1496
+ * Flat `Float64Array` of length `3 * n`:
1497
+ * `[hedgeRatio0, intercept0, spread0, hedgeRatio1, ...]`. Warmup rows are NaN.
1498
+ */
1499
+ batch(a: Float64Array, b: Float64Array): Float64Array;
1500
+ isReady(): boolean;
1501
+ constructor(delta: number, observation_var: number);
1502
+ reset(): void;
1503
+ /**
1504
+ * Returns `{ hedgeRatio, intercept, spread }`, or `null` during warmup.
1505
+ */
1506
+ update(a: number, b: number): any;
1507
+ warmupPeriod(): number;
1508
+ }
1509
+
1385
1510
  export class KellyCriterion {
1386
1511
  free(): void;
1387
1512
  [Symbol.dispose](): void;
@@ -1450,6 +1575,17 @@ export class KylesLambda {
1450
1575
  warmupPeriod(): number;
1451
1576
  }
1452
1577
 
1578
+ export class LINEARREG_INTERCEPT {
1579
+ free(): void;
1580
+ [Symbol.dispose](): void;
1581
+ batch(prices: Float64Array): Float64Array;
1582
+ isReady(): boolean;
1583
+ constructor(period: number);
1584
+ reset(): void;
1585
+ update(value: number): number | undefined;
1586
+ warmupPeriod(): number;
1587
+ }
1588
+
1453
1589
  export class LadderBottom {
1454
1590
  free(): void;
1455
1591
  [Symbol.dispose](): void;
@@ -1591,6 +1727,33 @@ export class MACD {
1591
1727
  update(value: number): any;
1592
1728
  }
1593
1729
 
1730
+ export class MACDEXT {
1731
+ free(): void;
1732
+ [Symbol.dispose](): void;
1733
+ /**
1734
+ * Returns a flat `Float64Array` of length `3 * n`: `[macd0, sig0, hist0, ...]`.
1735
+ */
1736
+ batch(prices: Float64Array): Float64Array;
1737
+ /**
1738
+ * Moving-average types are TA-Lib `MA_Type` codes `0..=5`.
1739
+ */
1740
+ constructor(fast: number, fast_matype: number, slow: number, slow_matype: number, signal: number, signal_matype: number);
1741
+ reset(): void;
1742
+ update(value: number): any;
1743
+ }
1744
+
1745
+ export class MACDFIX {
1746
+ free(): void;
1747
+ [Symbol.dispose](): void;
1748
+ /**
1749
+ * Returns a flat `Float64Array` of length `3 * n`: `[macd0, sig0, hist0, ...]`.
1750
+ */
1751
+ batch(prices: Float64Array): Float64Array;
1752
+ constructor(signal: number);
1753
+ reset(): void;
1754
+ update(value: number): any;
1755
+ }
1756
+
1594
1757
  export class MAMA {
1595
1758
  free(): void;
1596
1759
  [Symbol.dispose](): void;
@@ -1616,6 +1779,44 @@ export class MFI {
1616
1779
  warmupPeriod(): number;
1617
1780
  }
1618
1781
 
1782
+ export class MIDPOINT {
1783
+ free(): void;
1784
+ [Symbol.dispose](): void;
1785
+ batch(prices: Float64Array): Float64Array;
1786
+ isReady(): boolean;
1787
+ constructor(period: number);
1788
+ reset(): void;
1789
+ update(value: number): number | undefined;
1790
+ warmupPeriod(): number;
1791
+ }
1792
+
1793
+ export class MIDPRICE {
1794
+ free(): void;
1795
+ [Symbol.dispose](): void;
1796
+ batch(high: Float64Array, low: Float64Array, close: Float64Array): Float64Array;
1797
+ constructor(period: number);
1798
+ reset(): void;
1799
+ update(high: number, low: number, close: number): number | undefined;
1800
+ }
1801
+
1802
+ export class MINUS_DI {
1803
+ free(): void;
1804
+ [Symbol.dispose](): void;
1805
+ batch(high: Float64Array, low: Float64Array, close: Float64Array): Float64Array;
1806
+ constructor(period: number);
1807
+ reset(): void;
1808
+ update(high: number, low: number, close: number): number | undefined;
1809
+ }
1810
+
1811
+ export class MINUS_DM {
1812
+ free(): void;
1813
+ [Symbol.dispose](): void;
1814
+ batch(high: Float64Array, low: Float64Array, close: Float64Array): Float64Array;
1815
+ constructor(period: number);
1816
+ reset(): void;
1817
+ update(high: number, low: number, close: number): number | undefined;
1818
+ }
1819
+
1619
1820
  export class MOM {
1620
1821
  free(): void;
1621
1822
  [Symbol.dispose](): void;
@@ -1903,6 +2104,21 @@ export class OrderBookImbalanceTopN {
1903
2104
  warmupPeriod(): number;
1904
2105
  }
1905
2106
 
2107
+ export class OuHalfLife {
2108
+ free(): void;
2109
+ [Symbol.dispose](): void;
2110
+ /**
2111
+ * Batch over two equally-sized arrays. Returns one `f64` per
2112
+ * input position (`NaN` during warmup).
2113
+ */
2114
+ batch(x: Float64Array, y: Float64Array): Float64Array;
2115
+ isReady(): boolean;
2116
+ constructor(period: number);
2117
+ reset(): void;
2118
+ update(x: number, y: number): number | undefined;
2119
+ warmupPeriod(): number;
2120
+ }
2121
+
1906
2122
  export class PGO {
1907
2123
  free(): void;
1908
2124
  [Symbol.dispose](): void;
@@ -1914,6 +2130,24 @@ export class PGO {
1914
2130
  warmupPeriod(): number;
1915
2131
  }
1916
2132
 
2133
+ export class PLUS_DI {
2134
+ free(): void;
2135
+ [Symbol.dispose](): void;
2136
+ batch(high: Float64Array, low: Float64Array, close: Float64Array): Float64Array;
2137
+ constructor(period: number);
2138
+ reset(): void;
2139
+ update(high: number, low: number, close: number): number | undefined;
2140
+ }
2141
+
2142
+ export class PLUS_DM {
2143
+ free(): void;
2144
+ [Symbol.dispose](): void;
2145
+ batch(high: Float64Array, low: Float64Array, close: Float64Array): Float64Array;
2146
+ constructor(period: number);
2147
+ reset(): void;
2148
+ update(high: number, low: number, close: number): number | undefined;
2149
+ }
2150
+
1917
2151
  export class PMO {
1918
2152
  free(): void;
1919
2153
  [Symbol.dispose](): void;
@@ -2100,6 +2334,39 @@ export class ROC {
2100
2334
  warmupPeriod(): number;
2101
2335
  }
2102
2336
 
2337
+ export class ROCP {
2338
+ free(): void;
2339
+ [Symbol.dispose](): void;
2340
+ batch(prices: Float64Array): Float64Array;
2341
+ isReady(): boolean;
2342
+ constructor(period: number);
2343
+ reset(): void;
2344
+ update(value: number): number | undefined;
2345
+ warmupPeriod(): number;
2346
+ }
2347
+
2348
+ export class ROCR {
2349
+ free(): void;
2350
+ [Symbol.dispose](): void;
2351
+ batch(prices: Float64Array): Float64Array;
2352
+ isReady(): boolean;
2353
+ constructor(period: number);
2354
+ reset(): void;
2355
+ update(value: number): number | undefined;
2356
+ warmupPeriod(): number;
2357
+ }
2358
+
2359
+ export class ROCR100 {
2360
+ free(): void;
2361
+ [Symbol.dispose](): void;
2362
+ batch(prices: Float64Array): Float64Array;
2363
+ isReady(): boolean;
2364
+ constructor(period: number);
2365
+ reset(): void;
2366
+ update(value: number): number | undefined;
2367
+ warmupPeriod(): number;
2368
+ }
2369
+
2103
2370
  export class RSI {
2104
2371
  free(): void;
2105
2372
  [Symbol.dispose](): void;
@@ -2250,6 +2517,36 @@ export class RogersSatchellVolatility {
2250
2517
  warmupPeriod(): number;
2251
2518
  }
2252
2519
 
2520
+ export class RollingCorrelation {
2521
+ free(): void;
2522
+ [Symbol.dispose](): void;
2523
+ /**
2524
+ * Batch over two equally-sized arrays. Returns one `f64` per
2525
+ * input position (`NaN` during warmup).
2526
+ */
2527
+ batch(x: Float64Array, y: Float64Array): Float64Array;
2528
+ isReady(): boolean;
2529
+ constructor(period: number);
2530
+ reset(): void;
2531
+ update(x: number, y: number): number | undefined;
2532
+ warmupPeriod(): number;
2533
+ }
2534
+
2535
+ export class RollingCovariance {
2536
+ free(): void;
2537
+ [Symbol.dispose](): void;
2538
+ /**
2539
+ * Batch over two equally-sized arrays. Returns one `f64` per
2540
+ * input position (`NaN` during warmup).
2541
+ */
2542
+ batch(x: Float64Array, y: Float64Array): Float64Array;
2543
+ isReady(): boolean;
2544
+ constructor(period: number);
2545
+ reset(): void;
2546
+ update(x: number, y: number): number | undefined;
2547
+ warmupPeriod(): number;
2548
+ }
2549
+
2253
2550
  export class RollingVWAP {
2254
2551
  free(): void;
2255
2552
  [Symbol.dispose](): void;
@@ -2273,6 +2570,15 @@ export class RoofingFilter {
2273
2570
  warmupPeriod(): number;
2274
2571
  }
2275
2572
 
2573
+ export class SAREXT {
2574
+ free(): void;
2575
+ [Symbol.dispose](): void;
2576
+ batch(high: Float64Array, low: Float64Array, close: Float64Array): Float64Array;
2577
+ constructor(start_value: number, offset_on_reverse: number, accel_init_long: number, accel_long: number, accel_max_long: number, accel_init_short: number, accel_short: number, accel_max_short: number);
2578
+ reset(): void;
2579
+ update(high: number, low: number, close: number): number | undefined;
2580
+ }
2581
+
2276
2582
  export class SMA {
2277
2583
  free(): void;
2278
2584
  [Symbol.dispose](): void;
@@ -2431,6 +2737,39 @@ export class SpinningTop {
2431
2737
  warmupPeriod(): number;
2432
2738
  }
2433
2739
 
2740
+ export class SpreadBollingerBands {
2741
+ free(): void;
2742
+ [Symbol.dispose](): void;
2743
+ /**
2744
+ * Flat `Float64Array` of length `4 * n`:
2745
+ * `[middle0, upper0, lower0, percentB0, middle1, ...]`. Warmup rows are NaN.
2746
+ */
2747
+ batch(a: Float64Array, b: Float64Array): Float64Array;
2748
+ isReady(): boolean;
2749
+ constructor(period: number, num_std: number);
2750
+ reset(): void;
2751
+ /**
2752
+ * Returns `{ middle, upper, lower, percentB }`, or `null` during warmup.
2753
+ */
2754
+ update(a: number, b: number): any;
2755
+ warmupPeriod(): number;
2756
+ }
2757
+
2758
+ export class SpreadHurst {
2759
+ free(): void;
2760
+ [Symbol.dispose](): void;
2761
+ /**
2762
+ * Batch over two equally-sized arrays. Returns one `f64` per
2763
+ * input position (`NaN` during warmup).
2764
+ */
2765
+ batch(x: Float64Array, y: Float64Array): Float64Array;
2766
+ isReady(): boolean;
2767
+ constructor(period: number);
2768
+ reset(): void;
2769
+ update(x: number, y: number): number | undefined;
2770
+ warmupPeriod(): number;
2771
+ }
2772
+
2434
2773
  export class StalledPattern {
2435
2774
  free(): void;
2436
2775
  [Symbol.dispose](): void;
@@ -2773,6 +3112,17 @@ export class TRIX {
2773
3112
  warmupPeriod(): number;
2774
3113
  }
2775
3114
 
3115
+ export class TSF {
3116
+ free(): void;
3117
+ [Symbol.dispose](): void;
3118
+ batch(prices: Float64Array): Float64Array;
3119
+ isReady(): boolean;
3120
+ constructor(period: number);
3121
+ reset(): void;
3122
+ update(value: number): number | undefined;
3123
+ warmupPeriod(): number;
3124
+ }
3125
+
2776
3126
  export class TSI {
2777
3127
  free(): void;
2778
3128
  [Symbol.dispose](): void;
@@ -3119,6 +3469,21 @@ export class Variance {
3119
3469
  warmupPeriod(): number;
3120
3470
  }
3121
3471
 
3472
+ export class VarianceRatio {
3473
+ free(): void;
3474
+ [Symbol.dispose](): void;
3475
+ /**
3476
+ * Batch over two equally-sized arrays of prices. Returns one `f64` per
3477
+ * input position (`NaN` during warmup).
3478
+ */
3479
+ batch(a: Float64Array, b: Float64Array): Float64Array;
3480
+ isReady(): boolean;
3481
+ constructor(period: number, q: number);
3482
+ reset(): void;
3483
+ update(a: number, b: number): number | undefined;
3484
+ warmupPeriod(): number;
3485
+ }
3486
+
3122
3487
  export class VerticalHorizontalFilter {
3123
3488
  free(): void;
3124
3489
  [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, 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, 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, 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, LadderBottom, LaguerreRSI, LeadLagCrossCorrelation, LinRegAngle, LinRegChannel, LinRegSlope, LinearRegression, LiquidationFeatures, LongLeggedDoji, LongLine, LongShortRatio, MACD, MAMA, MFI, 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, PMO, PPO, PSAR, PVI, PainIndex, PairSpreadZScore, PairwiseBeta, ParkinsonVolatility, PearsonCorrelation, PercentB, PercentageTrailingStop, PiercingDarkCloud, PointAndFigureBars, ProfitFactor, QuotedSpread, ROC, RSI, RSquared, RVI, RVIVolatility, RWI, RealizedSpread, RecoveryFactor, RelativeStrengthAB, RenkoBars, RenkoTrailingStop, RickshawMan, RisingThreeMethods, RogersSatchellVolatility, RollingVWAP, RoofingFilter, 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, 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, AccelerationBands, AcceleratorOscillator, AdaptiveCycle, AdvanceBlock, AdvanceDecline, Alligator, Alpha, AnchoredRSI, AnchoredVWAP, Aroon, AroonOscillator, AtrBands, AtrTrailingStop, Autocorrelation, AverageDrawdown, AwesomeOscillator, AwesomeOscillatorHistogram, BalanceOfPower, BeltHold, Beta, BetaNeutralSpread, 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, 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, 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, McGinleyDynamic, MedianAbsoluteDeviation, MedianPrice, Microprice, MorningDojiStar, MorningEveningStar, NATR, NVI, 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, 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, TpoProfile, TradeImbalance, TreynorRatio, TrueRange, TtmSqueeze, Tweezer, TwoCrows, TypicalPrice, UlcerIndex, UltimateOscillator, UniqueThreeRiver, 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";