wickra-wasm 0.6.6 → 0.6.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -1,5 +1,5 @@
1
1
  <p align="center">
2
- <a href="https://wickra.org"><img src="https://raw.githubusercontent.com/wickra-lib/.github/main/profile/wickra-banner.webp?v=467" 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=474" 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 467 indicators; start at the
51
+ every one of the 474 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),
@@ -66,7 +66,7 @@ an afterthought — **live, tick-by-tick data** — without giving up the breadt
66
66
  a full batch library, and without making you reimplement your indicators four
67
67
  times to get there.
68
68
 
69
- - **The biggest streaming-native catalogue, period.** 467 indicators across 24
69
+ - **The biggest streaming-native catalogue, period.** 474 indicators across 24
70
70
  families — candlesticks, harmonic & chart patterns, market profile, market
71
71
  breadth, Renko/Kagi/Point&Figure bars, Ehlers DSP cycles, risk/performance
72
72
  metrics — every single one updating in **O(1) per tick**. TA-Lib ships ~150 and
@@ -77,7 +77,7 @@ times to get there.
77
77
  - **Correct by construction, not by hope.** Every `update` validates its input,
78
78
  runs a real warmup, and returns an `Option` so a single bad tick can't silently
79
79
  poison state. `batch == streaming` is **bit-exact, fuzzed and 100 %-line-covered
80
- for all 467 indicators**.
80
+ for all 474 indicators**.
81
81
  - **Orders of magnitude faster where it counts.** In streaming Wickra is **9–58×**
82
82
  faster than the only other incremental peer and **thousands of times** faster
83
83
  than recompute-on-every-tick libraries. On batch it wins several rows outright
@@ -95,7 +95,7 @@ Every other library forces one of those compromises. Wickra doesn't:
95
95
 
96
96
  | Library | Install | Streaming | Languages | Indicators | Active |
97
97
  |------------------|-------------|-------------|-----------------------------|-----------:|--------|
98
- | **★&nbsp;Wickra**| **clean** | **yes, O(1)** | **Python · Node · WASM · Rust** | **467** | **yes** |
98
+ | **★&nbsp;Wickra**| **clean** | **yes, O(1)** | **Python · Node · WASM · Rust** | **474** | **yes** |
99
99
  | kand | clean | yes | Python · WASM · Rust | ~60 | yes |
100
100
  | ta-rs | clean | yes | Rust only | ~30 | stale |
101
101
  | yata | clean | partial | Rust only | ~35 | yes |
@@ -128,7 +128,7 @@ Full tables (Rust + Python, streaming + batch) and how to reproduce them live in
128
128
 
129
129
  ## Indicators
130
130
 
131
- 467 streaming-first indicators across twenty-four families. Every one passes the
131
+ 474 streaming-first indicators across twenty-four families. Every one passes the
132
132
  `batch == streaming` equivalence test, reference-value tests, and reset
