wickra-wasm 0.4.1 → 0.4.2

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://wickra.org/og-banner.webp" 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=227" 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 219 indicators; start at the
50
+ every one of the 227 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
- 219 streaming-first indicators across sixteen families. Every one passes the
138
+ 227 streaming-first indicators across seventeen 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).
@@ -156,9 +156,16 @@ warmup) at [docs.wickra.org](https://docs.wickra.org/Indicators-Overview).
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 |
158
158
  | 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 |
159
+ | Microstructure | Order-Book Imbalance (Top-1 / Top-N / Full), Microprice, Quoted Spread, Signed Volume, Cumulative Volume Delta, Trade Imbalance |
159
160
  | Market Profile | Value Area (POC / VAH / VAL), Initial Balance, Opening Range |
160
161
  | 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) |
161
162
 
163
+ Every candlestick pattern emits a signed per-bar value — `+1.0` bullish,
164
+ `−1.0` bearish, `0.0` none — so the family drops straight into a feature matrix
165
+ as one column each. `Doji` is direction-less by default (`+1.0` / `0.0`);
166
+ construct it in signed mode (`Doji::new().signed()`, `Doji(signed=True)`,
167
+ `new Doji(true)`) for a dragonfly / gravestone `±1` reading.
168
+
162
169
  Adding a new indicator means implementing one trait in Rust; all four bindings
163
170
  inherit it automatically.
164
171
 
