wickra-wasm 0.9.1 → 0.9.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
@@ -18,6 +18,7 @@
18
18
  [![OpenSSF Best Practices](https://raw.githubusercontent.com/wickra-lib/.github/main/profile/badges/best-practices.svg)](https://www.bestpractices.dev/projects/13094)
19
19
  [![Build provenance](https://raw.githubusercontent.com/wickra-lib/.github/main/profile/badges/provenance.svg)](https://github.com/wickra-lib/wickra/attestations)
20
20
  [![Docs](https://raw.githubusercontent.com/wickra-lib/.github/main/profile/badges/docs.svg)](https://docs.wickra.org)
21
+ [![Verified across 10 languages](https://raw.githubusercontent.com/wickra-lib/.github/main/profile/badges/verified.svg)](https://docs.wickra.org/FAQ#do-all-the-language-bindings-compute-the-same-values)
21
22
 
22
23
  **Streaming-first technical indicators. Install with `pip install wickra` — no system dependencies.**
23
24
 
@@ -53,6 +54,7 @@ Full documentation lives at **[docs.wickra.org](https://docs.wickra.org)**:
53
54
  [Node](https://docs.wickra.org/Quickstart-Node),
54
55
  [WASM](https://docs.wickra.org/Quickstart-WASM),
55
56
  [C](https://docs.wickra.org/Quickstart-C),
57
+ [C++](https://docs.wickra.org/Quickstart-C),
56
58
  [C#](https://docs.wickra.org/Quickstart-CSharp),
57
59
  [Go](https://docs.wickra.org/Quickstart-Go),
58
60
  [Java](https://docs.wickra.org/Quickstart-Java),
@@ -89,6 +91,11 @@ times to get there.
89
91
  runs a real warmup, and returns an `Option` so a single bad tick can't silently
90
92
  poison state. `batch == streaming` is **bit-exact, fuzzed and 100 %-line-covered
91
93
  for all 514 indicators**.
94
+ - **Identical across every language — proven, not promised.** All 514 indicators
95
+ are replayed through **all 10 languages** (Rust · Python · Node.js · WASM · C ·
96
+ C++ · C# · Go · Java · R) and checked **bit-for-bit against the Rust reference**
97
+ via shared golden fixtures in CI. The math is verifiably the same everywhere —
98
+ this very check caught and fixed two real cross-language marshalling bugs.
92
99
  - **Orders of magnitude faster where it counts.** In streaming Wickra is **11–56×**
93
100
  faster than the only other incremental peer and **thousands of times** faster
94
101
  than recompute-on-every-tick libraries. On batch it wins several rows outright
@@ -137,12 +144,38 @@ elsewhere for `None`-warmup, NaN-safety and bit-exact `batch == streaming`.
137
144
  Full tables (Rust + Python, streaming + batch) and how to reproduce them live in
138
145
  **[BENCHMARKS.md](BENCHMARKS.md)**.
139
146
 
147
+ ### Pick your language with eyes open — per-binding throughput
148
+
149
+ Every binding calls the **same** Rust core, so this is **not** a speed claim — it
150
+ is the raw cost of crossing each language's FFI boundary (`SMA(20)`, 200 000 bars,
151
+ Ryzen 9 9950X, million updates/sec). **Batch is near-core everywhere; streaming is
152
+ where the boundary shows** — so if you stream tick-by-tick, the table tells you
153
+ which binding keeps up and which to avoid for hot loops.
154
+
155
+ | Language | streaming (Mupd/s) | batch (Mupd/s) |
156
+ |-----------------|-------------------:|---------------:|
157
+ | Rust (no FFI) | 391 | 500 |
158
+ | C / C++ | 383 | 330 |
159
+ | C# | 337 | 244 |
160
+ | Python | 33 | 488 |
161
+ | Java | 28 | 175 |
162
+ | Go | 24 | 400 |
163
+ | WASM | 19 | 167 |
164
+ | Node.js | 17 | 10 |
165
+ | R | 0.1 | 193 |
166
+
167
+ All ten share one verified implementation (see the verification badge above), so
168
+ the *numbers* differ but the *values* are bit-for-bit identical. Methodology and
169
+ the per-indicator breakdown are in [BENCHMARKS.md](BENCHMARKS.md#3-per-binding-throughput--the-cost-of-the-boundary).
170
+
140
171
  ## Indicators
141
172
 
142
173
  514 streaming-first indicators across twenty-four families. Every one passes the
143
174
  `batch == streaming` equivalence test, reference-value tests, and reset
144
- semantics tests. Each has a per-indicator deep dive (formula, parameters,
145
- warmup) at [docs.wickra.org](https://docs.wickra.org/Indicators-Overview).
175
+ semantics tests and is replayed through **all 10 languages** and checked
176
+ bit-for-bit against the Rust reference (golden fixtures, in CI). Each has a
177
+ per-indicator deep dive (formula, parameters, warmup) at
178
+ [docs.wickra.org](https://docs.wickra.org/Indicators-Overview).
146
179
 
147
180
  | Family | Indicators |
148
181
  |--------|-----------|
@@ -153,7 +186,7 @@ warmup) at [docs.wickra.org](https://docs.wickra.org/Indicators-Overview).
153
186
  | 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 |
154
187
  | 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 |
155
188
  | 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 |
156
- | Volume | OBV, VWAP (cumulative + rolling), ADL, Volume-Price Trend, Chaikin Money Flow, Chaikin Oscillator, Force Index, Ease of Movement, Klinger Volume Oscillator, Volume Oscillator, NVI, PVI, Williams A/D, Anchored VWAP, Demand Index, TSV, VZO, Market Facilitation Index, Volume RSI, Williams Accumulation/Distribution, Twiggs Money Flow, Trade Volume Index, Intraday Intensity Index, Better Volume, Volume-Weighted MACD |
189
+ | 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 Oscillator, Anchored VWAP, Demand Index, TSV, VZO, Market Facilitation Index, Volume RSI, Williams Accumulation/Distribution, Twiggs Money Flow, Trade Volume Index, Intraday Intensity, Better Volume, Volume-Weighted MACD |
157
190
  | 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 |
158
191
  | 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 |
159
192
  | 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 |
@@ -270,8 +303,8 @@ while let Some(event) = stream.next_event().await? {
270
303
  }
271
304
  ```
272
305
 
273
- A Python live-trading example using the public `websockets` package lives at
274
- `examples/python/live_trading.py`.
306
+ A Python live Binance feed example using the public `websockets` package lives at
307
+ `examples/python/live_binance.py`.
275
308
 
276
309
  ## Project layout
277
310
 
@@ -294,8 +327,8 @@ wickra/
294
327
  ├── examples/ examples/README.md indexes every language
295
328
  │ ├── data/ real BTCUSDT OHLCV datasets, one per timeframe
296
329
  │ ├── rust/ Rust workspace member (`wickra-examples`)
297
- │ ├── python/ backtest, live trading, parallel assets, multi-tf
298
- │ ├── node/ streaming, backtest, live trading (load `wickra`)
330
+ │ ├── python/ backtest, live Binance feed, parallel assets, multi-tf
331
+ │ ├── node/ streaming, backtest, live Binance feed (load `wickra`)
299
332
  │ ├── wasm/ browser demo for `wickra-wasm`
300
333
  │ ├── c/ C smoke + streaming, C++ RAII wrapper
301
334
  │ ├── csharp/ streaming, backtest, strategies (load `Wickra`)
@@ -381,11 +414,15 @@ Every layer is covered; run the suites with the commands in
381
414
  - `bindings/java`: JUnit cases covering one indicator per FFI archetype
382
415
  (scalar/batch, multi-output, bars, profile, array input) plus batch equivalence.
383
416
 
384
- The four C-ABI bindings (C#, Go, Java, R) additionally replay a shared,
385
- language-neutral golden fixture (`testdata/golden/*.csv`, generated by
386
- `cargo run -p wickra-examples --bin gen_golden`) and assert exact parity with the
387
- Rust reference outputs across every archetype (SMA, EMA, RSI, ATR, MACD, ADX,
388
- Beta), catching FFI wiring bugs the math-only core tests cannot see.
417
+ On top of those per-binding tests, **all 10 languages** (Rust, Python, Node.js,
418
+ WASM, C, C++, C#, Go, Java, R) replay a shared, language-neutral golden fixture
419
+ (`testdata/golden/*.csv`, generated by
420
+ `cargo run -p wickra-examples --bin gen_golden`) and assert **bit-for-bit parity
421
+ with the Rust reference for every one of the 514 indicators** across every
422
+ archetype (scalar, multi-output, pairwise, derivatives-tick, cross-section,
423
+ order-book, trade, profile, alt-chart bars, footprint). This catches FFI wiring
424
+ bugs the math-only core tests cannot see — it has already found and fixed real
425
+ cross-language marshalling bugs in the Java and R bindings.
389
426
 
390
427
  ## Contributing
391
428
 
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.9.1",
8
+ "version": "0.9.2",
9
9
  "license": "MIT OR Apache-2.0",
10
10
  "repository": {
11
11
  "type": "git",
package/wickra_wasm.d.ts CHANGED
@@ -30,6 +30,15 @@ export class ADL {
30
30
  update(high: number, low: number, close: number, volume: number): number | undefined;
31
31
  }
32
32
 
33
+ export class ADOSC {
34
+ free(): void;
35
+ [Symbol.dispose](): void;
36
+ batch(high: Float64Array, low: Float64Array, close: Float64Array): Float64Array;
37
+ constructor();
38
+ reset(): void;
39
+ update(high: number, low: number, close: number): number | undefined;
40
+ }
41
+
33
42
  export class ADX {
34
43
  free(): void;
35
44
  [Symbol.dispose](): void;
@@ -5705,15 +5714,6 @@ export class WickRatio {
5705
5714
  update(open: number, high: number, low: number, close: number): number | undefined;
5706
5715
  }
5707
5716
 
5708
- export class WilliamsAD {
5709
- free(): void;
5710
- [Symbol.dispose](): void;
5711
- batch(high: Float64Array, low: Float64Array, close: Float64Array): Float64Array;
5712
- constructor();
5713
- reset(): void;
5714
- update(high: number, low: number, close: number): number | undefined;
5715
- }
5716
-
5717
5717
  export class WilliamsFractals {
5718
5718
  free(): void;
5719
5719
  [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, BurkeRatio, Butterfly, CCI, CFO, CMO, CTI, CalendarSpread, CalmarRatio, Camarilla, CandleVolume, CenterOfGravity, CentralPivotRange, ChaikinMoneyFlow, ChaikinOscillator, ChaikinVolatility, ChandeKrollStop, ChandelierExit, ChoppinessIndex, ClassicPivots, CloseVsOpen, ClosingMarubozu, CoefficientOfVariation, Cointegration, CommonSenseRatio, CompositeProfile, 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, DollarBars, Donchian, DonchianStop, DoubleBollinger, DoubleTopBottom, DownsideGapThreeMethods, DragonflyDoji, DrawdownDuration, DumplingTop, DynamicMomentumIndex, EHMA, EMA, EVENBETTERSINE, EVWMA, EaseOfMovement, EffectiveSpread, EhlersStochastic, ElderImpulse, ElderRay, ElderSafeZone, EmpiricalModeDecomposition, Engulfing, Equivolume, EstimatedLeverageRatio, EveningDojiStar, EwmaVolatility, Expectancy, FAMA, FRAMA, FallingThreeMethods, FibArcs, FibChannel, FibConfluence, FibExtension, FibFan, FibProjection, FibRetracement, FibTimeZones, FibonacciPivots, FisherRSI, FisherTransform, FlagPennant, Footprint, ForceIndex, FractalChaosBands, FryPanBottom, FundingBasis, FundingImpliedApr, FundingRate, FundingRateMean, FundingRateZScore, GD, GMA, GainLossRatio, GainToPainRatio, GapSideBySideWhite, Garch11, GarmanKlassVolatility, Gartley, GatorOscillator, GoldenPocket, GrangerCausality, GravestoneDoji, HIGHPASS, HMA, HT_DCPHASE, HT_PHASOR, HT_TRENDMODE, Hammer, HangingMan, Harami, HaramiCross, HasbrouckInformationShare, HeadAndShoulders, HeikinAshi, HeikinAshiOscillator, HiLoActivator, HighLowIndex, HighLowRange, HighLowVolumeNodes, HighWave, Hikkake, HikkakeModified, HilbertDominantCycle, HistoricalVolatility, HoltWinters, HomingPigeon, HurstChannel, HurstExponent, IMI, Ichimoku, IdenticalThreeCrows, ImbalanceBars, InNeck, Inertia, InformationRatio, InitialBalance, InstantaneousTrendline, IntradayIntensity, IntradayVolatilityProfile, InverseFisherTransform, InvertedHammer, JARQUEBERA, JMA, JumpIndicator, KAMA, KRatio, 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, M2Measure, MACD, MACDEXT, MACDFIX, MAMA, MFI, MIDPOINT, MIDPRICE, MINUS_DI, MINUS_DM, MOM, MaEnvelope, MacdHistogram, MarketFacilitationIndex, MartinRatio, Marubozu, MassIndex, MatHold, MatchingLow, MaxDrawdown, McClellanOscillator, McClellanSummationIndex, McGinleyDynamic, MedianAbsoluteDeviation, MedianChannel, MedianMA, MedianPrice, Microprice, ModifiedMaStop, MorningDojiStar, MorningEveningStar, MurreyMathLines, NATR, NVI, NakedPoc, NewHighsNewLows, NewPriceLines, Nrtr, OBV, OIPriceDivergence, OIWeighted, OiToVolumeRatio, OmegaRatio, OnNeck, OpenInterestDelta, OpenInterestMomentum, 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, PerpetualPremiumIndex, PiercingDarkCloud, Pin, PivotReversal, PointAndFigureBars, PpoHistogram, ProfileShape, ProfitFactor, ProjectionBands, ProjectionOscillator, QQE, Qstick, QuartileBands, QuotedSpread, REFLEX, RMI, ROC, ROCP, ROCR, ROCR100, ROLLINGMINMAX, RSI, RSX, RSquared, RVI, RVIVolatility, RWI, RangeBars, RealizedSpread, RealizedVolatility, RecoveryFactor, RectangleRange, RegimeLabel, RelativeStrengthAB, RenkoBars, RenkoTrailingStop, RickshawMan, RisingThreeMethods, RogersSatchellVolatility, RollMeasure, RollingCorrelation, RollingCovariance, RollingIqr, RollingPercentileRank, RollingQuantile, RollingVWAP, RoofingFilter, RunBars, SAMPLEENT, SAREXT, SHANNONENT, SMA, SMI, SMMA, STC, SWMA, SeasonalZScore, SeparatingLines, SessionHighLow, SessionRange, SessionVwap, Shark, SharpeRatio, ShootingStar, ShortLine, SignedVolume, SineWave, SinglePrints, Skewness, SmoothedHeikinAshi, SortinoRatio, SpearmanCorrelation, SpinningTop, SpreadAr1Coefficient, SpreadBollingerBands, SpreadHurst, StalledPattern, StandardError, StandardErrorBands, StarcBands, StdDev, StepTrailingStop, SterlingRatio, 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, TailRatio, TakerBuySellRatio, Takuri, TasukiGap, TermStructureBasis, ThreeDrives, ThreeInside, ThreeLineBreak, ThreeLineBreakBars, ThreeLineStrike, ThreeOutside, ThreeSoldiersOrCrows, ThreeStarsInSouth, Thrusting, TickBars, TickIndex, TimeBasedStop, TimeOfDayReturnProfile, TowerTopBottom, TpoProfile, TradeImbalance, TradeSignAutocorrelation, TradeVolumeIndex, TrendLabel, TreynorRatio, Triangle, Trin, TripleTopBottom, Tristar, TrueRange, TsfOscillator, TtmSqueeze, TurnOfMonth, Tweezer, TwiggsMoneyFlow, TwoCrows, TypicalPrice, UNIVERSALOSC, UlcerIndex, UltimateOscillator, UniqueThreeRiver, UpDownVolumeRatio, UpsideGapThreeMethods, UpsideGapTwoCrows, UpsidePotentialRatio, VIDYA, VWAP, VWMA, VZO, ValueArea, ValueAtRisk, Variance, VarianceRatio, VerticalHorizontalFilter, VolatilityCone, VolatilityOfVolatility, VolatilityRatio, VoltyStop, VolumeBars, 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, ADOSC, 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, BurkeRatio, Butterfly, CCI, CFO, CMO, CTI, CalendarSpread, CalmarRatio, Camarilla, CandleVolume, CenterOfGravity, CentralPivotRange, ChaikinMoneyFlow, ChaikinOscillator, ChaikinVolatility, ChandeKrollStop, ChandelierExit, ChoppinessIndex, ClassicPivots, CloseVsOpen, ClosingMarubozu, CoefficientOfVariation, Cointegration, CommonSenseRatio, CompositeProfile, 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, DollarBars, Donchian, DonchianStop, DoubleBollinger, DoubleTopBottom, DownsideGapThreeMethods, DragonflyDoji, DrawdownDuration, DumplingTop, DynamicMomentumIndex, EHMA, EMA, EVENBETTERSINE, EVWMA, EaseOfMovement, EffectiveSpread, EhlersStochastic, ElderImpulse, ElderRay, ElderSafeZone, EmpiricalModeDecomposition, Engulfing, Equivolume, EstimatedLeverageRatio, EveningDojiStar, EwmaVolatility, Expectancy, FAMA, FRAMA, FallingThreeMethods, FibArcs, FibChannel, FibConfluence, FibExtension, FibFan, FibProjection, FibRetracement, FibTimeZones, FibonacciPivots, FisherRSI, FisherTransform, FlagPennant, Footprint, ForceIndex, FractalChaosBands, FryPanBottom, FundingBasis, FundingImpliedApr, FundingRate, FundingRateMean, FundingRateZScore, GD, GMA, GainLossRatio, GainToPainRatio, GapSideBySideWhite, Garch11, GarmanKlassVolatility, Gartley, GatorOscillator, GoldenPocket, GrangerCausality, GravestoneDoji, HIGHPASS, HMA, HT_DCPHASE, HT_PHASOR, HT_TRENDMODE, Hammer, HangingMan, Harami, HaramiCross, HasbrouckInformationShare, HeadAndShoulders, HeikinAshi, HeikinAshiOscillator, HiLoActivator, HighLowIndex, HighLowRange, HighLowVolumeNodes, HighWave, Hikkake, HikkakeModified, HilbertDominantCycle, HistoricalVolatility, HoltWinters, HomingPigeon, HurstChannel, HurstExponent, IMI, Ichimoku, IdenticalThreeCrows, ImbalanceBars, InNeck, Inertia, InformationRatio, InitialBalance, InstantaneousTrendline, IntradayIntensity, IntradayVolatilityProfile, InverseFisherTransform, InvertedHammer, JARQUEBERA, JMA, JumpIndicator, KAMA, KRatio, 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, M2Measure, MACD, MACDEXT, MACDFIX, MAMA, MFI, MIDPOINT, MIDPRICE, MINUS_DI, MINUS_DM, MOM, MaEnvelope, MacdHistogram, MarketFacilitationIndex, MartinRatio, Marubozu, MassIndex, MatHold, MatchingLow, MaxDrawdown, McClellanOscillator, McClellanSummationIndex, McGinleyDynamic, MedianAbsoluteDeviation, MedianChannel, MedianMA, MedianPrice, Microprice, ModifiedMaStop, MorningDojiStar, MorningEveningStar, MurreyMathLines, NATR, NVI, NakedPoc, NewHighsNewLows, NewPriceLines, Nrtr, OBV, OIPriceDivergence, OIWeighted, OiToVolumeRatio, OmegaRatio, OnNeck, OpenInterestDelta, OpenInterestMomentum, 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, PerpetualPremiumIndex, PiercingDarkCloud, Pin, PivotReversal, PointAndFigureBars, PpoHistogram, ProfileShape, ProfitFactor, ProjectionBands, ProjectionOscillator, QQE, Qstick, QuartileBands, QuotedSpread, REFLEX, RMI, ROC, ROCP, ROCR, ROCR100, ROLLINGMINMAX, RSI, RSX, RSquared, RVI, RVIVolatility, RWI, RangeBars, RealizedSpread, RealizedVolatility, RecoveryFactor, RectangleRange, RegimeLabel, RelativeStrengthAB, RenkoBars, RenkoTrailingStop, RickshawMan, RisingThreeMethods, RogersSatchellVolatility, RollMeasure, RollingCorrelation, RollingCovariance, RollingIqr, RollingPercentileRank, RollingQuantile, RollingVWAP, RoofingFilter, RunBars, SAMPLEENT, SAREXT, SHANNONENT, SMA, SMI, SMMA, STC, SWMA, SeasonalZScore, SeparatingLines, SessionHighLow, SessionRange, SessionVwap, Shark, SharpeRatio, ShootingStar, ShortLine, SignedVolume, SineWave, SinglePrints, Skewness, SmoothedHeikinAshi, SortinoRatio, SpearmanCorrelation, SpinningTop, SpreadAr1Coefficient, SpreadBollingerBands, SpreadHurst, StalledPattern, StandardError, StandardErrorBands, StarcBands, StdDev, StepTrailingStop, SterlingRatio, 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, TailRatio, TakerBuySellRatio, Takuri, TasukiGap, TermStructureBasis, ThreeDrives, ThreeInside, ThreeLineBreak, ThreeLineBreakBars, ThreeLineStrike, ThreeOutside, ThreeSoldiersOrCrows, ThreeStarsInSouth, Thrusting, TickBars, TickIndex, TimeBasedStop, TimeOfDayReturnProfile, TowerTopBottom, TpoProfile, TradeImbalance, TradeSignAutocorrelation, TradeVolumeIndex, TrendLabel, TreynorRatio, Triangle, Trin, TripleTopBottom, Tristar, TrueRange, TsfOscillator, TtmSqueeze, TurnOfMonth, Tweezer, TwiggsMoneyFlow, TwoCrows, TypicalPrice, UNIVERSALOSC, UlcerIndex, UltimateOscillator, UniqueThreeRiver, UpDownVolumeRatio, UpsideGapThreeMethods, UpsideGapTwoCrows, UpsidePotentialRatio, VIDYA, VWAP, VWMA, VZO, ValueArea, ValueAtRisk, Variance, VarianceRatio, VerticalHorizontalFilter, VolatilityCone, VolatilityOfVolatility, VolatilityRatio, VoltyStop, VolumeBars, VolumeByTimeProfile, VolumeOscillator, VolumePriceTrend, VolumeProfile, VolumeRsi, VolumeWeightedMacd, VolumeWeightedSr, Vortex, Vpin, VwapStdDevBands, WAVE_PM, WMA, Wad, WaveTrend, Wedge, WeightedClose, WickRatio, 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
@@ -236,6 +236,78 @@ export class ADL {
236
236
  }
237
237
  if (Symbol.dispose) ADL.prototype[Symbol.dispose] = ADL.prototype.free;
238
238
 
239
+ export class ADOSC {
240
+ __destroy_into_raw() {
241
+ const ptr = this.__wbg_ptr;
242
+ this.__wbg_ptr = 0;
243
+ ADOSCFinalization.unregister(this);
244
+ return ptr;
245
+ }
246
+ free() {
247
+ const ptr = this.__destroy_into_raw();
248
+ wasm.__wbg_adosc_free(ptr, 0);
249
+ }
250
+ /**
251
+ * @param {Float64Array} high
252
+ * @param {Float64Array} low
253
+ * @param {Float64Array} close
254
+ * @returns {Float64Array}
255
+ */
256
+ batch(high, low, close) {
257
+ try {
258
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
259
+ const ptr0 = passArrayF64ToWasm0(high, wasm.__wbindgen_export3);
260
+ const len0 = WASM_VECTOR_LEN;
261
+ const ptr1 = passArrayF64ToWasm0(low, wasm.__wbindgen_export3);
262
+ const len1 = WASM_VECTOR_LEN;
263
+ const ptr2 = passArrayF64ToWasm0(close, wasm.__wbindgen_export3);
264
+ const len2 = WASM_VECTOR_LEN;
265
+ wasm.adosc_batch(retptr, this.__wbg_ptr, ptr0, len0, ptr1, len1, ptr2, len2);
266
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
267
+ var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
268
+ var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);
269
+ if (r2) {
270
+ throw takeObject(r1);
271
+ }
272
+ return takeObject(r0);
273
+ } finally {
274
+ wasm.__wbindgen_add_to_stack_pointer(16);
275
+ }
276
+ }
277
+ constructor() {
278
+ const ret = wasm.adosc_new();
279
+ this.__wbg_ptr = ret;
280
+ ADOSCFinalization.register(this, this.__wbg_ptr, this);
281
+ return this;
282
+ }
283
+ reset() {
284
+ wasm.adosc_reset(this.__wbg_ptr);
285
+ }
286
+ /**
287
+ * @param {number} high
288
+ * @param {number} low
289
+ * @param {number} close
290
+ * @returns {number | undefined}
291
+ */
292
+ update(high, low, close) {
293
+ try {
294
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-32);
295
+ wasm.adosc_update(retptr, this.__wbg_ptr, high, low, close);
296
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
297
+ var r2 = getDataViewMemory0().getFloat64(retptr + 8 * 1, true);
298
+ var r4 = getDataViewMemory0().getInt32(retptr + 4 * 4, true);
299
+ var r5 = getDataViewMemory0().getInt32(retptr + 4 * 5, true);
300
+ if (r5) {
301
+ throw takeObject(r4);
302
+ }
303
+ return r0 === 0 ? undefined : r2;
304
+ } finally {
305
+ wasm.__wbindgen_add_to_stack_pointer(32);
306
+ }
307
+ }
308
+ }
309
+ if (Symbol.dispose) ADOSC.prototype[Symbol.dispose] = ADOSC.prototype.free;
310
+
239
311
  export class ADX {
240
312
  __destroy_into_raw() {
241
313
  const ptr = this.__wbg_ptr;
@@ -41612,78 +41684,6 @@ export class WickRatio {
41612
41684
  }
41613
41685
  if (Symbol.dispose) WickRatio.prototype[Symbol.dispose] = WickRatio.prototype.free;
41614
41686
 
41615
- export class WilliamsAD {
41616
- __destroy_into_raw() {
41617
- const ptr = this.__wbg_ptr;
41618
- this.__wbg_ptr = 0;
41619
- WilliamsADFinalization.unregister(this);
41620
- return ptr;
41621
- }
41622
- free() {
41623
- const ptr = this.__destroy_into_raw();
41624
- wasm.__wbg_williamsad_free(ptr, 0);
41625
- }
41626
- /**
41627
- * @param {Float64Array} high
41628
- * @param {Float64Array} low
41629
- * @param {Float64Array} close
41630
- * @returns {Float64Array}
41631
- */
41632
- batch(high, low, close) {
41633
- try {
41634
- const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
41635
- const ptr0 = passArrayF64ToWasm0(high, wasm.__wbindgen_export3);
41636
- const len0 = WASM_VECTOR_LEN;
41637
- const ptr1 = passArrayF64ToWasm0(low, wasm.__wbindgen_export3);
41638
- const len1 = WASM_VECTOR_LEN;
41639
- const ptr2 = passArrayF64ToWasm0(close, wasm.__wbindgen_export3);
41640
- const len2 = WASM_VECTOR_LEN;
41641
- wasm.williamsad_batch(retptr, this.__wbg_ptr, ptr0, len0, ptr1, len1, ptr2, len2);
41642
- var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
41643
- var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
41644
- var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);
41645
- if (r2) {
41646
- throw takeObject(r1);
41647
- }
41648
- return takeObject(r0);
41649
- } finally {
41650
- wasm.__wbindgen_add_to_stack_pointer(16);
41651
- }
41652
- }
41653
- constructor() {
41654
- const ret = wasm.williamsad_new();
41655
- this.__wbg_ptr = ret;
41656
- WilliamsADFinalization.register(this, this.__wbg_ptr, this);
41657
- return this;
41658
- }
41659
- reset() {
41660
- wasm.williamsad_reset(this.__wbg_ptr);
41661
- }
41662
- /**
41663
- * @param {number} high
41664
- * @param {number} low
41665
- * @param {number} close
41666
- * @returns {number | undefined}
41667
- */
41668
- update(high, low, close) {
41669
- try {
41670
- const retptr = wasm.__wbindgen_add_to_stack_pointer(-32);
41671
- wasm.williamsad_update(retptr, this.__wbg_ptr, high, low, close);
41672
- var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
41673
- var r2 = getDataViewMemory0().getFloat64(retptr + 8 * 1, true);
41674
- var r4 = getDataViewMemory0().getInt32(retptr + 4 * 4, true);
41675
- var r5 = getDataViewMemory0().getInt32(retptr + 4 * 5, true);
41676
- if (r5) {
41677
- throw takeObject(r4);
41678
- }
41679
- return r0 === 0 ? undefined : r2;
41680
- } finally {
41681
- wasm.__wbindgen_add_to_stack_pointer(32);
41682
- }
41683
- }
41684
- }
41685
- if (Symbol.dispose) WilliamsAD.prototype[Symbol.dispose] = WilliamsAD.prototype.free;
41686
-
41687
41687
  export class WilliamsFractals {
41688
41688
  __destroy_into_raw() {
41689
41689
  const ptr = this.__wbg_ptr;
@@ -42659,9 +42659,9 @@ const AccelerationBandsFinalization = (typeof FinalizationRegistry === 'undefine
42659
42659
  const AcceleratorOscillatorFinalization = (typeof FinalizationRegistry === 'undefined')
42660
42660
  ? { register: () => {}, unregister: () => {} }
42661
42661
  : new FinalizationRegistry(ptr => wasm.__wbg_acceleratoroscillator_free(ptr, 1));
42662
- const WilliamsADFinalization = (typeof FinalizationRegistry === 'undefined')
42662
+ const ADOSCFinalization = (typeof FinalizationRegistry === 'undefined')
42663
42663
  ? { register: () => {}, unregister: () => {} }
42664
- : new FinalizationRegistry(ptr => wasm.__wbg_williamsad_free(ptr, 1));
42664
+ : new FinalizationRegistry(ptr => wasm.__wbg_adosc_free(ptr, 1));
42665
42665
  const AdVolumeLineFinalization = (typeof FinalizationRegistry === 'undefined')
42666
42666
  ? { register: () => {}, unregister: () => {} }
42667
42667
  : new FinalizationRegistry(ptr => wasm.__wbg_advolumeline_free(ptr, 1));
Binary file