wickra-wasm 0.6.1 → 0.6.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -1,5 +1,5 @@
1
1
  <p align="center">
2
- <a href="https://wickra.org"><img src="https://raw.githubusercontent.com/wickra-lib/.github/main/profile/wickra-banner.webp?v=434" 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=440" 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 434 indicators; start at the
51
+ every one of the 440 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**: 434 indicators that all update in O(1)
82
+ Wickra's edge is **breadth with reach**: 440 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
- 434 streaming-first indicators across twenty-four families. Every one passes the
191
+ 440 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).
@@ -201,7 +201,7 @@ warmup) at [docs.wickra.org](https://docs.wickra.org/Indicators-Overview).
201
201
  | Price Oscillators | PPO, DPO, Coppock, Accelerator Oscillator, Balance of Power, APO, AO Histogram, CFO, Zero-Lag MACD, Elder Impulse, STC, TSF Oscillator, MACD Histogram, PPO Histogram |
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
- | 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 |
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
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 |
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 |
@@ -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 434 indicators
300
+ │ ├── wickra-core/ core engine + all 440 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.1",
8
+ "version": "0.6.2",
9
9
  "license": "MIT OR Apache-2.0",
10
10
  "repository": {
11
11
  "type": "git",
package/wickra_wasm.d.ts CHANGED
@@ -293,6 +293,22 @@ export class AtrBands {
293
293
  warmupPeriod(): number;
294
294
  }
295
295
 
296
+ export class AtrRatchet {
297
+ free(): void;
298
+ [Symbol.dispose](): void;
299
+ /**
300
+ * Returns `[value0, direction0, value1, direction1, ...]`, length `2 * n`.
301
+ * Warmup is NaN.
302
+ */
303
+ batch(high: Float64Array, low: Float64Array, close: Float64Array): Float64Array;
304
+ constructor(atr_period: number, start_mult: number, increment: number);
305
+ reset(): void;
306
+ /**
307
+ * Returns `{ value, direction }` once warm, else `null`.
308
+ */
309
+ update(high: number, low: number, close: number): any;
310
+ }
311
+
296
312
  export class AtrTrailingStop {
297
313
  free(): void;
298
314
  [Symbol.dispose](): void;
@@ -1199,6 +1215,22 @@ export class ElderRay {
1199
1215
  warmupPeriod(): number;
1200
1216
  }
1201
1217
 
1218
+ export class ElderSafeZone {
1219
+ free(): void;
1220
+ [Symbol.dispose](): void;
1221
+ /**
1222
+ * Returns `[value0, direction0, value1, direction1, ...]`, length `2 * n`.
1223
+ * Warmup is NaN.
1224
+ */
1225
+ batch(high: Float64Array, low: Float64Array, close: Float64Array): Float64Array;
1226
+ constructor(period: number, coeff: number);
1227
+ reset(): void;
1228
+ /**
1229
+ * Returns `{ value, direction }` once warm, else `null`.
1230
+ */
1231
+ update(high: number, low: number, close: number): any;
1232
+ }
1233
+
1202
1234
  export class EmpiricalModeDecomposition {
1203
1235
  free(): void;
1204
1236
  [Symbol.dispose](): void;
@@ -2082,6 +2114,22 @@ export class KalmanHedgeRatio {
2082
2114
  warmupPeriod(): number;
2083
2115
  }
2084
2116
 
2117
+ export class KaseDevStop {
2118
+ free(): void;
2119
+ [Symbol.dispose](): void;
2120
+ /**
2121
+ * Returns `[value0, direction0, value1, direction1, ...]`, length `2 * n`.
2122
+ * Warmup is NaN.
2123
+ */
2124
+ batch(high: Float64Array, low: Float64Array, close: Float64Array): Float64Array;
2125
+ constructor(period: number, dev: number);
2126
+ reset(): void;
2127
+ /**
2128
+ * Returns `{ value, direction }` once warm, else `null`.
2129
+ */
2130
+ update(high: number, low: number, close: number): any;
2131
+ }
2132
+
2085
2133
  export class KasePermissionStochastic {
2086
2134
  free(): void;
2087
2135
  [Symbol.dispose](): void;
@@ -2601,6 +2649,22 @@ export class Microprice {
2601
2649
  warmupPeriod(): number;
2602
2650
  }
2603
2651
 
2652
+ export class ModifiedMaStop {
2653
+ free(): void;
2654
+ [Symbol.dispose](): void;
2655
+ /**
2656
+ * Returns `[value0, direction0, value1, direction1, ...]`, length `2 * n`.
2657
+ * Warmup is NaN.
2658
+ */
2659
+ batch(high: Float64Array, low: Float64Array, close: Float64Array): Float64Array;
2660
+ constructor(period: number);
2661
+ reset(): void;
2662
+ /**
2663
+ * Returns `{ value, direction }` once warm, else `null`.
2664
+ */
2665
+ update(high: number, low: number, close: number): any;
2666
+ }
2667
+
2604
2668
  export class MorningDojiStar {
2605
2669
  free(): void;
2606
2670
  [Symbol.dispose](): void;
@@ -2651,6 +2715,22 @@ export class NewHighsNewLows {
2651
2715
  warmupPeriod(): number;
2652
2716
  }
2653
2717
 
2718
+ export class Nrtr {
2719
+ free(): void;
2720
+ [Symbol.dispose](): void;
2721
+ /**
2722
+ * Returns `[value0, direction0, value1, direction1, ...]`, length `2 * n`.
2723
+ * Warmup is NaN.
2724
+ */
2725
+ batch(high: Float64Array, low: Float64Array, close: Float64Array): Float64Array;
2726
+ constructor(pct: number);
2727
+ reset(): void;
2728
+ /**
2729
+ * Returns `{ value, direction }` once warm, else `null`.
2730
+ */
2731
+ update(high: number, low: number, close: number): any;
2732
+ }
2733
+
2654
2734
  export class OBV {
2655
2735
  free(): void;
2656
2736
  [Symbol.dispose](): void;
@@ -4272,6 +4352,15 @@ export class TickIndex {
4272
4352
  warmupPeriod(): number;
4273
4353
  }
4274
4354
 
4355
+ export class TimeBasedStop {
4356
+ free(): void;
4357
+ [Symbol.dispose](): void;
4358
+ batch(high: Float64Array, low: Float64Array, close: Float64Array): Float64Array;
4359
+ constructor(max_bars: number);
4360
+ reset(): void;
4361
+ update(high: number, low: number, close: number): number | undefined;
4362
+ }
4363
+
4275
4364
  export class TimeOfDayReturnProfile {
4276
4365
  free(): void;
4277
4366
  [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, 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, 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, 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, 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, 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, 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, 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
9
9
  } from "./wickra_wasm_bg.js";
package/wickra_wasm_bg.js CHANGED
@@ -2144,6 +2144,96 @@ export class AtrBands {
2144
2144
  }
2145
2145
  if (Symbol.dispose) AtrBands.prototype[Symbol.dispose] = AtrBands.prototype.free;
2146
2146
 
2147
+ export class AtrRatchet {
2148
+ __destroy_into_raw() {
2149
+ const ptr = this.__wbg_ptr;
2150
+ this.__wbg_ptr = 0;
2151
+ AtrRatchetFinalization.unregister(this);
2152
+ return ptr;
2153
+ }
2154
+ free() {
2155
+ const ptr = this.__destroy_into_raw();
2156
+ wasm.__wbg_atrratchet_free(ptr, 0);
2157
+ }
2158
+ /**
2159
+ * Returns `[value0, direction0, value1, direction1, ...]`, length `2 * n`.
2160
+ * Warmup is NaN.
2161
+ * @param {Float64Array} high
2162
+ * @param {Float64Array} low
2163
+ * @param {Float64Array} close
2164
+ * @returns {Float64Array}
2165
+ */
2166
+ batch(high, low, close) {
2167
+ try {
2168
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
2169
+ const ptr0 = passArrayF64ToWasm0(high, wasm.__wbindgen_export3);
2170
+ const len0 = WASM_VECTOR_LEN;
2171
+ const ptr1 = passArrayF64ToWasm0(low, wasm.__wbindgen_export3);
2172
+ const len1 = WASM_VECTOR_LEN;
2173
+ const ptr2 = passArrayF64ToWasm0(close, wasm.__wbindgen_export3);
2174
+ const len2 = WASM_VECTOR_LEN;
2175
+ wasm.atrratchet_batch(retptr, this.__wbg_ptr, ptr0, len0, ptr1, len1, ptr2, len2);
2176
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
2177
+ var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
2178
+ var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);
2179
+ if (r2) {
2180
+ throw takeObject(r1);
2181
+ }
2182
+ return takeObject(r0);
2183
+ } finally {
2184
+ wasm.__wbindgen_add_to_stack_pointer(16);
2185
+ }
2186
+ }
2187
+ /**
2188
+ * @param {number} atr_period
2189
+ * @param {number} start_mult
2190
+ * @param {number} increment
2191
+ */
2192
+ constructor(atr_period, start_mult, increment) {
2193
+ try {
2194
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
2195
+ wasm.atrratchet_new(retptr, atr_period, start_mult, increment);
2196
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
2197
+ var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
2198
+ var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);
2199
+ if (r2) {
2200
+ throw takeObject(r1);
2201
+ }
2202
+ this.__wbg_ptr = r0;
2203
+ AtrRatchetFinalization.register(this, this.__wbg_ptr, this);
2204
+ return this;
2205
+ } finally {
2206
+ wasm.__wbindgen_add_to_stack_pointer(16);
2207
+ }
2208
+ }
2209
+ reset() {
2210
+ wasm.atrratchet_reset(this.__wbg_ptr);
2211
+ }
2212
+ /**
2213
+ * Returns `{ value, direction }` once warm, else `null`.
2214
+ * @param {number} high
2215
+ * @param {number} low
2216
+ * @param {number} close
2217
+ * @returns {any}
2218
+ */
2219
+ update(high, low, close) {
2220
+ try {
2221
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
2222
+ wasm.atrratchet_update(retptr, this.__wbg_ptr, high, low, close);
2223
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
2224
+ var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
2225
+ var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);
2226
+ if (r2) {
2227
+ throw takeObject(r1);
2228
+ }
2229
+ return takeObject(r0);
2230
+ } finally {
2231
+ wasm.__wbindgen_add_to_stack_pointer(16);
2232
+ }
2233
+ }
2234
+ }
2235
+ if (Symbol.dispose) AtrRatchet.prototype[Symbol.dispose] = AtrRatchet.prototype.free;
2236
+
2147
2237
  export class AtrTrailingStop {
2148
2238
  __destroy_into_raw() {
2149
2239
  const ptr = this.__wbg_ptr;
@@ -8769,6 +8859,95 @@ export class ElderRay {
8769
8859
  }
8770
8860
  if (Symbol.dispose) ElderRay.prototype[Symbol.dispose] = ElderRay.prototype.free;
8771
8861
 
8862
+ export class ElderSafeZone {
8863
+ __destroy_into_raw() {
8864
+ const ptr = this.__wbg_ptr;
8865
+ this.__wbg_ptr = 0;
8866
+ ElderSafeZoneFinalization.unregister(this);
8867
+ return ptr;
8868
+ }
8869
+ free() {
8870
+ const ptr = this.__destroy_into_raw();
8871
+ wasm.__wbg_eldersafezone_free(ptr, 0);
8872
+ }
8873
+ /**
8874
+ * Returns `[value0, direction0, value1, direction1, ...]`, length `2 * n`.
8875
+ * Warmup is NaN.
8876
+ * @param {Float64Array} high
8877
+ * @param {Float64Array} low
8878
+ * @param {Float64Array} close
8879
+ * @returns {Float64Array}
8880
+ */
8881
+ batch(high, low, close) {
8882
+ try {
8883
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
8884
+ const ptr0 = passArrayF64ToWasm0(high, wasm.__wbindgen_export3);
8885
+ const len0 = WASM_VECTOR_LEN;
8886
+ const ptr1 = passArrayF64ToWasm0(low, wasm.__wbindgen_export3);
8887
+ const len1 = WASM_VECTOR_LEN;
8888
+ const ptr2 = passArrayF64ToWasm0(close, wasm.__wbindgen_export3);
8889
+ const len2 = WASM_VECTOR_LEN;
8890
+ wasm.eldersafezone_batch(retptr, this.__wbg_ptr, ptr0, len0, ptr1, len1, ptr2, len2);
8891
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
8892
+ var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
8893
+ var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);
8894
+ if (r2) {
8895
+ throw takeObject(r1);
8896
+ }
8897
+ return takeObject(r0);
8898
+ } finally {
8899
+ wasm.__wbindgen_add_to_stack_pointer(16);
8900
+ }
8901
+ }
8902
+ /**
8903
+ * @param {number} period
8904
+ * @param {number} coeff
8905
+ */
8906
+ constructor(period, coeff) {
8907
+ try {
8908
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
8909
+ wasm.eldersafezone_new(retptr, period, coeff);
8910
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
8911
+ var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
8912
+ var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);
8913
+ if (r2) {
8914
+ throw takeObject(r1);
8915
+ }
8916
+ this.__wbg_ptr = r0;
8917
+ ElderSafeZoneFinalization.register(this, this.__wbg_ptr, this);
8918
+ return this;
8919
+ } finally {
8920
+ wasm.__wbindgen_add_to_stack_pointer(16);
8921
+ }
8922
+ }
8923
+ reset() {
8924
+ wasm.eldersafezone_reset(this.__wbg_ptr);
8925
+ }
8926
+ /**
8927
+ * Returns `{ value, direction }` once warm, else `null`.
8928
+ * @param {number} high
8929
+ * @param {number} low
8930
+ * @param {number} close
8931
+ * @returns {any}
8932
+ */
8933
+ update(high, low, close) {
8934
+ try {
8935
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
8936
+ wasm.eldersafezone_update(retptr, this.__wbg_ptr, high, low, close);
8937
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
8938
+ var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
8939
+ var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);
8940
+ if (r2) {
8941
+ throw takeObject(r1);
8942
+ }
8943
+ return takeObject(r0);
8944
+ } finally {
8945
+ wasm.__wbindgen_add_to_stack_pointer(16);
8946
+ }
8947
+ }
8948
+ }
8949
+ if (Symbol.dispose) ElderSafeZone.prototype[Symbol.dispose] = ElderSafeZone.prototype.free;
8950
+
8772
8951
  export class EmpiricalModeDecomposition {
8773
8952
  __destroy_into_raw() {
8774
8953
  const ptr = this.__wbg_ptr;
@@ -15144,6 +15323,95 @@ export class KalmanHedgeRatio {
15144
15323
  }
15145
15324
  if (Symbol.dispose) KalmanHedgeRatio.prototype[Symbol.dispose] = KalmanHedgeRatio.prototype.free;
15146
15325
 
15326
+ export class KaseDevStop {
15327
+ __destroy_into_raw() {
15328
+ const ptr = this.__wbg_ptr;
15329
+ this.__wbg_ptr = 0;
15330
+ KaseDevStopFinalization.unregister(this);
15331
+ return ptr;
15332
+ }
15333
+ free() {
15334
+ const ptr = this.__destroy_into_raw();
15335
+ wasm.__wbg_kasedevstop_free(ptr, 0);
15336
+ }
15337
+ /**
15338
+ * Returns `[value0, direction0, value1, direction1, ...]`, length `2 * n`.
15339
+ * Warmup is NaN.
15340
+ * @param {Float64Array} high
15341
+ * @param {Float64Array} low
15342
+ * @param {Float64Array} close
15343
+ * @returns {Float64Array}
15344
+ */
15345
+ batch(high, low, close) {
15346
+ try {
15347
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
15348
+ const ptr0 = passArrayF64ToWasm0(high, wasm.__wbindgen_export3);
15349
+ const len0 = WASM_VECTOR_LEN;
15350
+ const ptr1 = passArrayF64ToWasm0(low, wasm.__wbindgen_export3);
15351
+ const len1 = WASM_VECTOR_LEN;
15352
+ const ptr2 = passArrayF64ToWasm0(close, wasm.__wbindgen_export3);
15353
+ const len2 = WASM_VECTOR_LEN;
15354
+ wasm.kasedevstop_batch(retptr, this.__wbg_ptr, ptr0, len0, ptr1, len1, ptr2, len2);
15355
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
15356
+ var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
15357
+ var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);
15358
+ if (r2) {
15359
+ throw takeObject(r1);
15360
+ }
15361
+ return takeObject(r0);
15362
+ } finally {
15363
+ wasm.__wbindgen_add_to_stack_pointer(16);
15364
+ }
15365
+ }
15366
+ /**
15367
+ * @param {number} period
15368
+ * @param {number} dev
15369
+ */
15370
+ constructor(period, dev) {
15371
+ try {
15372
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
15373
+ wasm.kasedevstop_new(retptr, period, dev);
15374
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
15375
+ var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
15376
+ var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);
15377
+ if (r2) {
15378
+ throw takeObject(r1);
15379
+ }
15380
+ this.__wbg_ptr = r0;
15381
+ KaseDevStopFinalization.register(this, this.__wbg_ptr, this);
15382
+ return this;
15383
+ } finally {
15384
+ wasm.__wbindgen_add_to_stack_pointer(16);
15385
+ }
15386
+ }
15387
+ reset() {
15388
+ wasm.kasedevstop_reset(this.__wbg_ptr);
15389
+ }
15390
+ /**
15391
+ * Returns `{ value, direction }` once warm, else `null`.
15392
+ * @param {number} high
15393
+ * @param {number} low
15394
+ * @param {number} close
15395
+ * @returns {any}
15396
+ */
15397
+ update(high, low, close) {
15398
+ try {
15399
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
15400
+ wasm.kasedevstop_update(retptr, this.__wbg_ptr, high, low, close);
15401
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
15402
+ var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
15403
+ var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);
15404
+ if (r2) {
15405
+ throw takeObject(r1);
15406
+ }
15407
+ return takeObject(r0);
15408
+ } finally {
15409
+ wasm.__wbindgen_add_to_stack_pointer(16);
15410
+ }
15411
+ }
15412
+ }
15413
+ if (Symbol.dispose) KaseDevStop.prototype[Symbol.dispose] = KaseDevStop.prototype.free;
15414
+
15147
15415
  export class KasePermissionStochastic {
15148
15416
  __destroy_into_raw() {
15149
15417
  const ptr = this.__wbg_ptr;
@@ -18743,6 +19011,94 @@ export class Microprice {
18743
19011
  }
18744
19012
  if (Symbol.dispose) Microprice.prototype[Symbol.dispose] = Microprice.prototype.free;
18745
19013
 
19014
+ export class ModifiedMaStop {
19015
+ __destroy_into_raw() {
19016
+ const ptr = this.__wbg_ptr;
19017
+ this.__wbg_ptr = 0;
19018
+ ModifiedMaStopFinalization.unregister(this);
19019
+ return ptr;
19020
+ }
19021
+ free() {
19022
+ const ptr = this.__destroy_into_raw();
19023
+ wasm.__wbg_modifiedmastop_free(ptr, 0);
19024
+ }
19025
+ /**
19026
+ * Returns `[value0, direction0, value1, direction1, ...]`, length `2 * n`.
19027
+ * Warmup is NaN.
19028
+ * @param {Float64Array} high
19029
+ * @param {Float64Array} low
19030
+ * @param {Float64Array} close
19031
+ * @returns {Float64Array}
19032
+ */
19033
+ batch(high, low, close) {
19034
+ try {
19035
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
19036
+ const ptr0 = passArrayF64ToWasm0(high, wasm.__wbindgen_export3);
19037
+ const len0 = WASM_VECTOR_LEN;
19038
+ const ptr1 = passArrayF64ToWasm0(low, wasm.__wbindgen_export3);
19039
+ const len1 = WASM_VECTOR_LEN;
19040
+ const ptr2 = passArrayF64ToWasm0(close, wasm.__wbindgen_export3);
19041
+ const len2 = WASM_VECTOR_LEN;
19042
+ wasm.modifiedmastop_batch(retptr, this.__wbg_ptr, ptr0, len0, ptr1, len1, ptr2, len2);
19043
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
19044
+ var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
19045
+ var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);
19046
+ if (r2) {
19047
+ throw takeObject(r1);
19048
+ }
19049
+ return takeObject(r0);
19050
+ } finally {
19051
+ wasm.__wbindgen_add_to_stack_pointer(16);
19052
+ }
19053
+ }
19054
+ /**
19055
+ * @param {number} period
19056
+ */
19057
+ constructor(period) {
19058
+ try {
19059
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
19060
+ wasm.modifiedmastop_new(retptr, period);
19061
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
19062
+ var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
19063
+ var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);
19064
+ if (r2) {
19065
+ throw takeObject(r1);
19066
+ }
19067
+ this.__wbg_ptr = r0;
19068
+ ModifiedMaStopFinalization.register(this, this.__wbg_ptr, this);
19069
+ return this;
19070
+ } finally {
19071
+ wasm.__wbindgen_add_to_stack_pointer(16);
19072
+ }
19073
+ }
19074
+ reset() {
19075
+ wasm.modifiedmastop_reset(this.__wbg_ptr);
19076
+ }
19077
+ /**
19078
+ * Returns `{ value, direction }` once warm, else `null`.
19079
+ * @param {number} high
19080
+ * @param {number} low
19081
+ * @param {number} close
19082
+ * @returns {any}
19083
+ */
19084
+ update(high, low, close) {
19085
+ try {
19086
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
19087
+ wasm.modifiedmastop_update(retptr, this.__wbg_ptr, high, low, close);
19088
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
19089
+ var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
19090
+ var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);
19091
+ if (r2) {
19092
+ throw takeObject(r1);
19093
+ }
19094
+ return takeObject(r0);
19095
+ } finally {
19096
+ wasm.__wbindgen_add_to_stack_pointer(16);
19097
+ }
19098
+ }
19099
+ }
19100
+ if (Symbol.dispose) ModifiedMaStop.prototype[Symbol.dispose] = ModifiedMaStop.prototype.free;
19101
+
18746
19102
  export class MorningDojiStar {
18747
19103
  __destroy_into_raw() {
18748
19104
  const ptr = this.__wbg_ptr;
@@ -19148,6 +19504,94 @@ export class NewHighsNewLows {
19148
19504
  }
19149
19505
  if (Symbol.dispose) NewHighsNewLows.prototype[Symbol.dispose] = NewHighsNewLows.prototype.free;
19150
19506
 
19507
+ export class Nrtr {
19508
+ __destroy_into_raw() {
19509
+ const ptr = this.__wbg_ptr;
19510
+ this.__wbg_ptr = 0;
19511
+ NrtrFinalization.unregister(this);
19512
+ return ptr;
19513
+ }
19514
+ free() {
19515
+ const ptr = this.__destroy_into_raw();
19516
+ wasm.__wbg_nrtr_free(ptr, 0);
19517
+ }
19518
+ /**
19519
+ * Returns `[value0, direction0, value1, direction1, ...]`, length `2 * n`.
19520
+ * Warmup is NaN.
19521
+ * @param {Float64Array} high
19522
+ * @param {Float64Array} low
19523
+ * @param {Float64Array} close
19524
+ * @returns {Float64Array}
19525
+ */
19526
+ batch(high, low, close) {
19527
+ try {
19528
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
19529
+ const ptr0 = passArrayF64ToWasm0(high, wasm.__wbindgen_export3);
19530
+ const len0 = WASM_VECTOR_LEN;
19531
+ const ptr1 = passArrayF64ToWasm0(low, wasm.__wbindgen_export3);
19532
+ const len1 = WASM_VECTOR_LEN;
19533
+ const ptr2 = passArrayF64ToWasm0(close, wasm.__wbindgen_export3);
19534
+ const len2 = WASM_VECTOR_LEN;
19535
+ wasm.nrtr_batch(retptr, this.__wbg_ptr, ptr0, len0, ptr1, len1, ptr2, len2);
19536
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
19537
+ var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
19538
+ var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);
19539
+ if (r2) {
19540
+ throw takeObject(r1);
19541
+ }
19542
+ return takeObject(r0);
19543
+ } finally {
19544
+ wasm.__wbindgen_add_to_stack_pointer(16);
19545
+ }
19546
+ }
19547
+ /**
19548
+ * @param {number} pct
19549
+ */
19550
+ constructor(pct) {
19551
+ try {
19552
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
19553
+ wasm.nrtr_new(retptr, pct);
19554
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
19555
+ var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
19556
+ var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);
19557
+ if (r2) {
19558
+ throw takeObject(r1);
19559
+ }
19560
+ this.__wbg_ptr = r0;
19561
+ NrtrFinalization.register(this, this.__wbg_ptr, this);
19562
+ return this;
19563
+ } finally {
19564
+ wasm.__wbindgen_add_to_stack_pointer(16);
19565
+ }
19566
+ }
19567
+ reset() {
19568
+ wasm.nrtr_reset(this.__wbg_ptr);
19569
+ }
19570
+ /**
19571
+ * Returns `{ value, direction }` once warm, else `null`.
19572
+ * @param {number} high
19573
+ * @param {number} low
19574
+ * @param {number} close
19575
+ * @returns {any}
19576
+ */
19577
+ update(high, low, close) {
19578
+ try {
19579
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
19580
+ wasm.nrtr_update(retptr, this.__wbg_ptr, high, low, close);
19581
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
19582
+ var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
19583
+ var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);
19584
+ if (r2) {
19585
+ throw takeObject(r1);
19586
+ }
19587
+ return takeObject(r0);
19588
+ } finally {
19589
+ wasm.__wbindgen_add_to_stack_pointer(16);
19590
+ }
19591
+ }
19592
+ }
19593
+ if (Symbol.dispose) Nrtr.prototype[Symbol.dispose] = Nrtr.prototype.free;
19594
+
19151
19595
  export class OBV {
19152
19596
  __destroy_into_raw() {
19153
19597
  const ptr = this.__wbg_ptr;
@@ -30825,6 +31269,92 @@ export class TickIndex {
30825
31269
  }
30826
31270
  if (Symbol.dispose) TickIndex.prototype[Symbol.dispose] = TickIndex.prototype.free;
30827
31271
 
31272
+ export class TimeBasedStop {
31273
+ __destroy_into_raw() {
31274
+ const ptr = this.__wbg_ptr;
31275
+ this.__wbg_ptr = 0;
31276
+ TimeBasedStopFinalization.unregister(this);
31277
+ return ptr;
31278
+ }
31279
+ free() {
31280
+ const ptr = this.__destroy_into_raw();
31281
+ wasm.__wbg_timebasedstop_free(ptr, 0);
31282
+ }
31283
+ /**
31284
+ * @param {Float64Array} high
31285
+ * @param {Float64Array} low
31286
+ * @param {Float64Array} close
31287
+ * @returns {Float64Array}
31288
+ */
31289
+ batch(high, low, close) {
31290
+ try {
31291
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
31292
+ const ptr0 = passArrayF64ToWasm0(high, wasm.__wbindgen_export3);
31293
+ const len0 = WASM_VECTOR_LEN;
31294
+ const ptr1 = passArrayF64ToWasm0(low, wasm.__wbindgen_export3);
31295
+ const len1 = WASM_VECTOR_LEN;
31296
+ const ptr2 = passArrayF64ToWasm0(close, wasm.__wbindgen_export3);
31297
+ const len2 = WASM_VECTOR_LEN;
31298
+ wasm.timebasedstop_batch(retptr, this.__wbg_ptr, ptr0, len0, ptr1, len1, ptr2, len2);
31299
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
31300
+ var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
31301
+ var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);
31302
+ if (r2) {
31303
+ throw takeObject(r1);
31304
+ }
31305
+ return takeObject(r0);
31306
+ } finally {
31307
+ wasm.__wbindgen_add_to_stack_pointer(16);
31308
+ }
31309
+ }
31310
+ /**
31311
+ * @param {number} max_bars
31312
+ */
31313
+ constructor(max_bars) {
31314
+ try {
31315
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
31316
+ wasm.timebasedstop_new(retptr, max_bars);
31317
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
31318
+ var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
31319
+ var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);
31320
+ if (r2) {
31321
+ throw takeObject(r1);
31322
+ }
31323
+ this.__wbg_ptr = r0;
31324
+ TimeBasedStopFinalization.register(this, this.__wbg_ptr, this);
31325
+ return this;
31326
+ } finally {
31327
+ wasm.__wbindgen_add_to_stack_pointer(16);
31328
+ }
31329
+ }
31330
+ reset() {
31331
+ wasm.timebasedstop_reset(this.__wbg_ptr);
31332
+ }
31333
+ /**
31334
+ * @param {number} high
31335
+ * @param {number} low
31336
+ * @param {number} close
31337
+ * @returns {number | undefined}
31338
+ */
31339
+ update(high, low, close) {
31340
+ try {
31341
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-32);
31342
+ wasm.timebasedstop_update(retptr, this.__wbg_ptr, high, low, close);
31343
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
31344
+ var r2 = getDataViewMemory0().getFloat64(retptr + 8 * 1, true);
31345
+ var r4 = getDataViewMemory0().getInt32(retptr + 4 * 4, true);
31346
+ var r5 = getDataViewMemory0().getInt32(retptr + 4 * 5, true);
31347
+ if (r5) {
31348
+ throw takeObject(r4);
31349
+ }
31350
+ return r0 === 0 ? undefined : r2;
31351
+ } finally {
31352
+ wasm.__wbindgen_add_to_stack_pointer(32);
31353
+ }
31354
+ }
31355
+ }
31356
+ if (Symbol.dispose) TimeBasedStop.prototype[Symbol.dispose] = TimeBasedStop.prototype.free;
31357
+
30828
31358
  export class TimeOfDayReturnProfile {
30829
31359
  __destroy_into_raw() {
30830
31360
  const ptr = this.__wbg_ptr;
@@ -35895,6 +36425,9 @@ const ATRFinalization = (typeof FinalizationRegistry === 'undefined')
35895
36425
  const AtrBandsFinalization = (typeof FinalizationRegistry === 'undefined')
35896
36426
  ? { register: () => {}, unregister: () => {} }
35897
36427
  : new FinalizationRegistry(ptr => wasm.__wbg_atrbands_free(ptr, 1));
36428
+ const AtrRatchetFinalization = (typeof FinalizationRegistry === 'undefined')
36429
+ ? { register: () => {}, unregister: () => {} }
36430
+ : new FinalizationRegistry(ptr => wasm.__wbg_atrratchet_free(ptr, 1));
35898
36431
  const AtrTrailingStopFinalization = (typeof FinalizationRegistry === 'undefined')
35899
36432
  ? { register: () => {}, unregister: () => {} }
35900
36433
  : new FinalizationRegistry(ptr => wasm.__wbg_atrtrailingstop_free(ptr, 1));
@@ -36129,6 +36662,9 @@ const ElderImpulseFinalization = (typeof FinalizationRegistry === 'undefined')
36129
36662
  const ElderRayFinalization = (typeof FinalizationRegistry === 'undefined')
36130
36663
  ? { register: () => {}, unregister: () => {} }
36131
36664
  : new FinalizationRegistry(ptr => wasm.__wbg_elderray_free(ptr, 1));
36665
+ const ElderSafeZoneFinalization = (typeof FinalizationRegistry === 'undefined')
36666
+ ? { register: () => {}, unregister: () => {} }
36667
+ : new FinalizationRegistry(ptr => wasm.__wbg_eldersafezone_free(ptr, 1));
36132
36668
  const EMAFinalization = (typeof FinalizationRegistry === 'undefined')
36133
36669
  ? { register: () => {}, unregister: () => {} }
36134
36670
  : new FinalizationRegistry(ptr => wasm.__wbg_ema_free(ptr, 1));
@@ -36360,6 +36896,9 @@ const KalmanHedgeRatioFinalization = (typeof FinalizationRegistry === 'undefined
36360
36896
  const KAMAFinalization = (typeof FinalizationRegistry === 'undefined')
36361
36897
  ? { register: () => {}, unregister: () => {} }
36362
36898
  : new FinalizationRegistry(ptr => wasm.__wbg_kama_free(ptr, 1));
36899
+ const KaseDevStopFinalization = (typeof FinalizationRegistry === 'undefined')
36900
+ ? { register: () => {}, unregister: () => {} }
36901
+ : new FinalizationRegistry(ptr => wasm.__wbg_kasedevstop_free(ptr, 1));
36363
36902
  const KasePermissionStochasticFinalization = (typeof FinalizationRegistry === 'undefined')
36364
36903
  ? { register: () => {}, unregister: () => {} }
36365
36904
  : new FinalizationRegistry(ptr => wasm.__wbg_kasepermissionstochastic_free(ptr, 1));
@@ -36501,6 +37040,9 @@ const MINUS_DIFinalization = (typeof FinalizationRegistry === 'undefined')
36501
37040
  const MINUS_DMFinalization = (typeof FinalizationRegistry === 'undefined')
36502
37041
  ? { register: () => {}, unregister: () => {} }
36503
37042
  : new FinalizationRegistry(ptr => wasm.__wbg_minus_dm_free(ptr, 1));
37043
+ const ModifiedMaStopFinalization = (typeof FinalizationRegistry === 'undefined')
37044
+ ? { register: () => {}, unregister: () => {} }
37045
+ : new FinalizationRegistry(ptr => wasm.__wbg_modifiedmastop_free(ptr, 1));
36504
37046
  const MOMFinalization = (typeof FinalizationRegistry === 'undefined')
36505
37047
  ? { register: () => {}, unregister: () => {} }
36506
37048
  : new FinalizationRegistry(ptr => wasm.__wbg_mom_free(ptr, 1));
@@ -36516,6 +37058,9 @@ const NATRFinalization = (typeof FinalizationRegistry === 'undefined')
36516
37058
  const NewHighsNewLowsFinalization = (typeof FinalizationRegistry === 'undefined')
36517
37059
  ? { register: () => {}, unregister: () => {} }
36518
37060
  : new FinalizationRegistry(ptr => wasm.__wbg_newhighsnewlows_free(ptr, 1));
37061
+ const NrtrFinalization = (typeof FinalizationRegistry === 'undefined')
37062
+ ? { register: () => {}, unregister: () => {} }
37063
+ : new FinalizationRegistry(ptr => wasm.__wbg_nrtr_free(ptr, 1));
36519
37064
  const NVIFinalization = (typeof FinalizationRegistry === 'undefined')
36520
37065
  ? { register: () => {}, unregister: () => {} }
36521
37066
  : new FinalizationRegistry(ptr => wasm.__wbg_nvi_free(ptr, 1));
@@ -36921,6 +37466,9 @@ const TickIndexFinalization = (typeof FinalizationRegistry === 'undefined')
36921
37466
  const TIIFinalization = (typeof FinalizationRegistry === 'undefined')
36922
37467
  ? { register: () => {}, unregister: () => {} }
36923
37468
  : new FinalizationRegistry(ptr => wasm.__wbg_tii_free(ptr, 1));
37469
+ const TimeBasedStopFinalization = (typeof FinalizationRegistry === 'undefined')
37470
+ ? { register: () => {}, unregister: () => {} }
37471
+ : new FinalizationRegistry(ptr => wasm.__wbg_timebasedstop_free(ptr, 1));
36924
37472
  const TimeOfDayReturnProfileFinalization = (typeof FinalizationRegistry === 'undefined')
36925
37473
  ? { register: () => {}, unregister: () => {} }
36926
37474
  : new FinalizationRegistry(ptr => wasm.__wbg_timeofdayreturnprofile_free(ptr, 1));
Binary file