@@ -230,7 +237,7 @@ A Python live-trading example using the public `websockets` package lives at
230
237
  ```
231
238
  wickra/
232
239
  ├── crates/
233
- │ ├── wickra-core/ core engine + all 219 indicators
240
+ │ ├── wickra-core/ core engine + all 227 indicators
234
241
  │ ├── wickra/ top-level facade crate (publishes on crates.io) + benches/
235
242
  │ └── wickra-data/ CSV reader, tick aggregator, live exchange feeds
236
243
  ├── 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.1",
8
+ "version": "0.4.2",
9
9
  "license": "PolyForm-Noncommercial-1.0.0",
10
10
  "repository": {
11
11
  "type": "git",
package/wickra_wasm.d.ts CHANGED
@@ -483,6 +483,16 @@ export class Coppock {
483
483
  warmupPeriod(): number;
484
484
  }
485
485
 
486
+ export class CumulativeVolumeDelta {
487
+ free(): void;
488
+ [Symbol.dispose](): void;
489
+ isReady(): boolean;
490
+ constructor();
491
+ reset(): void;
492
+ update(price: number, size: number, is_buy: boolean): number | undefined;
493
+ warmupPeriod(): number;
494
+ }
495
+
486
496
  export class CyberneticCycle {
487
497
  free(): void;
488
498
  [Symbol.dispose](): void;
@@ -574,7 +584,8 @@ export class Doji {
574
584
  [Symbol.dispose](): void;
575
585
  batch(open: Float64Array, high: Float64Array, low: Float64Array, close: Float64Array): Float64Array;
576
586
  isReady(): boolean;
577
- constructor();
587
+ isSigned(): boolean;
588
+ constructor(signed?: boolean | null);
578
589
  reset(): void;
579
590
  update(open: number, high: number, low: number, close: number): number | undefined;
580
591
  warmupPeriod(): number;
@@ -1291,6 +1302,16 @@ export class MedianPrice {
1291
1302
  update(high: number, low: number): number | undefined;
1292
1303
  }
1293
1304
 
1305
+ export class Microprice {
1306
+ free(): void;
1307
+ [Symbol.dispose](): void;
1308
+ isReady(): boolean;
1309
+ constructor();
1310
+ reset(): void;
1311
+ update(bid_px: Float64Array, bid_sz: Float64Array, ask_px: Float64Array, ask_sz: Float64Array): number | undefined;
1312
+ warmupPeriod(): number;
1313
+ }
1314
+
1294
1315
  export class MorningEveningStar {
1295
1316
  free(): void;
1296
1317
  [Symbol.dispose](): void;
@@ -1357,6 +1378,36 @@ export class OpeningRange {
1357
1378
  warmupPeriod(): number;
1358
1379
  }
1359
1380
 
1381
+ export class OrderBookImbalanceFull {
1382
+ free(): void;
1383
+ [Symbol.dispose](): void;
1384
+ isReady(): boolean;
1385
+ constructor();
1386
+ reset(): void;
1387
+ update(bid_px: Float64Array, bid_sz: Float64Array, ask_px: Float64Array, ask_sz: Float64Array): number | undefined;
1388
+ warmupPeriod(): number;
1389
+ }
1390
+
1391
+ export class OrderBookImbalanceTop1 {
1392
+ free(): void;
1393
+ [Symbol.dispose](): void;
1394
+ isReady(): boolean;
1395
+ constructor();
1396
+ reset(): void;
1397
+ update(bid_px: Float64Array, bid_sz: Float64Array, ask_px: Float64Array, ask_sz: Float64Array): number | undefined;
1398
+ warmupPeriod(): number;
1399
+ }
1400
+
1401
+ export class OrderBookImbalanceTopN {
1402
+ free(): void;
1403
+ [Symbol.dispose](): void;
1404
+ isReady(): boolean;
1405
+ constructor(levels: number);
1406
+ reset(): void;
1407
+ update(bid_px: Float64Array, bid_sz: Float64Array, ask_px: Float64Array, ask_sz: Float64Array): number | undefined;
1408
+ warmupPeriod(): number;
1409
+ }
1410
+
1360
1411
  export class PGO {
1361
1412
  free(): void;
1362
1413
  [Symbol.dispose](): void;
@@ -1519,6 +1570,16 @@ export class ProfitFactor {
1519
1570
  warmupPeriod(): number;
1520
1571
  }
1521
1572
 
1573
+ export class QuotedSpread {
1574
+ free(): void;
1575
+ [Symbol.dispose](): void;
1576
+ isReady(): boolean;
1577
+ constructor();
1578
+ reset(): void;
1579
+ update(bid_px: Float64Array, bid_sz: Float64Array, ask_px: Float64Array, ask_sz: Float64Array): number | undefined;
1580
+ warmupPeriod(): number;
1581
+ }
1582
+
1522
1583
  export class ROC {
1523
1584
  free(): void;
1524
1585
  [Symbol.dispose](): void;
@@ -1724,6 +1785,16 @@ export class ShootingStar {
1724
1785
  warmupPeriod(): number;
1725
1786
  }
1726
1787
 
1788
+ export class SignedVolume {
1789
+ free(): void;
1790
+ [Symbol.dispose](): void;
1791
+ isReady(): boolean;
1792
+ constructor();
1793
+ reset(): void;
1794
+ update(price: number, size: number, is_buy: boolean): number | undefined;
1795
+ warmupPeriod(): number;
1796
+ }
1797
+
1727
1798
  export class SineWave {
1728
1799
  free(): void;
1729
1800
  [Symbol.dispose](): void;
@@ -2157,6 +2228,16 @@ export class ThreeSoldiersOrCrows {
2157
2228
  warmupPeriod(): number;
2158
2229
  }
2159
2230
 
2231
+ export class TradeImbalance {
2232
+ free(): void;
2233
+ [Symbol.dispose](): void;
2234
+ isReady(): boolean;
2235
+ constructor(window: number);
2236
+ reset(): void;
2237
+ update(price: number, size: number, is_buy: boolean): number | undefined;
2238
+ warmupPeriod(): number;
2239
+ }
2240
+
2160
2241
  export class TreynorRatio {
2161
2242
  free(): void;
2162
2243
  [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, AccelerationBands, AcceleratorOscillator, AdaptiveCycle, Alligator, Alpha, AnchoredVWAP, Aroon, AroonOscillator, AtrBands, AtrTrailingStop, Autocorrelation, AverageDrawdown, AwesomeOscillator, AwesomeOscillatorHistogram, BalanceOfPower, Beta, BollingerBands, BollingerBandwidth, CCI, CFO, CMO, CalmarRatio, Camarilla, CenterOfGravity, ChaikinMoneyFlow, ChaikinOscillator, ChaikinVolatility, ChandeKrollStop, ChandelierExit, ChoppinessIndex, ClassicPivots, CoefficientOfVariation, Cointegration, ConditionalValueAtRisk, ConnorsRSI, Coppock, CyberneticCycle, DEMA, DPO, Decycler, DecyclerOscillator, DemandIndex, DemarkPivots, DetrendedStdDev, Doji, Donchian, DonchianStop, DoubleBollinger, DrawdownDuration, EMA, EVWMA, EaseOfMovement, EhlersStochastic, ElderImpulse, EmpiricalModeDecomposition, Engulfing, FAMA, FRAMA, FibonacciPivots, FisherTransform, ForceIndex, FractalChaosBands, GainLossRatio, GarmanKlassVolatility, HMA, Hammer, HangingMan, Harami, HeikinAshi, HiLoActivator, HilbertDominantCycle, HistoricalVolatility, HurstChannel, HurstExponent, Ichimoku, Inertia, InformationRatio, InitialBalance, InstantaneousTrendline, InverseFisherTransform, InvertedHammer, JMA, KAMA, KST, KVO, KellyCriterion, Keltner, Kurtosis, LaguerreRSI, LeadLagCrossCorrelation, LinRegAngle, LinRegChannel, LinRegSlope, LinearRegression, MACD, MAMA, MFI, MOM, MaEnvelope, MarketFacilitationIndex, Marubozu, MassIndex, MaxDrawdown, McGinleyDynamic, MedianAbsoluteDeviation, MedianPrice, MorningEveningStar, NATR, NVI, OBV, OmegaRatio, OpeningRange, PGO, PMO, PPO, PSAR, PVI, PainIndex, PairSpreadZScore, PairwiseBeta, ParkinsonVolatility, PearsonCorrelation, PercentB, PercentageTrailingStop, PiercingDarkCloud, ProfitFactor, ROC, RSI, RSquared, RVI, RVIVolatility, RWI, RecoveryFactor, RelativeStrengthAB, RenkoTrailingStop, RogersSatchellVolatility, RollingVWAP, RoofingFilter, SMA, SMI, SMMA, STC, SharpeRatio, ShootingStar, SineWave, Skewness, SortinoRatio, SpearmanCorrelation, SpinningTop, StandardError, StandardErrorBands, StarcBands, StdDev, StepTrailingStop, StochRSI, Stochastic, SuperSmoother, SuperTrend, T3, TDCombo, TDCountdown, TDDeMarker, TDDifferential, TDLines, TDOpen, TDPressure, TDREI, TDRangeProjection, TDRiskLevel, TDSequential, TDSetup, TEMA, TII, TRIMA, TRIX, TSI, TSV, ThreeInside, ThreeOutside, ThreeSoldiersOrCrows, TreynorRatio, TrueRange, TtmSqueeze, Tweezer, TypicalPrice, UlcerIndex, UltimateOscillator, VIDYA, VWAP, VWMA, VZO, ValueArea, ValueAtRisk, Variance, VerticalHorizontalFilter, VoltyStop, VolumeOscillator, VolumePriceTrend, Vortex, VwapStdDevBands, WMA, WaveTrend, WeightedClose, WilliamsAD, WilliamsFractals, WilliamsR, WoodiePivots, YangZhangVolatility, YoyoExit, ZLEMA, ZScore, ZeroLagMACD, ZigZag, installPanicHook, version
8
+ ADL, ADX, ADXR, ALMA, APO, ATR, AccelerationBands, AcceleratorOscillator, AdaptiveCycle, Alligator, Alpha, AnchoredVWAP, Aroon, AroonOscillator, AtrBands, AtrTrailingStop, Autocorrelation, AverageDrawdown, AwesomeOscillator, AwesomeOscillatorHistogram, BalanceOfPower, Beta, BollingerBands, BollingerBandwidth, CCI, CFO, CMO, CalmarRatio, Camarilla, CenterOfGravity, ChaikinMoneyFlow, ChaikinOscillator, ChaikinVolatility, ChandeKrollStop, ChandelierExit, ChoppinessIndex, ClassicPivots, CoefficientOfVariation, Cointegration, ConditionalValueAtRisk, ConnorsRSI, Coppock, CumulativeVolumeDelta, CyberneticCycle, DEMA, DPO, Decycler, DecyclerOscillator, DemandIndex, DemarkPivots, DetrendedStdDev, Doji, Donchian, DonchianStop, DoubleBollinger, DrawdownDuration, EMA, EVWMA, EaseOfMovement, EhlersStochastic, ElderImpulse, EmpiricalModeDecomposition, Engulfing, FAMA, FRAMA, FibonacciPivots, FisherTransform, ForceIndex, FractalChaosBands, GainLossRatio, GarmanKlassVolatility, HMA, Hammer, HangingMan, Harami, HeikinAshi, HiLoActivator, HilbertDominantCycle, HistoricalVolatility, HurstChannel, HurstExponent, Ichimoku, Inertia, InformationRatio, InitialBalance, InstantaneousTrendline, InverseFisherTransform, InvertedHammer, JMA, KAMA, KST, KVO, KellyCriterion, Keltner, Kurtosis, LaguerreRSI, LeadLagCrossCorrelation, LinRegAngle, LinRegChannel, LinRegSlope, LinearRegression, MACD, MAMA, MFI, MOM, MaEnvelope, MarketFacilitationIndex, Marubozu, MassIndex, MaxDrawdown, McGinleyDynamic, MedianAbsoluteDeviation, MedianPrice, Microprice, MorningEveningStar, NATR, NVI, OBV, OmegaRatio, OpeningRange, OrderBookImbalanceFull, OrderBookImbalanceTop1, OrderBookImbalanceTopN, PGO, PMO, PPO, PSAR, PVI, PainIndex, PairSpreadZScore, PairwiseBeta, ParkinsonVolatility, PearsonCorrelation, PercentB, PercentageTrailingStop, PiercingDarkCloud, ProfitFactor, QuotedSpread, ROC, RSI, RSquared, RVI, RVIVolatility, RWI, RecoveryFactor, RelativeStrengthAB, RenkoTrailingStop, RogersSatchellVolatility, RollingVWAP, RoofingFilter, SMA, SMI, SMMA, STC, SharpeRatio, ShootingStar, SignedVolume, SineWave, Skewness, SortinoRatio, SpearmanCorrelation, SpinningTop, StandardError, StandardErrorBands, StarcBands, StdDev, StepTrailingStop, StochRSI, Stochastic, SuperSmoother, SuperTrend, T3, TDCombo, TDCountdown, TDDeMarker, TDDifferential, TDLines, TDOpen, TDPressure, TDREI, TDRangeProjection, TDRiskLevel, TDSequential, TDSetup, TEMA, TII, TRIMA, TRIX, TSI, TSV, ThreeInside, ThreeOutside, ThreeSoldiersOrCrows, TradeImbalance, TreynorRatio, TrueRange, TtmSqueeze, Tweezer, TypicalPrice, UlcerIndex, UltimateOscillator, VIDYA, VWAP, VWMA, VZO, ValueArea, ValueAtRisk, Variance, VerticalHorizontalFilter, VoltyStop, VolumeOscillator, VolumePriceTrend, Vortex, VwapStdDevBands, WMA, WaveTrend, WeightedClose, WilliamsAD, WilliamsFractals, WilliamsR, WoodiePivots, YangZhangVolatility, YoyoExit, ZLEMA, ZScore, ZeroLagMACD, ZigZag, installPanicHook, version
9
9
  } from "./wickra_wasm_bg.js";
package/wickra_wasm_bg.js CHANGED
@@ -3548,6 +3548,65 @@ export class Coppock {
3548
3548
  }
3549
3549
  if (Symbol.dispose) Coppock.prototype[Symbol.dispose] = Coppock.prototype.free;
3550
3550
 
3551
+ export class CumulativeVolumeDelta {
3552
+ __destroy_into_raw() {
3553
+ const ptr = this.__wbg_ptr;
3554
+ this.__wbg_ptr = 0;
3555
+ CumulativeVolumeDeltaFinalization.unregister(this);
3556
+ return ptr;
3557
+ }
3558
+ free() {
3559
+ const ptr = this.__destroy_into_raw();
3560
+ wasm.__wbg_cumulativevolumedelta_free(ptr, 0);
3561
+ }
3562
+ /**
3563
+ * @returns {boolean}
3564
+ */
3565
+ isReady() {
3566
+ const ret = wasm.cumulativevolumedelta_isReady(this.__wbg_ptr);
3567
+ return ret !== 0;
3568
+ }
3569
+ constructor() {
3570
+ const ret = wasm.cumulativevolumedelta_new();
3571
+ this.__wbg_ptr = ret;
3572
+ CumulativeVolumeDeltaFinalization.register(this, this.__wbg_ptr, this);
3573
+ return this;
3574
+ }
3575
+ reset() {
3576
+ wasm.cumulativevolumedelta_reset(this.__wbg_ptr);
3577
+ }
3578
+ /**
3579
+ * @param {number} price
3580
+ * @param {number} size
3581
+ * @param {boolean} is_buy
3582
+ * @returns {number | undefined}
3583
+ */
3584
+ update(price, size, is_buy) {
3585
+ try {
3586
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-32);
3587
+ wasm.cumulativevolumedelta_update(retptr, this.__wbg_ptr, price, size, is_buy);
3588
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
3589
+ var r2 = getDataViewMemory0().getFloat64(retptr + 8 * 1, true);
3590
+ var r4 = getDataViewMemory0().getInt32(retptr + 4 * 4, true);
3591
+ var r5 = getDataViewMemory0().getInt32(retptr + 4 * 5, true);
3592
+ if (r5) {
3593
+ throw takeObject(r4);
3594
+ }
3595
+ return r0 === 0 ? undefined : r2;
3596
+ } finally {
3597
+ wasm.__wbindgen_add_to_stack_pointer(32);
3598
+ }
3599
+ }
3600
+ /**
3601
+ * @returns {number}
3602
+ */
3603
+ warmupPeriod() {
3604
+ const ret = wasm.cumulativevolumedelta_warmupPeriod(this.__wbg_ptr);
3605
+ return ret >>> 0;
3606
+ }
3607
+ }
3608
+ if (Symbol.dispose) CumulativeVolumeDelta.prototype[Symbol.dispose] = CumulativeVolumeDelta.prototype.free;
3609
+
3551
3610
  export class CyberneticCycle {
3552
3611
  __destroy_into_raw() {
3553
3612
  const ptr = this.__wbg_ptr;
@@ -4232,8 +4291,18 @@ export class Doji {
4232
4291
  const ret = wasm.doji_isReady(this.__wbg_ptr);
4233
4292
  return ret !== 0;
4234
4293
  }
4235
- constructor() {
4236
- const ret = wasm.doji_new();
4294
+ /**
4295
+ * @returns {boolean}
4296
+ */
4297
+ isSigned() {
4298
+ const ret = wasm.doji_isSigned(this.__wbg_ptr);
4299
+ return ret !== 0;
4300
+ }
4301
+ /**
4302
+ * @param {boolean | null} [signed]
4303
+ */
4304
+ constructor(signed) {
4305
+ const ret = wasm.doji_new(isLikeNone(signed) ? 0xFFFFFF : signed ? 1 : 0);
4237
4306
  this.__wbg_ptr = ret;
4238
4307
  DojiFinalization.register(this, this.__wbg_ptr, this);
4239
4308
  return this;
@@ -9291,6 +9360,74 @@ export class MedianPrice {
9291
9360
  }
9292
9361
  if (Symbol.dispose) MedianPrice.prototype[Symbol.dispose] = MedianPrice.prototype.free;
9293
9362
 
9363
+ export class Microprice {
9364
+ __destroy_into_raw() {
9365
+ const ptr = this.__wbg_ptr;
9366
+ this.__wbg_ptr = 0;
9367
+ MicropriceFinalization.unregister(this);
9368
+ return ptr;
9369
+ }
9370
+ free() {
9371
+ const ptr = this.__destroy_into_raw();
9372
+ wasm.__wbg_microprice_free(ptr, 0);
9373
+ }
9374
+ /**
9375
+ * @returns {boolean}
9376
+ */
9377
+ isReady() {
9378
+ const ret = wasm.microprice_isReady(this.__wbg_ptr);
9379
+ return ret !== 0;
9380
+ }
9381
+ constructor() {
9382
+ const ret = wasm.microprice_new();
9383
+ this.__wbg_ptr = ret;
9384
+ MicropriceFinalization.register(this, this.__wbg_ptr, this);
9385
+ return this;
9386
+ }
9387
+ reset() {
9388
+ wasm.microprice_reset(this.__wbg_ptr);
9389
+ }
9390
+ /**
9391
+ * @param {Float64Array} bid_px
9392
+ * @param {Float64Array} bid_sz
9393
+ * @param {Float64Array} ask_px
9394
+ * @param {Float64Array} ask_sz
9395
+ * @returns {number | undefined}
9396
+ */
9397
+ update(bid_px, bid_sz, ask_px, ask_sz) {
9398
+ try {
9399
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-32);
9400
+ const ptr0 = passArrayF64ToWasm0(bid_px, wasm.__wbindgen_export3);
9401
+ const len0 = WASM_VECTOR_LEN;
9402
+ const ptr1 = passArrayF64ToWasm0(bid_sz, wasm.__wbindgen_export3);
9403
+ const len1 = WASM_VECTOR_LEN;
9404
+ const ptr2 = passArrayF64ToWasm0(ask_px, wasm.__wbindgen_export3);
9405
+ const len2 = WASM_VECTOR_LEN;
9406
+ const ptr3 = passArrayF64ToWasm0(ask_sz, wasm.__wbindgen_export3);
9407
+ const len3 = WASM_VECTOR_LEN;
9408
+ wasm.microprice_update(retptr, this.__wbg_ptr, ptr0, len0, ptr1, len1, ptr2, len2, ptr3, len3);
9409
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
9410
+ var r2 = getDataViewMemory0().getFloat64(retptr + 8 * 1, true);
9411
+ var r4 = getDataViewMemory0().getInt32(retptr + 4 * 4, true);
9412
+ var r5 = getDataViewMemory0().getInt32(retptr + 4 * 5, true);
9413
+ if (r5) {
9414
+ throw takeObject(r4);
9415
+ }
9416
+ return r0 === 0 ? undefined : r2;
9417
+ } finally {
9418
+ wasm.__wbindgen_add_to_stack_pointer(32);
9419
+ }
9420
+ }
9421
+ /**
9422
+ * @returns {number}
9423
+ */
9424
+ warmupPeriod() {
9425
+ const ret = wasm.microprice_warmupPeriod(this.__wbg_ptr);
9426
+ return ret >>> 0;
9427
+ }
9428
+ }
9429
+ if (Symbol.dispose) Microprice.prototype[Symbol.dispose] = Microprice.prototype.free;
9430
+
9294
9431
  export class MorningEveningStar {
9295
9432
  __destroy_into_raw() {
9296
9433
  const ptr = this.__wbg_ptr;
@@ -9804,6 +9941,224 @@ export class OpeningRange {
9804
9941
  }
9805
9942
  if (Symbol.dispose) OpeningRange.prototype[Symbol.dispose] = OpeningRange.prototype.free;
9806
9943
 
9944
+ export class OrderBookImbalanceFull {
9945
+ __destroy_into_raw() {
9946
+ const ptr = this.__wbg_ptr;
9947
+ this.__wbg_ptr = 0;
9948
+ OrderBookImbalanceFullFinalization.unregister(this);
9949
+ return ptr;
9950
+ }
9951
+ free() {
9952
+ const ptr = this.__destroy_into_raw();
9953
+ wasm.__wbg_orderbookimbalancefull_free(ptr, 0);
9954
+ }
9955
+ /**
9956
+ * @returns {boolean}
9957
+ */
9958
+ isReady() {
9959
+ const ret = wasm.orderbookimbalancefull_isReady(this.__wbg_ptr);
9960
+ return ret !== 0;
9961
+ }
9962
+ constructor() {
9963
+ const ret = wasm.orderbookimbalancefull_new();
9964
+ this.__wbg_ptr = ret;
9965
+ OrderBookImbalanceFullFinalization.register(this, this.__wbg_ptr, this);
9966
+ return this;
9967
+ }
9968
+ reset() {
9969
+ wasm.orderbookimbalancefull_reset(this.__wbg_ptr);
9970
+ }
9971
+ /**
9972
+ * @param {Float64Array} bid_px
9973
+ * @param {Float64Array} bid_sz
9974
+ * @param {Float64Array} ask_px
9975
+ * @param {Float64Array} ask_sz
9976
+ * @returns {number | undefined}
9977
+ */
9978
+ update(bid_px, bid_sz, ask_px, ask_sz) {
9979
+ try {
9980
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-32);
9981
+ const ptr0 = passArrayF64ToWasm0(bid_px, wasm.__wbindgen_export3);
9982
+ const len0 = WASM_VECTOR_LEN;
9983
+ const ptr1 = passArrayF64ToWasm0(bid_sz, wasm.__wbindgen_export3);
9984
+ const len1 = WASM_VECTOR_LEN;
9985
+ const ptr2 = passArrayF64ToWasm0(ask_px, wasm.__wbindgen_export3);
9986
+ const len2 = WASM_VECTOR_LEN;
9987
+ const ptr3 = passArrayF64ToWasm0(ask_sz, wasm.__wbindgen_export3);
9988
+ const len3 = WASM_VECTOR_LEN;
9989
+ wasm.orderbookimbalancefull_update(retptr, this.__wbg_ptr, ptr0, len0, ptr1, len1, ptr2, len2, ptr3, len3);
9990
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
9991
+ var r2 = getDataViewMemory0().getFloat64(retptr + 8 * 1, true);
9992
+ var r4 = getDataViewMemory0().getInt32(retptr + 4 * 4, true);
9993
+ var r5 = getDataViewMemory0().getInt32(retptr + 4 * 5, true);
9994
+ if (r5) {
9995
+ throw takeObject(r4);
9996
+ }
9997
+ return r0 === 0 ? undefined : r2;
9998
+ } finally {
9999
+ wasm.__wbindgen_add_to_stack_pointer(32);
10000
+ }
10001
+ }
10002
+ /**
10003
+ * @returns {number}
10004
+ */
10005
+ warmupPeriod() {
10006
+ const ret = wasm.orderbookimbalancefull_warmupPeriod(this.__wbg_ptr);
10007
+ return ret >>> 0;
10008
+ }
10009
+ }
10010
+ if (Symbol.dispose) OrderBookImbalanceFull.prototype[Symbol.dispose] = OrderBookImbalanceFull.prototype.free;
10011
+
10012
+ export class OrderBookImbalanceTop1 {
10013
+ __destroy_into_raw() {
10014
+ const ptr = this.__wbg_ptr;
10015
+ this.__wbg_ptr = 0;
10016
+ OrderBookImbalanceTop1Finalization.unregister(this);
10017
+ return ptr;
10018
+ }
10019
+ free() {
10020
+ const ptr = this.__destroy_into_raw();
10021
+ wasm.__wbg_orderbookimbalancetop1_free(ptr, 0);
10022
+ }
10023
+ /**
10024
+ * @returns {boolean}
10025
+ */
10026
+ isReady() {
10027
+ const ret = wasm.orderbookimbalancetop1_isReady(this.__wbg_ptr);
10028
+ return ret !== 0;
10029
+ }
10030
+ constructor() {
10031
+ const ret = wasm.orderbookimbalancetop1_new();
10032
+ this.__wbg_ptr = ret;
10033
+ OrderBookImbalanceTop1Finalization.register(this, this.__wbg_ptr, this);
10034
+ return this;
10035
+ }
10036
+ reset() {
10037
+ wasm.orderbookimbalancetop1_reset(this.__wbg_ptr);
10038
+ }
10039
+ /**
10040
+ * @param {Float64Array} bid_px
10041
+ * @param {Float64Array} bid_sz
10042
+ * @param {Float64Array} ask_px
10043
+ * @param {Float64Array} ask_sz
10044
+ * @returns {number | undefined}
10045
+ */
10046
+ update(bid_px, bid_sz, ask_px, ask_sz) {
10047
+ try {
10048
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-32);
10049
+ const ptr0 = passArrayF64ToWasm0(bid_px, wasm.__wbindgen_export3);
10050
+ const len0 = WASM_VECTOR_LEN;
10051
+ const ptr1 = passArrayF64ToWasm0(bid_sz, wasm.__wbindgen_export3);
10052
+ const len1 = WASM_VECTOR_LEN;
10053
+ const ptr2 = passArrayF64ToWasm0(ask_px, wasm.__wbindgen_export3);
10054
+ const len2 = WASM_VECTOR_LEN;
10055
+ const ptr3 = passArrayF64ToWasm0(ask_sz, wasm.__wbindgen_export3);
10056
+ const len3 = WASM_VECTOR_LEN;
10057
+ wasm.orderbookimbalancetop1_update(retptr, this.__wbg_ptr, ptr0, len0, ptr1, len1, ptr2, len2, ptr3, len3);
10058
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
10059
+ var r2 = getDataViewMemory0().getFloat64(retptr + 8 * 1, true);
10060
+ var r4 = getDataViewMemory0().getInt32(retptr + 4 * 4, true);
10061
+ var r5 = getDataViewMemory0().getInt32(retptr + 4 * 5, true);
10062
+ if (r5) {
10063
+ throw takeObject(r4);
10064
+ }
10065
+ return r0 === 0 ? undefined : r2;
10066
+ } finally {
10067
+ wasm.__wbindgen_add_to_stack_pointer(32);
10068
+ }
10069
+ }
10070
+ /**
10071
+ * @returns {number}
10072
+ */
10073
+ warmupPeriod() {
10074
+ const ret = wasm.orderbookimbalancetop1_warmupPeriod(this.__wbg_ptr);
10075
+ return ret >>> 0;
10076
+ }
10077
+ }
10078
+ if (Symbol.dispose) OrderBookImbalanceTop1.prototype[Symbol.dispose] = OrderBookImbalanceTop1.prototype.free;
10079
+
10080
+ export class OrderBookImbalanceTopN {
10081
+ __destroy_into_raw() {
10082
+ const ptr = this.__wbg_ptr;
10083
+ this.__wbg_ptr = 0;
10084
+ OrderBookImbalanceTopNFinalization.unregister(this);
10085
+ return ptr;
10086
+ }
10087
+ free() {
10088
+ const ptr = this.__destroy_into_raw();
10089
+ wasm.__wbg_orderbookimbalancetopn_free(ptr, 0);
10090
+ }
10091
+ /**
10092
+ * @returns {boolean}
10093
+ */
10094
+ isReady() {
10095
+ const ret = wasm.orderbookimbalancetopn_isReady(this.__wbg_ptr);
10096
+ return ret !== 0;
10097
+ }
10098
+ /**
10099
+ * @param {number} levels
10100
+ */
10101
+ constructor(levels) {
10102
+ try {
10103
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
10104
+ wasm.orderbookimbalancetopn_new(retptr, levels);
10105
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
10106
+ var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
10107
+ var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);
10108
+ if (r2) {
10109
+ throw takeObject(r1);
10110
+ }
10111
+ this.__wbg_ptr = r0;
10112
+ OrderBookImbalanceTopNFinalization.register(this, this.__wbg_ptr, this);
10113
+ return this;
10114
+ } finally {
10115
+ wasm.__wbindgen_add_to_stack_pointer(16);
10116
+ }
10117
+ }
10118
+ reset() {
10119
+ wasm.orderbookimbalancetopn_reset(this.__wbg_ptr);
10120
+ }
10121
+ /**
10122
+ * @param {Float64Array} bid_px
10123
+ * @param {Float64Array} bid_sz
10124
+ * @param {Float64Array} ask_px
10125
+ * @param {Float64Array} ask_sz
10126
+ * @returns {number | undefined}
10127
+ */
10128
+ update(bid_px, bid_sz, ask_px, ask_sz) {
10129
+ try {
10130
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-32);
10131
+ const ptr0 = passArrayF64ToWasm0(bid_px, wasm.__wbindgen_export3);
10132
+ const len0 = WASM_VECTOR_LEN;
10133
+ const ptr1 = passArrayF64ToWasm0(bid_sz, wasm.__wbindgen_export3);
10134
+ const len1 = WASM_VECTOR_LEN;
10135
+ const ptr2 = passArrayF64ToWasm0(ask_px, wasm.__wbindgen_export3);
10136
+ const len2 = WASM_VECTOR_LEN;
10137
+ const ptr3 = passArrayF64ToWasm0(ask_sz, wasm.__wbindgen_export3);
10138
+ const len3 = WASM_VECTOR_LEN;
10139
+ wasm.orderbookimbalancetopn_update(retptr, this.__wbg_ptr, ptr0, len0, ptr1, len1, ptr2, len2, ptr3, len3);
10140
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
10141
+ var r2 = getDataViewMemory0().getFloat64(retptr + 8 * 1, true);
10142
+ var r4 = getDataViewMemory0().getInt32(retptr + 4 * 4, true);
10143
+ var r5 = getDataViewMemory0().getInt32(retptr + 4 * 5, true);
10144
+ if (r5) {
10145
+ throw takeObject(r4);
10146
+ }
10147
+ return r0 === 0 ? undefined : r2;
10148
+ } finally {
10149
+ wasm.__wbindgen_add_to_stack_pointer(32);
10150
+ }
10151
+ }
10152
+ /**
10153
+ * @returns {number}
10154
+ */
10155
+ warmupPeriod() {
10156
+ const ret = wasm.orderbookimbalancetopn_warmupPeriod(this.__wbg_ptr);
10157
+ return ret >>> 0;
10158
+ }
10159
+ }
10160
+ if (Symbol.dispose) OrderBookImbalanceTopN.prototype[Symbol.dispose] = OrderBookImbalanceTopN.prototype.free;
10161
+
9807
10162
  export class PGO {
9808
10163
  __destroy_into_raw() {
9809
10164
  const ptr = this.__wbg_ptr;
@@ -10989,6 +11344,74 @@ export class ProfitFactor {
10989
11344
  }
10990
11345
  if (Symbol.dispose) ProfitFactor.prototype[Symbol.dispose] = ProfitFactor.prototype.free;
10991
11346
 
11347
+ export class QuotedSpread {
11348
+ __destroy_into_raw() {
11349
+ const ptr = this.__wbg_ptr;
11350
+ this.__wbg_ptr = 0;
11351
+ QuotedSpreadFinalization.unregister(this);
11352
+ return ptr;
11353
+ }
11354
+ free() {
11355
+ const ptr = this.__destroy_into_raw();
11356
+ wasm.__wbg_quotedspread_free(ptr, 0);
11357
+ }
11358
+ /**
11359
+ * @returns {boolean}
11360
+ */
11361
+ isReady() {
11362
+ const ret = wasm.quotedspread_isReady(this.__wbg_ptr);
11363
+ return ret !== 0;
11364
+ }
11365
+ constructor() {
11366
+ const ret = wasm.quotedspread_new();
11367
+ this.__wbg_ptr = ret;
11368
+ QuotedSpreadFinalization.register(this, this.__wbg_ptr, this);
11369
+ return this;
11370
+ }
11371
+ reset() {
11372
+ wasm.quotedspread_reset(this.__wbg_ptr);
11373
+ }
11374
+ /**
11375
+ * @param {Float64Array} bid_px
11376
+ * @param {Float64Array} bid_sz
11377
+ * @param {Float64Array} ask_px
11378
+ * @param {Float64Array} ask_sz
11379
+ * @returns {number | undefined}
11380
+ */
11381
+ update(bid_px, bid_sz, ask_px, ask_sz) {
11382
+ try {
11383
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-32);
11384
+ const ptr0 = passArrayF64ToWasm0(bid_px, wasm.__wbindgen_export3);
11385
+ const len0 = WASM_VECTOR_LEN;
11386
+ const ptr1 = passArrayF64ToWasm0(bid_sz, wasm.__wbindgen_export3);
11387
+ const len1 = WASM_VECTOR_LEN;
11388
+ const ptr2 = passArrayF64ToWasm0(ask_px, wasm.__wbindgen_export3);
11389
+ const len2 = WASM_VECTOR_LEN;
11390
+ const ptr3 = passArrayF64ToWasm0(ask_sz, wasm.__wbindgen_export3);
11391
+ const len3 = WASM_VECTOR_LEN;
11392
+ wasm.quotedspread_update(retptr, this.__wbg_ptr, ptr0, len0, ptr1, len1, ptr2, len2, ptr3, len3);
11393
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
11394
+ var r2 = getDataViewMemory0().getFloat64(retptr + 8 * 1, true);
11395
+ var r4 = getDataViewMemory0().getInt32(retptr + 4 * 4, true);
11396
+ var r5 = getDataViewMemory0().getInt32(retptr + 4 * 5, true);
11397
+ if (r5) {
11398
+ throw takeObject(r4);
11399
+ }
11400
+ return r0 === 0 ? undefined : r2;
11401
+ } finally {
11402
+ wasm.__wbindgen_add_to_stack_pointer(32);
11403
+ }
11404
+ }
11405
+ /**
11406
+ * @returns {number}
11407
+ */
11408
+ warmupPeriod() {
11409
+ const ret = wasm.quotedspread_warmupPeriod(this.__wbg_ptr);
11410
+ return ret >>> 0;
11411
+ }
11412
+ }
11413
+ if (Symbol.dispose) QuotedSpread.prototype[Symbol.dispose] = QuotedSpread.prototype.free;
11414
+
10992
11415
  export class ROC {
10993
11416
  __destroy_into_raw() {
10994
11417
  const ptr = this.__wbg_ptr;
@@ -12488,6 +12911,65 @@ export class ShootingStar {
12488
12911
  }
12489
12912
  if (Symbol.dispose) ShootingStar.prototype[Symbol.dispose] = ShootingStar.prototype.free;
12490
12913
 
12914
+ export class SignedVolume {
12915
+ __destroy_into_raw() {
12916
+ const ptr = this.__wbg_ptr;
12917
+ this.__wbg_ptr = 0;
12918
+ SignedVolumeFinalization.unregister(this);
12919
+ return ptr;
12920
+ }
12921
+ free() {
12922
+ const ptr = this.__destroy_into_raw();
12923
+ wasm.__wbg_signedvolume_free(ptr, 0);
12924
+ }
12925
+ /**
12926
+ * @returns {boolean}
12927
+ */
12928
+ isReady() {
12929
+ const ret = wasm.signedvolume_isReady(this.__wbg_ptr);
12930
+ return ret !== 0;
12931
+ }
12932
+ constructor() {
12933
+ const ret = wasm.signedvolume_new();
12934
+ this.__wbg_ptr = ret;
12935
+ SignedVolumeFinalization.register(this, this.__wbg_ptr, this);
12936
+ return this;
12937
+ }
12938
+ reset() {
12939
+ wasm.signedvolume_reset(this.__wbg_ptr);
12940
+ }
12941
+ /**
12942
+ * @param {number} price
12943
+ * @param {number} size
12944
+ * @param {boolean} is_buy
12945
+ * @returns {number | undefined}
12946
+ */
12947
+ update(price, size, is_buy) {
12948
+ try {
12949
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-32);
12950
+ wasm.signedvolume_update(retptr, this.__wbg_ptr, price, size, is_buy);
12951
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
12952
+ var r2 = getDataViewMemory0().getFloat64(retptr + 8 * 1, true);
12953
+ var r4 = getDataViewMemory0().getInt32(retptr + 4 * 4, true);
12954
+ var r5 = getDataViewMemory0().getInt32(retptr + 4 * 5, true);
12955
+ if (r5) {
12956
+ throw takeObject(r4);
12957
+ }
12958
+ return r0 === 0 ? undefined : r2;
12959
+ } finally {
12960
+ wasm.__wbindgen_add_to_stack_pointer(32);
12961
+ }
12962
+ }
12963
+ /**
12964
+ * @returns {number}
12965
+ */
12966
+ warmupPeriod() {
12967
+ const ret = wasm.signedvolume_warmupPeriod(this.__wbg_ptr);
12968
+ return ret >>> 0;
12969
+ }
12970
+ }
12971
+ if (Symbol.dispose) SignedVolume.prototype[Symbol.dispose] = SignedVolume.prototype.free;
12972
+
12491
12973
  export class SineWave {
12492
12974
  __destroy_into_raw() {
12493
12975
  const ptr = this.__wbg_ptr;
@@ -15616,6 +16098,79 @@ export class ThreeSoldiersOrCrows {
15616
16098
  }
15617
16099
  if (Symbol.dispose) ThreeSoldiersOrCrows.prototype[Symbol.dispose] = ThreeSoldiersOrCrows.prototype.free;
15618
16100
 
16101
+ export class TradeImbalance {
16102
+ __destroy_into_raw() {
16103
+ const ptr = this.__wbg_ptr;
16104
+ this.__wbg_ptr = 0;
16105
+ TradeImbalanceFinalization.unregister(this);
16106
+ return ptr;
16107
+ }
16108
+ free() {
16109
+ const ptr = this.__destroy_into_raw();
16110
+ wasm.__wbg_tradeimbalance_free(ptr, 0);
16111
+ }
16112
+ /**
16113
+ * @returns {boolean}
16114
+ */
16115
+ isReady() {
16116
+ const ret = wasm.tradeimbalance_isReady(this.__wbg_ptr);
16117
+ return ret !== 0;
16118
+ }
16119
+ /**
16120
+ * @param {number} window
16121
+ */
16122
+ constructor(window) {
16123
+ try {
16124
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
16125
+ wasm.tradeimbalance_new(retptr, window);
16126
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
16127
+ var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
16128
+ var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);
16129
+ if (r2) {
16130
+ throw takeObject(r1);
16131
+ }
16132
+ this.__wbg_ptr = r0;
16133
+ TradeImbalanceFinalization.register(this, this.__wbg_ptr, this);
16134
+ return this;
16135
+ } finally {
16136
+ wasm.__wbindgen_add_to_stack_pointer(16);
16137
+ }
16138
+ }
16139
+ reset() {
16140
+ wasm.tradeimbalance_reset(this.__wbg_ptr);
16141
+ }
16142
+ /**
16143
+ * @param {number} price
16144
+ * @param {number} size
16145
+ * @param {boolean} is_buy
16146
+ * @returns {number | undefined}
16147
+ */
16148
+ update(price, size, is_buy) {
16149
+ try {
16150
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-32);
16151
+ wasm.tradeimbalance_update(retptr, this.__wbg_ptr, price, size, is_buy);
16152
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
16153
+ var r2 = getDataViewMemory0().getFloat64(retptr + 8 * 1, true);
16154
+ var r4 = getDataViewMemory0().getInt32(retptr + 4 * 4, true);
16155
+ var r5 = getDataViewMemory0().getInt32(retptr + 4 * 5, true);
16156
+ if (r5) {
16157
+ throw takeObject(r4);
16158
+ }
16159
+ return r0 === 0 ? undefined : r2;
16160
+ } finally {
16161
+ wasm.__wbindgen_add_to_stack_pointer(32);
16162
+ }
16163
+ }
16164
+ /**
16165
+ * @returns {number}
16166
+ */
16167
+ warmupPeriod() {
16168
+ const ret = wasm.tradeimbalance_warmupPeriod(this.__wbg_ptr);
16169
+ return ret >>> 0;
16170
+ }
16171
+ }
16172
+ if (Symbol.dispose) TradeImbalance.prototype[Symbol.dispose] = TradeImbalance.prototype.free;
16173
+
15619
16174
  export class TreynorRatio {
15620
16175
  __destroy_into_raw() {
15621
16176
  const ptr = this.__wbg_ptr;
@@ -18630,6 +19185,9 @@ const ConnorsRSIFinalization = (typeof FinalizationRegistry === 'undefined')
18630
19185
  const CoppockFinalization = (typeof FinalizationRegistry === 'undefined')
18631
19186
  ? { register: () => {}, unregister: () => {} }
18632
19187
  : new FinalizationRegistry(ptr => wasm.__wbg_coppock_free(ptr, 1));
19188
+ const CumulativeVolumeDeltaFinalization = (typeof FinalizationRegistry === 'undefined')
19189
+ ? { register: () => {}, unregister: () => {} }
19190
+ : new FinalizationRegistry(ptr => wasm.__wbg_cumulativevolumedelta_free(ptr, 1));
18633
19191
  const CyberneticCycleFinalization = (typeof FinalizationRegistry === 'undefined')
18634
19192
  ? { register: () => {}, unregister: () => {} }
18635
19193
  : new FinalizationRegistry(ptr => wasm.__wbg_cyberneticcycle_free(ptr, 1));
@@ -18837,6 +19395,9 @@ const MedianPriceFinalization = (typeof FinalizationRegistry === 'undefined')
18837
19395
  const MFIFinalization = (typeof FinalizationRegistry === 'undefined')
18838
19396
  ? { register: () => {}, unregister: () => {} }
18839
19397
  : new FinalizationRegistry(ptr => wasm.__wbg_mfi_free(ptr, 1));
19398
+ const MicropriceFinalization = (typeof FinalizationRegistry === 'undefined')
19399
+ ? { register: () => {}, unregister: () => {} }
19400
+ : new FinalizationRegistry(ptr => wasm.__wbg_microprice_free(ptr, 1));
18840
19401
  const MOMFinalization = (typeof FinalizationRegistry === 'undefined')
18841
19402
  ? { register: () => {}, unregister: () => {} }
18842
19403
  : new FinalizationRegistry(ptr => wasm.__wbg_mom_free(ptr, 1));
@@ -18858,6 +19419,15 @@ const OmegaRatioFinalization = (typeof FinalizationRegistry === 'undefined')
18858
19419
  const OpeningRangeFinalization = (typeof FinalizationRegistry === 'undefined')
18859
19420
  ? { register: () => {}, unregister: () => {} }
18860
19421
  : new FinalizationRegistry(ptr => wasm.__wbg_openingrange_free(ptr, 1));
19422
+ const OrderBookImbalanceFullFinalization = (typeof FinalizationRegistry === 'undefined')
19423
+ ? { register: () => {}, unregister: () => {} }
19424
+ : new FinalizationRegistry(ptr => wasm.__wbg_orderbookimbalancefull_free(ptr, 1));
19425
+ const OrderBookImbalanceTop1Finalization = (typeof FinalizationRegistry === 'undefined')
19426
+ ? { register: () => {}, unregister: () => {} }
19427
+ : new FinalizationRegistry(ptr => wasm.__wbg_orderbookimbalancetop1_free(ptr, 1));
19428
+ const OrderBookImbalanceTopNFinalization = (typeof FinalizationRegistry === 'undefined')
19429
+ ? { register: () => {}, unregister: () => {} }
19430
+ : new FinalizationRegistry(ptr => wasm.__wbg_orderbookimbalancetopn_free(ptr, 1));
18861
19431
  const PainIndexFinalization = (typeof FinalizationRegistry === 'undefined')
18862
19432
  ? { register: () => {}, unregister: () => {} }
18863
19433
  : new FinalizationRegistry(ptr => wasm.__wbg_painindex_free(ptr, 1));
@@ -18900,6 +19470,9 @@ const PSARFinalization = (typeof FinalizationRegistry === 'undefined')
18900
19470
  const PVIFinalization = (typeof FinalizationRegistry === 'undefined')
18901
19471
  ? { register: () => {}, unregister: () => {} }
18902
19472
  : new FinalizationRegistry(ptr => wasm.__wbg_pvi_free(ptr, 1));
19473
+ const QuotedSpreadFinalization = (typeof FinalizationRegistry === 'undefined')
19474
+ ? { register: () => {}, unregister: () => {} }
19475
+ : new FinalizationRegistry(ptr => wasm.__wbg_quotedspread_free(ptr, 1));
18903
19476
  const RSquaredFinalization = (typeof FinalizationRegistry === 'undefined')
18904
19477
  ? { register: () => {}, unregister: () => {} }
18905
19478
  : new FinalizationRegistry(ptr => wasm.__wbg_rsquared_free(ptr, 1));
@@ -18942,6 +19515,9 @@ const SharpeRatioFinalization = (typeof FinalizationRegistry === 'undefined')
18942
19515
  const ShootingStarFinalization = (typeof FinalizationRegistry === 'undefined')
18943
19516
  ? { register: () => {}, unregister: () => {} }
18944
19517
  : new FinalizationRegistry(ptr => wasm.__wbg_shootingstar_free(ptr, 1));
19518
+ const SignedVolumeFinalization = (typeof FinalizationRegistry === 'undefined')
19519
+ ? { register: () => {}, unregister: () => {} }
19520
+ : new FinalizationRegistry(ptr => wasm.__wbg_signedvolume_free(ptr, 1));
18945
19521
  const SineWaveFinalization = (typeof FinalizationRegistry === 'undefined')
18946
19522
  ? { register: () => {}, unregister: () => {} }
18947
19523
  : new FinalizationRegistry(ptr => wasm.__wbg_sinewave_free(ptr, 1));
@@ -19050,6 +19626,9 @@ const ThreeSoldiersOrCrowsFinalization = (typeof FinalizationRegistry === 'undef
19050
19626
  const TIIFinalization = (typeof FinalizationRegistry === 'undefined')
19051
19627
  ? { register: () => {}, unregister: () => {} }
19052
19628
  : new FinalizationRegistry(ptr => wasm.__wbg_tii_free(ptr, 1));
19629
+ const TradeImbalanceFinalization = (typeof FinalizationRegistry === 'undefined')
19630
+ ? { register: () => {}, unregister: () => {} }
19631
+ : new FinalizationRegistry(ptr => wasm.__wbg_tradeimbalance_free(ptr, 1));
19053
19632
  const TreynorRatioFinalization = (typeof FinalizationRegistry === 'undefined')
19054
19633
  ? { register: () => {}, unregister: () => {} }
19055
19634
  : new FinalizationRegistry(ptr => wasm.__wbg_treynorratio_free(ptr, 1));
Binary file