133
133
  semantics tests. Each has a per-indicator deep dive (formula, parameters,
134
134
  warmup) at [docs.wickra.org](https://docs.wickra.org/Indicators-Overview).
@@ -146,7 +146,7 @@ warmup) at [docs.wickra.org](https://docs.wickra.org/Indicators-Overview).
146
146
  | 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, Jarque-Bera, Rolling Min-Max Scaler, Shannon Entropy, Sample Entropy, Kendall Tau |
147
147
  | 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, Highpass Filter, Reflex, Trendflex, Correlation Trend Indicator, Adaptive RSI, Universal Oscillator, Adaptive CCI, Bandpass Filter, Even Better Sinewave, Autocorrelation Periodogram |
148
148
  | Pivots & S/R | Classic Pivots, Fibonacci Pivots, Camarilla, Woodie Pivots, DeMark Pivots, Williams Fractals, ZigZag, Central Pivot Range, Murrey Math Lines, Andrews Pitchfork, Volume-Weighted Support/Resistance, Pivot Reversal |
149
- | DeMark | TD Setup, TD Sequential, TD DeMarker, TD REI, TD Pressure, TD Combo, TD Countdown, TD Lines, TD Range Projection, TD Differential, TD Open, TD Risk Level |
149
+ | DeMark | TD Setup, TD Sequential, TD DeMarker, TD REI, TD Pressure, TD Combo, TD Countdown, TD Lines, TD Range Projection, TD Differential, TD Open, TD Risk Level, TD Camouflage, TD Clop, TD Clopwin, TD Propulsion, TD Trap, TD D-Wave, TD Moving Averages |
150
150
  | Ichimoku & Charts | Ichimoku Kinko Hyo (Tenkan, Kijun, Senkou A/B, Chikou), Heikin-Ashi |
151
151
  | Alt-Chart Bars | Renko (box-size bricks), Kagi (reversal-amount lines), Point & Figure (X/O columns) |
152
152
  | Candlestick Patterns | Doji, Hammer, Inverted Hammer, Hanging Man, Shooting Star, Engulfing, Harami, Morning/Evening Star, Three White Soldiers/Black Crows, Piercing Line/Dark Cloud Cover, Marubozu, Tweezer, Spinning Top, Three Inside Up/Down, Three Outside Up/Down, Two Crows, Upside Gap Two Crows, Identical Three Crows, Three Line Strike, Three Stars in the South, Abandoned Baby, Advance Block, Belt-hold, Breakaway, Counterattack, Doji Star, Dragonfly Doji, Gravestone Doji, Long-Legged Doji, Rickshaw Man, Evening Doji Star, Morning Doji Star, Gap Side-by-Side White, High-Wave, Hikkake, Modified Hikkake, Homing Pigeon, On-Neck, In-Neck, Thrusting, Separating Lines, Kicking, Kicking by Length, Ladder Bottom, Mat Hold, Matching Low, Long Line, Short Line, Rising Three Methods, Falling Three Methods, Upside Gap Three Methods, Downside Gap Three Methods, Stalled Pattern, Stick Sandwich, Takuri, Closing Marubozu, Opening Marubozu, Tasuki Gap, Unique Three River, Concealing Baby Swallow |
@@ -237,7 +237,7 @@ A Python live-trading example using the public `websockets` package lives at
237
237
  ```
238
238
  wickra/
239
239
  ├── crates/
240
- │ ├── wickra-core/ core engine + all 467 indicators
240
+ │ ├── wickra-core/ core engine + all 474 indicators
241
241
  │ ├── wickra/ top-level facade crate (publishes on crates.io) + benches/
242
242
  │ ├── wickra-data/ CSV reader, tick aggregator, live exchange feeds
243
243
  │ └── 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.6",
8
+ "version": "0.6.7",
9
9
  "license": "MIT OR Apache-2.0",
10
10
  "repository": {
11
11
  "type": "git",
package/wickra_wasm.d.ts CHANGED
@@ -4182,6 +4182,39 @@ export class T3 {
4182
4182
  warmupPeriod(): number;
4183
4183
  }
4184
4184
 
4185
+ export class TDCamouflage {
4186
+ free(): void;
4187
+ [Symbol.dispose](): void;
4188
+ batch(open: Float64Array, high: Float64Array, low: Float64Array, close: Float64Array): Float64Array;
4189
+ isReady(): boolean;
4190
+ constructor();
4191
+ reset(): void;
4192
+ update(open: number, high: number, low: number, close: number): number | undefined;
4193
+ warmupPeriod(): number;
4194
+ }
4195
+
4196
+ export class TDClop {
4197
+ free(): void;
4198
+ [Symbol.dispose](): void;
4199
+ batch(open: Float64Array, high: Float64Array, low: Float64Array, close: Float64Array): Float64Array;
4200
+ isReady(): boolean;
4201
+ constructor();
4202
+ reset(): void;
4203
+ update(open: number, high: number, low: number, close: number): number | undefined;
4204
+ warmupPeriod(): number;
4205
+ }
4206
+
4207
+ export class TDClopwin {
4208
+ free(): void;
4209
+ [Symbol.dispose](): void;
4210
+ batch(open: Float64Array, high: Float64Array, low: Float64Array, close: Float64Array): Float64Array;
4211
+ isReady(): boolean;
4212
+ constructor();
4213
+ reset(): void;
4214
+ update(open: number, high: number, low: number, close: number): number | undefined;
4215
+ warmupPeriod(): number;
4216
+ }
4217
+
4185
4218
  export class TDCombo {
4186
4219
  free(): void;
4187
4220
  [Symbol.dispose](): void;
@@ -4204,6 +4237,17 @@ export class TDCountdown {
4204
4237
  warmupPeriod(): number;
4205
4238
  }
4206
4239
 
4240
+ export class TDDWave {
4241
+ free(): void;
4242
+ [Symbol.dispose](): void;
4243
+ batch(high: Float64Array, low: Float64Array, close: Float64Array): Float64Array;
4244
+ isReady(): boolean;
4245
+ constructor(strength: number);
4246
+ reset(): void;
4247
+ update(high: number, low: number, close: number): number | undefined;
4248
+ warmupPeriod(): number;
4249
+ }
4250
+
4207
4251
  export class TDDeMarker {
4208
4252
  free(): void;
4209
4253
  [Symbol.dispose](): void;
@@ -4243,6 +4287,17 @@ export class TDLines {
4243
4287
  warmupPeriod(): number;
4244
4288
  }
4245
4289
 
4290
+ export class TDMovingAverage {
4291
+ free(): void;
4292
+ [Symbol.dispose](): void;
4293
+ batch(high: Float64Array, low: Float64Array): Float64Array;
4294
+ isReady(): boolean;
4295
+ constructor(period_st1: number, period_st2: number);
4296
+ reset(): void;
4297
+ update(high: number, low: number): any;
4298
+ warmupPeriod(): number;
4299
+ }
4300
+
4246
4301
  export class TDOpen {
4247
4302
  free(): void;
4248
4303
  [Symbol.dispose](): void;
@@ -4265,6 +4320,17 @@ export class TDPressure {
4265
4320
  warmupPeriod(): number;
4266
4321
  }
4267
4322
 
4323
+ export class TDPropulsion {
4324
+ free(): void;
4325
+ [Symbol.dispose](): void;
4326
+ batch(open: Float64Array, high: Float64Array, low: Float64Array, close: Float64Array): Float64Array;
4327
+ isReady(): boolean;
4328
+ constructor();
4329
+ reset(): void;
4330
+ update(open: number, high: number, low: number, close: number): number | undefined;
4331
+ warmupPeriod(): number;
4332
+ }
4333
+
4268
4334
  export class TDREI {
4269
4335
  free(): void;
4270
4336
  [Symbol.dispose](): void;
@@ -4339,6 +4405,17 @@ export class TDSetup {
4339
4405
  warmupPeriod(): number;
4340
4406
  }
4341
4407
 
4408
+ export class TDTrap {
4409
+ free(): void;
4410
+ [Symbol.dispose](): void;
4411
+ batch(open: Float64Array, high: Float64Array, low: Float64Array, close: Float64Array): Float64Array;
4412
+ isReady(): boolean;
4413
+ constructor();
4414
+ reset(): void;
4415
+ update(open: number, high: number, low: number, close: number): number | undefined;
4416
+ warmupPeriod(): number;
4417
+ }
4418
+
4342
4419
  export class TEMA {
4343
4420
  free(): void;
4344
4421
  [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
- ADAPTIVECCI, ADAPTIVERSI, ADL, ADX, ADXR, ALMA, APO, ATR, AUTOCORRPGRAM, AVGPRICE, AbandonedBaby, Abcd, AbsoluteBreadthIndex, AccelerationBands, AcceleratorOscillator, AdVolumeLine, AdaptiveCycle, AdaptiveLaguerre, AdvanceBlock, AdvanceDecline, AdvanceDeclineRatio, Alligator, Alpha, AmihudIlliquidity, AnchoredRSI, AnchoredVWAP, AndrewsPitchfork, Aroon, AroonOscillator, AtrBands, AtrRatchet, AtrTrailingStop, AutoFib, Autocorrelation, AverageDailyRange, AverageDrawdown, AwesomeOscillator, AwesomeOscillatorHistogram, BANDPASS, BalanceOfPower, Bat, BeltHold, Beta, BetaNeutralSpread, BetterVolume, BipowerVariation, BodySizePct, BollingerBands, BollingerBandwidth, BomarBands, BreadthThrust, Breakaway, BullishPercentIndex, Butterfly, CCI, CFO, CMO, CTI, CalendarSpread, CalmarRatio, Camarilla, CenterOfGravity, CentralPivotRange, 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, EVENBETTERSINE, 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, HIGHPASS, HMA, HT_DCPHASE, HT_PHASOR, HT_TRENDMODE, Hammer, HangingMan, Harami, HeadAndShoulders, HeikinAshi, HiLoActivator, HighLowIndex, HighLowRange, HighWave, Hikkake, HikkakeModified, HilbertDominantCycle, HistoricalVolatility, HoltWinters, HomingPigeon, HurstChannel, HurstExponent, IMI, Ichimoku, IdenticalThreeCrows, InNeck, Inertia, InformationRatio, InitialBalance, InstantaneousTrendline, IntradayIntensity, IntradayVolatilityProfile, InverseFisherTransform, InvertedHammer, JARQUEBERA, JMA, JumpIndicator, KAMA, KST, KVO, KagiBars, KalmanHedgeRatio, KaseDevStop, KasePermissionStochastic, KellyCriterion, Keltner, KendallTau, 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, MurreyMathLines, 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, PivotReversal, PointAndFigureBars, PpoHistogram, ProfitFactor, ProjectionBands, ProjectionOscillator, QQE, Qstick, QuartileBands, QuotedSpread, REFLEX, RMI, ROC, ROCP, ROCR, ROCR100, ROLLINGMINMAX, 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, SAMPLEENT, SAREXT, SHANNONENT, 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, TRENDFLEX, TREND_STRENGTH_INDEX, TRIMA, TRIX, TSF, TSI, TSV, TTM_TREND, TakerBuySellRatio, Takuri, TasukiGap, TermStructureBasis, ThreeDrives, ThreeInside, ThreeLineStrike, ThreeOutside, ThreeSoldiersOrCrows, ThreeStarsInSouth, Thrusting, TickIndex, TimeBasedStop, TimeOfDayReturnProfile, TpoProfile, TradeImbalance, TradeVolumeIndex, TrendLabel, TreynorRatio, Triangle, Trin, TripleTopBottom, TrueRange, TsfOscillator, TtmSqueeze, TurnOfMonth, Tweezer, TwiggsMoneyFlow, TwoCrows, TypicalPrice, UNIVERSALOSC, UlcerIndex, UltimateOscillator, UniqueThreeRiver, UpDownVolumeRatio, UpsideGapThreeMethods, UpsideGapTwoCrows, VIDYA, VWAP, VWMA, VZO, ValueArea, ValueAtRisk, Variance, VarianceRatio, VerticalHorizontalFilter, VolatilityCone, VolatilityOfVolatility, VolatilityRatio, VoltyStop, VolumeByTimeProfile, VolumeOscillator, VolumePriceTrend, VolumeProfile, VolumeRsi, VolumeWeightedMacd, VolumeWeightedSr, Vortex, Vpin, VwapStdDevBands, WAVE_PM, WMA, Wad, WaveTrend, Wedge, WeightedClose, WickRatio, WilliamsAD, WilliamsFractals, WilliamsR, WinRate, WoodiePivots, YangZhangVolatility, YoyoExit, ZLEMA, ZScore, ZeroLagMACD, ZigZag, installPanicHook, version
8
+ ADAPTIVECCI, ADAPTIVERSI, ADL, ADX, ADXR, ALMA, APO, ATR, AUTOCORRPGRAM, AVGPRICE, AbandonedBaby, Abcd, AbsoluteBreadthIndex, AccelerationBands, AcceleratorOscillator, AdVolumeLine, AdaptiveCycle, AdaptiveLaguerre, AdvanceBlock, AdvanceDecline, AdvanceDeclineRatio, Alligator, Alpha, AmihudIlliquidity, AnchoredRSI, AnchoredVWAP, AndrewsPitchfork, Aroon, AroonOscillator, AtrBands, AtrRatchet, AtrTrailingStop, AutoFib, Autocorrelation, AverageDailyRange, AverageDrawdown, AwesomeOscillator, AwesomeOscillatorHistogram, BANDPASS, BalanceOfPower, Bat, BeltHold, Beta, BetaNeutralSpread, BetterVolume, BipowerVariation, BodySizePct, BollingerBands, BollingerBandwidth, BomarBands, BreadthThrust, Breakaway, BullishPercentIndex, Butterfly, CCI, CFO, CMO, CTI, CalendarSpread, CalmarRatio, Camarilla, CenterOfGravity, CentralPivotRange, 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, EVENBETTERSINE, 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, HIGHPASS, HMA, HT_DCPHASE, HT_PHASOR, HT_TRENDMODE, Hammer, HangingMan, Harami, HeadAndShoulders, HeikinAshi, HiLoActivator, HighLowIndex, HighLowRange, HighWave, Hikkake, HikkakeModified, HilbertDominantCycle, HistoricalVolatility, HoltWinters, HomingPigeon, HurstChannel, HurstExponent, IMI, Ichimoku, IdenticalThreeCrows, InNeck, Inertia, InformationRatio, InitialBalance, InstantaneousTrendline, IntradayIntensity, IntradayVolatilityProfile, InverseFisherTransform, InvertedHammer, JARQUEBERA, JMA, JumpIndicator, KAMA, KST, KVO, KagiBars, KalmanHedgeRatio, KaseDevStop, KasePermissionStochastic, KellyCriterion, Keltner, KendallTau, 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, MurreyMathLines, 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, PivotReversal, PointAndFigureBars, PpoHistogram, ProfitFactor, ProjectionBands, ProjectionOscillator, QQE, Qstick, QuartileBands, QuotedSpread, REFLEX, RMI, ROC, ROCP, ROCR, ROCR100, ROLLINGMINMAX, 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, SAMPLEENT, SAREXT, SHANNONENT, 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, TDCamouflage, TDClop, TDClopwin, TDCombo, TDCountdown, TDDWave, TDDeMarker, TDDifferential, TDLines, TDMovingAverage, TDOpen, TDPressure, TDPropulsion, TDREI, TDRangeProjection, TDRiskLevel, TDSequential, TDSetup, TDTrap, TEMA, TII, TRENDFLEX, TREND_STRENGTH_INDEX, TRIMA, TRIX, TSF, TSI, TSV, TTM_TREND, TakerBuySellRatio, Takuri, TasukiGap, TermStructureBasis, ThreeDrives, ThreeInside, ThreeLineStrike, ThreeOutside, ThreeSoldiersOrCrows, ThreeStarsInSouth, Thrusting, TickIndex, TimeBasedStop, TimeOfDayReturnProfile, TpoProfile, TradeImbalance, TradeVolumeIndex, TrendLabel, TreynorRatio, Triangle, Trin, TripleTopBottom, TrueRange, TsfOscillator, TtmSqueeze, TurnOfMonth, Tweezer, TwiggsMoneyFlow, TwoCrows, TypicalPrice, UNIVERSALOSC, UlcerIndex, UltimateOscillator, UniqueThreeRiver, UpDownVolumeRatio, UpsideGapThreeMethods, UpsideGapTwoCrows, VIDYA, VWAP, VWMA, VZO, ValueArea, ValueAtRisk, Variance, VarianceRatio, VerticalHorizontalFilter, VolatilityCone, VolatilityOfVolatility, VolatilityRatio, VoltyStop, VolumeByTimeProfile, VolumeOscillator, VolumePriceTrend, VolumeProfile, VolumeRsi, VolumeWeightedMacd, VolumeWeightedSr, Vortex, Vpin, VwapStdDevBands, WAVE_PM, WMA, Wad, WaveTrend, Wedge, WeightedClose, WickRatio, WilliamsAD, WilliamsFractals, WilliamsR, WinRate, WoodiePivots, YangZhangVolatility, YoyoExit, ZLEMA, ZScore, ZeroLagMACD, ZigZag, installPanicHook, version
9
9
  } from "./wickra_wasm_bg.js";
package/wickra_wasm_bg.js CHANGED
@@ -29981,6 +29981,276 @@ export class T3 {
29981
29981
  }
29982
29982
  if (Symbol.dispose) T3.prototype[Symbol.dispose] = T3.prototype.free;
29983
29983
 
29984
+ export class TDCamouflage {
29985
+ __destroy_into_raw() {
29986
+ const ptr = this.__wbg_ptr;
29987
+ this.__wbg_ptr = 0;
29988
+ TDCamouflageFinalization.unregister(this);
29989
+ return ptr;
29990
+ }
29991
+ free() {
29992
+ const ptr = this.__destroy_into_raw();
29993
+ wasm.__wbg_tdcamouflage_free(ptr, 0);
29994
+ }
29995
+ /**
29996
+ * @param {Float64Array} open
29997
+ * @param {Float64Array} high
29998
+ * @param {Float64Array} low
29999
+ * @param {Float64Array} close
30000
+ * @returns {Float64Array}
30001
+ */
30002
+ batch(open, high, low, close) {
30003
+ try {
30004
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
30005
+ const ptr0 = passArrayF64ToWasm0(open, wasm.__wbindgen_export3);
30006
+ const len0 = WASM_VECTOR_LEN;
30007
+ const ptr1 = passArrayF64ToWasm0(high, wasm.__wbindgen_export3);
30008
+ const len1 = WASM_VECTOR_LEN;
30009
+ const ptr2 = passArrayF64ToWasm0(low, wasm.__wbindgen_export3);
30010
+ const len2 = WASM_VECTOR_LEN;
30011
+ const ptr3 = passArrayF64ToWasm0(close, wasm.__wbindgen_export3);
30012
+ const len3 = WASM_VECTOR_LEN;
30013
+ wasm.tdcamouflage_batch(retptr, this.__wbg_ptr, ptr0, len0, ptr1, len1, ptr2, len2, ptr3, len3);
30014
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
30015
+ var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
30016
+ var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);
30017
+ if (r2) {
30018
+ throw takeObject(r1);
30019
+ }
30020
+ return takeObject(r0);
30021
+ } finally {
30022
+ wasm.__wbindgen_add_to_stack_pointer(16);
30023
+ }
30024
+ }
30025
+ /**
30026
+ * @returns {boolean}
30027
+ */
30028
+ isReady() {
30029
+ const ret = wasm.tdcamouflage_isReady(this.__wbg_ptr);
30030
+ return ret !== 0;
30031
+ }
30032
+ constructor() {
30033
+ const ret = wasm.tdcamouflage_new();
30034
+ this.__wbg_ptr = ret;
30035
+ TDCamouflageFinalization.register(this, this.__wbg_ptr, this);
30036
+ return this;
30037
+ }
30038
+ reset() {
30039
+ wasm.tdcamouflage_reset(this.__wbg_ptr);
30040
+ }
30041
+ /**
30042
+ * @param {number} open
30043
+ * @param {number} high
30044
+ * @param {number} low
30045
+ * @param {number} close
30046
+ * @returns {number | undefined}
30047
+ */
30048
+ update(open, high, low, close) {
30049
+ try {
30050
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-32);
30051
+ wasm.tdcamouflage_update(retptr, this.__wbg_ptr, open, high, low, close);
30052
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
30053
+ var r2 = getDataViewMemory0().getFloat64(retptr + 8 * 1, true);
30054
+ var r4 = getDataViewMemory0().getInt32(retptr + 4 * 4, true);
30055
+ var r5 = getDataViewMemory0().getInt32(retptr + 4 * 5, true);
30056
+ if (r5) {
30057
+ throw takeObject(r4);
30058
+ }
30059
+ return r0 === 0 ? undefined : r2;
30060
+ } finally {
30061
+ wasm.__wbindgen_add_to_stack_pointer(32);
30062
+ }
30063
+ }
30064
+ /**
30065
+ * @returns {number}
30066
+ */
30067
+ warmupPeriod() {
30068
+ const ret = wasm.tdcamouflage_warmupPeriod(this.__wbg_ptr);
30069
+ return ret >>> 0;
30070
+ }
30071
+ }
30072
+ if (Symbol.dispose) TDCamouflage.prototype[Symbol.dispose] = TDCamouflage.prototype.free;
30073
+
30074
+ export class TDClop {
30075
+ __destroy_into_raw() {
30076
+ const ptr = this.__wbg_ptr;
30077
+ this.__wbg_ptr = 0;
30078
+ TDClopFinalization.unregister(this);
30079
+ return ptr;
30080
+ }
30081
+ free() {
30082
+ const ptr = this.__destroy_into_raw();
30083
+ wasm.__wbg_tdclop_free(ptr, 0);
30084
+ }
30085
+ /**
30086
+ * @param {Float64Array} open
30087
+ * @param {Float64Array} high
30088
+ * @param {Float64Array} low
30089
+ * @param {Float64Array} close
30090
+ * @returns {Float64Array}
30091
+ */
30092
+ batch(open, high, low, close) {
30093
+ try {
30094
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
30095
+ const ptr0 = passArrayF64ToWasm0(open, wasm.__wbindgen_export3);
30096
+ const len0 = WASM_VECTOR_LEN;
30097
+ const ptr1 = passArrayF64ToWasm0(high, wasm.__wbindgen_export3);
30098
+ const len1 = WASM_VECTOR_LEN;
30099
+ const ptr2 = passArrayF64ToWasm0(low, wasm.__wbindgen_export3);
30100
+ const len2 = WASM_VECTOR_LEN;
30101
+ const ptr3 = passArrayF64ToWasm0(close, wasm.__wbindgen_export3);
30102
+ const len3 = WASM_VECTOR_LEN;
30103
+ wasm.tdclop_batch(retptr, this.__wbg_ptr, ptr0, len0, ptr1, len1, ptr2, len2, ptr3, len3);
30104
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
30105
+ var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
30106
+ var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);
30107
+ if (r2) {
30108
+ throw takeObject(r1);
30109
+ }
30110
+ return takeObject(r0);
30111
+ } finally {
30112
+ wasm.__wbindgen_add_to_stack_pointer(16);
30113
+ }
30114
+ }
30115
+ /**
30116
+ * @returns {boolean}
30117
+ */
30118
+ isReady() {
30119
+ const ret = wasm.tdclop_isReady(this.__wbg_ptr);
30120
+ return ret !== 0;
30121
+ }
30122
+ constructor() {
30123
+ const ret = wasm.tdclop_new();
30124
+ this.__wbg_ptr = ret;
30125
+ TDClopFinalization.register(this, this.__wbg_ptr, this);
30126
+ return this;
30127
+ }
30128
+ reset() {
30129
+ wasm.tdclop_reset(this.__wbg_ptr);
30130
+ }
30131
+ /**
30132
+ * @param {number} open
30133
+ * @param {number} high
30134
+ * @param {number} low
30135
+ * @param {number} close
30136
+ * @returns {number | undefined}
30137
+ */
30138
+ update(open, high, low, close) {
30139
+ try {
30140
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-32);
30141
+ wasm.tdclop_update(retptr, this.__wbg_ptr, open, high, low, close);
30142
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
30143
+ var r2 = getDataViewMemory0().getFloat64(retptr + 8 * 1, true);
30144
+ var r4 = getDataViewMemory0().getInt32(retptr + 4 * 4, true);
30145
+ var r5 = getDataViewMemory0().getInt32(retptr + 4 * 5, true);
30146
+ if (r5) {
30147
+ throw takeObject(r4);
30148
+ }
30149
+ return r0 === 0 ? undefined : r2;
30150
+ } finally {
30151
+ wasm.__wbindgen_add_to_stack_pointer(32);
30152
+ }
30153
+ }
30154
+ /**
30155
+ * @returns {number}
30156
+ */
30157
+ warmupPeriod() {
30158
+ const ret = wasm.tdclop_warmupPeriod(this.__wbg_ptr);
30159
+ return ret >>> 0;
30160
+ }
30161
+ }
30162
+ if (Symbol.dispose) TDClop.prototype[Symbol.dispose] = TDClop.prototype.free;
30163
+
30164
+ export class TDClopwin {
30165
+ __destroy_into_raw() {
30166
+ const ptr = this.__wbg_ptr;
30167
+ this.__wbg_ptr = 0;
30168
+ TDClopwinFinalization.unregister(this);
30169
+ return ptr;
30170
+ }
30171
+ free() {
30172
+ const ptr = this.__destroy_into_raw();
30173
+ wasm.__wbg_tdclopwin_free(ptr, 0);
30174
+ }
30175
+ /**
30176
+ * @param {Float64Array} open
30177
+ * @param {Float64Array} high
30178
+ * @param {Float64Array} low
30179
+ * @param {Float64Array} close
30180
+ * @returns {Float64Array}
30181
+ */
30182
+ batch(open, high, low, close) {
30183
+ try {
30184
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
30185
+ const ptr0 = passArrayF64ToWasm0(open, wasm.__wbindgen_export3);
30186
+ const len0 = WASM_VECTOR_LEN;
30187
+ const ptr1 = passArrayF64ToWasm0(high, wasm.__wbindgen_export3);
30188
+ const len1 = WASM_VECTOR_LEN;
30189
+ const ptr2 = passArrayF64ToWasm0(low, wasm.__wbindgen_export3);
30190
+ const len2 = WASM_VECTOR_LEN;
30191
+ const ptr3 = passArrayF64ToWasm0(close, wasm.__wbindgen_export3);
30192
+ const len3 = WASM_VECTOR_LEN;
30193
+ wasm.tdclopwin_batch(retptr, this.__wbg_ptr, ptr0, len0, ptr1, len1, ptr2, len2, ptr3, len3);
30194
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
30195
+ var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
30196
+ var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);
30197
+ if (r2) {
30198
+ throw takeObject(r1);
30199
+ }
30200
+ return takeObject(r0);
30201
+ } finally {
30202
+ wasm.__wbindgen_add_to_stack_pointer(16);
30203
+ }
30204
+ }
30205
+ /**
30206
+ * @returns {boolean}
30207
+ */
30208
+ isReady() {
30209
+ const ret = wasm.tdclopwin_isReady(this.__wbg_ptr);
30210
+ return ret !== 0;
30211
+ }
30212
+ constructor() {
30213
+ const ret = wasm.tdclopwin_new();
30214
+ this.__wbg_ptr = ret;
30215
+ TDClopwinFinalization.register(this, this.__wbg_ptr, this);
30216
+ return this;
30217
+ }
30218
+ reset() {
30219
+ wasm.tdclopwin_reset(this.__wbg_ptr);
30220
+ }
30221
+ /**
30222
+ * @param {number} open
30223
+ * @param {number} high
30224
+ * @param {number} low
30225
+ * @param {number} close
30226
+ * @returns {number | undefined}
30227
+ */
30228
+ update(open, high, low, close) {
30229
+ try {
30230
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-32);
30231
+ wasm.tdclopwin_update(retptr, this.__wbg_ptr, open, high, low, close);
30232
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
30233
+ var r2 = getDataViewMemory0().getFloat64(retptr + 8 * 1, true);
30234
+ var r4 = getDataViewMemory0().getInt32(retptr + 4 * 4, true);
30235
+ var r5 = getDataViewMemory0().getInt32(retptr + 4 * 5, true);
30236
+ if (r5) {
30237
+ throw takeObject(r4);
30238
+ }
30239
+ return r0 === 0 ? undefined : r2;
30240
+ } finally {
30241
+ wasm.__wbindgen_add_to_stack_pointer(32);
30242
+ }
30243
+ }
30244
+ /**
30245
+ * @returns {number}
30246
+ */
30247
+ warmupPeriod() {
30248
+ const ret = wasm.tdclopwin_warmupPeriod(this.__wbg_ptr);
30249
+ return ret >>> 0;
30250
+ }
30251
+ }
30252
+ if (Symbol.dispose) TDClopwin.prototype[Symbol.dispose] = TDClopwin.prototype.free;
30253
+
29984
30254
  export class TDCombo {
29985
30255
  __destroy_into_raw() {
29986
30256
  const ptr = this.__wbg_ptr;
@@ -30135,10 +30405,110 @@ export class TDCountdown {
30135
30405
  * @param {number} countdown_lookback
30136
30406
  * @param {number} countdown_target
30137
30407
  */
30138
- constructor(setup_lookback, setup_target, countdown_lookback, countdown_target) {
30408
+ constructor(setup_lookback, setup_target, countdown_lookback, countdown_target) {
30409
+ try {
30410
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
30411
+ wasm.tdcountdown_new(retptr, setup_lookback, setup_target, countdown_lookback, countdown_target);
30412
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
30413
+ var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
30414
+ var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);
30415
+ if (r2) {
30416
+ throw takeObject(r1);
30417
+ }
30418
+ this.__wbg_ptr = r0;
30419
+ TDCountdownFinalization.register(this, this.__wbg_ptr, this);
30420
+ return this;
30421
+ } finally {
30422
+ wasm.__wbindgen_add_to_stack_pointer(16);
30423
+ }
30424
+ }
30425
+ reset() {
30426
+ wasm.tdcountdown_reset(this.__wbg_ptr);
30427
+ }
30428
+ /**
30429
+ * @param {number} high
30430
+ * @param {number} low
30431
+ * @param {number} close
30432
+ * @returns {number | undefined}
30433
+ */
30434
+ update(high, low, close) {
30435
+ try {
30436
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-32);
30437
+ wasm.tdcountdown_update(retptr, this.__wbg_ptr, high, low, close);
30438
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
30439
+ var r2 = getDataViewMemory0().getFloat64(retptr + 8 * 1, true);
30440
+ var r4 = getDataViewMemory0().getInt32(retptr + 4 * 4, true);
30441
+ var r5 = getDataViewMemory0().getInt32(retptr + 4 * 5, true);
30442
+ if (r5) {
30443
+ throw takeObject(r4);
30444
+ }
30445
+ return r0 === 0 ? undefined : r2;
30446
+ } finally {
30447
+ wasm.__wbindgen_add_to_stack_pointer(32);
30448
+ }
30449
+ }
30450
+ /**
30451
+ * @returns {number}
30452
+ */
30453
+ warmupPeriod() {
30454
+ const ret = wasm.tdcountdown_warmupPeriod(this.__wbg_ptr);
30455
+ return ret >>> 0;
30456
+ }
30457
+ }
30458
+ if (Symbol.dispose) TDCountdown.prototype[Symbol.dispose] = TDCountdown.prototype.free;
30459
+
30460
+ export class TDDWave {
30461
+ __destroy_into_raw() {
30462
+ const ptr = this.__wbg_ptr;
30463
+ this.__wbg_ptr = 0;
30464
+ TDDWaveFinalization.unregister(this);
30465
+ return ptr;
30466
+ }
30467
+ free() {
30468
+ const ptr = this.__destroy_into_raw();
30469
+ wasm.__wbg_tddwave_free(ptr, 0);
30470
+ }
30471
+ /**
30472
+ * @param {Float64Array} high
30473
+ * @param {Float64Array} low
30474
+ * @param {Float64Array} close
30475
+ * @returns {Float64Array}
30476
+ */
30477
+ batch(high, low, close) {
30478
+ try {
30479
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
30480
+ const ptr0 = passArrayF64ToWasm0(high, wasm.__wbindgen_export3);
30481
+ const len0 = WASM_VECTOR_LEN;
30482
+ const ptr1 = passArrayF64ToWasm0(low, wasm.__wbindgen_export3);
30483
+ const len1 = WASM_VECTOR_LEN;
30484
+ const ptr2 = passArrayF64ToWasm0(close, wasm.__wbindgen_export3);
30485
+ const len2 = WASM_VECTOR_LEN;
30486
+ wasm.tddwave_batch(retptr, this.__wbg_ptr, ptr0, len0, ptr1, len1, ptr2, len2);
30487
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
30488
+ var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
30489
+ var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);
30490
+ if (r2) {
30491
+ throw takeObject(r1);
30492
+ }
30493
+ return takeObject(r0);
30494
+ } finally {
30495
+ wasm.__wbindgen_add_to_stack_pointer(16);
30496
+ }
30497
+ }
30498
+ /**
30499
+ * @returns {boolean}
30500
+ */
30501
+ isReady() {
30502
+ const ret = wasm.tddwave_isReady(this.__wbg_ptr);
30503
+ return ret !== 0;
30504
+ }
30505
+ /**
30506
+ * @param {number} strength
30507
+ */
30508
+ constructor(strength) {
30139
30509
  try {
30140
30510
  const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
30141
- wasm.tdcountdown_new(retptr, setup_lookback, setup_target, countdown_lookback, countdown_target);
30511
+ wasm.tddwave_new(retptr, strength);
30142
30512
  var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
30143
30513
  var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
30144
30514
  var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);
@@ -30146,14 +30516,14 @@ export class TDCountdown {
30146
30516
  throw takeObject(r1);
30147
30517
  }
30148
30518
  this.__wbg_ptr = r0;
30149
- TDCountdownFinalization.register(this, this.__wbg_ptr, this);
30519
+ TDDWaveFinalization.register(this, this.__wbg_ptr, this);
30150
30520
  return this;
30151
30521
  } finally {
30152
30522
  wasm.__wbindgen_add_to_stack_pointer(16);
30153
30523
  }
30154
30524
  }
30155
30525
  reset() {
30156
- wasm.tdcountdown_reset(this.__wbg_ptr);
30526
+ wasm.tddwave_reset(this.__wbg_ptr);
30157
30527
  }
30158
30528
  /**
30159
30529
  * @param {number} high
@@ -30164,7 +30534,7 @@ export class TDCountdown {
30164
30534
  update(high, low, close) {
30165
30535
  try {
30166
30536
  const retptr = wasm.__wbindgen_add_to_stack_pointer(-32);
30167
- wasm.tdcountdown_update(retptr, this.__wbg_ptr, high, low, close);
30537
+ wasm.tddwave_update(retptr, this.__wbg_ptr, high, low, close);
30168
30538
  var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
30169
30539
  var r2 = getDataViewMemory0().getFloat64(retptr + 8 * 1, true);
30170
30540
  var r4 = getDataViewMemory0().getInt32(retptr + 4 * 4, true);
@@ -30181,11 +30551,11 @@ export class TDCountdown {
30181
30551
  * @returns {number}
30182
30552
  */
30183
30553
  warmupPeriod() {
30184
- const ret = wasm.tdcountdown_warmupPeriod(this.__wbg_ptr);
30554
+ const ret = wasm.tddwave_warmupPeriod(this.__wbg_ptr);
30185
30555
  return ret >>> 0;
30186
30556
  }
30187
30557
  }
30188
- if (Symbol.dispose) TDCountdown.prototype[Symbol.dispose] = TDCountdown.prototype.free;
30558
+ if (Symbol.dispose) TDDWave.prototype[Symbol.dispose] = TDDWave.prototype.free;
30189
30559
 
30190
30560
  export class TDDeMarker {
30191
30561
  __destroy_into_raw() {
@@ -30471,6 +30841,102 @@ export class TDLines {
30471
30841
  }
30472
30842
  if (Symbol.dispose) TDLines.prototype[Symbol.dispose] = TDLines.prototype.free;
30473
30843
 
30844
+ export class TDMovingAverage {
30845
+ __destroy_into_raw() {
30846
+ const ptr = this.__wbg_ptr;
30847
+ this.__wbg_ptr = 0;
30848
+ TDMovingAverageFinalization.unregister(this);
30849
+ return ptr;
30850
+ }
30851
+ free() {
30852
+ const ptr = this.__destroy_into_raw();
30853
+ wasm.__wbg_tdmovingaverage_free(ptr, 0);
30854
+ }
30855
+ /**
30856
+ * @param {Float64Array} high
30857
+ * @param {Float64Array} low
30858
+ * @returns {Float64Array}
30859
+ */
30860
+ batch(high, low) {
30861
+ try {
30862
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
30863
+ const ptr0 = passArrayF64ToWasm0(high, wasm.__wbindgen_export3);
30864
+ const len0 = WASM_VECTOR_LEN;
30865
+ const ptr1 = passArrayF64ToWasm0(low, wasm.__wbindgen_export3);
30866
+ const len1 = WASM_VECTOR_LEN;
30867
+ wasm.tdmovingaverage_batch(retptr, this.__wbg_ptr, ptr0, len0, ptr1, len1);
30868
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
30869
+ var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
30870
+ var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);
30871
+ if (r2) {
30872
+ throw takeObject(r1);
30873
+ }
30874
+ return takeObject(r0);
30875
+ } finally {
30876
+ wasm.__wbindgen_add_to_stack_pointer(16);
30877
+ }
30878
+ }
30879
+ /**
30880
+ * @returns {boolean}
30881
+ */
30882
+ isReady() {
30883
+ const ret = wasm.tdmovingaverage_isReady(this.__wbg_ptr);
30884
+ return ret !== 0;
30885
+ }
30886
+ /**
30887
+ * @param {number} period_st1
30888
+ * @param {number} period_st2
30889
+ */
30890
+ constructor(period_st1, period_st2) {
30891
+ try {
30892
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
30893
+ wasm.tdmovingaverage_new(retptr, period_st1, period_st2);
30894
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
30895
+ var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
30896
+ var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);
30897
+ if (r2) {
30898
+ throw takeObject(r1);
30899
+ }
30900
+ this.__wbg_ptr = r0;
30901
+ TDMovingAverageFinalization.register(this, this.__wbg_ptr, this);
30902
+ return this;
30903
+ } finally {
30904
+ wasm.__wbindgen_add_to_stack_pointer(16);
30905
+ }
30906
+ }
30907
+ reset() {
30908
+ wasm.tdmovingaverage_reset(this.__wbg_ptr);
30909
+ }
30910
+ /**
30911
+ * @param {number} high
30912
+ * @param {number} low
30913
+ * @returns {any}
30914
+ */
30915
+ update(high, low) {
30916
+ try {
30917
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
30918
+ wasm.tdmovingaverage_update(retptr, this.__wbg_ptr, high, low);
30919
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
30920
+ var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
30921
+ var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);
30922
+ if (r2) {
30923
+ throw takeObject(r1);
30924
+ }
30925
+ return takeObject(r0);
30926
+ } finally {
30927
+ wasm.__wbindgen_add_to_stack_pointer(16);
30928
+ }
30929
+ }
30930
+ /**
30931
+ * @returns {number}
30932
+ */
30933
+ warmupPeriod() {
30934
+ const ret = wasm.tdmovingaverage_warmupPeriod(this.__wbg_ptr);
30935
+ return ret >>> 0;
30936
+ }
30937
+ }
30938
+ if (Symbol.dispose) TDMovingAverage.prototype[Symbol.dispose] = TDMovingAverage.prototype.free;
30939
+
30474
30940
  export class TDOpen {
30475
30941
  __destroy_into_raw() {
30476
30942
  const ptr = this.__wbg_ptr;
@@ -30669,6 +31135,96 @@ export class TDPressure {
30669
31135
  }
30670
31136
  if (Symbol.dispose) TDPressure.prototype[Symbol.dispose] = TDPressure.prototype.free;
30671
31137
 
31138
+ export class TDPropulsion {
31139
+ __destroy_into_raw() {
31140
+ const ptr = this.__wbg_ptr;
31141
+ this.__wbg_ptr = 0;
31142
+ TDPropulsionFinalization.unregister(this);
31143
+ return ptr;
31144
+ }
31145
+ free() {
31146
+ const ptr = this.__destroy_into_raw();
31147
+ wasm.__wbg_tdpropulsion_free(ptr, 0);
31148
+ }
31149
+ /**
31150
+ * @param {Float64Array} open
31151
+ * @param {Float64Array} high
31152
+ * @param {Float64Array} low
31153
+ * @param {Float64Array} close
31154
+ * @returns {Float64Array}
31155
+ */
31156
+ batch(open, high, low, close) {
31157
+ try {
31158
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
31159
+ const ptr0 = passArrayF64ToWasm0(open, wasm.__wbindgen_export3);
31160
+ const len0 = WASM_VECTOR_LEN;
31161
+ const ptr1 = passArrayF64ToWasm0(high, wasm.__wbindgen_export3);
31162
+ const len1 = WASM_VECTOR_LEN;
31163
+ const ptr2 = passArrayF64ToWasm0(low, wasm.__wbindgen_export3);
31164
+ const len2 = WASM_VECTOR_LEN;
31165
+ const ptr3 = passArrayF64ToWasm0(close, wasm.__wbindgen_export3);
31166
+ const len3 = WASM_VECTOR_LEN;
31167
+ wasm.tdpropulsion_batch(retptr, this.__wbg_ptr, ptr0, len0, ptr1, len1, ptr2, len2, ptr3, len3);
31168
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
31169
+ var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
31170
+ var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);
31171
+ if (r2) {
31172
+ throw takeObject(r1);
31173
+ }
31174
+ return takeObject(r0);
31175
+ } finally {
31176
+ wasm.__wbindgen_add_to_stack_pointer(16);
31177
+ }
31178
+ }
31179
+ /**
31180
+ * @returns {boolean}
31181
+ */
31182
+ isReady() {
31183
+ const ret = wasm.tdpropulsion_isReady(this.__wbg_ptr);
31184
+ return ret !== 0;
31185
+ }
31186
+ constructor() {
31187
+ const ret = wasm.tdpropulsion_new();
31188
+ this.__wbg_ptr = ret;
31189
+ TDPropulsionFinalization.register(this, this.__wbg_ptr, this);
31190
+ return this;
31191
+ }
31192
+ reset() {
31193
+ wasm.tdpropulsion_reset(this.__wbg_ptr);
31194
+ }
31195
+ /**
31196
+ * @param {number} open
31197
+ * @param {number} high
31198
+ * @param {number} low
31199
+ * @param {number} close
31200
+ * @returns {number | undefined}
31201
+ */
31202
+ update(open, high, low, close) {
31203
+ try {
31204
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-32);
31205
+ wasm.tdpropulsion_update(retptr, this.__wbg_ptr, open, high, low, close);
31206
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
31207
+ var r2 = getDataViewMemory0().getFloat64(retptr + 8 * 1, true);
31208
+ var r4 = getDataViewMemory0().getInt32(retptr + 4 * 4, true);
31209
+ var r5 = getDataViewMemory0().getInt32(retptr + 4 * 5, true);
31210
+ if (r5) {
31211
+ throw takeObject(r4);
31212
+ }
31213
+ return r0 === 0 ? undefined : r2;
31214
+ } finally {
31215
+ wasm.__wbindgen_add_to_stack_pointer(32);
31216
+ }
31217
+ }
31218
+ /**
31219
+ * @returns {number}
31220
+ */
31221
+ warmupPeriod() {
31222
+ const ret = wasm.tdpropulsion_warmupPeriod(this.__wbg_ptr);
31223
+ return ret >>> 0;
31224
+ }
31225
+ }
31226
+ if (Symbol.dispose) TDPropulsion.prototype[Symbol.dispose] = TDPropulsion.prototype.free;
31227
+
30672
31228
  export class TDREI {
30673
31229
  __destroy_into_raw() {
30674
31230
  const ptr = this.__wbg_ptr;
@@ -31164,6 +31720,96 @@ export class TDSetup {
31164
31720
  }
31165
31721
  if (Symbol.dispose) TDSetup.prototype[Symbol.dispose] = TDSetup.prototype.free;
31166
31722
 
31723
+ export class TDTrap {
31724
+ __destroy_into_raw() {
31725
+ const ptr = this.__wbg_ptr;
31726
+ this.__wbg_ptr = 0;
31727
+ TDTrapFinalization.unregister(this);
31728
+ return ptr;
31729
+ }
31730
+ free() {
31731
+ const ptr = this.__destroy_into_raw();
31732
+ wasm.__wbg_tdtrap_free(ptr, 0);
31733
+ }
31734
+ /**
31735
+ * @param {Float64Array} open
31736
+ * @param {Float64Array} high
31737
+ * @param {Float64Array} low
31738
+ * @param {Float64Array} close
31739
+ * @returns {Float64Array}
31740
+ */
31741
+ batch(open, high, low, close) {
31742
+ try {
31743
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
31744
+ const ptr0 = passArrayF64ToWasm0(open, wasm.__wbindgen_export3);
31745
+ const len0 = WASM_VECTOR_LEN;
31746
+ const ptr1 = passArrayF64ToWasm0(high, wasm.__wbindgen_export3);
31747
+ const len1 = WASM_VECTOR_LEN;
31748
+ const ptr2 = passArrayF64ToWasm0(low, wasm.__wbindgen_export3);
31749
+ const len2 = WASM_VECTOR_LEN;
31750
+ const ptr3 = passArrayF64ToWasm0(close, wasm.__wbindgen_export3);
31751
+ const len3 = WASM_VECTOR_LEN;
31752
+ wasm.tdtrap_batch(retptr, this.__wbg_ptr, ptr0, len0, ptr1, len1, ptr2, len2, ptr3, len3);
31753
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
31754
+ var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
31755
+ var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);
31756
+ if (r2) {
31757
+ throw takeObject(r1);
31758
+ }
31759
+ return takeObject(r0);
31760
+ } finally {
31761
+ wasm.__wbindgen_add_to_stack_pointer(16);
31762
+ }
31763
+ }
31764
+ /**
31765
+ * @returns {boolean}
31766
+ */
31767
+ isReady() {
31768
+ const ret = wasm.tdtrap_isReady(this.__wbg_ptr);
31769
+ return ret !== 0;
31770
+ }
31771
+ constructor() {
31772
+ const ret = wasm.tdtrap_new();
31773
+ this.__wbg_ptr = ret;
31774
+ TDTrapFinalization.register(this, this.__wbg_ptr, this);
31775
+ return this;
31776
+ }
31777
+ reset() {
31778
+ wasm.tdtrap_reset(this.__wbg_ptr);
31779
+ }
31780
+ /**
31781
+ * @param {number} open
31782
+ * @param {number} high
31783
+ * @param {number} low
31784
+ * @param {number} close
31785
+ * @returns {number | undefined}
31786
+ */
31787
+ update(open, high, low, close) {
31788
+ try {
31789
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-32);
31790
+ wasm.tdtrap_update(retptr, this.__wbg_ptr, open, high, low, close);
31791
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
31792
+ var r2 = getDataViewMemory0().getFloat64(retptr + 8 * 1, true);
31793
+ var r4 = getDataViewMemory0().getInt32(retptr + 4 * 4, true);
31794
+ var r5 = getDataViewMemory0().getInt32(retptr + 4 * 5, true);
31795
+ if (r5) {
31796
+ throw takeObject(r4);
31797
+ }
31798
+ return r0 === 0 ? undefined : r2;
31799
+ } finally {
31800
+ wasm.__wbindgen_add_to_stack_pointer(32);
31801
+ }
31802
+ }
31803
+ /**
31804
+ * @returns {number}
31805
+ */
31806
+ warmupPeriod() {
31807
+ const ret = wasm.tdtrap_warmupPeriod(this.__wbg_ptr);
31808
+ return ret >>> 0;
31809
+ }
31810
+ }
31811
+ if (Symbol.dispose) TDTrap.prototype[Symbol.dispose] = TDTrap.prototype.free;
31812
+
31167
31813
  export class TEMA {
31168
31814
  __destroy_into_raw() {
31169
31815
  const ptr = this.__wbg_ptr;
@@ -39778,12 +40424,24 @@ const TakuriFinalization = (typeof FinalizationRegistry === 'undefined')
39778
40424
  const TasukiGapFinalization = (typeof FinalizationRegistry === 'undefined')
39779
40425
  ? { register: () => {}, unregister: () => {} }
39780
40426
  : new FinalizationRegistry(ptr => wasm.__wbg_tasukigap_free(ptr, 1));
40427
+ const TDCamouflageFinalization = (typeof FinalizationRegistry === 'undefined')
40428
+ ? { register: () => {}, unregister: () => {} }
40429
+ : new FinalizationRegistry(ptr => wasm.__wbg_tdcamouflage_free(ptr, 1));
40430
+ const TDClopFinalization = (typeof FinalizationRegistry === 'undefined')
40431
+ ? { register: () => {}, unregister: () => {} }
40432
+ : new FinalizationRegistry(ptr => wasm.__wbg_tdclop_free(ptr, 1));
40433
+ const TDClopwinFinalization = (typeof FinalizationRegistry === 'undefined')
40434
+ ? { register: () => {}, unregister: () => {} }
40435
+ : new FinalizationRegistry(ptr => wasm.__wbg_tdclopwin_free(ptr, 1));
39781
40436
  const TDComboFinalization = (typeof FinalizationRegistry === 'undefined')
39782
40437
  ? { register: () => {}, unregister: () => {} }
39783
40438
  : new FinalizationRegistry(ptr => wasm.__wbg_tdcombo_free(ptr, 1));
39784
40439
  const TDCountdownFinalization = (typeof FinalizationRegistry === 'undefined')
39785
40440
  ? { register: () => {}, unregister: () => {} }
39786
40441
  : new FinalizationRegistry(ptr => wasm.__wbg_tdcountdown_free(ptr, 1));
40442
+ const TDDWaveFinalization = (typeof FinalizationRegistry === 'undefined')
40443
+ ? { register: () => {}, unregister: () => {} }
40444
+ : new FinalizationRegistry(ptr => wasm.__wbg_tddwave_free(ptr, 1));
39787
40445
  const TDDeMarkerFinalization = (typeof FinalizationRegistry === 'undefined')
39788
40446
  ? { register: () => {}, unregister: () => {} }
39789
40447
  : new FinalizationRegistry(ptr => wasm.__wbg_tddemarker_free(ptr, 1));
@@ -39793,12 +40451,18 @@ const TDDifferentialFinalization = (typeof FinalizationRegistry === 'undefined')
39793
40451
  const TDLinesFinalization = (typeof FinalizationRegistry === 'undefined')
39794
40452
  ? { register: () => {}, unregister: () => {} }
39795
40453
  : new FinalizationRegistry(ptr => wasm.__wbg_tdlines_free(ptr, 1));
40454
+ const TDMovingAverageFinalization = (typeof FinalizationRegistry === 'undefined')
40455
+ ? { register: () => {}, unregister: () => {} }
40456
+ : new FinalizationRegistry(ptr => wasm.__wbg_tdmovingaverage_free(ptr, 1));
39796
40457
  const TDOpenFinalization = (typeof FinalizationRegistry === 'undefined')
39797
40458
  ? { register: () => {}, unregister: () => {} }
39798
40459
  : new FinalizationRegistry(ptr => wasm.__wbg_tdopen_free(ptr, 1));
39799
40460
  const TDPressureFinalization = (typeof FinalizationRegistry === 'undefined')
39800
40461
  ? { register: () => {}, unregister: () => {} }
39801
40462
  : new FinalizationRegistry(ptr => wasm.__wbg_tdpressure_free(ptr, 1));
40463
+ const TDPropulsionFinalization = (typeof FinalizationRegistry === 'undefined')
40464
+ ? { register: () => {}, unregister: () => {} }
40465
+ : new FinalizationRegistry(ptr => wasm.__wbg_tdpropulsion_free(ptr, 1));
39802
40466
  const TDRangeProjectionFinalization = (typeof FinalizationRegistry === 'undefined')
39803
40467
  ? { register: () => {}, unregister: () => {} }
39804
40468
  : new FinalizationRegistry(ptr => wasm.__wbg_tdrangeprojection_free(ptr, 1));
@@ -39814,6 +40478,9 @@ const TDSequentialFinalization = (typeof FinalizationRegistry === 'undefined')
39814
40478
  const TDSetupFinalization = (typeof FinalizationRegistry === 'undefined')
39815
40479
  ? { register: () => {}, unregister: () => {} }
39816
40480
  : new FinalizationRegistry(ptr => wasm.__wbg_tdsetup_free(ptr, 1));
40481
+ const TDTrapFinalization = (typeof FinalizationRegistry === 'undefined')
40482
+ ? { register: () => {}, unregister: () => {} }
40483
+ : new FinalizationRegistry(ptr => wasm.__wbg_tdtrap_free(ptr, 1));
39817
40484
  const TEMAFinalization = (typeof FinalizationRegistry === 'undefined')
39818
40485
  ? { register: () => {}, unregister: () => {} }
39819
40486
  : new FinalizationRegistry(ptr => wasm.__wbg_tema_free(ptr, 1));
Binary file