wickra-wasm 0.6.2 → 0.6.3

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=440" 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=447" alt="Wickra — streaming-first technical indicators" width="100%"></a>
3
3
  </p>
4
4
 
5
5
  [![CI](https://github.com/wickra-lib/wickra/actions/workflows/ci.yml/badge.svg)](https://github.com/wickra-lib/wickra/actions/workflows/ci.yml)
@@ -48,7 +48,7 @@ Full documentation lives at **[docs.wickra.org](https://docs.wickra.org)**:
48
48
  [Node](https://docs.wickra.org/Quickstart-Node),
49
49
  [WASM](https://docs.wickra.org/Quickstart-WASM).
50
50
  - **Indicators** — a per-indicator deep dive (formula, parameters, warmup) for
51
- every one of the 440 indicators; start at the
51
+ every one of the 447 indicators; start at the
52
52
  [indicators overview](https://docs.wickra.org/Indicators-Overview).
53
53
  - **Reference** — [warmup periods](https://docs.wickra.org/Warmup-Periods),
54
54
  [streaming vs batch](https://docs.wickra.org/Streaming-vs-Batch),
@@ -79,7 +79,7 @@ Plenty of TA libraries are fast. Each one forces a trade-off Wickra does not:
79
79
  | finta | clean | no | Python | ~80 | stale |
80
80
  | talipp | clean | yes | Python | ~40 | yes |
81
81
 
82
- Wickra's edge is **breadth with reach**: 440 indicators that all update in O(1)
82
+ Wickra's edge is **breadth with reach**: 447 indicators that all update in O(1)
83
83
  per tick and ship natively to Python, Node.js, WebAssembly and Rust from a
84
84
  single engine.
85
85
 
@@ -188,7 +188,7 @@ python -m benchmarks.compare_libraries
188
188
 
189
189
  ## Indicators
190
190
 
191
- 440 streaming-first indicators across twenty-four families. Every one passes the
191
+ 447 streaming-first indicators across twenty-four families. Every one passes the
192
192
  `batch == streaming` equivalence test, reference-value tests, and reset
193
193
  semantics tests. Each has a per-indicator deep dive (formula, parameters,
194
194
  warmup) at [docs.wickra.org](https://docs.wickra.org/Indicators-Overview).
@@ -202,7 +202,7 @@ warmup) at [docs.wickra.org](https://docs.wickra.org/Indicators-Overview).
202
202
  | 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, Volatility Cone |
203
203
  | 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, Quartile Bands, Bomar Bands, Median Channel, Projection Bands, Projection Oscillator |
204
204
  | Trailing Stops | Parabolic SAR, Parabolic SAR Extended (SAREXT), SuperTrend, Chandelier Exit, Chande Kroll Stop, ATR Trailing Stop, HiLo Activator, Volty Stop, Yo-Yo Exit, Donchian Channel Stop, Percentage Trailing Stop, Step Trailing Stop, Renko Trailing Stop, Kase DevStop, Elder SafeZone, ATR Ratchet, NRTR, Time-Based Stop, Modified MA Stop |
205
- | 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 |
205
+ | Volume | OBV, VWAP (cumulative + rolling), ADL, Volume-Price Trend, Chaikin Money Flow, Chaikin Oscillator, Force Index, Ease of Movement, Klinger Volume Oscillator, Volume Oscillator, NVI, PVI, Williams A/D, Anchored VWAP, Demand Index, TSV, VZO, Market Facilitation Index, Volume RSI, Williams Accumulation/Distribution, Twiggs Money Flow, Trade Volume Index, Intraday Intensity Index, Better Volume, Volume-Weighted MACD |
206
206
  | Price Statistics | Typical Price, Median Price, Weighted Close, Linear Regression, Linear Regression Slope, Z-Score, Linear Regression Angle, Variance, Coefficient of Variation, Skewness, Kurtosis, Standard Error, Detrended StdDev, R², Median Absolute Deviation, Autocorrelation, Hurst Exponent, Pearson Correlation, Beta, Pairwise Beta, Pair Spread Z-Score, Lead-Lag Cross-Correlation, Cointegration, Relative Strength A-vs-B, Spearman Correlation, Mid Price, Mid Point, Average Price, Linear Regression Intercept, Time Series Forecast, Rolling Correlation, Rolling Covariance, OU Half-Life, Spread Hurst, Distance SSD, Beta-Neutral Spread, Variance Ratio, Granger Causality, Kalman Hedge Ratio, Spread Bollinger Bands, Spread AR(1) Coefficient |
207
207
  | Ehlers / Cycle (DSP) | MAMA, FAMA, Fisher Transform, Inverse Fisher Transform, SuperSmoother, Hilbert Dominant Cycle, Hilbert Phasor, Hilbert DC Phase, Hilbert Trend Mode, Sine Wave, Decycler, Decycler Oscillator, Roofing Filter, Center of Gravity, Cybernetic Cycle, Adaptive Cycle, Empirical Mode Decomposition, Ehlers Stochastic, Instantaneous Trendline |
208
208
  | Pivots & S/R | Classic Pivots, Fibonacci Pivots, Camarilla, Woodie Pivots, DeMark Pivots, Williams Fractals, ZigZag |
@@ -297,7 +297,7 @@ A Python live-trading example using the public `websockets` package lives at
297
297
  ```
298
298
  wickra/
299
299
  ├── crates/
300
- │ ├── wickra-core/ core engine + all 440 indicators
300
+ │ ├── wickra-core/ core engine + all 447 indicators
301
301
  │ ├── wickra/ top-level facade crate (publishes on crates.io) + benches/
302
302
  │ ├── wickra-data/ CSV reader, tick aggregator, live exchange feeds
303
303
  │ └── wickra-bench/ internal cross-library benchmark harness (not published)
package/package.json CHANGED
@@ -5,7 +5,7 @@
5
5
  "kingchenc <support@wickra.org>"
6
6
  ],
7
7
  "description": "WASM bindings for the Wickra streaming-first technical indicators library.",
8
- "version": "0.6.2",
8
+ "version": "0.6.3",
9
9
  "license": "MIT OR Apache-2.0",
10
10
  "repository": {
11
11
  "type": "git",
package/wickra_wasm.d.ts CHANGED
@@ -444,6 +444,17 @@ export class BetaNeutralSpread {
444
444
  warmupPeriod(): number;
445
445
  }
446
446
 
447
+ export class BetterVolume {
448
+ free(): void;
449
+ [Symbol.dispose](): void;
450
+ batch(high: Float64Array, low: Float64Array, close: Float64Array, volume: Float64Array): Float64Array;
451
+ isReady(): boolean;
452
+ constructor(period: number);
453
+ reset(): void;
454
+ update(high: number, low: number, close: number, volume: number): number | undefined;
455
+ warmupPeriod(): number;
456
+ }
457
+
447
458
  export class BipowerVariation {
448
459
  free(): void;
449
460
  [Symbol.dispose](): void;
@@ -1995,6 +2006,17 @@ export class InstantaneousTrendline {
1995
2006
  warmupPeriod(): number;
1996
2007
  }
1997
2008
 
2009
+ export class IntradayIntensity {
2010
+ free(): void;
2011
+ [Symbol.dispose](): void;
2012
+ batch(high: Float64Array, low: Float64Array, close: Float64Array, volume: Float64Array): Float64Array;
2013
+ isReady(): boolean;
2014
+ constructor();
2015
+ reset(): void;
2016
+ update(high: number, low: number, close: number, volume: number): number | undefined;
2017
+ warmupPeriod(): number;
2018
+ }
2019
+
1998
2020
  export class IntradayVolatilityProfile {
1999
2021
  free(): void;
2000
2022
  [Symbol.dispose](): void;
@@ -4396,6 +4418,17 @@ export class TradeImbalance {
4396
4418
  warmupPeriod(): number;
4397
4419
  }
4398
4420
 
4421
+ export class TradeVolumeIndex {
4422
+ free(): void;
4423
+ [Symbol.dispose](): void;
4424
+ batch(close: Float64Array, volume: Float64Array): Float64Array;
4425
+ isReady(): boolean;
4426
+ constructor(min_tick: number);
4427
+ reset(): void;
4428
+ update(close: number, volume: number): number | undefined;
4429
+ warmupPeriod(): number;
4430
+ }
4431
+
4399
4432
  export class TrendLabel {
4400
4433
  free(): void;
4401
4434
  [Symbol.dispose](): void;
@@ -4505,6 +4538,17 @@ export class Tweezer {
4505
4538
  warmupPeriod(): number;
4506
4539
  }
4507
4540
 
4541
+ export class TwiggsMoneyFlow {
4542
+ free(): void;
4543
+ [Symbol.dispose](): void;
4544
+ batch(high: Float64Array, low: Float64Array, close: Float64Array, volume: Float64Array): Float64Array;
4545
+ isReady(): boolean;
4546
+ constructor(period: number);
4547
+ reset(): void;
4548
+ update(high: number, low: number, close: number, volume: number): number | undefined;
4549
+ warmupPeriod(): number;
4550
+ }
4551
+
4508
4552
  export class TwoCrows {
4509
4553
  free(): void;
4510
4554
  [Symbol.dispose](): void;
@@ -4773,6 +4817,35 @@ export class VolumeProfile {
4773
4817
  warmupPeriod(): number;
4774
4818
  }
4775
4819
 
4820
+ export class VolumeRsi {
4821
+ free(): void;
4822
+ [Symbol.dispose](): void;
4823
+ batch(close: Float64Array, volume: Float64Array): Float64Array;
4824
+ isReady(): boolean;
4825
+ constructor(period: number);
4826
+ reset(): void;
4827
+ update(close: number, volume: number): number | undefined;
4828
+ warmupPeriod(): number;
4829
+ }
4830
+
4831
+ export class VolumeWeightedMacd {
4832
+ free(): void;
4833
+ [Symbol.dispose](): void;
4834
+ /**
4835
+ * Returns `[macd0, signal0, histogram0, macd1, ...]`, length `3 * n`.
4836
+ * Warmup is NaN.
4837
+ */
4838
+ batch(close: Float64Array, volume: Float64Array): Float64Array;
4839
+ isReady(): boolean;
4840
+ constructor(fast: number, slow: number, signal: number);
4841
+ reset(): void;
4842
+ /**
4843
+ * Returns `{ macd, signal, histogram }` once warm, else `null`.
4844
+ */
4845
+ update(close: number, volume: number): any;
4846
+ warmupPeriod(): number;
4847
+ }
4848
+
4776
4849
  export class Vortex {
4777
4850
  free(): void;
4778
4851
  [Symbol.dispose](): void;
@@ -4831,6 +4904,17 @@ export class WMA {
4831
4904
  warmupPeriod(): number;
4832
4905
  }
4833
4906
 
4907
+ export class Wad {
4908
+ free(): void;
4909
+ [Symbol.dispose](): void;
4910
+ batch(high: Float64Array, low: Float64Array, close: Float64Array): Float64Array;
4911
+ isReady(): boolean;
4912
+ constructor();
4913
+ reset(): void;
4914
+ update(high: number, low: number, close: number): number | undefined;
4915
+ warmupPeriod(): number;
4916
+ }
4917
+
4834
4918
  export class WaveTrend {
4835
4919
  free(): void;
4836
4920
  [Symbol.dispose](): void;
package/wickra_wasm.js CHANGED
@@ -5,5 +5,5 @@ import { __wbg_set_wasm } from "./wickra_wasm_bg.js";
5
5
  __wbg_set_wasm(wasm);
6
6
 
7
7
  export {
8
- ADL, ADX, ADXR, ALMA, APO, ATR, AVGPRICE, AbandonedBaby, Abcd, AbsoluteBreadthIndex, AccelerationBands, AcceleratorOscillator, AdVolumeLine, AdaptiveCycle, AdaptiveLaguerre, AdvanceBlock, AdvanceDecline, AdvanceDeclineRatio, Alligator, Alpha, AmihudIlliquidity, AnchoredRSI, AnchoredVWAP, Aroon, AroonOscillator, AtrBands, AtrRatchet, AtrTrailingStop, AutoFib, Autocorrelation, AverageDailyRange, AverageDrawdown, AwesomeOscillator, AwesomeOscillatorHistogram, BalanceOfPower, Bat, BeltHold, Beta, BetaNeutralSpread, BipowerVariation, BodySizePct, BollingerBands, BollingerBandwidth, BomarBands, BreadthThrust, Breakaway, BullishPercentIndex, Butterfly, CCI, CFO, CMO, CalendarSpread, CalmarRatio, Camarilla, CenterOfGravity, ChaikinMoneyFlow, ChaikinOscillator, ChaikinVolatility, ChandeKrollStop, ChandelierExit, ChoppinessIndex, ClassicPivots, CloseVsOpen, ClosingMarubozu, CoefficientOfVariation, Cointegration, ConcealingBabySwallow, ConditionalValueAtRisk, ConnorsRSI, Coppock, Counterattack, Crab, CumulativeVolumeDelta, CumulativeVolumeIndex, CupAndHandle, CyberneticCycle, Cypher, DEMA, DPO, DX, DayOfWeekProfile, Decycler, DecyclerOscillator, DemandIndex, DemarkPivots, DepthSlope, DerivativeOscillator, DetrendedStdDev, DisparityIndex, DistanceSsd, Doji, DojiStar, Donchian, DonchianStop, DoubleBollinger, DoubleTopBottom, DownsideGapThreeMethods, DragonflyDoji, DrawdownDuration, DynamicMomentumIndex, EHMA, EMA, EVWMA, EaseOfMovement, EffectiveSpread, EhlersStochastic, ElderImpulse, ElderRay, ElderSafeZone, EmpiricalModeDecomposition, Engulfing, EveningDojiStar, EwmaVolatility, Expectancy, FAMA, FRAMA, FallingThreeMethods, FibArcs, FibChannel, FibConfluence, FibExtension, FibFan, FibProjection, FibRetracement, FibTimeZones, FibonacciPivots, FisherRSI, FisherTransform, FlagPennant, Footprint, ForceIndex, FractalChaosBands, FundingBasis, FundingRate, FundingRateMean, FundingRateZScore, GD, GMA, GainLossRatio, GapSideBySideWhite, Garch11, GarmanKlassVolatility, Gartley, GatorOscillator, GoldenPocket, GrangerCausality, GravestoneDoji, HMA, HT_DCPHASE, HT_PHASOR, HT_TRENDMODE, Hammer, HangingMan, Harami, HeadAndShoulders, HeikinAshi, HiLoActivator, HighLowIndex, HighLowRange, HighWave, Hikkake, HikkakeModified, HilbertDominantCycle, HistoricalVolatility, HoltWinters, HomingPigeon, HurstChannel, HurstExponent, IMI, Ichimoku, IdenticalThreeCrows, InNeck, Inertia, InformationRatio, InitialBalance, InstantaneousTrendline, IntradayVolatilityProfile, InverseFisherTransform, InvertedHammer, JMA, JumpIndicator, KAMA, KST, KVO, KagiBars, KalmanHedgeRatio, KaseDevStop, KasePermissionStochastic, KellyCriterion, Keltner, Kicking, KickingByLength, Kurtosis, KylesLambda, LINEARREG_INTERCEPT, LadderBottom, LaguerreRSI, LeadLagCrossCorrelation, LinRegAngle, LinRegChannel, LinRegSlope, LinearRegression, LiquidationFeatures, LogReturn, LongLeggedDoji, LongLine, LongShortRatio, MACD, MACDEXT, MACDFIX, MAMA, MFI, MIDPOINT, MIDPRICE, MINUS_DI, MINUS_DM, MOM, MaEnvelope, MacdHistogram, MarketFacilitationIndex, Marubozu, MassIndex, MatHold, MatchingLow, MaxDrawdown, McClellanOscillator, McClellanSummationIndex, McGinleyDynamic, MedianAbsoluteDeviation, MedianChannel, MedianMA, MedianPrice, Microprice, ModifiedMaStop, MorningDojiStar, MorningEveningStar, NATR, NVI, NewHighsNewLows, Nrtr, OBV, OIPriceDivergence, OIWeighted, OmegaRatio, OnNeck, OpenInterestDelta, OpeningMarubozu, OpeningRange, OrderBookImbalanceFull, OrderBookImbalanceTop1, OrderBookImbalanceTopN, OrderFlowImbalance, OuHalfLife, OvernightGap, OvernightIntradayReturn, PGO, PLUS_DI, PLUS_DM, PMO, POLARIZED_FRACTAL_EFFICIENCY, PPO, PSAR, PVI, PainIndex, PairSpreadZScore, PairwiseBeta, ParkinsonVolatility, PearsonCorrelation, PercentAboveMa, PercentB, PercentageTrailingStop, PiercingDarkCloud, PointAndFigureBars, PpoHistogram, ProfitFactor, ProjectionBands, ProjectionOscillator, QQE, Qstick, QuartileBands, QuotedSpread, RMI, ROC, ROCP, ROCR, ROCR100, RSI, RSX, RSquared, RVI, RVIVolatility, RWI, RealizedSpread, RealizedVolatility, RecoveryFactor, RectangleRange, RegimeLabel, RelativeStrengthAB, RenkoBars, RenkoTrailingStop, RickshawMan, RisingThreeMethods, RogersSatchellVolatility, RollMeasure, RollingCorrelation, RollingCovariance, RollingIqr, RollingPercentileRank, RollingQuantile, RollingVWAP, RoofingFilter, SAREXT, SMA, SMI, SMMA, STC, SWMA, SeasonalZScore, SeparatingLines, SessionHighLow, SessionRange, SessionVwap, Shark, SharpeRatio, ShootingStar, ShortLine, SignedVolume, SineWave, Skewness, SortinoRatio, SpearmanCorrelation, SpinningTop, SpreadAr1Coefficient, SpreadBollingerBands, SpreadHurst, StalledPattern, StandardError, StandardErrorBands, StarcBands, StdDev, StepTrailingStop, StickSandwich, StochRSI, Stochastic, StochasticCCI, SuperSmoother, SuperTrend, T3, TDCombo, TDCountdown, TDDeMarker, TDDifferential, TDLines, TDOpen, TDPressure, TDREI, TDRangeProjection, TDRiskLevel, TDSequential, TDSetup, TEMA, TII, TREND_STRENGTH_INDEX, TRIMA, TRIX, TSF, TSI, TSV, TTM_TREND, TakerBuySellRatio, Takuri, TasukiGap, TermStructureBasis, ThreeDrives, ThreeInside, ThreeLineStrike, ThreeOutside, ThreeSoldiersOrCrows, ThreeStarsInSouth, Thrusting, TickIndex, TimeBasedStop, TimeOfDayReturnProfile, TpoProfile, TradeImbalance, TrendLabel, TreynorRatio, Triangle, Trin, TripleTopBottom, TrueRange, TsfOscillator, TtmSqueeze, TurnOfMonth, Tweezer, TwoCrows, TypicalPrice, UlcerIndex, UltimateOscillator, UniqueThreeRiver, UpDownVolumeRatio, UpsideGapThreeMethods, UpsideGapTwoCrows, VIDYA, VWAP, VWMA, VZO, ValueArea, ValueAtRisk, Variance, VarianceRatio, VerticalHorizontalFilter, VolatilityCone, VolatilityOfVolatility, VolatilityRatio, VoltyStop, VolumeByTimeProfile, VolumeOscillator, VolumePriceTrend, VolumeProfile, Vortex, Vpin, VwapStdDevBands, WAVE_PM, WMA, WaveTrend, Wedge, WeightedClose, WickRatio, WilliamsAD, WilliamsFractals, WilliamsR, WinRate, WoodiePivots, YangZhangVolatility, YoyoExit, ZLEMA, ZScore, ZeroLagMACD, ZigZag, installPanicHook, version
8
+ ADL, ADX, ADXR, ALMA, APO, ATR, AVGPRICE, AbandonedBaby, Abcd, AbsoluteBreadthIndex, AccelerationBands, AcceleratorOscillator, AdVolumeLine, AdaptiveCycle, AdaptiveLaguerre, AdvanceBlock, AdvanceDecline, AdvanceDeclineRatio, Alligator, Alpha, AmihudIlliquidity, AnchoredRSI, AnchoredVWAP, Aroon, AroonOscillator, AtrBands, AtrRatchet, AtrTrailingStop, AutoFib, Autocorrelation, AverageDailyRange, AverageDrawdown, AwesomeOscillator, AwesomeOscillatorHistogram, BalanceOfPower, Bat, BeltHold, Beta, BetaNeutralSpread, BetterVolume, BipowerVariation, BodySizePct, BollingerBands, BollingerBandwidth, BomarBands, BreadthThrust, Breakaway, BullishPercentIndex, Butterfly, CCI, CFO, CMO, CalendarSpread, CalmarRatio, Camarilla, CenterOfGravity, ChaikinMoneyFlow, ChaikinOscillator, ChaikinVolatility, ChandeKrollStop, ChandelierExit, ChoppinessIndex, ClassicPivots, CloseVsOpen, ClosingMarubozu, CoefficientOfVariation, Cointegration, ConcealingBabySwallow, ConditionalValueAtRisk, ConnorsRSI, Coppock, Counterattack, Crab, CumulativeVolumeDelta, CumulativeVolumeIndex, CupAndHandle, CyberneticCycle, Cypher, DEMA, DPO, DX, DayOfWeekProfile, Decycler, DecyclerOscillator, DemandIndex, DemarkPivots, DepthSlope, DerivativeOscillator, DetrendedStdDev, DisparityIndex, DistanceSsd, Doji, DojiStar, Donchian, DonchianStop, DoubleBollinger, DoubleTopBottom, DownsideGapThreeMethods, DragonflyDoji, DrawdownDuration, DynamicMomentumIndex, EHMA, EMA, EVWMA, EaseOfMovement, EffectiveSpread, EhlersStochastic, ElderImpulse, ElderRay, ElderSafeZone, EmpiricalModeDecomposition, Engulfing, EveningDojiStar, EwmaVolatility, Expectancy, FAMA, FRAMA, FallingThreeMethods, FibArcs, FibChannel, FibConfluence, FibExtension, FibFan, FibProjection, FibRetracement, FibTimeZones, FibonacciPivots, FisherRSI, FisherTransform, FlagPennant, Footprint, ForceIndex, FractalChaosBands, FundingBasis, FundingRate, FundingRateMean, FundingRateZScore, GD, GMA, GainLossRatio, GapSideBySideWhite, Garch11, GarmanKlassVolatility, Gartley, GatorOscillator, GoldenPocket, GrangerCausality, GravestoneDoji, HMA, HT_DCPHASE, HT_PHASOR, HT_TRENDMODE, Hammer, HangingMan, Harami, HeadAndShoulders, HeikinAshi, HiLoActivator, HighLowIndex, HighLowRange, HighWave, Hikkake, HikkakeModified, HilbertDominantCycle, HistoricalVolatility, HoltWinters, HomingPigeon, HurstChannel, HurstExponent, IMI, Ichimoku, IdenticalThreeCrows, InNeck, Inertia, InformationRatio, InitialBalance, InstantaneousTrendline, IntradayIntensity, IntradayVolatilityProfile, InverseFisherTransform, InvertedHammer, JMA, JumpIndicator, KAMA, KST, KVO, KagiBars, KalmanHedgeRatio, KaseDevStop, KasePermissionStochastic, KellyCriterion, Keltner, Kicking, KickingByLength, Kurtosis, KylesLambda, LINEARREG_INTERCEPT, LadderBottom, LaguerreRSI, LeadLagCrossCorrelation, LinRegAngle, LinRegChannel, LinRegSlope, LinearRegression, LiquidationFeatures, LogReturn, LongLeggedDoji, LongLine, LongShortRatio, MACD, MACDEXT, MACDFIX, MAMA, MFI, MIDPOINT, MIDPRICE, MINUS_DI, MINUS_DM, MOM, MaEnvelope, MacdHistogram, MarketFacilitationIndex, Marubozu, MassIndex, MatHold, MatchingLow, MaxDrawdown, McClellanOscillator, McClellanSummationIndex, McGinleyDynamic, MedianAbsoluteDeviation, MedianChannel, MedianMA, MedianPrice, Microprice, ModifiedMaStop, MorningDojiStar, MorningEveningStar, NATR, NVI, NewHighsNewLows, Nrtr, OBV, OIPriceDivergence, OIWeighted, OmegaRatio, OnNeck, OpenInterestDelta, OpeningMarubozu, OpeningRange, OrderBookImbalanceFull, OrderBookImbalanceTop1, OrderBookImbalanceTopN, OrderFlowImbalance, OuHalfLife, OvernightGap, OvernightIntradayReturn, PGO, PLUS_DI, PLUS_DM, PMO, POLARIZED_FRACTAL_EFFICIENCY, PPO, PSAR, PVI, PainIndex, PairSpreadZScore, PairwiseBeta, ParkinsonVolatility, PearsonCorrelation, PercentAboveMa, PercentB, PercentageTrailingStop, PiercingDarkCloud, PointAndFigureBars, PpoHistogram, ProfitFactor, ProjectionBands, ProjectionOscillator, QQE, Qstick, QuartileBands, QuotedSpread, RMI, ROC, ROCP, ROCR, ROCR100, RSI, RSX, RSquared, RVI, RVIVolatility, RWI, RealizedSpread, RealizedVolatility, RecoveryFactor, RectangleRange, RegimeLabel, RelativeStrengthAB, RenkoBars, RenkoTrailingStop, RickshawMan, RisingThreeMethods, RogersSatchellVolatility, RollMeasure, RollingCorrelation, RollingCovariance, RollingIqr, RollingPercentileRank, RollingQuantile, RollingVWAP, RoofingFilter, SAREXT, SMA, SMI, SMMA, STC, SWMA, SeasonalZScore, SeparatingLines, SessionHighLow, SessionRange, SessionVwap, Shark, SharpeRatio, ShootingStar, ShortLine, SignedVolume, SineWave, Skewness, SortinoRatio, SpearmanCorrelation, SpinningTop, SpreadAr1Coefficient, SpreadBollingerBands, SpreadHurst, StalledPattern, StandardError, StandardErrorBands, StarcBands, StdDev, StepTrailingStop, StickSandwich, StochRSI, Stochastic, StochasticCCI, SuperSmoother, SuperTrend, T3, TDCombo, TDCountdown, TDDeMarker, TDDifferential, TDLines, TDOpen, TDPressure, TDREI, TDRangeProjection, TDRiskLevel, TDSequential, TDSetup, TEMA, TII, TREND_STRENGTH_INDEX, TRIMA, TRIX, TSF, TSI, TSV, TTM_TREND, TakerBuySellRatio, Takuri, TasukiGap, TermStructureBasis, ThreeDrives, ThreeInside, ThreeLineStrike, ThreeOutside, ThreeSoldiersOrCrows, ThreeStarsInSouth, Thrusting, TickIndex, TimeBasedStop, TimeOfDayReturnProfile, TpoProfile, TradeImbalance, TradeVolumeIndex, TrendLabel, TreynorRatio, Triangle, Trin, TripleTopBottom, TrueRange, TsfOscillator, TtmSqueeze, TurnOfMonth, Tweezer, TwiggsMoneyFlow, TwoCrows, TypicalPrice, UlcerIndex, UltimateOscillator, UniqueThreeRiver, UpDownVolumeRatio, UpsideGapThreeMethods, UpsideGapTwoCrows, VIDYA, VWAP, VWMA, VZO, ValueArea, ValueAtRisk, Variance, VarianceRatio, VerticalHorizontalFilter, VolatilityCone, VolatilityOfVolatility, VolatilityRatio, VoltyStop, VolumeByTimeProfile, VolumeOscillator, VolumePriceTrend, VolumeProfile, VolumeRsi, VolumeWeightedMacd, Vortex, Vpin, VwapStdDevBands, WAVE_PM, WMA, Wad, WaveTrend, Wedge, WeightedClose, WickRatio, WilliamsAD, WilliamsFractals, WilliamsR, WinRate, WoodiePivots, YangZhangVolatility, YoyoExit, ZLEMA, ZScore, ZeroLagMACD, ZigZag, installPanicHook, version
9
9
  } from "./wickra_wasm_bg.js";
package/wickra_wasm_bg.js CHANGED
@@ -3269,6 +3269,110 @@ export class BetaNeutralSpread {
3269
3269
  }
3270
3270
  if (Symbol.dispose) BetaNeutralSpread.prototype[Symbol.dispose] = BetaNeutralSpread.prototype.free;
3271
3271
 
3272
+ export class BetterVolume {
3273
+ __destroy_into_raw() {
3274
+ const ptr = this.__wbg_ptr;
3275
+ this.__wbg_ptr = 0;
3276
+ BetterVolumeFinalization.unregister(this);
3277
+ return ptr;
3278
+ }
3279
+ free() {
3280
+ const ptr = this.__destroy_into_raw();
3281
+ wasm.__wbg_bettervolume_free(ptr, 0);
3282
+ }
3283
+ /**
3284
+ * @param {Float64Array} high
3285
+ * @param {Float64Array} low
3286
+ * @param {Float64Array} close
3287
+ * @param {Float64Array} volume
3288
+ * @returns {Float64Array}
3289
+ */
3290
+ batch(high, low, close, volume) {
3291
+ try {
3292
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
3293
+ const ptr0 = passArrayF64ToWasm0(high, wasm.__wbindgen_export3);
3294
+ const len0 = WASM_VECTOR_LEN;
3295
+ const ptr1 = passArrayF64ToWasm0(low, wasm.__wbindgen_export3);
3296
+ const len1 = WASM_VECTOR_LEN;
3297
+ const ptr2 = passArrayF64ToWasm0(close, wasm.__wbindgen_export3);
3298
+ const len2 = WASM_VECTOR_LEN;
3299
+ const ptr3 = passArrayF64ToWasm0(volume, wasm.__wbindgen_export3);
3300
+ const len3 = WASM_VECTOR_LEN;
3301
+ wasm.bettervolume_batch(retptr, this.__wbg_ptr, ptr0, len0, ptr1, len1, ptr2, len2, ptr3, len3);
3302
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
3303
+ var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
3304
+ var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);
3305
+ if (r2) {
3306
+ throw takeObject(r1);
3307
+ }
3308
+ return takeObject(r0);
3309
+ } finally {
3310
+ wasm.__wbindgen_add_to_stack_pointer(16);
3311
+ }
3312
+ }
3313
+ /**
3314
+ * @returns {boolean}
3315
+ */
3316
+ isReady() {
3317
+ const ret = wasm.bettervolume_isReady(this.__wbg_ptr);
3318
+ return ret !== 0;
3319
+ }
3320
+ /**
3321
+ * @param {number} period
3322
+ */
3323
+ constructor(period) {
3324
+ try {
3325
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
3326
+ wasm.bettervolume_new(retptr, period);
3327
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
3328
+ var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
3329
+ var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);
3330
+ if (r2) {
3331
+ throw takeObject(r1);
3332
+ }
3333
+ this.__wbg_ptr = r0;
3334
+ BetterVolumeFinalization.register(this, this.__wbg_ptr, this);
3335
+ return this;
3336
+ } finally {
3337
+ wasm.__wbindgen_add_to_stack_pointer(16);
3338
+ }
3339
+ }
3340
+ reset() {
3341
+ wasm.bettervolume_reset(this.__wbg_ptr);
3342
+ }
3343
+ /**
3344
+ * @param {number} high
3345
+ * @param {number} low
3346
+ * @param {number} close
3347
+ * @param {number} volume
3348
+ * @returns {number | undefined}
3349
+ */
3350
+ update(high, low, close, volume) {
3351
+ try {
3352
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-32);
3353
+ wasm.bettervolume_update(retptr, this.__wbg_ptr, high, low, close, volume);
3354
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
3355
+ var r2 = getDataViewMemory0().getFloat64(retptr + 8 * 1, true);
3356
+ var r4 = getDataViewMemory0().getInt32(retptr + 4 * 4, true);
3357
+ var r5 = getDataViewMemory0().getInt32(retptr + 4 * 5, true);
3358
+ if (r5) {
3359
+ throw takeObject(r4);
3360
+ }
3361
+ return r0 === 0 ? undefined : r2;
3362
+ } finally {
3363
+ wasm.__wbindgen_add_to_stack_pointer(32);
3364
+ }
3365
+ }
3366
+ /**
3367
+ * @returns {number}
3368
+ */
3369
+ warmupPeriod() {
3370
+ const ret = wasm.bettervolume_warmupPeriod(this.__wbg_ptr);
3371
+ return ret >>> 0;
3372
+ }
3373
+ }
3374
+ if (Symbol.dispose) BetterVolume.prototype[Symbol.dispose] = BetterVolume.prototype.free;
3375
+
3272
3376
  export class BipowerVariation {
3273
3377
  __destroy_into_raw() {
3274
3378
  const ptr = this.__wbg_ptr;
@@ -14500,6 +14604,96 @@ export class InstantaneousTrendline {
14500
14604
  }
14501
14605
  if (Symbol.dispose) InstantaneousTrendline.prototype[Symbol.dispose] = InstantaneousTrendline.prototype.free;
14502
14606
 
14607
+ export class IntradayIntensity {
14608
+ __destroy_into_raw() {
14609
+ const ptr = this.__wbg_ptr;
14610
+ this.__wbg_ptr = 0;
14611
+ IntradayIntensityFinalization.unregister(this);
14612
+ return ptr;
14613
+ }
14614
+ free() {
14615
+ const ptr = this.__destroy_into_raw();
14616
+ wasm.__wbg_intradayintensity_free(ptr, 0);
14617
+ }
14618
+ /**
14619
+ * @param {Float64Array} high
14620
+ * @param {Float64Array} low
14621
+ * @param {Float64Array} close
14622
+ * @param {Float64Array} volume
14623
+ * @returns {Float64Array}
14624
+ */
14625
+ batch(high, low, close, volume) {
14626
+ try {
14627
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
14628
+ const ptr0 = passArrayF64ToWasm0(high, wasm.__wbindgen_export3);
14629
+ const len0 = WASM_VECTOR_LEN;
14630
+ const ptr1 = passArrayF64ToWasm0(low, wasm.__wbindgen_export3);
14631
+ const len1 = WASM_VECTOR_LEN;
14632
+ const ptr2 = passArrayF64ToWasm0(close, wasm.__wbindgen_export3);
14633
+ const len2 = WASM_VECTOR_LEN;
14634
+ const ptr3 = passArrayF64ToWasm0(volume, wasm.__wbindgen_export3);
14635
+ const len3 = WASM_VECTOR_LEN;
14636
+ wasm.intradayintensity_batch(retptr, this.__wbg_ptr, ptr0, len0, ptr1, len1, ptr2, len2, ptr3, len3);
14637
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
14638
+ var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
14639
+ var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);
14640
+ if (r2) {
14641
+ throw takeObject(r1);
14642
+ }
14643
+ return takeObject(r0);
14644
+ } finally {
14645
+ wasm.__wbindgen_add_to_stack_pointer(16);
14646
+ }
14647
+ }
14648
+ /**
14649
+ * @returns {boolean}
14650
+ */
14651
+ isReady() {
14652
+ const ret = wasm.intradayintensity_isReady(this.__wbg_ptr);
14653
+ return ret !== 0;
14654
+ }
14655
+ constructor() {
14656
+ const ret = wasm.intradayintensity_new();
14657
+ this.__wbg_ptr = ret;
14658
+ IntradayIntensityFinalization.register(this, this.__wbg_ptr, this);
14659
+ return this;
14660
+ }
14661
+ reset() {
14662
+ wasm.intradayintensity_reset(this.__wbg_ptr);
14663
+ }
14664
+ /**
14665
+ * @param {number} high
14666
+ * @param {number} low
14667
+ * @param {number} close
14668
+ * @param {number} volume
14669
+ * @returns {number | undefined}
14670
+ */
14671
+ update(high, low, close, volume) {
14672
+ try {
14673
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-32);
14674
+ wasm.intradayintensity_update(retptr, this.__wbg_ptr, high, low, close, volume);
14675
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
14676
+ var r2 = getDataViewMemory0().getFloat64(retptr + 8 * 1, true);
14677
+ var r4 = getDataViewMemory0().getInt32(retptr + 4 * 4, true);
14678
+ var r5 = getDataViewMemory0().getInt32(retptr + 4 * 5, true);
14679
+ if (r5) {
14680
+ throw takeObject(r4);
14681
+ }
14682
+ return r0 === 0 ? undefined : r2;
14683
+ } finally {
14684
+ wasm.__wbindgen_add_to_stack_pointer(32);
14685
+ }
14686
+ }
14687
+ /**
14688
+ * @returns {number}
14689
+ */
14690
+ warmupPeriod() {
14691
+ const ret = wasm.intradayintensity_warmupPeriod(this.__wbg_ptr);
14692
+ return ret >>> 0;
14693
+ }
14694
+ }
14695
+ if (Symbol.dispose) IntradayIntensity.prototype[Symbol.dispose] = IntradayIntensity.prototype.free;
14696
+
14503
14697
  export class IntradayVolatilityProfile {
14504
14698
  __destroy_into_raw() {
14505
14699
  const ptr = this.__wbg_ptr;
@@ -31608,6 +31802,102 @@ export class TradeImbalance {
31608
31802
  }
31609
31803
  if (Symbol.dispose) TradeImbalance.prototype[Symbol.dispose] = TradeImbalance.prototype.free;
31610
31804
 
31805
+ export class TradeVolumeIndex {
31806
+ __destroy_into_raw() {
31807
+ const ptr = this.__wbg_ptr;
31808
+ this.__wbg_ptr = 0;
31809
+ TradeVolumeIndexFinalization.unregister(this);
31810
+ return ptr;
31811
+ }
31812
+ free() {
31813
+ const ptr = this.__destroy_into_raw();
31814
+ wasm.__wbg_tradevolumeindex_free(ptr, 0);
31815
+ }
31816
+ /**
31817
+ * @param {Float64Array} close
31818
+ * @param {Float64Array} volume
31819
+ * @returns {Float64Array}
31820
+ */
31821
+ batch(close, volume) {
31822
+ try {
31823
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
31824
+ const ptr0 = passArrayF64ToWasm0(close, wasm.__wbindgen_export3);
31825
+ const len0 = WASM_VECTOR_LEN;
31826
+ const ptr1 = passArrayF64ToWasm0(volume, wasm.__wbindgen_export3);
31827
+ const len1 = WASM_VECTOR_LEN;
31828
+ wasm.tradevolumeindex_batch(retptr, this.__wbg_ptr, ptr0, len0, ptr1, len1);
31829
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
31830
+ var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
31831
+ var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);
31832
+ if (r2) {
31833
+ throw takeObject(r1);
31834
+ }
31835
+ return takeObject(r0);
31836
+ } finally {
31837
+ wasm.__wbindgen_add_to_stack_pointer(16);
31838
+ }
31839
+ }
31840
+ /**
31841
+ * @returns {boolean}
31842
+ */
31843
+ isReady() {
31844
+ const ret = wasm.tradevolumeindex_isReady(this.__wbg_ptr);
31845
+ return ret !== 0;
31846
+ }
31847
+ /**
31848
+ * @param {number} min_tick
31849
+ */
31850
+ constructor(min_tick) {
31851
+ try {
31852
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
31853
+ wasm.tradevolumeindex_new(retptr, min_tick);
31854
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
31855
+ var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
31856
+ var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);
31857
+ if (r2) {
31858
+ throw takeObject(r1);
31859
+ }
31860
+ this.__wbg_ptr = r0;
31861
+ TradeVolumeIndexFinalization.register(this, this.__wbg_ptr, this);
31862
+ return this;
31863
+ } finally {
31864
+ wasm.__wbindgen_add_to_stack_pointer(16);
31865
+ }
31866
+ }
31867
+ reset() {
31868
+ wasm.tradevolumeindex_reset(this.__wbg_ptr);
31869
+ }
31870
+ /**
31871
+ * @param {number} close
31872
+ * @param {number} volume
31873
+ * @returns {number | undefined}
31874
+ */
31875
+ update(close, volume) {
31876
+ try {
31877
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-32);
31878
+ wasm.tradevolumeindex_update(retptr, this.__wbg_ptr, close, volume);
31879
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
31880
+ var r2 = getDataViewMemory0().getFloat64(retptr + 8 * 1, true);
31881
+ var r4 = getDataViewMemory0().getInt32(retptr + 4 * 4, true);
31882
+ var r5 = getDataViewMemory0().getInt32(retptr + 4 * 5, true);
31883
+ if (r5) {
31884
+ throw takeObject(r4);
31885
+ }
31886
+ return r0 === 0 ? undefined : r2;
31887
+ } finally {
31888
+ wasm.__wbindgen_add_to_stack_pointer(32);
31889
+ }
31890
+ }
31891
+ /**
31892
+ * @returns {number}
31893
+ */
31894
+ warmupPeriod() {
31895
+ const ret = wasm.tradevolumeindex_warmupPeriod(this.__wbg_ptr);
31896
+ return ret >>> 0;
31897
+ }
31898
+ }
31899
+ if (Symbol.dispose) TradeVolumeIndex.prototype[Symbol.dispose] = TradeVolumeIndex.prototype.free;
31900
+
31611
31901
  export class TrendLabel {
31612
31902
  __destroy_into_raw() {
31613
31903
  const ptr = this.__wbg_ptr;
@@ -32442,6 +32732,110 @@ export class Tweezer {
32442
32732
  }
32443
32733
  if (Symbol.dispose) Tweezer.prototype[Symbol.dispose] = Tweezer.prototype.free;
32444
32734
 
32735
+ export class TwiggsMoneyFlow {
32736
+ __destroy_into_raw() {
32737
+ const ptr = this.__wbg_ptr;
32738
+ this.__wbg_ptr = 0;
32739
+ TwiggsMoneyFlowFinalization.unregister(this);
32740
+ return ptr;
32741
+ }
32742
+ free() {
32743
+ const ptr = this.__destroy_into_raw();
32744
+ wasm.__wbg_twiggsmoneyflow_free(ptr, 0);
32745
+ }
32746
+ /**
32747
+ * @param {Float64Array} high
32748
+ * @param {Float64Array} low
32749
+ * @param {Float64Array} close
32750
+ * @param {Float64Array} volume
32751
+ * @returns {Float64Array}
32752
+ */
32753
+ batch(high, low, close, volume) {
32754
+ try {
32755
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
32756
+ const ptr0 = passArrayF64ToWasm0(high, wasm.__wbindgen_export3);
32757
+ const len0 = WASM_VECTOR_LEN;
32758
+ const ptr1 = passArrayF64ToWasm0(low, wasm.__wbindgen_export3);
32759
+ const len1 = WASM_VECTOR_LEN;
32760
+ const ptr2 = passArrayF64ToWasm0(close, wasm.__wbindgen_export3);
32761
+ const len2 = WASM_VECTOR_LEN;
32762
+ const ptr3 = passArrayF64ToWasm0(volume, wasm.__wbindgen_export3);
32763
+ const len3 = WASM_VECTOR_LEN;
32764
+ wasm.twiggsmoneyflow_batch(retptr, this.__wbg_ptr, ptr0, len0, ptr1, len1, ptr2, len2, ptr3, len3);
32765
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
32766
+ var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
32767
+ var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);
32768
+ if (r2) {
32769
+ throw takeObject(r1);
32770
+ }
32771
+ return takeObject(r0);
32772
+ } finally {
32773
+ wasm.__wbindgen_add_to_stack_pointer(16);
32774
+ }
32775
+ }
32776
+ /**
32777
+ * @returns {boolean}
32778
+ */
32779
+ isReady() {
32780
+ const ret = wasm.twiggsmoneyflow_isReady(this.__wbg_ptr);
32781
+ return ret !== 0;
32782
+ }
32783
+ /**
32784
+ * @param {number} period
32785
+ */
32786
+ constructor(period) {
32787
+ try {
32788
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
32789
+ wasm.twiggsmoneyflow_new(retptr, period);
32790
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
32791
+ var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
32792
+ var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);
32793
+ if (r2) {
32794
+ throw takeObject(r1);
32795
+ }
32796
+ this.__wbg_ptr = r0;
32797
+ TwiggsMoneyFlowFinalization.register(this, this.__wbg_ptr, this);
32798
+ return this;
32799
+ } finally {
32800
+ wasm.__wbindgen_add_to_stack_pointer(16);
32801
+ }
32802
+ }
32803
+ reset() {
32804
+ wasm.twiggsmoneyflow_reset(this.__wbg_ptr);
32805
+ }
32806
+ /**
32807
+ * @param {number} high
32808
+ * @param {number} low
32809
+ * @param {number} close
32810
+ * @param {number} volume
32811
+ * @returns {number | undefined}
32812
+ */
32813
+ update(high, low, close, volume) {
32814
+ try {
32815
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-32);
32816
+ wasm.twiggsmoneyflow_update(retptr, this.__wbg_ptr, high, low, close, volume);
32817
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
32818
+ var r2 = getDataViewMemory0().getFloat64(retptr + 8 * 1, true);
32819
+ var r4 = getDataViewMemory0().getInt32(retptr + 4 * 4, true);
32820
+ var r5 = getDataViewMemory0().getInt32(retptr + 4 * 5, true);
32821
+ if (r5) {
32822
+ throw takeObject(r4);
32823
+ }
32824
+ return r0 === 0 ? undefined : r2;
32825
+ } finally {
32826
+ wasm.__wbindgen_add_to_stack_pointer(32);
32827
+ }
32828
+ }
32829
+ /**
32830
+ * @returns {number}
32831
+ */
32832
+ warmupPeriod() {
32833
+ const ret = wasm.twiggsmoneyflow_warmupPeriod(this.__wbg_ptr);
32834
+ return ret >>> 0;
32835
+ }
32836
+ }
32837
+ if (Symbol.dispose) TwiggsMoneyFlow.prototype[Symbol.dispose] = TwiggsMoneyFlow.prototype.free;
32838
+
32445
32839
  export class TwoCrows {
32446
32840
  __destroy_into_raw() {
32447
32841
  const ptr = this.__wbg_ptr;
@@ -34543,6 +34937,202 @@ export class VolumeProfile {
34543
34937
  }
34544
34938
  if (Symbol.dispose) VolumeProfile.prototype[Symbol.dispose] = VolumeProfile.prototype.free;
34545
34939
 
34940
+ export class VolumeRsi {
34941
+ __destroy_into_raw() {
34942
+ const ptr = this.__wbg_ptr;
34943
+ this.__wbg_ptr = 0;
34944
+ VolumeRsiFinalization.unregister(this);
34945
+ return ptr;
34946
+ }
34947
+ free() {
34948
+ const ptr = this.__destroy_into_raw();
34949
+ wasm.__wbg_volumersi_free(ptr, 0);
34950
+ }
34951
+ /**
34952
+ * @param {Float64Array} close
34953
+ * @param {Float64Array} volume
34954
+ * @returns {Float64Array}
34955
+ */
34956
+ batch(close, volume) {
34957
+ try {
34958
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
34959
+ const ptr0 = passArrayF64ToWasm0(close, wasm.__wbindgen_export3);
34960
+ const len0 = WASM_VECTOR_LEN;
34961
+ const ptr1 = passArrayF64ToWasm0(volume, wasm.__wbindgen_export3);
34962
+ const len1 = WASM_VECTOR_LEN;
34963
+ wasm.volumersi_batch(retptr, this.__wbg_ptr, ptr0, len0, ptr1, len1);
34964
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
34965
+ var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
34966
+ var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);
34967
+ if (r2) {
34968
+ throw takeObject(r1);
34969
+ }
34970
+ return takeObject(r0);
34971
+ } finally {
34972
+ wasm.__wbindgen_add_to_stack_pointer(16);
34973
+ }
34974
+ }
34975
+ /**
34976
+ * @returns {boolean}
34977
+ */
34978
+ isReady() {
34979
+ const ret = wasm.volumersi_isReady(this.__wbg_ptr);
34980
+ return ret !== 0;
34981
+ }
34982
+ /**
34983
+ * @param {number} period
34984
+ */
34985
+ constructor(period) {
34986
+ try {
34987
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
34988
+ wasm.volumersi_new(retptr, period);
34989
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
34990
+ var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
34991
+ var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);
34992
+ if (r2) {
34993
+ throw takeObject(r1);
34994
+ }
34995
+ this.__wbg_ptr = r0;
34996
+ VolumeRsiFinalization.register(this, this.__wbg_ptr, this);
34997
+ return this;
34998
+ } finally {
34999
+ wasm.__wbindgen_add_to_stack_pointer(16);
35000
+ }
35001
+ }
35002
+ reset() {
35003
+ wasm.volumersi_reset(this.__wbg_ptr);
35004
+ }
35005
+ /**
35006
+ * @param {number} close
35007
+ * @param {number} volume
35008
+ * @returns {number | undefined}
35009
+ */
35010
+ update(close, volume) {
35011
+ try {
35012
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-32);
35013
+ wasm.volumersi_update(retptr, this.__wbg_ptr, close, volume);
35014
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
35015
+ var r2 = getDataViewMemory0().getFloat64(retptr + 8 * 1, true);
35016
+ var r4 = getDataViewMemory0().getInt32(retptr + 4 * 4, true);
35017
+ var r5 = getDataViewMemory0().getInt32(retptr + 4 * 5, true);
35018
+ if (r5) {
35019
+ throw takeObject(r4);
35020
+ }
35021
+ return r0 === 0 ? undefined : r2;
35022
+ } finally {
35023
+ wasm.__wbindgen_add_to_stack_pointer(32);
35024
+ }
35025
+ }
35026
+ /**
35027
+ * @returns {number}
35028
+ */
35029
+ warmupPeriod() {
35030
+ const ret = wasm.volumersi_warmupPeriod(this.__wbg_ptr);
35031
+ return ret >>> 0;
35032
+ }
35033
+ }
35034
+ if (Symbol.dispose) VolumeRsi.prototype[Symbol.dispose] = VolumeRsi.prototype.free;
35035
+
35036
+ export class VolumeWeightedMacd {
35037
+ __destroy_into_raw() {
35038
+ const ptr = this.__wbg_ptr;
35039
+ this.__wbg_ptr = 0;
35040
+ VolumeWeightedMacdFinalization.unregister(this);
35041
+ return ptr;
35042
+ }
35043
+ free() {
35044
+ const ptr = this.__destroy_into_raw();
35045
+ wasm.__wbg_volumeweightedmacd_free(ptr, 0);
35046
+ }
35047
+ /**
35048
+ * Returns `[macd0, signal0, histogram0, macd1, ...]`, length `3 * n`.
35049
+ * Warmup is NaN.
35050
+ * @param {Float64Array} close
35051
+ * @param {Float64Array} volume
35052
+ * @returns {Float64Array}
35053
+ */
35054
+ batch(close, volume) {
35055
+ try {
35056
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
35057
+ const ptr0 = passArrayF64ToWasm0(close, wasm.__wbindgen_export3);
35058
+ const len0 = WASM_VECTOR_LEN;
35059
+ const ptr1 = passArrayF64ToWasm0(volume, wasm.__wbindgen_export3);
35060
+ const len1 = WASM_VECTOR_LEN;
35061
+ wasm.volumeweightedmacd_batch(retptr, this.__wbg_ptr, ptr0, len0, ptr1, len1);
35062
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
35063
+ var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
35064
+ var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);
35065
+ if (r2) {
35066
+ throw takeObject(r1);
35067
+ }
35068
+ return takeObject(r0);
35069
+ } finally {
35070
+ wasm.__wbindgen_add_to_stack_pointer(16);
35071
+ }
35072
+ }
35073
+ /**
35074
+ * @returns {boolean}
35075
+ */
35076
+ isReady() {
35077
+ const ret = wasm.volumeweightedmacd_isReady(this.__wbg_ptr);
35078
+ return ret !== 0;
35079
+ }
35080
+ /**
35081
+ * @param {number} fast
35082
+ * @param {number} slow
35083
+ * @param {number} signal
35084
+ */
35085
+ constructor(fast, slow, signal) {
35086
+ try {
35087
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
35088
+ wasm.volumeweightedmacd_new(retptr, fast, slow, signal);
35089
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
35090
+ var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
35091
+ var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);
35092
+ if (r2) {
35093
+ throw takeObject(r1);
35094
+ }
35095
+ this.__wbg_ptr = r0;
35096
+ VolumeWeightedMacdFinalization.register(this, this.__wbg_ptr, this);
35097
+ return this;
35098
+ } finally {
35099
+ wasm.__wbindgen_add_to_stack_pointer(16);
35100
+ }
35101
+ }
35102
+ reset() {
35103
+ wasm.volumeweightedmacd_reset(this.__wbg_ptr);
35104
+ }
35105
+ /**
35106
+ * Returns `{ macd, signal, histogram }` once warm, else `null`.
35107
+ * @param {number} close
35108
+ * @param {number} volume
35109
+ * @returns {any}
35110
+ */
35111
+ update(close, volume) {
35112
+ try {
35113
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
35114
+ wasm.volumeweightedmacd_update(retptr, this.__wbg_ptr, close, volume);
35115
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
35116
+ var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
35117
+ var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);
35118
+ if (r2) {
35119
+ throw takeObject(r1);
35120
+ }
35121
+ return takeObject(r0);
35122
+ } finally {
35123
+ wasm.__wbindgen_add_to_stack_pointer(16);
35124
+ }
35125
+ }
35126
+ /**
35127
+ * @returns {number}
35128
+ */
35129
+ warmupPeriod() {
35130
+ const ret = wasm.volumeweightedmacd_warmupPeriod(this.__wbg_ptr);
35131
+ return ret >>> 0;
35132
+ }
35133
+ }
35134
+ if (Symbol.dispose) VolumeWeightedMacd.prototype[Symbol.dispose] = VolumeWeightedMacd.prototype.free;
35135
+
34546
35136
  export class Vortex {
34547
35137
  __destroy_into_raw() {
34548
35138
  const ptr = this.__wbg_ptr;
@@ -34960,6 +35550,92 @@ export class WMA {
34960
35550
  }
34961
35551
  if (Symbol.dispose) WMA.prototype[Symbol.dispose] = WMA.prototype.free;
34962
35552
 
35553
+ export class Wad {
35554
+ __destroy_into_raw() {
35555
+ const ptr = this.__wbg_ptr;
35556
+ this.__wbg_ptr = 0;
35557
+ WadFinalization.unregister(this);
35558
+ return ptr;
35559
+ }
35560
+ free() {
35561
+ const ptr = this.__destroy_into_raw();
35562
+ wasm.__wbg_wad_free(ptr, 0);
35563
+ }
35564
+ /**
35565
+ * @param {Float64Array} high
35566
+ * @param {Float64Array} low
35567
+ * @param {Float64Array} close
35568
+ * @returns {Float64Array}
35569
+ */
35570
+ batch(high, low, close) {
35571
+ try {
35572
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
35573
+ const ptr0 = passArrayF64ToWasm0(high, wasm.__wbindgen_export3);
35574
+ const len0 = WASM_VECTOR_LEN;
35575
+ const ptr1 = passArrayF64ToWasm0(low, wasm.__wbindgen_export3);
35576
+ const len1 = WASM_VECTOR_LEN;
35577
+ const ptr2 = passArrayF64ToWasm0(close, wasm.__wbindgen_export3);
35578
+ const len2 = WASM_VECTOR_LEN;
35579
+ wasm.wad_batch(retptr, this.__wbg_ptr, ptr0, len0, ptr1, len1, ptr2, len2);
35580
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
35581
+ var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
35582
+ var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);
35583
+ if (r2) {
35584
+ throw takeObject(r1);
35585
+ }
35586
+ return takeObject(r0);
35587
+ } finally {
35588
+ wasm.__wbindgen_add_to_stack_pointer(16);
35589
+ }
35590
+ }
35591
+ /**
35592
+ * @returns {boolean}
35593
+ */
35594
+ isReady() {
35595
+ const ret = wasm.wad_isReady(this.__wbg_ptr);
35596
+ return ret !== 0;
35597
+ }
35598
+ constructor() {
35599
+ const ret = wasm.wad_new();
35600
+ this.__wbg_ptr = ret;
35601
+ WadFinalization.register(this, this.__wbg_ptr, this);
35602
+ return this;
35603
+ }
35604
+ reset() {
35605
+ wasm.wad_reset(this.__wbg_ptr);
35606
+ }
35607
+ /**
35608
+ * @param {number} high
35609
+ * @param {number} low
35610
+ * @param {number} close
35611
+ * @returns {number | undefined}
35612
+ */
35613
+ update(high, low, close) {
35614
+ try {
35615
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-32);
35616
+ wasm.wad_update(retptr, this.__wbg_ptr, high, low, close);
35617
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
35618
+ var r2 = getDataViewMemory0().getFloat64(retptr + 8 * 1, true);
35619
+ var r4 = getDataViewMemory0().getInt32(retptr + 4 * 4, true);
35620
+ var r5 = getDataViewMemory0().getInt32(retptr + 4 * 5, true);
35621
+ if (r5) {
35622
+ throw takeObject(r4);
35623
+ }
35624
+ return r0 === 0 ? undefined : r2;
35625
+ } finally {
35626
+ wasm.__wbindgen_add_to_stack_pointer(32);
35627
+ }
35628
+ }
35629
+ /**
35630
+ * @returns {number}
35631
+ */
35632
+ warmupPeriod() {
35633
+ const ret = wasm.wad_warmupPeriod(this.__wbg_ptr);
35634
+ return ret >>> 0;
35635
+ }
35636
+ }
35637
+ if (Symbol.dispose) Wad.prototype[Symbol.dispose] = Wad.prototype.free;
35638
+
34963
35639
  export class WaveTrend {
34964
35640
  static __wrap(ptr) {
34965
35641
  const obj = Object.create(WaveTrend.prototype);
@@ -36464,6 +37140,9 @@ const BetaFinalization = (typeof FinalizationRegistry === 'undefined')
36464
37140
  const BetaNeutralSpreadFinalization = (typeof FinalizationRegistry === 'undefined')
36465
37141
  ? { register: () => {}, unregister: () => {} }
36466
37142
  : new FinalizationRegistry(ptr => wasm.__wbg_betaneutralspread_free(ptr, 1));
37143
+ const BetterVolumeFinalization = (typeof FinalizationRegistry === 'undefined')
37144
+ ? { register: () => {}, unregister: () => {} }
37145
+ : new FinalizationRegistry(ptr => wasm.__wbg_bettervolume_free(ptr, 1));
36467
37146
  const BipowerVariationFinalization = (typeof FinalizationRegistry === 'undefined')
36468
37147
  ? { register: () => {}, unregister: () => {} }
36469
37148
  : new FinalizationRegistry(ptr => wasm.__wbg_bipowervariation_free(ptr, 1));
@@ -36872,6 +37551,9 @@ const InitialBalanceFinalization = (typeof FinalizationRegistry === 'undefined')
36872
37551
  const InstantaneousTrendlineFinalization = (typeof FinalizationRegistry === 'undefined')
36873
37552
  ? { register: () => {}, unregister: () => {} }
36874
37553
  : new FinalizationRegistry(ptr => wasm.__wbg_instantaneoustrendline_free(ptr, 1));
37554
+ const IntradayIntensityFinalization = (typeof FinalizationRegistry === 'undefined')
37555
+ ? { register: () => {}, unregister: () => {} }
37556
+ : new FinalizationRegistry(ptr => wasm.__wbg_intradayintensity_free(ptr, 1));
36875
37557
  const IntradayVolatilityProfileFinalization = (typeof FinalizationRegistry === 'undefined')
36876
37558
  ? { register: () => {}, unregister: () => {} }
36877
37559
  : new FinalizationRegistry(ptr => wasm.__wbg_intradayvolatilityprofile_free(ptr, 1));
@@ -37478,6 +38160,9 @@ const TpoProfileFinalization = (typeof FinalizationRegistry === 'undefined')
37478
38160
  const TradeImbalanceFinalization = (typeof FinalizationRegistry === 'undefined')
37479
38161
  ? { register: () => {}, unregister: () => {} }
37480
38162
  : new FinalizationRegistry(ptr => wasm.__wbg_tradeimbalance_free(ptr, 1));
38163
+ const TradeVolumeIndexFinalization = (typeof FinalizationRegistry === 'undefined')
38164
+ ? { register: () => {}, unregister: () => {} }
38165
+ : new FinalizationRegistry(ptr => wasm.__wbg_tradevolumeindex_free(ptr, 1));
37481
38166
  const TrendLabelFinalization = (typeof FinalizationRegistry === 'undefined')
37482
38167
  ? { register: () => {}, unregister: () => {} }
37483
38168
  : new FinalizationRegistry(ptr => wasm.__wbg_trendlabel_free(ptr, 1));
@@ -37529,6 +38214,9 @@ const TurnOfMonthFinalization = (typeof FinalizationRegistry === 'undefined')
37529
38214
  const TweezerFinalization = (typeof FinalizationRegistry === 'undefined')
37530
38215
  ? { register: () => {}, unregister: () => {} }
37531
38216
  : new FinalizationRegistry(ptr => wasm.__wbg_tweezer_free(ptr, 1));
38217
+ const TwiggsMoneyFlowFinalization = (typeof FinalizationRegistry === 'undefined')
38218
+ ? { register: () => {}, unregister: () => {} }
38219
+ : new FinalizationRegistry(ptr => wasm.__wbg_twiggsmoneyflow_free(ptr, 1));
37532
38220
  const TwoCrowsFinalization = (typeof FinalizationRegistry === 'undefined')
37533
38221
  ? { register: () => {}, unregister: () => {} }
37534
38222
  : new FinalizationRegistry(ptr => wasm.__wbg_twocrows_free(ptr, 1));
@@ -37595,6 +38283,12 @@ const VolumePriceTrendFinalization = (typeof FinalizationRegistry === 'undefined
37595
38283
  const VolumeProfileFinalization = (typeof FinalizationRegistry === 'undefined')
37596
38284
  ? { register: () => {}, unregister: () => {} }
37597
38285
  : new FinalizationRegistry(ptr => wasm.__wbg_volumeprofile_free(ptr, 1));
38286
+ const VolumeRsiFinalization = (typeof FinalizationRegistry === 'undefined')
38287
+ ? { register: () => {}, unregister: () => {} }
38288
+ : new FinalizationRegistry(ptr => wasm.__wbg_volumersi_free(ptr, 1));
38289
+ const VolumeWeightedMacdFinalization = (typeof FinalizationRegistry === 'undefined')
38290
+ ? { register: () => {}, unregister: () => {} }
38291
+ : new FinalizationRegistry(ptr => wasm.__wbg_volumeweightedmacd_free(ptr, 1));
37598
38292
  const VortexFinalization = (typeof FinalizationRegistry === 'undefined')
37599
38293
  ? { register: () => {}, unregister: () => {} }
37600
38294
  : new FinalizationRegistry(ptr => wasm.__wbg_vortex_free(ptr, 1));
@@ -37613,6 +38307,9 @@ const VWMAFinalization = (typeof FinalizationRegistry === 'undefined')
37613
38307
  const VZOFinalization = (typeof FinalizationRegistry === 'undefined')
37614
38308
  ? { register: () => {}, unregister: () => {} }
37615
38309
  : new FinalizationRegistry(ptr => wasm.__wbg_vzo_free(ptr, 1));
38310
+ const WadFinalization = (typeof FinalizationRegistry === 'undefined')
38311
+ ? { register: () => {}, unregister: () => {} }
38312
+ : new FinalizationRegistry(ptr => wasm.__wbg_wad_free(ptr, 1));
37616
38313
  const WAVE_PMFinalization = (typeof FinalizationRegistry === 'undefined')
37617
38314
  ? { register: () => {}, unregister: () => {} }
37618
38315
  : new FinalizationRegistry(ptr => wasm.__wbg_wave_pm_free(ptr, 1));
Binary file