wickra-wasm 0.5.5 → 0.5.6

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=403" 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=413" 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 403 indicators; start at the
51
+ every one of the 413 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),
@@ -136,7 +136,7 @@ python -m benchmarks.compare_libraries
136
136
 
137
137
  ## Indicators
138
138
 
139
- 403 streaming-first indicators across twenty-four families. Every one passes the
139
+ 413 streaming-first indicators across twenty-four families. Every one passes the
140
140
  `batch == streaming` equivalence test, reference-value tests, and reset
141
141
  semantics tests. Each has a per-indicator deep dive (formula, parameters,
142
142
  warmup) at [docs.wickra.org](https://docs.wickra.org/Indicators-Overview).
@@ -144,7 +144,7 @@ warmup) at [docs.wickra.org](https://docs.wickra.org/Indicators-Overview).
144
144
  | Family | Indicators |
145
145
  |--------|-----------|
146
146
  | Moving Averages | SMA, EMA, WMA, DEMA, TEMA, HMA, KAMA, SMMA, TRIMA, ZLEMA, T3, VWMA, ALMA, McGinley Dynamic, FRAMA, VIDYA, JMA, Alligator, EVWMA, SWMA, GMA, EHMA, Median MA, Adaptive Laguerre, GD, Holt-Winters |
147
- | Momentum Oscillators | RSI (Wilder), Anchored RSI, Stochastic, CCI, ROC, Williams %R, MFI, Awesome Oscillator, MOM, CMO, TSI, PMO, StochRSI, Ultimate Oscillator, RVI, PGO, KST, SMI, Laguerre RSI, Connors RSI, Inertia, ROC Percentage (ROCP), ROC Ratio (ROCR), ROC Ratio 100 (ROCR100) |
147
+ | Momentum Oscillators | RSI (Wilder), Anchored RSI, Stochastic, CCI, ROC, Williams %R, MFI, Awesome Oscillator, MOM, CMO, TSI, PMO, StochRSI, Ultimate Oscillator, RVI, PGO, KST, SMI, Laguerre RSI, Connors RSI, Inertia, ROC Percentage (ROCP), ROC Ratio (ROCR), ROC Ratio 100 (ROCR100), Disparity Index, Fisher RSI, RSX, Dynamic Momentum Index, Stochastic CCI, RMI, Derivative Oscillator, Elder Ray, Intraday Momentum Index, QQE |
148
148
  | Trend & Directional | MACD, MACD Fixed (MACDFIX), MACD Extended (MACDEXT), ADX (+DI/-DI), ADXR, Aroon, TRIX, Aroon Oscillator, Vortex, Random Walk Index, Trend Intensity Index, Wave Trend Oscillator, Mass Index, Choppiness Index, Vertical Horizontal Filter, Plus DM, Minus DM, Plus DI, Minus DI, DX |
149
149
  | Price Oscillators | PPO, DPO, Coppock, Accelerator Oscillator, Balance of Power, APO, AO Histogram, CFO, Zero-Lag MACD, Elder Impulse, STC |
150
150
  | 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 |
@@ -245,7 +245,7 @@ A Python live-trading example using the public `websockets` package lives at
245
245
  ```
246
246
  wickra/
247
247
  ├── crates/
248
- │ ├── wickra-core/ core engine + all 403 indicators
248
+ │ ├── wickra-core/ core engine + all 413 indicators
249
249
  │ ├── wickra/ top-level facade crate (publishes on crates.io) + benches/
250
250
  │ └── wickra-data/ CSV reader, tick aggregator, live exchange feeds
251
251
  ├── 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.5.5",
8
+ "version": "0.5.6",
9
9
  "license": "MIT OR Apache-2.0",
10
10
  "repository": {
11
11
  "type": "git",
package/wickra_wasm.d.ts CHANGED
@@ -917,6 +917,17 @@ export class DepthSlope {
917
917
  warmupPeriod(): number;
918
918
  }
919
919
 
920
+ export class DerivativeOscillator {
921
+ free(): void;
922
+ [Symbol.dispose](): void;
923
+ batch(prices: Float64Array): Float64Array;
924
+ isReady(): boolean;
925
+ constructor(rsi_period: number, smooth1: number, smooth2: number, signal_period: number);
926
+ reset(): void;
927
+ update(value: number): number | undefined;
928
+ warmupPeriod(): number;
929
+ }
930
+
920
931
  export class DetrendedStdDev {
921
932
  free(): void;
922
933
  [Symbol.dispose](): void;
@@ -928,6 +939,17 @@ export class DetrendedStdDev {
928
939
  warmupPeriod(): number;
929
940
  }
930
941
 
942
+ export class DisparityIndex {
943
+ free(): void;
944
+ [Symbol.dispose](): void;
945
+ batch(prices: Float64Array): Float64Array;
946
+ isReady(): boolean;
947
+ constructor(period: number);
948
+ reset(): void;
949
+ update(value: number): number | undefined;
950
+ warmupPeriod(): number;
951
+ }
952
+
931
953
  export class DistanceSsd {
932
954
  free(): void;
933
955
  [Symbol.dispose](): void;
@@ -1053,6 +1075,17 @@ export class DrawdownDuration {
1053
1075
  warmupPeriod(): number;
1054
1076
  }
1055
1077
 
1078
+ export class DynamicMomentumIndex {
1079
+ free(): void;
1080
+ [Symbol.dispose](): void;
1081
+ batch(prices: Float64Array): Float64Array;
1082
+ isReady(): boolean;
1083
+ constructor(period: number);
1084
+ reset(): void;
1085
+ update(value: number): number | undefined;
1086
+ warmupPeriod(): number;
1087
+ }
1088
+
1056
1089
  export class EHMA {
1057
1090
  free(): void;
1058
1091
  [Symbol.dispose](): void;
@@ -1127,6 +1160,23 @@ export class ElderImpulse {
1127
1160
  warmupPeriod(): number;
1128
1161
  }
1129
1162
 
1163
+ export class ElderRay {
1164
+ free(): void;
1165
+ [Symbol.dispose](): void;
1166
+ /**
1167
+ * Returns `[bull0, bear0, bull1, bear1, ...]`, length `2 * n`.
1168
+ */
1169
+ batch(high: Float64Array, low: Float64Array, close: Float64Array): Float64Array;
1170
+ isReady(): boolean;
1171
+ constructor(period: number);
1172
+ reset(): void;
1173
+ /**
1174
+ * Streaming update. Returns `{ bullPower, bearPower }` once warm, else `null`.
1175
+ */
1176
+ update(high: number, low: number, close: number): any;
1177
+ warmupPeriod(): number;
1178
+ }
1179
+
1130
1180
  export class EmpiricalModeDecomposition {
1131
1181
  free(): void;
1132
1182
  [Symbol.dispose](): void;
@@ -1303,6 +1353,17 @@ export class FibonacciPivots {
1303
1353
  warmupPeriod(): number;
1304
1354
  }
1305
1355
 
1356
+ export class FisherRSI {
1357
+ free(): void;
1358
+ [Symbol.dispose](): void;
1359
+ batch(prices: Float64Array): Float64Array;
1360
+ isReady(): boolean;
1361
+ constructor(period: number);
1362
+ reset(): void;
1363
+ update(value: number): number | undefined;
1364
+ warmupPeriod(): number;
1365
+ }
1366
+
1306
1367
  export class FisherTransform {
1307
1368
  free(): void;
1308
1369
  [Symbol.dispose](): void;
@@ -1735,6 +1796,23 @@ export class HurstExponent {
1735
1796
  warmupPeriod(): number;
1736
1797
  }
1737
1798
 
1799
+ export class IMI {
1800
+ free(): void;
1801
+ [Symbol.dispose](): void;
1802
+ /**
1803
+ * Batch over open/high/low/close arrays; `NaN` during warmup.
1804
+ */
1805
+ batch(open: Float64Array, high: Float64Array, low: Float64Array, close: Float64Array): Float64Array;
1806
+ isReady(): boolean;
1807
+ constructor(period: number);
1808
+ reset(): void;
1809
+ /**
1810
+ * Streaming update over one candle's open/high/low/close.
1811
+ */
1812
+ update(open: number, high: number, low: number, close: number): number | undefined;
1813
+ warmupPeriod(): number;
1814
+ }
1815
+
1738
1816
  export class Ichimoku {
1739
1817
  free(): void;
1740
1818
  [Symbol.dispose](): void;
@@ -2842,6 +2920,23 @@ export class ProfitFactor {
2842
2920
  warmupPeriod(): number;
2843
2921
  }
2844
2922
 
2923
+ export class QQE {
2924
+ free(): void;
2925
+ [Symbol.dispose](): void;
2926
+ /**
2927
+ * Returns `[rsiMa0, trailing0, rsiMa1, trailing1, ...]`, length `2 * n`.
2928
+ */
2929
+ batch(prices: Float64Array): Float64Array;
2930
+ isReady(): boolean;
2931
+ constructor(rsi_period: number, smoothing: number, factor: number);
2932
+ reset(): void;
2933
+ /**
2934
+ * Streaming update. Returns `{ rsiMa, trailingLine }` once warm, else `null`.
2935
+ */
2936
+ update(value: number): any;
2937
+ warmupPeriod(): number;
2938
+ }
2939
+
2845
2940
  export class QuotedSpread {
2846
2941
  free(): void;
2847
2942
  [Symbol.dispose](): void;
@@ -2852,6 +2947,17 @@ export class QuotedSpread {
2852
2947
  warmupPeriod(): number;
2853
2948
  }
2854
2949
 
2950
+ export class RMI {
2951
+ free(): void;
2952
+ [Symbol.dispose](): void;
2953
+ batch(prices: Float64Array): Float64Array;
2954
+ isReady(): boolean;
2955
+ constructor(period: number, momentum: number);
2956
+ reset(): void;
2957
+ update(value: number): number | undefined;
2958
+ warmupPeriod(): number;
2959
+ }
2960
+
2855
2961
  export class ROC {
2856
2962
  free(): void;
2857
2963
  [Symbol.dispose](): void;
@@ -2907,6 +3013,17 @@ export class RSI {
2907
3013
  warmupPeriod(): number;
2908
3014
  }
2909
3015
 
3016
+ export class RSX {
3017
+ free(): void;
3018
+ [Symbol.dispose](): void;
3019
+ batch(prices: Float64Array): Float64Array;
3020
+ isReady(): boolean;
3021
+ constructor(period: number);
3022
+ reset(): void;
3023
+ update(value: number): number | undefined;
3024
+ warmupPeriod(): number;
3025
+ }
3026
+
2910
3027
  export class RSquared {
2911
3028
  free(): void;
2912
3029
  [Symbol.dispose](): void;
@@ -3557,6 +3674,15 @@ export class Stochastic {
3557
3674
  warmupPeriod(): number;
3558
3675
  }
3559
3676
 
3677
+ export class StochasticCCI {
3678
+ free(): void;
3679
+ [Symbol.dispose](): void;
3680
+ batch(high: Float64Array, low: Float64Array, close: Float64Array): Float64Array;
3681
+ constructor(period: number);
3682
+ reset(): void;
3683
+ update(high: number, low: number, close: number): number | undefined;
3684
+ }
3685
+
3560
3686
  export class SuperSmoother {
3561
3687
  free(): void;
3562
3688
  [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, AtrTrailingStop, AutoFib, Autocorrelation, AverageDailyRange, AverageDrawdown, AwesomeOscillator, AwesomeOscillatorHistogram, BalanceOfPower, Bat, BeltHold, Beta, BetaNeutralSpread, BodySizePct, BollingerBands, BollingerBandwidth, 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, DetrendedStdDev, DistanceSsd, Doji, DojiStar, Donchian, DonchianStop, DoubleBollinger, DoubleTopBottom, DownsideGapThreeMethods, DragonflyDoji, DrawdownDuration, EHMA, EMA, EVWMA, EaseOfMovement, EffectiveSpread, EhlersStochastic, ElderImpulse, EmpiricalModeDecomposition, Engulfing, EveningDojiStar, Expectancy, FAMA, FRAMA, FallingThreeMethods, FibArcs, FibChannel, FibConfluence, FibExtension, FibFan, FibProjection, FibRetracement, FibTimeZones, FibonacciPivots, FisherTransform, FlagPennant, Footprint, ForceIndex, FractalChaosBands, FundingBasis, FundingRate, FundingRateMean, FundingRateZScore, GD, GMA, GainLossRatio, GapSideBySideWhite, GarmanKlassVolatility, Gartley, 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, Ichimoku, IdenticalThreeCrows, InNeck, Inertia, InformationRatio, InitialBalance, InstantaneousTrendline, IntradayVolatilityProfile, InverseFisherTransform, InvertedHammer, JMA, JumpIndicator, KAMA, KST, KVO, KagiBars, KalmanHedgeRatio, 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, MarketFacilitationIndex, Marubozu, MassIndex, MatHold, MatchingLow, MaxDrawdown, McClellanOscillator, McClellanSummationIndex, McGinleyDynamic, MedianAbsoluteDeviation, MedianMA, MedianPrice, Microprice, MorningDojiStar, MorningEveningStar, NATR, NVI, NewHighsNewLows, OBV, OIPriceDivergence, OIWeighted, OmegaRatio, OnNeck, OpenInterestDelta, OpeningMarubozu, OpeningRange, OrderBookImbalanceFull, OrderBookImbalanceTop1, OrderBookImbalanceTopN, OrderFlowImbalance, OuHalfLife, OvernightGap, OvernightIntradayReturn, PGO, PLUS_DI, PLUS_DM, PMO, PPO, PSAR, PVI, PainIndex, PairSpreadZScore, PairwiseBeta, ParkinsonVolatility, PearsonCorrelation, PercentAboveMa, PercentB, PercentageTrailingStop, PiercingDarkCloud, PointAndFigureBars, ProfitFactor, QuotedSpread, ROC, ROCP, ROCR, ROCR100, RSI, RSquared, RVI, RVIVolatility, RWI, RealizedSpread, 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, SuperSmoother, SuperTrend, T3, TDCombo, TDCountdown, TDDeMarker, TDDifferential, TDLines, TDOpen, TDPressure, TDREI, TDRangeProjection, TDRiskLevel, TDSequential, TDSetup, TEMA, TII, TRIMA, TRIX, TSF, TSI, TSV, TakerBuySellRatio, Takuri, TasukiGap, TermStructureBasis, ThreeDrives, ThreeInside, ThreeLineStrike, ThreeOutside, ThreeSoldiersOrCrows, ThreeStarsInSouth, Thrusting, TickIndex, TimeOfDayReturnProfile, TpoProfile, TradeImbalance, TrendLabel, TreynorRatio, Triangle, Trin, TripleTopBottom, TrueRange, TtmSqueeze, TurnOfMonth, Tweezer, TwoCrows, TypicalPrice, UlcerIndex, UltimateOscillator, UniqueThreeRiver, UpDownVolumeRatio, UpsideGapThreeMethods, UpsideGapTwoCrows, VIDYA, VWAP, VWMA, VZO, ValueArea, ValueAtRisk, Variance, VarianceRatio, VerticalHorizontalFilter, VoltyStop, VolumeByTimeProfile, VolumeOscillator, VolumePriceTrend, VolumeProfile, Vortex, Vpin, VwapStdDevBands, 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, AtrTrailingStop, AutoFib, Autocorrelation, AverageDailyRange, AverageDrawdown, AwesomeOscillator, AwesomeOscillatorHistogram, BalanceOfPower, Bat, BeltHold, Beta, BetaNeutralSpread, BodySizePct, BollingerBands, BollingerBandwidth, 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, EmpiricalModeDecomposition, Engulfing, EveningDojiStar, 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, GarmanKlassVolatility, Gartley, 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, 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, MarketFacilitationIndex, Marubozu, MassIndex, MatHold, MatchingLow, MaxDrawdown, McClellanOscillator, McClellanSummationIndex, McGinleyDynamic, MedianAbsoluteDeviation, MedianMA, MedianPrice, Microprice, MorningDojiStar, MorningEveningStar, NATR, NVI, NewHighsNewLows, OBV, OIPriceDivergence, OIWeighted, OmegaRatio, OnNeck, OpenInterestDelta, OpeningMarubozu, OpeningRange, OrderBookImbalanceFull, OrderBookImbalanceTop1, OrderBookImbalanceTopN, OrderFlowImbalance, OuHalfLife, OvernightGap, OvernightIntradayReturn, PGO, PLUS_DI, PLUS_DM, PMO, PPO, PSAR, PVI, PainIndex, PairSpreadZScore, PairwiseBeta, ParkinsonVolatility, PearsonCorrelation, PercentAboveMa, PercentB, PercentageTrailingStop, PiercingDarkCloud, PointAndFigureBars, ProfitFactor, QQE, 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, TRIMA, TRIX, TSF, TSI, TSV, TakerBuySellRatio, Takuri, TasukiGap, TermStructureBasis, ThreeDrives, ThreeInside, ThreeLineStrike, ThreeOutside, ThreeSoldiersOrCrows, ThreeStarsInSouth, Thrusting, TickIndex, TimeOfDayReturnProfile, TpoProfile, TradeImbalance, TrendLabel, TreynorRatio, Triangle, Trin, TripleTopBottom, TrueRange, TtmSqueeze, TurnOfMonth, Tweezer, TwoCrows, TypicalPrice, UlcerIndex, UltimateOscillator, UniqueThreeRiver, UpDownVolumeRatio, UpsideGapThreeMethods, UpsideGapTwoCrows, VIDYA, VWAP, VWMA, VZO, ValueArea, ValueAtRisk, Variance, VarianceRatio, VerticalHorizontalFilter, VoltyStop, VolumeByTimeProfile, VolumeOscillator, VolumePriceTrend, VolumeProfile, Vortex, Vpin, VwapStdDevBands, WMA, 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
@@ -6806,6 +6806,85 @@ export class DepthSlope {
6806
6806
  }
6807
6807
  if (Symbol.dispose) DepthSlope.prototype[Symbol.dispose] = DepthSlope.prototype.free;
6808
6808
 
6809
+ export class DerivativeOscillator {
6810
+ __destroy_into_raw() {
6811
+ const ptr = this.__wbg_ptr;
6812
+ this.__wbg_ptr = 0;
6813
+ DerivativeOscillatorFinalization.unregister(this);
6814
+ return ptr;
6815
+ }
6816
+ free() {
6817
+ const ptr = this.__destroy_into_raw();
6818
+ wasm.__wbg_derivativeoscillator_free(ptr, 0);
6819
+ }
6820
+ /**
6821
+ * @param {Float64Array} prices
6822
+ * @returns {Float64Array}
6823
+ */
6824
+ batch(prices) {
6825
+ const ptr0 = passArrayF64ToWasm0(prices, wasm.__wbindgen_export3);
6826
+ const len0 = WASM_VECTOR_LEN;
6827
+ const ret = wasm.derivativeoscillator_batch(this.__wbg_ptr, ptr0, len0);
6828
+ return takeObject(ret);
6829
+ }
6830
+ /**
6831
+ * @returns {boolean}
6832
+ */
6833
+ isReady() {
6834
+ const ret = wasm.derivativeoscillator_isReady(this.__wbg_ptr);
6835
+ return ret !== 0;
6836
+ }
6837
+ /**
6838
+ * @param {number} rsi_period
6839
+ * @param {number} smooth1
6840
+ * @param {number} smooth2
6841
+ * @param {number} signal_period
6842
+ */
6843
+ constructor(rsi_period, smooth1, smooth2, signal_period) {
6844
+ try {
6845
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
6846
+ wasm.derivativeoscillator_new(retptr, rsi_period, smooth1, smooth2, signal_period);
6847
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
6848
+ var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
6849
+ var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);
6850
+ if (r2) {
6851
+ throw takeObject(r1);
6852
+ }
6853
+ this.__wbg_ptr = r0;
6854
+ DerivativeOscillatorFinalization.register(this, this.__wbg_ptr, this);
6855
+ return this;
6856
+ } finally {
6857
+ wasm.__wbindgen_add_to_stack_pointer(16);
6858
+ }
6859
+ }
6860
+ reset() {
6861
+ wasm.derivativeoscillator_reset(this.__wbg_ptr);
6862
+ }
6863
+ /**
6864
+ * @param {number} value
6865
+ * @returns {number | undefined}
6866
+ */
6867
+ update(value) {
6868
+ try {
6869
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
6870
+ wasm.derivativeoscillator_update(retptr, this.__wbg_ptr, value);
6871
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
6872
+ var r2 = getDataViewMemory0().getFloat64(retptr + 8 * 1, true);
6873
+ return r0 === 0 ? undefined : r2;
6874
+ } finally {
6875
+ wasm.__wbindgen_add_to_stack_pointer(16);
6876
+ }
6877
+ }
6878
+ /**
6879
+ * @returns {number}
6880
+ */
6881
+ warmupPeriod() {
6882
+ const ret = wasm.derivativeoscillator_warmupPeriod(this.__wbg_ptr);
6883
+ return ret >>> 0;
6884
+ }
6885
+ }
6886
+ if (Symbol.dispose) DerivativeOscillator.prototype[Symbol.dispose] = DerivativeOscillator.prototype.free;
6887
+
6809
6888
  export class DetrendedStdDev {
6810
6889
  __destroy_into_raw() {
6811
6890
  const ptr = this.__wbg_ptr;
@@ -6882,6 +6961,82 @@ export class DetrendedStdDev {
6882
6961
  }
6883
6962
  if (Symbol.dispose) DetrendedStdDev.prototype[Symbol.dispose] = DetrendedStdDev.prototype.free;
6884
6963
 
6964
+ export class DisparityIndex {
6965
+ __destroy_into_raw() {
6966
+ const ptr = this.__wbg_ptr;
6967
+ this.__wbg_ptr = 0;
6968
+ DisparityIndexFinalization.unregister(this);
6969
+ return ptr;
6970
+ }
6971
+ free() {
6972
+ const ptr = this.__destroy_into_raw();
6973
+ wasm.__wbg_disparityindex_free(ptr, 0);
6974
+ }
6975
+ /**
6976
+ * @param {Float64Array} prices
6977
+ * @returns {Float64Array}
6978
+ */
6979
+ batch(prices) {
6980
+ const ptr0 = passArrayF64ToWasm0(prices, wasm.__wbindgen_export3);
6981
+ const len0 = WASM_VECTOR_LEN;
6982
+ const ret = wasm.disparityindex_batch(this.__wbg_ptr, ptr0, len0);
6983
+ return takeObject(ret);
6984
+ }
6985
+ /**
6986
+ * @returns {boolean}
6987
+ */
6988
+ isReady() {
6989
+ const ret = wasm.disparityindex_isReady(this.__wbg_ptr);
6990
+ return ret !== 0;
6991
+ }
6992
+ /**
6993
+ * @param {number} period
6994
+ */
6995
+ constructor(period) {
6996
+ try {
6997
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
6998
+ wasm.disparityindex_new(retptr, period);
6999
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
7000
+ var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
7001
+ var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);
7002
+ if (r2) {
7003
+ throw takeObject(r1);
7004
+ }
7005
+ this.__wbg_ptr = r0;
7006
+ DisparityIndexFinalization.register(this, this.__wbg_ptr, this);
7007
+ return this;
7008
+ } finally {
7009
+ wasm.__wbindgen_add_to_stack_pointer(16);
7010
+ }
7011
+ }
7012
+ reset() {
7013
+ wasm.disparityindex_reset(this.__wbg_ptr);
7014
+ }
7015
+ /**
7016
+ * @param {number} value
7017
+ * @returns {number | undefined}
7018
+ */
7019
+ update(value) {
7020
+ try {
7021
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
7022
+ wasm.disparityindex_update(retptr, this.__wbg_ptr, value);
7023
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
7024
+ var r2 = getDataViewMemory0().getFloat64(retptr + 8 * 1, true);
7025
+ return r0 === 0 ? undefined : r2;
7026
+ } finally {
7027
+ wasm.__wbindgen_add_to_stack_pointer(16);
7028
+ }
7029
+ }
7030
+ /**
7031
+ * @returns {number}
7032
+ */
7033
+ warmupPeriod() {
7034
+ const ret = wasm.disparityindex_warmupPeriod(this.__wbg_ptr);
7035
+ return ret >>> 0;
7036
+ }
7037
+ }
7038
+ if (Symbol.dispose) DisparityIndex.prototype[Symbol.dispose] = DisparityIndex.prototype.free;
7039
+
6885
7040
  export class DistanceSsd {
6886
7041
  __destroy_into_raw() {
6887
7042
  const ptr = this.__wbg_ptr;
@@ -7741,6 +7896,82 @@ export class DrawdownDuration {
7741
7896
  }
7742
7897
  if (Symbol.dispose) DrawdownDuration.prototype[Symbol.dispose] = DrawdownDuration.prototype.free;
7743
7898
 
7899
+ export class DynamicMomentumIndex {
7900
+ __destroy_into_raw() {
7901
+ const ptr = this.__wbg_ptr;
7902
+ this.__wbg_ptr = 0;
7903
+ DynamicMomentumIndexFinalization.unregister(this);
7904
+ return ptr;
7905
+ }
7906
+ free() {
7907
+ const ptr = this.__destroy_into_raw();
7908
+ wasm.__wbg_dynamicmomentumindex_free(ptr, 0);
7909
+ }
7910
+ /**
7911
+ * @param {Float64Array} prices
7912
+ * @returns {Float64Array}
7913
+ */
7914
+ batch(prices) {
7915
+ const ptr0 = passArrayF64ToWasm0(prices, wasm.__wbindgen_export3);
7916
+ const len0 = WASM_VECTOR_LEN;
7917
+ const ret = wasm.dynamicmomentumindex_batch(this.__wbg_ptr, ptr0, len0);
7918
+ return takeObject(ret);
7919
+ }
7920
+ /**
7921
+ * @returns {boolean}
7922
+ */
7923
+ isReady() {
7924
+ const ret = wasm.dynamicmomentumindex_isReady(this.__wbg_ptr);
7925
+ return ret !== 0;
7926
+ }
7927
+ /**
7928
+ * @param {number} period
7929
+ */
7930
+ constructor(period) {
7931
+ try {
7932
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
7933
+ wasm.dynamicmomentumindex_new(retptr, period);
7934
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
7935
+ var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
7936
+ var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);
7937
+ if (r2) {
7938
+ throw takeObject(r1);
7939
+ }
7940
+ this.__wbg_ptr = r0;
7941
+ DynamicMomentumIndexFinalization.register(this, this.__wbg_ptr, this);
7942
+ return this;
7943
+ } finally {
7944
+ wasm.__wbindgen_add_to_stack_pointer(16);
7945
+ }
7946
+ }
7947
+ reset() {
7948
+ wasm.dynamicmomentumindex_reset(this.__wbg_ptr);
7949
+ }
7950
+ /**
7951
+ * @param {number} value
7952
+ * @returns {number | undefined}
7953
+ */
7954
+ update(value) {
7955
+ try {
7956
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
7957
+ wasm.dynamicmomentumindex_update(retptr, this.__wbg_ptr, value);
7958
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
7959
+ var r2 = getDataViewMemory0().getFloat64(retptr + 8 * 1, true);
7960
+ return r0 === 0 ? undefined : r2;
7961
+ } finally {
7962
+ wasm.__wbindgen_add_to_stack_pointer(16);
7963
+ }
7964
+ }
7965
+ /**
7966
+ * @returns {number}
7967
+ */
7968
+ warmupPeriod() {
7969
+ const ret = wasm.dynamicmomentumindex_warmupPeriod(this.__wbg_ptr);
7970
+ return ret >>> 0;
7971
+ }
7972
+ }
7973
+ if (Symbol.dispose) DynamicMomentumIndex.prototype[Symbol.dispose] = DynamicMomentumIndex.prototype.free;
7974
+
7744
7975
  export class EHMA {
7745
7976
  __destroy_into_raw() {
7746
7977
  const ptr = this.__wbg_ptr;
@@ -8291,6 +8522,107 @@ export class ElderImpulse {
8291
8522
  }
8292
8523
  if (Symbol.dispose) ElderImpulse.prototype[Symbol.dispose] = ElderImpulse.prototype.free;
8293
8524
 
8525
+ export class ElderRay {
8526
+ __destroy_into_raw() {
8527
+ const ptr = this.__wbg_ptr;
8528
+ this.__wbg_ptr = 0;
8529
+ ElderRayFinalization.unregister(this);
8530
+ return ptr;
8531
+ }
8532
+ free() {
8533
+ const ptr = this.__destroy_into_raw();
8534
+ wasm.__wbg_elderray_free(ptr, 0);
8535
+ }
8536
+ /**
8537
+ * Returns `[bull0, bear0, bull1, bear1, ...]`, length `2 * n`.
8538
+ * @param {Float64Array} high
8539
+ * @param {Float64Array} low
8540
+ * @param {Float64Array} close
8541
+ * @returns {Float64Array}
8542
+ */
8543
+ batch(high, low, close) {
8544
+ try {
8545
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
8546
+ const ptr0 = passArrayF64ToWasm0(high, wasm.__wbindgen_export3);
8547
+ const len0 = WASM_VECTOR_LEN;
8548
+ const ptr1 = passArrayF64ToWasm0(low, wasm.__wbindgen_export3);
8549
+ const len1 = WASM_VECTOR_LEN;
8550
+ const ptr2 = passArrayF64ToWasm0(close, wasm.__wbindgen_export3);
8551
+ const len2 = WASM_VECTOR_LEN;
8552
+ wasm.elderray_batch(retptr, this.__wbg_ptr, ptr0, len0, ptr1, len1, ptr2, len2);
8553
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
8554
+ var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
8555
+ var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);
8556
+ if (r2) {
8557
+ throw takeObject(r1);
8558
+ }
8559
+ return takeObject(r0);
8560
+ } finally {
8561
+ wasm.__wbindgen_add_to_stack_pointer(16);
8562
+ }
8563
+ }
8564
+ /**
8565
+ * @returns {boolean}
8566
+ */
8567
+ isReady() {
8568
+ const ret = wasm.elderray_isReady(this.__wbg_ptr);
8569
+ return ret !== 0;
8570
+ }
8571
+ /**
8572
+ * @param {number} period
8573
+ */
8574
+ constructor(period) {
8575
+ try {
8576
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
8577
+ wasm.elderray_new(retptr, period);
8578
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
8579
+ var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
8580
+ var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);
8581
+ if (r2) {
8582
+ throw takeObject(r1);
8583
+ }
8584
+ this.__wbg_ptr = r0;
8585
+ ElderRayFinalization.register(this, this.__wbg_ptr, this);
8586
+ return this;
8587
+ } finally {
8588
+ wasm.__wbindgen_add_to_stack_pointer(16);
8589
+ }
8590
+ }
8591
+ reset() {
8592
+ wasm.elderray_reset(this.__wbg_ptr);
8593
+ }
8594
+ /**
8595
+ * Streaming update. Returns `{ bullPower, bearPower }` once warm, else `null`.
8596
+ * @param {number} high
8597
+ * @param {number} low
8598
+ * @param {number} close
8599
+ * @returns {any}
8600
+ */
8601
+ update(high, low, close) {
8602
+ try {
8603
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
8604
+ wasm.elderray_update(retptr, this.__wbg_ptr, high, low, close);
8605
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
8606
+ var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
8607
+ var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);
8608
+ if (r2) {
8609
+ throw takeObject(r1);
8610
+ }
8611
+ return takeObject(r0);
8612
+ } finally {
8613
+ wasm.__wbindgen_add_to_stack_pointer(16);
8614
+ }
8615
+ }
8616
+ /**
8617
+ * @returns {number}
8618
+ */
8619
+ warmupPeriod() {
8620
+ const ret = wasm.elderray_warmupPeriod(this.__wbg_ptr);
8621
+ return ret >>> 0;
8622
+ }
8623
+ }
8624
+ if (Symbol.dispose) ElderRay.prototype[Symbol.dispose] = ElderRay.prototype.free;
8625
+
8294
8626
  export class EmpiricalModeDecomposition {
8295
8627
  __destroy_into_raw() {
8296
8628
  const ptr = this.__wbg_ptr;
@@ -9600,6 +9932,82 @@ export class FibonacciPivots {
9600
9932
  }
9601
9933
  if (Symbol.dispose) FibonacciPivots.prototype[Symbol.dispose] = FibonacciPivots.prototype.free;
9602
9934
 
9935
+ export class FisherRSI {
9936
+ __destroy_into_raw() {
9937
+ const ptr = this.__wbg_ptr;
9938
+ this.__wbg_ptr = 0;
9939
+ FisherRSIFinalization.unregister(this);
9940
+ return ptr;
9941
+ }
9942
+ free() {
9943
+ const ptr = this.__destroy_into_raw();
9944
+ wasm.__wbg_fisherrsi_free(ptr, 0);
9945
+ }
9946
+ /**
9947
+ * @param {Float64Array} prices
9948
+ * @returns {Float64Array}
9949
+ */
9950
+ batch(prices) {
9951
+ const ptr0 = passArrayF64ToWasm0(prices, wasm.__wbindgen_export3);
9952
+ const len0 = WASM_VECTOR_LEN;
9953
+ const ret = wasm.fisherrsi_batch(this.__wbg_ptr, ptr0, len0);
9954
+ return takeObject(ret);
9955
+ }
9956
+ /**
9957
+ * @returns {boolean}
9958
+ */
9959
+ isReady() {
9960
+ const ret = wasm.fisherrsi_isReady(this.__wbg_ptr);
9961
+ return ret !== 0;
9962
+ }
9963
+ /**
9964
+ * @param {number} period
9965
+ */
9966
+ constructor(period) {
9967
+ try {
9968
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
9969
+ wasm.fisherrsi_new(retptr, period);
9970
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
9971
+ var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
9972
+ var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);
9973
+ if (r2) {
9974
+ throw takeObject(r1);
9975
+ }
9976
+ this.__wbg_ptr = r0;
9977
+ FisherRSIFinalization.register(this, this.__wbg_ptr, this);
9978
+ return this;
9979
+ } finally {
9980
+ wasm.__wbindgen_add_to_stack_pointer(16);
9981
+ }
9982
+ }
9983
+ reset() {
9984
+ wasm.fisherrsi_reset(this.__wbg_ptr);
9985
+ }
9986
+ /**
9987
+ * @param {number} value
9988
+ * @returns {number | undefined}
9989
+ */
9990
+ update(value) {
9991
+ try {
9992
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
9993
+ wasm.fisherrsi_update(retptr, this.__wbg_ptr, value);
9994
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
9995
+ var r2 = getDataViewMemory0().getFloat64(retptr + 8 * 1, true);
9996
+ return r0 === 0 ? undefined : r2;
9997
+ } finally {
9998
+ wasm.__wbindgen_add_to_stack_pointer(16);
9999
+ }
10000
+ }
10001
+ /**
10002
+ * @returns {number}
10003
+ */
10004
+ warmupPeriod() {
10005
+ const ret = wasm.fisherrsi_warmupPeriod(this.__wbg_ptr);
10006
+ return ret >>> 0;
10007
+ }
10008
+ }
10009
+ if (Symbol.dispose) FisherRSI.prototype[Symbol.dispose] = FisherRSI.prototype.free;
10010
+
9603
10011
  export class FisherTransform {
9604
10012
  __destroy_into_raw() {
9605
10013
  const ptr = this.__wbg_ptr;
@@ -12743,6 +13151,112 @@ export class HurstExponent {
12743
13151
  }
12744
13152
  if (Symbol.dispose) HurstExponent.prototype[Symbol.dispose] = HurstExponent.prototype.free;
12745
13153
 
13154
+ export class IMI {
13155
+ __destroy_into_raw() {
13156
+ const ptr = this.__wbg_ptr;
13157
+ this.__wbg_ptr = 0;
13158
+ IMIFinalization.unregister(this);
13159
+ return ptr;
13160
+ }
13161
+ free() {
13162
+ const ptr = this.__destroy_into_raw();
13163
+ wasm.__wbg_imi_free(ptr, 0);
13164
+ }
13165
+ /**
13166
+ * Batch over open/high/low/close arrays; `NaN` during warmup.
13167
+ * @param {Float64Array} open
13168
+ * @param {Float64Array} high
13169
+ * @param {Float64Array} low
13170
+ * @param {Float64Array} close
13171
+ * @returns {Float64Array}
13172
+ */
13173
+ batch(open, high, low, close) {
13174
+ try {
13175
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
13176
+ const ptr0 = passArrayF64ToWasm0(open, wasm.__wbindgen_export3);
13177
+ const len0 = WASM_VECTOR_LEN;
13178
+ const ptr1 = passArrayF64ToWasm0(high, wasm.__wbindgen_export3);
13179
+ const len1 = WASM_VECTOR_LEN;
13180
+ const ptr2 = passArrayF64ToWasm0(low, wasm.__wbindgen_export3);
13181
+ const len2 = WASM_VECTOR_LEN;
13182
+ const ptr3 = passArrayF64ToWasm0(close, wasm.__wbindgen_export3);
13183
+ const len3 = WASM_VECTOR_LEN;
13184
+ wasm.imi_batch(retptr, this.__wbg_ptr, ptr0, len0, ptr1, len1, ptr2, len2, ptr3, len3);
13185
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
13186
+ var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
13187
+ var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);
13188
+ if (r2) {
13189
+ throw takeObject(r1);
13190
+ }
13191
+ return takeObject(r0);
13192
+ } finally {
13193
+ wasm.__wbindgen_add_to_stack_pointer(16);
13194
+ }
13195
+ }
13196
+ /**
13197
+ * @returns {boolean}
13198
+ */
13199
+ isReady() {
13200
+ const ret = wasm.imi_isReady(this.__wbg_ptr);
13201
+ return ret !== 0;
13202
+ }
13203
+ /**
13204
+ * @param {number} period
13205
+ */
13206
+ constructor(period) {
13207
+ try {
13208
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
13209
+ wasm.imi_new(retptr, period);
13210
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
13211
+ var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
13212
+ var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);
13213
+ if (r2) {
13214
+ throw takeObject(r1);
13215
+ }
13216
+ this.__wbg_ptr = r0;
13217
+ IMIFinalization.register(this, this.__wbg_ptr, this);
13218
+ return this;
13219
+ } finally {
13220
+ wasm.__wbindgen_add_to_stack_pointer(16);
13221
+ }
13222
+ }
13223
+ reset() {
13224
+ wasm.imi_reset(this.__wbg_ptr);
13225
+ }
13226
+ /**
13227
+ * Streaming update over one candle's open/high/low/close.
13228
+ * @param {number} open
13229
+ * @param {number} high
13230
+ * @param {number} low
13231
+ * @param {number} close
13232
+ * @returns {number | undefined}
13233
+ */
13234
+ update(open, high, low, close) {
13235
+ try {
13236
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-32);
13237
+ wasm.imi_update(retptr, this.__wbg_ptr, open, high, low, close);
13238
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
13239
+ var r2 = getDataViewMemory0().getFloat64(retptr + 8 * 1, true);
13240
+ var r4 = getDataViewMemory0().getInt32(retptr + 4 * 4, true);
13241
+ var r5 = getDataViewMemory0().getInt32(retptr + 4 * 5, true);
13242
+ if (r5) {
13243
+ throw takeObject(r4);
13244
+ }
13245
+ return r0 === 0 ? undefined : r2;
13246
+ } finally {
13247
+ wasm.__wbindgen_add_to_stack_pointer(32);
13248
+ }
13249
+ }
13250
+ /**
13251
+ * @returns {number}
13252
+ */
13253
+ warmupPeriod() {
13254
+ const ret = wasm.imi_warmupPeriod(this.__wbg_ptr);
13255
+ return ret >>> 0;
13256
+ }
13257
+ }
13258
+ if (Symbol.dispose) IMI.prototype[Symbol.dispose] = IMI.prototype.free;
13259
+
12746
13260
  export class Ichimoku {
12747
13261
  __destroy_into_raw() {
12748
13262
  const ptr = this.__wbg_ptr;
@@ -20586,43 +21100,122 @@ export class PointAndFigureBars {
20586
21100
  }
20587
21101
  }
20588
21102
  }
20589
- if (Symbol.dispose) PointAndFigureBars.prototype[Symbol.dispose] = PointAndFigureBars.prototype.free;
21103
+ if (Symbol.dispose) PointAndFigureBars.prototype[Symbol.dispose] = PointAndFigureBars.prototype.free;
21104
+
21105
+ export class ProfitFactor {
21106
+ __destroy_into_raw() {
21107
+ const ptr = this.__wbg_ptr;
21108
+ this.__wbg_ptr = 0;
21109
+ ProfitFactorFinalization.unregister(this);
21110
+ return ptr;
21111
+ }
21112
+ free() {
21113
+ const ptr = this.__destroy_into_raw();
21114
+ wasm.__wbg_profitfactor_free(ptr, 0);
21115
+ }
21116
+ /**
21117
+ * @param {Float64Array} prices
21118
+ * @returns {Float64Array}
21119
+ */
21120
+ batch(prices) {
21121
+ const ptr0 = passArrayF64ToWasm0(prices, wasm.__wbindgen_export3);
21122
+ const len0 = WASM_VECTOR_LEN;
21123
+ const ret = wasm.profitfactor_batch(this.__wbg_ptr, ptr0, len0);
21124
+ return takeObject(ret);
21125
+ }
21126
+ /**
21127
+ * @returns {boolean}
21128
+ */
21129
+ isReady() {
21130
+ const ret = wasm.profitfactor_isReady(this.__wbg_ptr);
21131
+ return ret !== 0;
21132
+ }
21133
+ /**
21134
+ * @param {number} period
21135
+ */
21136
+ constructor(period) {
21137
+ try {
21138
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
21139
+ wasm.profitfactor_new(retptr, period);
21140
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
21141
+ var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
21142
+ var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);
21143
+ if (r2) {
21144
+ throw takeObject(r1);
21145
+ }
21146
+ this.__wbg_ptr = r0;
21147
+ ProfitFactorFinalization.register(this, this.__wbg_ptr, this);
21148
+ return this;
21149
+ } finally {
21150
+ wasm.__wbindgen_add_to_stack_pointer(16);
21151
+ }
21152
+ }
21153
+ reset() {
21154
+ wasm.profitfactor_reset(this.__wbg_ptr);
21155
+ }
21156
+ /**
21157
+ * @param {number} value
21158
+ * @returns {number | undefined}
21159
+ */
21160
+ update(value) {
21161
+ try {
21162
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
21163
+ wasm.profitfactor_update(retptr, this.__wbg_ptr, value);
21164
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
21165
+ var r2 = getDataViewMemory0().getFloat64(retptr + 8 * 1, true);
21166
+ return r0 === 0 ? undefined : r2;
21167
+ } finally {
21168
+ wasm.__wbindgen_add_to_stack_pointer(16);
21169
+ }
21170
+ }
21171
+ /**
21172
+ * @returns {number}
21173
+ */
21174
+ warmupPeriod() {
21175
+ const ret = wasm.profitfactor_warmupPeriod(this.__wbg_ptr);
21176
+ return ret >>> 0;
21177
+ }
21178
+ }
21179
+ if (Symbol.dispose) ProfitFactor.prototype[Symbol.dispose] = ProfitFactor.prototype.free;
20590
21180
 
20591
- export class ProfitFactor {
21181
+ export class QQE {
20592
21182
  __destroy_into_raw() {
20593
21183
  const ptr = this.__wbg_ptr;
20594
21184
  this.__wbg_ptr = 0;
20595
- ProfitFactorFinalization.unregister(this);
21185
+ QQEFinalization.unregister(this);
20596
21186
  return ptr;
20597
21187
  }
20598
21188
  free() {
20599
21189
  const ptr = this.__destroy_into_raw();
20600
- wasm.__wbg_profitfactor_free(ptr, 0);
21190
+ wasm.__wbg_qqe_free(ptr, 0);
20601
21191
  }
20602
21192
  /**
21193
+ * Returns `[rsiMa0, trailing0, rsiMa1, trailing1, ...]`, length `2 * n`.
20603
21194
  * @param {Float64Array} prices
20604
21195
  * @returns {Float64Array}
20605
21196
  */
20606
21197
  batch(prices) {
20607
21198
  const ptr0 = passArrayF64ToWasm0(prices, wasm.__wbindgen_export3);
20608
21199
  const len0 = WASM_VECTOR_LEN;
20609
- const ret = wasm.profitfactor_batch(this.__wbg_ptr, ptr0, len0);
21200
+ const ret = wasm.qqe_batch(this.__wbg_ptr, ptr0, len0);
20610
21201
  return takeObject(ret);
20611
21202
  }
20612
21203
  /**
20613
21204
  * @returns {boolean}
20614
21205
  */
20615
21206
  isReady() {
20616
- const ret = wasm.profitfactor_isReady(this.__wbg_ptr);
21207
+ const ret = wasm.qqe_isReady(this.__wbg_ptr);
20617
21208
  return ret !== 0;
20618
21209
  }
20619
21210
  /**
20620
- * @param {number} period
21211
+ * @param {number} rsi_period
21212
+ * @param {number} smoothing
21213
+ * @param {number} factor
20621
21214
  */
20622
- constructor(period) {
21215
+ constructor(rsi_period, smoothing, factor) {
20623
21216
  try {
20624
21217
  const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
20625
- wasm.profitfactor_new(retptr, period);
21218
+ wasm.qqe_new(retptr, rsi_period, smoothing, factor);
20626
21219
  var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
20627
21220
  var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
20628
21221
  var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);
@@ -20630,39 +21223,33 @@ export class ProfitFactor {
20630
21223
  throw takeObject(r1);
20631
21224
  }
20632
21225
  this.__wbg_ptr = r0;
20633
- ProfitFactorFinalization.register(this, this.__wbg_ptr, this);
21226
+ QQEFinalization.register(this, this.__wbg_ptr, this);
20634
21227
  return this;
20635
21228
  } finally {
20636
21229
  wasm.__wbindgen_add_to_stack_pointer(16);
20637
21230
  }
20638
21231
  }
20639
21232
  reset() {
20640
- wasm.profitfactor_reset(this.__wbg_ptr);
21233
+ wasm.qqe_reset(this.__wbg_ptr);
20641
21234
  }
20642
21235
  /**
21236
+ * Streaming update. Returns `{ rsiMa, trailingLine }` once warm, else `null`.
20643
21237
  * @param {number} value
20644
- * @returns {number | undefined}
21238
+ * @returns {any}
20645
21239
  */
20646
21240
  update(value) {
20647
- try {
20648
- const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
20649
- wasm.profitfactor_update(retptr, this.__wbg_ptr, value);
20650
- var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
20651
- var r2 = getDataViewMemory0().getFloat64(retptr + 8 * 1, true);
20652
- return r0 === 0 ? undefined : r2;
20653
- } finally {
20654
- wasm.__wbindgen_add_to_stack_pointer(16);
20655
- }
21241
+ const ret = wasm.qqe_update(this.__wbg_ptr, value);
21242
+ return takeObject(ret);
20656
21243
  }
20657
21244
  /**
20658
21245
  * @returns {number}
20659
21246
  */
20660
21247
  warmupPeriod() {
20661
- const ret = wasm.profitfactor_warmupPeriod(this.__wbg_ptr);
21248
+ const ret = wasm.qqe_warmupPeriod(this.__wbg_ptr);
20662
21249
  return ret >>> 0;
20663
21250
  }
20664
21251
  }
20665
- if (Symbol.dispose) ProfitFactor.prototype[Symbol.dispose] = ProfitFactor.prototype.free;
21252
+ if (Symbol.dispose) QQE.prototype[Symbol.dispose] = QQE.prototype.free;
20666
21253
 
20667
21254
  export class QuotedSpread {
20668
21255
  __destroy_into_raw() {
@@ -20732,6 +21319,83 @@ export class QuotedSpread {
20732
21319
  }
20733
21320
  if (Symbol.dispose) QuotedSpread.prototype[Symbol.dispose] = QuotedSpread.prototype.free;
20734
21321
 
21322
+ export class RMI {
21323
+ __destroy_into_raw() {
21324
+ const ptr = this.__wbg_ptr;
21325
+ this.__wbg_ptr = 0;
21326
+ RMIFinalization.unregister(this);
21327
+ return ptr;
21328
+ }
21329
+ free() {
21330
+ const ptr = this.__destroy_into_raw();
21331
+ wasm.__wbg_rmi_free(ptr, 0);
21332
+ }
21333
+ /**
21334
+ * @param {Float64Array} prices
21335
+ * @returns {Float64Array}
21336
+ */
21337
+ batch(prices) {
21338
+ const ptr0 = passArrayF64ToWasm0(prices, wasm.__wbindgen_export3);
21339
+ const len0 = WASM_VECTOR_LEN;
21340
+ const ret = wasm.rmi_batch(this.__wbg_ptr, ptr0, len0);
21341
+ return takeObject(ret);
21342
+ }
21343
+ /**
21344
+ * @returns {boolean}
21345
+ */
21346
+ isReady() {
21347
+ const ret = wasm.rmi_isReady(this.__wbg_ptr);
21348
+ return ret !== 0;
21349
+ }
21350
+ /**
21351
+ * @param {number} period
21352
+ * @param {number} momentum
21353
+ */
21354
+ constructor(period, momentum) {
21355
+ try {
21356
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
21357
+ wasm.rmi_new(retptr, period, momentum);
21358
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
21359
+ var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
21360
+ var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);
21361
+ if (r2) {
21362
+ throw takeObject(r1);
21363
+ }
21364
+ this.__wbg_ptr = r0;
21365
+ RMIFinalization.register(this, this.__wbg_ptr, this);
21366
+ return this;
21367
+ } finally {
21368
+ wasm.__wbindgen_add_to_stack_pointer(16);
21369
+ }
21370
+ }
21371
+ reset() {
21372
+ wasm.rmi_reset(this.__wbg_ptr);
21373
+ }
21374
+ /**
21375
+ * @param {number} value
21376
+ * @returns {number | undefined}
21377
+ */
21378
+ update(value) {
21379
+ try {
21380
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
21381
+ wasm.rmi_update(retptr, this.__wbg_ptr, value);
21382
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
21383
+ var r2 = getDataViewMemory0().getFloat64(retptr + 8 * 1, true);
21384
+ return r0 === 0 ? undefined : r2;
21385
+ } finally {
21386
+ wasm.__wbindgen_add_to_stack_pointer(16);
21387
+ }
21388
+ }
21389
+ /**
21390
+ * @returns {number}
21391
+ */
21392
+ warmupPeriod() {
21393
+ const ret = wasm.rmi_warmupPeriod(this.__wbg_ptr);
21394
+ return ret >>> 0;
21395
+ }
21396
+ }
21397
+ if (Symbol.dispose) RMI.prototype[Symbol.dispose] = RMI.prototype.free;
21398
+
20735
21399
  export class ROC {
20736
21400
  __destroy_into_raw() {
20737
21401
  const ptr = this.__wbg_ptr;
@@ -21112,6 +21776,82 @@ export class RSI {
21112
21776
  }
21113
21777
  if (Symbol.dispose) RSI.prototype[Symbol.dispose] = RSI.prototype.free;
21114
21778
 
21779
+ export class RSX {
21780
+ __destroy_into_raw() {
21781
+ const ptr = this.__wbg_ptr;
21782
+ this.__wbg_ptr = 0;
21783
+ RSXFinalization.unregister(this);
21784
+ return ptr;
21785
+ }
21786
+ free() {
21787
+ const ptr = this.__destroy_into_raw();
21788
+ wasm.__wbg_rsx_free(ptr, 0);
21789
+ }
21790
+ /**
21791
+ * @param {Float64Array} prices
21792
+ * @returns {Float64Array}
21793
+ */
21794
+ batch(prices) {
21795
+ const ptr0 = passArrayF64ToWasm0(prices, wasm.__wbindgen_export3);
21796
+ const len0 = WASM_VECTOR_LEN;
21797
+ const ret = wasm.rsx_batch(this.__wbg_ptr, ptr0, len0);
21798
+ return takeObject(ret);
21799
+ }
21800
+ /**
21801
+ * @returns {boolean}
21802
+ */
21803
+ isReady() {
21804
+ const ret = wasm.rsx_isReady(this.__wbg_ptr);
21805
+ return ret !== 0;
21806
+ }
21807
+ /**
21808
+ * @param {number} period
21809
+ */
21810
+ constructor(period) {
21811
+ try {
21812
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
21813
+ wasm.rsx_new(retptr, period);
21814
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
21815
+ var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
21816
+ var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);
21817
+ if (r2) {
21818
+ throw takeObject(r1);
21819
+ }
21820
+ this.__wbg_ptr = r0;
21821
+ RSXFinalization.register(this, this.__wbg_ptr, this);
21822
+ return this;
21823
+ } finally {
21824
+ wasm.__wbindgen_add_to_stack_pointer(16);
21825
+ }
21826
+ }
21827
+ reset() {
21828
+ wasm.rsx_reset(this.__wbg_ptr);
21829
+ }
21830
+ /**
21831
+ * @param {number} value
21832
+ * @returns {number | undefined}
21833
+ */
21834
+ update(value) {
21835
+ try {
21836
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
21837
+ wasm.rsx_update(retptr, this.__wbg_ptr, value);
21838
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
21839
+ var r2 = getDataViewMemory0().getFloat64(retptr + 8 * 1, true);
21840
+ return r0 === 0 ? undefined : r2;
21841
+ } finally {
21842
+ wasm.__wbindgen_add_to_stack_pointer(16);
21843
+ }
21844
+ }
21845
+ /**
21846
+ * @returns {number}
21847
+ */
21848
+ warmupPeriod() {
21849
+ const ret = wasm.rsx_warmupPeriod(this.__wbg_ptr);
21850
+ return ret >>> 0;
21851
+ }
21852
+ }
21853
+ if (Symbol.dispose) RSX.prototype[Symbol.dispose] = RSX.prototype.free;
21854
+
21115
21855
  export class RSquared {
21116
21856
  __destroy_into_raw() {
21117
21857
  const ptr = this.__wbg_ptr;
@@ -25722,6 +26462,92 @@ export class Stochastic {
25722
26462
  }
25723
26463
  if (Symbol.dispose) Stochastic.prototype[Symbol.dispose] = Stochastic.prototype.free;
25724
26464
 
26465
+ export class StochasticCCI {
26466
+ __destroy_into_raw() {
26467
+ const ptr = this.__wbg_ptr;
26468
+ this.__wbg_ptr = 0;
26469
+ StochasticCCIFinalization.unregister(this);
26470
+ return ptr;
26471
+ }
26472
+ free() {
26473
+ const ptr = this.__destroy_into_raw();
26474
+ wasm.__wbg_stochasticcci_free(ptr, 0);
26475
+ }
26476
+ /**
26477
+ * @param {Float64Array} high
26478
+ * @param {Float64Array} low
26479
+ * @param {Float64Array} close
26480
+ * @returns {Float64Array}
26481
+ */
26482
+ batch(high, low, close) {
26483
+ try {
26484
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
26485
+ const ptr0 = passArrayF64ToWasm0(high, wasm.__wbindgen_export3);
26486
+ const len0 = WASM_VECTOR_LEN;
26487
+ const ptr1 = passArrayF64ToWasm0(low, wasm.__wbindgen_export3);
26488
+ const len1 = WASM_VECTOR_LEN;
26489
+ const ptr2 = passArrayF64ToWasm0(close, wasm.__wbindgen_export3);
26490
+ const len2 = WASM_VECTOR_LEN;
26491
+ wasm.stochasticcci_batch(retptr, this.__wbg_ptr, ptr0, len0, ptr1, len1, ptr2, len2);
26492
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
26493
+ var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
26494
+ var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);
26495
+ if (r2) {
26496
+ throw takeObject(r1);
26497
+ }
26498
+ return takeObject(r0);
26499
+ } finally {
26500
+ wasm.__wbindgen_add_to_stack_pointer(16);
26501
+ }
26502
+ }
26503
+ /**
26504
+ * @param {number} period
26505
+ */
26506
+ constructor(period) {
26507
+ try {
26508
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
26509
+ wasm.stochasticcci_new(retptr, period);
26510
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
26511
+ var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
26512
+ var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);
26513
+ if (r2) {
26514
+ throw takeObject(r1);
26515
+ }
26516
+ this.__wbg_ptr = r0;
26517
+ StochasticCCIFinalization.register(this, this.__wbg_ptr, this);
26518
+ return this;
26519
+ } finally {
26520
+ wasm.__wbindgen_add_to_stack_pointer(16);
26521
+ }
26522
+ }
26523
+ reset() {
26524
+ wasm.stochasticcci_reset(this.__wbg_ptr);
26525
+ }
26526
+ /**
26527
+ * @param {number} high
26528
+ * @param {number} low
26529
+ * @param {number} close
26530
+ * @returns {number | undefined}
26531
+ */
26532
+ update(high, low, close) {
26533
+ try {
26534
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-32);
26535
+ wasm.stochasticcci_update(retptr, this.__wbg_ptr, high, low, close);
26536
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
26537
+ var r2 = getDataViewMemory0().getFloat64(retptr + 8 * 1, true);
26538
+ var r4 = getDataViewMemory0().getInt32(retptr + 4 * 4, true);
26539
+ var r5 = getDataViewMemory0().getInt32(retptr + 4 * 5, true);
26540
+ if (r5) {
26541
+ throw takeObject(r4);
26542
+ }
26543
+ return r0 === 0 ? undefined : r2;
26544
+ } finally {
26545
+ wasm.__wbindgen_add_to_stack_pointer(32);
26546
+ }
26547
+ }
26548
+ }
26549
+ if (Symbol.dispose) StochasticCCI.prototype[Symbol.dispose] = StochasticCCI.prototype.free;
26550
+
25725
26551
  export class SuperSmoother {
25726
26552
  __destroy_into_raw() {
25727
26553
  const ptr = this.__wbg_ptr;
@@ -33497,9 +34323,15 @@ const DemarkPivotsFinalization = (typeof FinalizationRegistry === 'undefined')
33497
34323
  const DepthSlopeFinalization = (typeof FinalizationRegistry === 'undefined')
33498
34324
  ? { register: () => {}, unregister: () => {} }
33499
34325
  : new FinalizationRegistry(ptr => wasm.__wbg_depthslope_free(ptr, 1));
34326
+ const DerivativeOscillatorFinalization = (typeof FinalizationRegistry === 'undefined')
34327
+ ? { register: () => {}, unregister: () => {} }
34328
+ : new FinalizationRegistry(ptr => wasm.__wbg_derivativeoscillator_free(ptr, 1));
33500
34329
  const DetrendedStdDevFinalization = (typeof FinalizationRegistry === 'undefined')
33501
34330
  ? { register: () => {}, unregister: () => {} }
33502
34331
  : new FinalizationRegistry(ptr => wasm.__wbg_detrendedstddev_free(ptr, 1));
34332
+ const DisparityIndexFinalization = (typeof FinalizationRegistry === 'undefined')
34333
+ ? { register: () => {}, unregister: () => {} }
34334
+ : new FinalizationRegistry(ptr => wasm.__wbg_disparityindex_free(ptr, 1));
33503
34335
  const DistanceSsdFinalization = (typeof FinalizationRegistry === 'undefined')
33504
34336
  ? { register: () => {}, unregister: () => {} }
33505
34337
  : new FinalizationRegistry(ptr => wasm.__wbg_distancessd_free(ptr, 1));
@@ -33536,6 +34368,9 @@ const DrawdownDurationFinalization = (typeof FinalizationRegistry === 'undefined
33536
34368
  const DXFinalization = (typeof FinalizationRegistry === 'undefined')
33537
34369
  ? { register: () => {}, unregister: () => {} }
33538
34370
  : new FinalizationRegistry(ptr => wasm.__wbg_dx_free(ptr, 1));
34371
+ const DynamicMomentumIndexFinalization = (typeof FinalizationRegistry === 'undefined')
34372
+ ? { register: () => {}, unregister: () => {} }
34373
+ : new FinalizationRegistry(ptr => wasm.__wbg_dynamicmomentumindex_free(ptr, 1));
33539
34374
  const EaseOfMovementFinalization = (typeof FinalizationRegistry === 'undefined')
33540
34375
  ? { register: () => {}, unregister: () => {} }
33541
34376
  : new FinalizationRegistry(ptr => wasm.__wbg_easeofmovement_free(ptr, 1));
@@ -33551,6 +34386,9 @@ const EHMAFinalization = (typeof FinalizationRegistry === 'undefined')
33551
34386
  const ElderImpulseFinalization = (typeof FinalizationRegistry === 'undefined')
33552
34387
  ? { register: () => {}, unregister: () => {} }
33553
34388
  : new FinalizationRegistry(ptr => wasm.__wbg_elderimpulse_free(ptr, 1));
34389
+ const ElderRayFinalization = (typeof FinalizationRegistry === 'undefined')
34390
+ ? { register: () => {}, unregister: () => {} }
34391
+ : new FinalizationRegistry(ptr => wasm.__wbg_elderray_free(ptr, 1));
33554
34392
  const EMAFinalization = (typeof FinalizationRegistry === 'undefined')
33555
34393
  ? { register: () => {}, unregister: () => {} }
33556
34394
  : new FinalizationRegistry(ptr => wasm.__wbg_ema_free(ptr, 1));
@@ -33602,6 +34440,9 @@ const FibTimeZonesFinalization = (typeof FinalizationRegistry === 'undefined')
33602
34440
  const FibonacciPivotsFinalization = (typeof FinalizationRegistry === 'undefined')
33603
34441
  ? { register: () => {}, unregister: () => {} }
33604
34442
  : new FinalizationRegistry(ptr => wasm.__wbg_fibonaccipivots_free(ptr, 1));
34443
+ const FisherRSIFinalization = (typeof FinalizationRegistry === 'undefined')
34444
+ ? { register: () => {}, unregister: () => {} }
34445
+ : new FinalizationRegistry(ptr => wasm.__wbg_fisherrsi_free(ptr, 1));
33605
34446
  const FisherTransformFinalization = (typeof FinalizationRegistry === 'undefined')
33606
34447
  ? { register: () => {}, unregister: () => {} }
33607
34448
  : new FinalizationRegistry(ptr => wasm.__wbg_fishertransform_free(ptr, 1));
@@ -33728,6 +34569,9 @@ const IchimokuFinalization = (typeof FinalizationRegistry === 'undefined')
33728
34569
  const IdenticalThreeCrowsFinalization = (typeof FinalizationRegistry === 'undefined')
33729
34570
  ? { register: () => {}, unregister: () => {} }
33730
34571
  : new FinalizationRegistry(ptr => wasm.__wbg_identicalthreecrows_free(ptr, 1));
34572
+ const IMIFinalization = (typeof FinalizationRegistry === 'undefined')
34573
+ ? { register: () => {}, unregister: () => {} }
34574
+ : new FinalizationRegistry(ptr => wasm.__wbg_imi_free(ptr, 1));
33731
34575
  const InNeckFinalization = (typeof FinalizationRegistry === 'undefined')
33732
34576
  ? { register: () => {}, unregister: () => {} }
33733
34577
  : new FinalizationRegistry(ptr => wasm.__wbg_inneck_free(ptr, 1));
@@ -34016,6 +34860,9 @@ const PSARFinalization = (typeof FinalizationRegistry === 'undefined')
34016
34860
  const PVIFinalization = (typeof FinalizationRegistry === 'undefined')
34017
34861
  ? { register: () => {}, unregister: () => {} }
34018
34862
  : new FinalizationRegistry(ptr => wasm.__wbg_pvi_free(ptr, 1));
34863
+ const QQEFinalization = (typeof FinalizationRegistry === 'undefined')
34864
+ ? { register: () => {}, unregister: () => {} }
34865
+ : new FinalizationRegistry(ptr => wasm.__wbg_qqe_free(ptr, 1));
34019
34866
  const QuotedSpreadFinalization = (typeof FinalizationRegistry === 'undefined')
34020
34867
  ? { register: () => {}, unregister: () => {} }
34021
34868
  : new FinalizationRegistry(ptr => wasm.__wbg_quotedspread_free(ptr, 1));
@@ -34052,6 +34899,9 @@ const RickshawManFinalization = (typeof FinalizationRegistry === 'undefined')
34052
34899
  const RisingThreeMethodsFinalization = (typeof FinalizationRegistry === 'undefined')
34053
34900
  ? { register: () => {}, unregister: () => {} }
34054
34901
  : new FinalizationRegistry(ptr => wasm.__wbg_risingthreemethods_free(ptr, 1));
34902
+ const RMIFinalization = (typeof FinalizationRegistry === 'undefined')
34903
+ ? { register: () => {}, unregister: () => {} }
34904
+ : new FinalizationRegistry(ptr => wasm.__wbg_rmi_free(ptr, 1));
34055
34905
  const ROCFinalization = (typeof FinalizationRegistry === 'undefined')
34056
34906
  ? { register: () => {}, unregister: () => {} }
34057
34907
  : new FinalizationRegistry(ptr => wasm.__wbg_roc_free(ptr, 1));
@@ -34094,6 +34944,9 @@ const RoofingFilterFinalization = (typeof FinalizationRegistry === 'undefined')
34094
34944
  const RSIFinalization = (typeof FinalizationRegistry === 'undefined')
34095
34945
  ? { register: () => {}, unregister: () => {} }
34096
34946
  : new FinalizationRegistry(ptr => wasm.__wbg_rsi_free(ptr, 1));
34947
+ const RSXFinalization = (typeof FinalizationRegistry === 'undefined')
34948
+ ? { register: () => {}, unregister: () => {} }
34949
+ : new FinalizationRegistry(ptr => wasm.__wbg_rsx_free(ptr, 1));
34097
34950
  const RVIFinalization = (typeof FinalizationRegistry === 'undefined')
34098
34951
  ? { register: () => {}, unregister: () => {} }
34099
34952
  : new FinalizationRegistry(ptr => wasm.__wbg_rvi_free(ptr, 1));
@@ -34202,6 +35055,9 @@ const StochasticFinalization = (typeof FinalizationRegistry === 'undefined')
34202
35055
  const StochRSIFinalization = (typeof FinalizationRegistry === 'undefined')
34203
35056
  ? { register: () => {}, unregister: () => {} }
34204
35057
  : new FinalizationRegistry(ptr => wasm.__wbg_stochrsi_free(ptr, 1));
35058
+ const StochasticCCIFinalization = (typeof FinalizationRegistry === 'undefined')
35059
+ ? { register: () => {}, unregister: () => {} }
35060
+ : new FinalizationRegistry(ptr => wasm.__wbg_stochasticcci_free(ptr, 1));
34205
35061
  const SuperSmootherFinalization = (typeof FinalizationRegistry === 'undefined')
34206
35062
  ? { register: () => {}, unregister: () => {} }
34207
35063
  : new FinalizationRegistry(ptr => wasm.__wbg_supersmoother_free(ptr, 1));
Binary file