wickra-wasm 0.4.4 → 0.4.5

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=289" 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=295" 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)
@@ -47,7 +47,7 @@ Full documentation lives at **[docs.wickra.org](https://docs.wickra.org)**:
47
47
  [Node](https://docs.wickra.org/Quickstart-Node),
48
48
  [WASM](https://docs.wickra.org/Quickstart-WASM).
49
49
  - **Indicators** — a per-indicator deep dive (formula, parameters, warmup) for
50
- every one of the 289 indicators; start at the
50
+ every one of the 295 indicators; start at the
51
51
  [indicators overview](https://docs.wickra.org/Indicators-Overview).
52
52
  - **Reference** — [warmup periods](https://docs.wickra.org/Warmup-Periods),
53
53
  [streaming vs batch](https://docs.wickra.org/Streaming-vs-Batch),
@@ -135,7 +135,7 @@ python -m benchmarks.compare_libraries
135
135
 
136
136
  ## Indicators
137
137
 
138
- 289 streaming-first indicators across eighteen families. Every one passes the
138
+ 295 streaming-first indicators across nineteen families. Every one passes the
139
139
  `batch == streaming` equivalence test, reference-value tests, and reset
140
140
  semantics tests. Each has a per-indicator deep dive (formula, parameters,
141
141
  warmup) at [docs.wickra.org](https://docs.wickra.org/Indicators-Overview).
@@ -143,7 +143,7 @@ warmup) at [docs.wickra.org](https://docs.wickra.org/Indicators-Overview).
143
143
  | Family | Indicators |
144
144
  |--------|-----------|
145
145
  | Moving Averages | SMA, EMA, WMA, DEMA, TEMA, HMA, KAMA, SMMA, TRIMA, ZLEMA, T3, VWMA, ALMA, McGinley Dynamic, FRAMA, VIDYA, JMA, Alligator, EVWMA |
146
- | Momentum Oscillators | RSI (Wilder), Stochastic, CCI, ROC, Williams %R, MFI, Awesome Oscillator, MOM, CMO, TSI, PMO, StochRSI, Ultimate Oscillator, RVI, PGO, KST, SMI, Laguerre RSI, Connors RSI, Inertia |
146
+ | Momentum Oscillators | RSI (Wilder), Anchored RSI, Stochastic, CCI, ROC, Williams %R, MFI, Awesome Oscillator, MOM, CMO, TSI, PMO, StochRSI, Ultimate Oscillator, RVI, PGO, KST, SMI, Laguerre RSI, Connors RSI, Inertia |
147
147
  | Trend & Directional | MACD, ADX (+DI/-DI), ADXR, Aroon, TRIX, Aroon Oscillator, Vortex, Random Walk Index, Trend Intensity Index, Wave Trend Oscillator, Mass Index, Choppiness Index, Vertical Horizontal Filter |
148
148
  | Price Oscillators | PPO, DPO, Coppock, Accelerator Oscillator, Balance of Power, APO, AO Histogram, CFO, Zero-Lag MACD, Elder Impulse, STC |
149
149
  | 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 |
@@ -155,10 +155,11 @@ warmup) at [docs.wickra.org](https://docs.wickra.org/Indicators-Overview).
155
155
  | Pivots & S/R | Classic Pivots, Fibonacci Pivots, Camarilla, Woodie Pivots, DeMark Pivots, Williams Fractals, ZigZag |
156
156
  | 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 |
157
157
  | Ichimoku & Charts | Ichimoku Kinko Hyo (Tenkan, Kijun, Senkou A/B, Chikou), Heikin-Ashi |
158
+ | Alt-Chart Bars | Renko (box-size bricks), Kagi (reversal-amount lines), Point & Figure (X/O columns) |
158
159
  | 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 |
159
160
  | Microstructure | Order-Book Imbalance (Top-1 / Top-N / Full), Microprice, Quoted Spread, Depth Slope, Signed Volume, Cumulative Volume Delta, Trade Imbalance, Effective Spread, Realized Spread, Kyle's Lambda, Footprint |
160
161
  | Derivatives | Funding Rate, Funding Rate Mean, Funding Rate Z-Score, Funding Basis, Open-Interest Delta, OI / Price Divergence, OI-Weighted Price, Long/Short Ratio, Taker Buy/Sell Ratio, Liquidation Features, Term-Structure Basis, Calendar Spread |
161
- | Market Profile | Value Area (POC / VAH / VAL), Initial Balance, Opening Range |
162
+ | Market Profile | Value Area (POC / VAH / VAL), Volume Profile (histogram), TPO Profile, Initial Balance, Opening Range |
162
163
  | Risk / Performance | Sharpe Ratio, Sortino Ratio, Calmar Ratio, Omega Ratio, Max Drawdown, Average Drawdown, Drawdown Duration, Pain Index, Value at Risk, Conditional Value at Risk (CVaR), Profit Factor, Gain/Loss Ratio, Recovery Factor, Kelly Criterion, Treynor Ratio, Information Ratio, Alpha (Jensen) |
163
164
 
164
165
  Every candlestick pattern emits a signed per-bar value — `+1.0` bullish,
@@ -238,7 +239,7 @@ A Python live-trading example using the public `websockets` package lives at
238
239
  ```
239
240
  wickra/
240
241
  ├── crates/
241
- │ ├── wickra-core/ core engine + all 289 indicators
242
+ │ ├── wickra-core/ core engine + all 295 indicators
242
243
  │ ├── wickra/ top-level facade crate (publishes on crates.io) + benches/
243
244
  │ └── wickra-data/ CSV reader, tick aggregator, live exchange feeds
244
245
  ├── bindings/
package/package.json CHANGED
@@ -5,7 +5,7 @@
5
5
  "kingchenc <support@wickra.org>"
6
6
  ],
7
7
  "description": "WASM bindings for the Wickra streaming-first technical indicators library.",
8
- "version": "0.4.4",
8
+ "version": "0.4.5",
9
9
  "license": "PolyForm-Noncommercial-1.0.0",
10
10
  "repository": {
11
11
  "type": "git",
package/wickra_wasm.d.ts CHANGED
@@ -153,6 +153,18 @@ export class Alpha {
153
153
  warmupPeriod(): number;
154
154
  }
155
155
 
156
+ export class AnchoredRSI {
157
+ free(): void;
158
+ [Symbol.dispose](): void;
159
+ batch(prices: Float64Array): Float64Array;
160
+ isReady(): boolean;
161
+ constructor();
162
+ reset(): void;
163
+ setAnchor(): void;
164
+ update(value: number): number | undefined;
165
+ warmupPeriod(): number;
166
+ }
167
+
156
168
  export class AnchoredVWAP {
157
169
  free(): void;
158
170
  [Symbol.dispose](): void;
@@ -1357,6 +1369,19 @@ export class KVO {
1357
1369
  update(high: number, low: number, close: number, volume: number): number | undefined;
1358
1370
  }
1359
1371
 
1372
+ export class KagiBars {
1373
+ free(): void;
1374
+ [Symbol.dispose](): void;
1375
+ batch(close: Float64Array): Array<any>;
1376
+ constructor(reversal: number);
1377
+ reset(): void;
1378
+ reversal(): number;
1379
+ /**
1380
+ * Returns an array of `{ start, end, direction }` segments completed on this close.
1381
+ */
1382
+ update(close: number): Array<any>;
1383
+ }
1384
+
1360
1385
  export class KellyCriterion {
1361
1386
  free(): void;
1362
1387
  [Symbol.dispose](): void;
@@ -2029,6 +2054,20 @@ export class PiercingDarkCloud {
2029
2054
  warmupPeriod(): number;
2030
2055
  }
2031
2056
 
2057
+ export class PointAndFigureBars {
2058
+ free(): void;
2059
+ [Symbol.dispose](): void;
2060
+ batch(close: Float64Array): Array<any>;
2061
+ boxSize(): number;
2062
+ constructor(box_size: number, reversal: number);
2063
+ reset(): void;
2064
+ reversal(): number;
2065
+ /**
2066
+ * Returns an array of `{ direction, high, low }` columns completed on this close.
2067
+ */
2068
+ update(close: number): Array<any>;
2069
+ }
2070
+
2032
2071
  export class ProfitFactor {
2033
2072
  free(): void;
2034
2073
  [Symbol.dispose](): void;
@@ -2156,6 +2195,19 @@ export class RelativeStrengthAB {
2156
2195
  warmupPeriod(): number;
2157
2196
  }
2158
2197
 
2198
+ export class RenkoBars {
2199
+ free(): void;
2200
+ [Symbol.dispose](): void;
2201
+ batch(close: Float64Array): Array<any>;
2202
+ boxSize(): number;
2203
+ constructor(box_size: number);
2204
+ reset(): void;
2205
+ /**
2206
+ * Returns an array of `{ open, close, direction }` bricks completed on this close.
2207
+ */
2208
+ update(close: number): Array<any>;
2209
+ }
2210
+
2159
2211
  export class RenkoTrailingStop {
2160
2212
  free(): void;
2161
2213
  [Symbol.dispose](): void;
@@ -2849,6 +2901,20 @@ export class Thrusting {
2849
2901
  warmupPeriod(): number;
2850
2902
  }
2851
2903
 
2904
+ export class TpoProfile {
2905
+ free(): void;
2906
+ [Symbol.dispose](): void;
2907
+ batch(high: Float64Array, low: Float64Array): Float64Array;
2908
+ isReady(): boolean;
2909
+ constructor(period: number, bin_count: number);
2910
+ reset(): void;
2911
+ /**
2912
+ * Streaming update. Returns `{ priceLow, priceHigh, counts }` once warm, else `null`.
2913
+ */
2914
+ update(high: number, low: number): any;
2915
+ warmupPeriod(): number;
2916
+ }
2917
+
2852
2918
  export class TradeImbalance {
2853
2919
  free(): void;
2854
2920
  [Symbol.dispose](): void;
@@ -3091,6 +3157,20 @@ export class VolumePriceTrend {
3091
3157
  update(close: number, volume: number): number | undefined;
3092
3158
  }
3093
3159
 
3160
+ export class VolumeProfile {
3161
+ free(): void;
3162
+ [Symbol.dispose](): void;
3163
+ batch(high: Float64Array, low: Float64Array, volume: Float64Array): Float64Array;
3164
+ isReady(): boolean;
3165
+ constructor(period: number, bin_count: number);
3166
+ reset(): void;
3167
+ /**
3168
+ * Streaming update. Returns `{ priceLow, priceHigh, bins }` once warm, else `null`.
3169
+ */
3170
+ update(high: number, low: number, volume: number): any;
3171
+ warmupPeriod(): number;
3172
+ }
3173
+
3094
3174
  export class Vortex {
3095
3175
  free(): void;
3096
3176
  [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, AbandonedBaby, AccelerationBands, AcceleratorOscillator, AdaptiveCycle, AdvanceBlock, Alligator, Alpha, AnchoredVWAP, Aroon, AroonOscillator, AtrBands, AtrTrailingStop, Autocorrelation, AverageDrawdown, AwesomeOscillator, AwesomeOscillatorHistogram, BalanceOfPower, BeltHold, Beta, BollingerBands, BollingerBandwidth, Breakaway, CCI, CFO, CMO, CalendarSpread, CalmarRatio, Camarilla, CenterOfGravity, ChaikinMoneyFlow, ChaikinOscillator, ChaikinVolatility, ChandeKrollStop, ChandelierExit, ChoppinessIndex, ClassicPivots, ClosingMarubozu, CoefficientOfVariation, Cointegration, ConcealingBabySwallow, ConditionalValueAtRisk, ConnorsRSI, Coppock, Counterattack, CumulativeVolumeDelta, CyberneticCycle, DEMA, DPO, Decycler, DecyclerOscillator, DemandIndex, DemarkPivots, DepthSlope, DetrendedStdDev, Doji, DojiStar, Donchian, DonchianStop, DoubleBollinger, DownsideGapThreeMethods, DragonflyDoji, DrawdownDuration, EMA, EVWMA, EaseOfMovement, EffectiveSpread, EhlersStochastic, ElderImpulse, EmpiricalModeDecomposition, Engulfing, EveningDojiStar, FAMA, FRAMA, FallingThreeMethods, FibonacciPivots, FisherTransform, Footprint, ForceIndex, FractalChaosBands, FundingBasis, FundingRate, FundingRateMean, FundingRateZScore, GainLossRatio, GapSideBySideWhite, GarmanKlassVolatility, GravestoneDoji, HMA, Hammer, HangingMan, Harami, HeikinAshi, HiLoActivator, HighWave, Hikkake, HikkakeModified, HilbertDominantCycle, HistoricalVolatility, HomingPigeon, HurstChannel, HurstExponent, Ichimoku, IdenticalThreeCrows, InNeck, Inertia, InformationRatio, InitialBalance, InstantaneousTrendline, InverseFisherTransform, InvertedHammer, JMA, KAMA, KST, KVO, KellyCriterion, Keltner, Kicking, KickingByLength, Kurtosis, KylesLambda, LadderBottom, LaguerreRSI, LeadLagCrossCorrelation, LinRegAngle, LinRegChannel, LinRegSlope, LinearRegression, LiquidationFeatures, LongLeggedDoji, LongLine, LongShortRatio, MACD, MAMA, MFI, MOM, MaEnvelope, MarketFacilitationIndex, Marubozu, MassIndex, MatHold, MatchingLow, MaxDrawdown, McGinleyDynamic, MedianAbsoluteDeviation, MedianPrice, Microprice, MorningDojiStar, MorningEveningStar, NATR, NVI, OBV, OIPriceDivergence, OIWeighted, OmegaRatio, OnNeck, OpenInterestDelta, OpeningMarubozu, OpeningRange, OrderBookImbalanceFull, OrderBookImbalanceTop1, OrderBookImbalanceTopN, PGO, PMO, PPO, PSAR, PVI, PainIndex, PairSpreadZScore, PairwiseBeta, ParkinsonVolatility, PearsonCorrelation, PercentB, PercentageTrailingStop, PiercingDarkCloud, ProfitFactor, QuotedSpread, ROC, RSI, RSquared, RVI, RVIVolatility, RWI, RealizedSpread, RecoveryFactor, RelativeStrengthAB, RenkoTrailingStop, RickshawMan, RisingThreeMethods, RogersSatchellVolatility, RollingVWAP, RoofingFilter, SMA, SMI, SMMA, STC, SeparatingLines, SharpeRatio, ShootingStar, ShortLine, SignedVolume, SineWave, Skewness, SortinoRatio, SpearmanCorrelation, SpinningTop, StalledPattern, StandardError, StandardErrorBands, StarcBands, StdDev, StepTrailingStop, StickSandwich, StochRSI, Stochastic, SuperSmoother, SuperTrend, T3, TDCombo, TDCountdown, TDDeMarker, TDDifferential, TDLines, TDOpen, TDPressure, TDREI, TDRangeProjection, TDRiskLevel, TDSequential, TDSetup, TEMA, TII, TRIMA, TRIX, TSI, TSV, TakerBuySellRatio, Takuri, TasukiGap, TermStructureBasis, ThreeInside, ThreeLineStrike, ThreeOutside, ThreeSoldiersOrCrows, ThreeStarsInSouth, Thrusting, TradeImbalance, TreynorRatio, TrueRange, TtmSqueeze, Tweezer, TwoCrows, TypicalPrice, UlcerIndex, UltimateOscillator, UniqueThreeRiver, UpsideGapThreeMethods, UpsideGapTwoCrows, VIDYA, VWAP, VWMA, VZO, ValueArea, ValueAtRisk, Variance, VerticalHorizontalFilter, VoltyStop, VolumeOscillator, VolumePriceTrend, Vortex, VwapStdDevBands, WMA, WaveTrend, WeightedClose, WilliamsAD, WilliamsFractals, WilliamsR, WoodiePivots, YangZhangVolatility, YoyoExit, ZLEMA, ZScore, ZeroLagMACD, ZigZag, installPanicHook, version
8
+ ADL, ADX, ADXR, ALMA, APO, ATR, AbandonedBaby, AccelerationBands, AcceleratorOscillator, AdaptiveCycle, AdvanceBlock, Alligator, Alpha, AnchoredRSI, AnchoredVWAP, Aroon, AroonOscillator, AtrBands, AtrTrailingStop, Autocorrelation, AverageDrawdown, AwesomeOscillator, AwesomeOscillatorHistogram, BalanceOfPower, BeltHold, Beta, BollingerBands, BollingerBandwidth, Breakaway, CCI, CFO, CMO, CalendarSpread, CalmarRatio, Camarilla, CenterOfGravity, ChaikinMoneyFlow, ChaikinOscillator, ChaikinVolatility, ChandeKrollStop, ChandelierExit, ChoppinessIndex, ClassicPivots, ClosingMarubozu, CoefficientOfVariation, Cointegration, ConcealingBabySwallow, ConditionalValueAtRisk, ConnorsRSI, Coppock, Counterattack, CumulativeVolumeDelta, CyberneticCycle, DEMA, DPO, Decycler, DecyclerOscillator, DemandIndex, DemarkPivots, DepthSlope, DetrendedStdDev, Doji, DojiStar, Donchian, DonchianStop, DoubleBollinger, DownsideGapThreeMethods, DragonflyDoji, DrawdownDuration, EMA, EVWMA, EaseOfMovement, EffectiveSpread, EhlersStochastic, ElderImpulse, EmpiricalModeDecomposition, Engulfing, EveningDojiStar, FAMA, FRAMA, FallingThreeMethods, FibonacciPivots, FisherTransform, Footprint, ForceIndex, FractalChaosBands, FundingBasis, FundingRate, FundingRateMean, FundingRateZScore, GainLossRatio, GapSideBySideWhite, GarmanKlassVolatility, GravestoneDoji, HMA, Hammer, HangingMan, Harami, HeikinAshi, HiLoActivator, HighWave, Hikkake, HikkakeModified, HilbertDominantCycle, HistoricalVolatility, HomingPigeon, HurstChannel, HurstExponent, Ichimoku, IdenticalThreeCrows, InNeck, Inertia, InformationRatio, InitialBalance, InstantaneousTrendline, InverseFisherTransform, InvertedHammer, JMA, KAMA, KST, KVO, KagiBars, KellyCriterion, Keltner, Kicking, KickingByLength, Kurtosis, KylesLambda, LadderBottom, LaguerreRSI, LeadLagCrossCorrelation, LinRegAngle, LinRegChannel, LinRegSlope, LinearRegression, LiquidationFeatures, LongLeggedDoji, LongLine, LongShortRatio, MACD, MAMA, MFI, MOM, MaEnvelope, MarketFacilitationIndex, Marubozu, MassIndex, MatHold, MatchingLow, MaxDrawdown, McGinleyDynamic, MedianAbsoluteDeviation, MedianPrice, Microprice, MorningDojiStar, MorningEveningStar, NATR, NVI, OBV, OIPriceDivergence, OIWeighted, OmegaRatio, OnNeck, OpenInterestDelta, OpeningMarubozu, OpeningRange, OrderBookImbalanceFull, OrderBookImbalanceTop1, OrderBookImbalanceTopN, PGO, PMO, PPO, PSAR, PVI, PainIndex, PairSpreadZScore, PairwiseBeta, ParkinsonVolatility, PearsonCorrelation, PercentB, PercentageTrailingStop, PiercingDarkCloud, PointAndFigureBars, ProfitFactor, QuotedSpread, ROC, RSI, RSquared, RVI, RVIVolatility, RWI, RealizedSpread, RecoveryFactor, RelativeStrengthAB, RenkoBars, RenkoTrailingStop, RickshawMan, RisingThreeMethods, RogersSatchellVolatility, RollingVWAP, RoofingFilter, SMA, SMI, SMMA, STC, SeparatingLines, SharpeRatio, ShootingStar, ShortLine, SignedVolume, SineWave, Skewness, SortinoRatio, SpearmanCorrelation, SpinningTop, StalledPattern, StandardError, StandardErrorBands, StarcBands, StdDev, StepTrailingStop, StickSandwich, StochRSI, Stochastic, SuperSmoother, SuperTrend, T3, TDCombo, TDCountdown, TDDeMarker, TDDifferential, TDLines, TDOpen, TDPressure, TDREI, TDRangeProjection, TDRiskLevel, TDSequential, TDSetup, TEMA, TII, TRIMA, TRIX, TSI, TSV, TakerBuySellRatio, Takuri, TasukiGap, TermStructureBasis, ThreeInside, ThreeLineStrike, ThreeOutside, ThreeSoldiersOrCrows, ThreeStarsInSouth, Thrusting, TpoProfile, TradeImbalance, TreynorRatio, TrueRange, TtmSqueeze, Tweezer, TwoCrows, TypicalPrice, UlcerIndex, UltimateOscillator, UniqueThreeRiver, UpsideGapThreeMethods, UpsideGapTwoCrows, VIDYA, VWAP, VWMA, VZO, ValueArea, ValueAtRisk, Variance, VerticalHorizontalFilter, VoltyStop, VolumeOscillator, VolumePriceTrend, VolumeProfile, Vortex, VwapStdDevBands, WMA, WaveTrend, WeightedClose, WilliamsAD, WilliamsFractals, WilliamsR, WoodiePivots, YangZhangVolatility, YoyoExit, ZLEMA, ZScore, ZeroLagMACD, ZigZag, installPanicHook, version
9
9
  } from "./wickra_wasm_bg.js";
package/wickra_wasm_bg.js CHANGED
@@ -1134,6 +1134,71 @@ export class Alpha {
1134
1134
  }
1135
1135
  if (Symbol.dispose) Alpha.prototype[Symbol.dispose] = Alpha.prototype.free;
1136
1136
 
1137
+ export class AnchoredRSI {
1138
+ __destroy_into_raw() {
1139
+ const ptr = this.__wbg_ptr;
1140
+ this.__wbg_ptr = 0;
1141
+ AnchoredRSIFinalization.unregister(this);
1142
+ return ptr;
1143
+ }
1144
+ free() {
1145
+ const ptr = this.__destroy_into_raw();
1146
+ wasm.__wbg_anchoredrsi_free(ptr, 0);
1147
+ }
1148
+ /**
1149
+ * @param {Float64Array} prices
1150
+ * @returns {Float64Array}
1151
+ */
1152
+ batch(prices) {
1153
+ const ptr0 = passArrayF64ToWasm0(prices, wasm.__wbindgen_export3);
1154
+ const len0 = WASM_VECTOR_LEN;
1155
+ const ret = wasm.anchoredrsi_batch(this.__wbg_ptr, ptr0, len0);
1156
+ return takeObject(ret);
1157
+ }
1158
+ /**
1159
+ * @returns {boolean}
1160
+ */
1161
+ isReady() {
1162
+ const ret = wasm.anchoredrsi_isReady(this.__wbg_ptr);
1163
+ return ret !== 0;
1164
+ }
1165
+ constructor() {
1166
+ const ret = wasm.anchoredrsi_new();
1167
+ this.__wbg_ptr = ret;
1168
+ AnchoredRSIFinalization.register(this, this.__wbg_ptr, this);
1169
+ return this;
1170
+ }
1171
+ reset() {
1172
+ wasm.anchoredrsi_reset(this.__wbg_ptr);
1173
+ }
1174
+ setAnchor() {
1175
+ wasm.anchoredrsi_setAnchor(this.__wbg_ptr);
1176
+ }
1177
+ /**
1178
+ * @param {number} value
1179
+ * @returns {number | undefined}
1180
+ */
1181
+ update(value) {
1182
+ try {
1183
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
1184
+ wasm.anchoredrsi_update(retptr, this.__wbg_ptr, value);
1185
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
1186
+ var r2 = getDataViewMemory0().getFloat64(retptr + 8 * 1, true);
1187
+ return r0 === 0 ? undefined : r2;
1188
+ } finally {
1189
+ wasm.__wbindgen_add_to_stack_pointer(16);
1190
+ }
1191
+ }
1192
+ /**
1193
+ * @returns {number}
1194
+ */
1195
+ warmupPeriod() {
1196
+ const ret = wasm.anchoredrsi_warmupPeriod(this.__wbg_ptr);
1197
+ return ret >>> 0;
1198
+ }
1199
+ }
1200
+ if (Symbol.dispose) AnchoredRSI.prototype[Symbol.dispose] = AnchoredRSI.prototype.free;
1201
+
1137
1202
  export class AnchoredVWAP {
1138
1203
  __destroy_into_raw() {
1139
1204
  const ptr = this.__wbg_ptr;
@@ -10029,6 +10094,91 @@ export class KVO {
10029
10094
  }
10030
10095
  if (Symbol.dispose) KVO.prototype[Symbol.dispose] = KVO.prototype.free;
10031
10096
 
10097
+ export class KagiBars {
10098
+ __destroy_into_raw() {
10099
+ const ptr = this.__wbg_ptr;
10100
+ this.__wbg_ptr = 0;
10101
+ KagiBarsFinalization.unregister(this);
10102
+ return ptr;
10103
+ }
10104
+ free() {
10105
+ const ptr = this.__destroy_into_raw();
10106
+ wasm.__wbg_kagibars_free(ptr, 0);
10107
+ }
10108
+ /**
10109
+ * @param {Float64Array} close
10110
+ * @returns {Array<any>}
10111
+ */
10112
+ batch(close) {
10113
+ try {
10114
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
10115
+ const ptr0 = passArrayF64ToWasm0(close, wasm.__wbindgen_export3);
10116
+ const len0 = WASM_VECTOR_LEN;
10117
+ wasm.kagibars_batch(retptr, this.__wbg_ptr, ptr0, len0);
10118
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
10119
+ var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
10120
+ var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);
10121
+ if (r2) {
10122
+ throw takeObject(r1);
10123
+ }
10124
+ return takeObject(r0);
10125
+ } finally {
10126
+ wasm.__wbindgen_add_to_stack_pointer(16);
10127
+ }
10128
+ }
10129
+ /**
10130
+ * @param {number} reversal
10131
+ */
10132
+ constructor(reversal) {
10133
+ try {
10134
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
10135
+ wasm.kagibars_new(retptr, reversal);
10136
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
10137
+ var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
10138
+ var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);
10139
+ if (r2) {
10140
+ throw takeObject(r1);
10141
+ }
10142
+ this.__wbg_ptr = r0;
10143
+ KagiBarsFinalization.register(this, this.__wbg_ptr, this);
10144
+ return this;
10145
+ } finally {
10146
+ wasm.__wbindgen_add_to_stack_pointer(16);
10147
+ }
10148
+ }
10149
+ reset() {
10150
+ wasm.kagibars_reset(this.__wbg_ptr);
10151
+ }
10152
+ /**
10153
+ * @returns {number}
10154
+ */
10155
+ reversal() {
10156
+ const ret = wasm.kagibars_reversal(this.__wbg_ptr);
10157
+ return ret;
10158
+ }
10159
+ /**
10160
+ * Returns an array of `{ start, end, direction }` segments completed on this close.
10161
+ * @param {number} close
10162
+ * @returns {Array<any>}
10163
+ */
10164
+ update(close) {
10165
+ try {
10166
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
10167
+ wasm.kagibars_update(retptr, this.__wbg_ptr, close);
10168
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
10169
+ var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
10170
+ var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);
10171
+ if (r2) {
10172
+ throw takeObject(r1);
10173
+ }
10174
+ return takeObject(r0);
10175
+ } finally {
10176
+ wasm.__wbindgen_add_to_stack_pointer(16);
10177
+ }
10178
+ }
10179
+ }
10180
+ if (Symbol.dispose) KagiBars.prototype[Symbol.dispose] = KagiBars.prototype.free;
10181
+
10032
10182
  export class KellyCriterion {
10033
10183
  __destroy_into_raw() {
10034
10184
  const ptr = this.__wbg_ptr;
@@ -14859,6 +15009,99 @@ export class PiercingDarkCloud {
14859
15009
  }
14860
15010
  if (Symbol.dispose) PiercingDarkCloud.prototype[Symbol.dispose] = PiercingDarkCloud.prototype.free;
14861
15011
 
15012
+ export class PointAndFigureBars {
15013
+ __destroy_into_raw() {
15014
+ const ptr = this.__wbg_ptr;
15015
+ this.__wbg_ptr = 0;
15016
+ PointAndFigureBarsFinalization.unregister(this);
15017
+ return ptr;
15018
+ }
15019
+ free() {
15020
+ const ptr = this.__destroy_into_raw();
15021
+ wasm.__wbg_pointandfigurebars_free(ptr, 0);
15022
+ }
15023
+ /**
15024
+ * @param {Float64Array} close
15025
+ * @returns {Array<any>}
15026
+ */
15027
+ batch(close) {
15028
+ try {
15029
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
15030
+ const ptr0 = passArrayF64ToWasm0(close, wasm.__wbindgen_export3);
15031
+ const len0 = WASM_VECTOR_LEN;
15032
+ wasm.pointandfigurebars_batch(retptr, this.__wbg_ptr, ptr0, len0);
15033
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
15034
+ var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
15035
+ var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);
15036
+ if (r2) {
15037
+ throw takeObject(r1);
15038
+ }
15039
+ return takeObject(r0);
15040
+ } finally {
15041
+ wasm.__wbindgen_add_to_stack_pointer(16);
15042
+ }
15043
+ }
15044
+ /**
15045
+ * @returns {number}
15046
+ */
15047
+ boxSize() {
15048
+ const ret = wasm.pointandfigurebars_boxSize(this.__wbg_ptr);
15049
+ return ret;
15050
+ }
15051
+ /**
15052
+ * @param {number} box_size
15053
+ * @param {number} reversal
15054
+ */
15055
+ constructor(box_size, reversal) {
15056
+ try {
15057
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
15058
+ wasm.pointandfigurebars_new(retptr, box_size, reversal);
15059
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
15060
+ var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
15061
+ var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);
15062
+ if (r2) {
15063
+ throw takeObject(r1);
15064
+ }
15065
+ this.__wbg_ptr = r0;
15066
+ PointAndFigureBarsFinalization.register(this, this.__wbg_ptr, this);
15067
+ return this;
15068
+ } finally {
15069
+ wasm.__wbindgen_add_to_stack_pointer(16);
15070
+ }
15071
+ }
15072
+ reset() {
15073
+ wasm.pointandfigurebars_reset(this.__wbg_ptr);
15074
+ }
15075
+ /**
15076
+ * @returns {number}
15077
+ */
15078
+ reversal() {
15079
+ const ret = wasm.pointandfigurebars_reversal(this.__wbg_ptr);
15080
+ return ret >>> 0;
15081
+ }
15082
+ /**
15083
+ * Returns an array of `{ direction, high, low }` columns completed on this close.
15084
+ * @param {number} close
15085
+ * @returns {Array<any>}
15086
+ */
15087
+ update(close) {
15088
+ try {
15089
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
15090
+ wasm.pointandfigurebars_update(retptr, this.__wbg_ptr, close);
15091
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
15092
+ var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
15093
+ var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);
15094
+ if (r2) {
15095
+ throw takeObject(r1);
15096
+ }
15097
+ return takeObject(r0);
15098
+ } finally {
15099
+ wasm.__wbindgen_add_to_stack_pointer(16);
15100
+ }
15101
+ }
15102
+ }
15103
+ if (Symbol.dispose) PointAndFigureBars.prototype[Symbol.dispose] = PointAndFigureBars.prototype.free;
15104
+
14862
15105
  export class ProfitFactor {
14863
15106
  __destroy_into_raw() {
14864
15107
  const ptr = this.__wbg_ptr;
@@ -15721,6 +15964,91 @@ export class RelativeStrengthAB {
15721
15964
  }
15722
15965
  if (Symbol.dispose) RelativeStrengthAB.prototype[Symbol.dispose] = RelativeStrengthAB.prototype.free;
15723
15966
 
15967
+ export class RenkoBars {
15968
+ __destroy_into_raw() {
15969
+ const ptr = this.__wbg_ptr;
15970
+ this.__wbg_ptr = 0;
15971
+ RenkoBarsFinalization.unregister(this);
15972
+ return ptr;
15973
+ }
15974
+ free() {
15975
+ const ptr = this.__destroy_into_raw();
15976
+ wasm.__wbg_renkobars_free(ptr, 0);
15977
+ }
15978
+ /**
15979
+ * @param {Float64Array} close
15980
+ * @returns {Array<any>}
15981
+ */
15982
+ batch(close) {
15983
+ try {
15984
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
15985
+ const ptr0 = passArrayF64ToWasm0(close, wasm.__wbindgen_export3);
15986
+ const len0 = WASM_VECTOR_LEN;
15987
+ wasm.renkobars_batch(retptr, this.__wbg_ptr, ptr0, len0);
15988
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
15989
+ var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
15990
+ var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);
15991
+ if (r2) {
15992
+ throw takeObject(r1);
15993
+ }
15994
+ return takeObject(r0);
15995
+ } finally {
15996
+ wasm.__wbindgen_add_to_stack_pointer(16);
15997
+ }
15998
+ }
15999
+ /**
16000
+ * @returns {number}
16001
+ */
16002
+ boxSize() {
16003
+ const ret = wasm.renkobars_boxSize(this.__wbg_ptr);
16004
+ return ret;
16005
+ }
16006
+ /**
16007
+ * @param {number} box_size
16008
+ */
16009
+ constructor(box_size) {
16010
+ try {
16011
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
16012
+ wasm.renkobars_new(retptr, box_size);
16013
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
16014
+ var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
16015
+ var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);
16016
+ if (r2) {
16017
+ throw takeObject(r1);
16018
+ }
16019
+ this.__wbg_ptr = r0;
16020
+ RenkoBarsFinalization.register(this, this.__wbg_ptr, this);
16021
+ return this;
16022
+ } finally {
16023
+ wasm.__wbindgen_add_to_stack_pointer(16);
16024
+ }
16025
+ }
16026
+ reset() {
16027
+ wasm.renkobars_reset(this.__wbg_ptr);
16028
+ }
16029
+ /**
16030
+ * Returns an array of `{ open, close, direction }` bricks completed on this close.
16031
+ * @param {number} close
16032
+ * @returns {Array<any>}
16033
+ */
16034
+ update(close) {
16035
+ try {
16036
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
16037
+ wasm.renkobars_update(retptr, this.__wbg_ptr, close);
16038
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
16039
+ var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
16040
+ var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);
16041
+ if (r2) {
16042
+ throw takeObject(r1);
16043
+ }
16044
+ return takeObject(r0);
16045
+ } finally {
16046
+ wasm.__wbindgen_add_to_stack_pointer(16);
16047
+ }
16048
+ }
16049
+ }
16050
+ if (Symbol.dispose) RenkoBars.prototype[Symbol.dispose] = RenkoBars.prototype.free;
16051
+
15724
16052
  export class RenkoTrailingStop {
15725
16053
  __destroy_into_raw() {
15726
16054
  const ptr = this.__wbg_ptr;
@@ -20869,6 +21197,103 @@ export class Thrusting {
20869
21197
  }
20870
21198
  if (Symbol.dispose) Thrusting.prototype[Symbol.dispose] = Thrusting.prototype.free;
20871
21199
 
21200
+ export class TpoProfile {
21201
+ __destroy_into_raw() {
21202
+ const ptr = this.__wbg_ptr;
21203
+ this.__wbg_ptr = 0;
21204
+ TpoProfileFinalization.unregister(this);
21205
+ return ptr;
21206
+ }
21207
+ free() {
21208
+ const ptr = this.__destroy_into_raw();
21209
+ wasm.__wbg_tpoprofile_free(ptr, 0);
21210
+ }
21211
+ /**
21212
+ * @param {Float64Array} high
21213
+ * @param {Float64Array} low
21214
+ * @returns {Float64Array}
21215
+ */
21216
+ batch(high, low) {
21217
+ try {
21218
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
21219
+ const ptr0 = passArrayF64ToWasm0(high, wasm.__wbindgen_export3);
21220
+ const len0 = WASM_VECTOR_LEN;
21221
+ const ptr1 = passArrayF64ToWasm0(low, wasm.__wbindgen_export3);
21222
+ const len1 = WASM_VECTOR_LEN;
21223
+ wasm.tpoprofile_batch(retptr, this.__wbg_ptr, ptr0, len0, ptr1, len1);
21224
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
21225
+ var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
21226
+ var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);
21227
+ if (r2) {
21228
+ throw takeObject(r1);
21229
+ }
21230
+ return takeObject(r0);
21231
+ } finally {
21232
+ wasm.__wbindgen_add_to_stack_pointer(16);
21233
+ }
21234
+ }
21235
+ /**
21236
+ * @returns {boolean}
21237
+ */
21238
+ isReady() {
21239
+ const ret = wasm.tpoprofile_isReady(this.__wbg_ptr);
21240
+ return ret !== 0;
21241
+ }
21242
+ /**
21243
+ * @param {number} period
21244
+ * @param {number} bin_count
21245
+ */
21246
+ constructor(period, bin_count) {
21247
+ try {
21248
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
21249
+ wasm.tpoprofile_new(retptr, period, bin_count);
21250
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
21251
+ var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
21252
+ var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);
21253
+ if (r2) {
21254
+ throw takeObject(r1);
21255
+ }
21256
+ this.__wbg_ptr = r0;
21257
+ TpoProfileFinalization.register(this, this.__wbg_ptr, this);
21258
+ return this;
21259
+ } finally {
21260
+ wasm.__wbindgen_add_to_stack_pointer(16);
21261
+ }
21262
+ }
21263
+ reset() {
21264
+ wasm.tpoprofile_reset(this.__wbg_ptr);
21265
+ }
21266
+ /**
21267
+ * Streaming update. Returns `{ priceLow, priceHigh, counts }` once warm, else `null`.
21268
+ * @param {number} high
21269
+ * @param {number} low
21270
+ * @returns {any}
21271
+ */
21272
+ update(high, low) {
21273
+ try {
21274
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
21275
+ wasm.tpoprofile_update(retptr, this.__wbg_ptr, high, low);
21276
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
21277
+ var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
21278
+ var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);
21279
+ if (r2) {
21280
+ throw takeObject(r1);
21281
+ }
21282
+ return takeObject(r0);
21283
+ } finally {
21284
+ wasm.__wbindgen_add_to_stack_pointer(16);
21285
+ }
21286
+ }
21287
+ /**
21288
+ * @returns {number}
21289
+ */
21290
+ warmupPeriod() {
21291
+ const ret = wasm.tpoprofile_warmupPeriod(this.__wbg_ptr);
21292
+ return ret >>> 0;
21293
+ }
21294
+ }
21295
+ if (Symbol.dispose) TpoProfile.prototype[Symbol.dispose] = TpoProfile.prototype.free;
21296
+
20872
21297
  export class TradeImbalance {
20873
21298
  __destroy_into_raw() {
20874
21299
  const ptr = this.__wbg_ptr;
@@ -22790,6 +23215,107 @@ export class VolumePriceTrend {
22790
23215
  }
22791
23216
  if (Symbol.dispose) VolumePriceTrend.prototype[Symbol.dispose] = VolumePriceTrend.prototype.free;
22792
23217
 
23218
+ export class VolumeProfile {
23219
+ __destroy_into_raw() {
23220
+ const ptr = this.__wbg_ptr;
23221
+ this.__wbg_ptr = 0;
23222
+ VolumeProfileFinalization.unregister(this);
23223
+ return ptr;
23224
+ }
23225
+ free() {
23226
+ const ptr = this.__destroy_into_raw();
23227
+ wasm.__wbg_volumeprofile_free(ptr, 0);
23228
+ }
23229
+ /**
23230
+ * @param {Float64Array} high
23231
+ * @param {Float64Array} low
23232
+ * @param {Float64Array} volume
23233
+ * @returns {Float64Array}
23234
+ */
23235
+ batch(high, low, volume) {
23236
+ try {
23237
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
23238
+ const ptr0 = passArrayF64ToWasm0(high, wasm.__wbindgen_export3);
23239
+ const len0 = WASM_VECTOR_LEN;
23240
+ const ptr1 = passArrayF64ToWasm0(low, wasm.__wbindgen_export3);
23241
+ const len1 = WASM_VECTOR_LEN;
23242
+ const ptr2 = passArrayF64ToWasm0(volume, wasm.__wbindgen_export3);
23243
+ const len2 = WASM_VECTOR_LEN;
23244
+ wasm.volumeprofile_batch(retptr, this.__wbg_ptr, ptr0, len0, ptr1, len1, ptr2, len2);
23245
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
23246
+ var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
23247
+ var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);
23248
+ if (r2) {
23249
+ throw takeObject(r1);
23250
+ }
23251
+ return takeObject(r0);
23252
+ } finally {
23253
+ wasm.__wbindgen_add_to_stack_pointer(16);
23254
+ }
23255
+ }
23256
+ /**
23257
+ * @returns {boolean}
23258
+ */
23259
+ isReady() {
23260
+ const ret = wasm.volumeprofile_isReady(this.__wbg_ptr);
23261
+ return ret !== 0;
23262
+ }
23263
+ /**
23264
+ * @param {number} period
23265
+ * @param {number} bin_count
23266
+ */
23267
+ constructor(period, bin_count) {
23268
+ try {
23269
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
23270
+ wasm.volumeprofile_new(retptr, period, bin_count);
23271
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
23272
+ var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
23273
+ var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);
23274
+ if (r2) {
23275
+ throw takeObject(r1);
23276
+ }
23277
+ this.__wbg_ptr = r0;
23278
+ VolumeProfileFinalization.register(this, this.__wbg_ptr, this);
23279
+ return this;
23280
+ } finally {
23281
+ wasm.__wbindgen_add_to_stack_pointer(16);
23282
+ }
23283
+ }
23284
+ reset() {
23285
+ wasm.volumeprofile_reset(this.__wbg_ptr);
23286
+ }
23287
+ /**
23288
+ * Streaming update. Returns `{ priceLow, priceHigh, bins }` once warm, else `null`.
23289
+ * @param {number} high
23290
+ * @param {number} low
23291
+ * @param {number} volume
23292
+ * @returns {any}
23293
+ */
23294
+ update(high, low, volume) {
23295
+ try {
23296
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
23297
+ wasm.volumeprofile_update(retptr, this.__wbg_ptr, high, low, volume);
23298
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
23299
+ var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
23300
+ var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);
23301
+ if (r2) {
23302
+ throw takeObject(r1);
23303
+ }
23304
+ return takeObject(r0);
23305
+ } finally {
23306
+ wasm.__wbindgen_add_to_stack_pointer(16);
23307
+ }
23308
+ }
23309
+ /**
23310
+ * @returns {number}
23311
+ */
23312
+ warmupPeriod() {
23313
+ const ret = wasm.volumeprofile_warmupPeriod(this.__wbg_ptr);
23314
+ return ret >>> 0;
23315
+ }
23316
+ }
23317
+ if (Symbol.dispose) VolumeProfile.prototype[Symbol.dispose] = VolumeProfile.prototype.free;
23318
+
22793
23319
  export class Vortex {
22794
23320
  __destroy_into_raw() {
22795
23321
  const ptr = this.__wbg_ptr;
@@ -24231,6 +24757,9 @@ const ALMAFinalization = (typeof FinalizationRegistry === 'undefined')
24231
24757
  const AlphaFinalization = (typeof FinalizationRegistry === 'undefined')
24232
24758
  ? { register: () => {}, unregister: () => {} }
24233
24759
  : new FinalizationRegistry(ptr => wasm.__wbg_alpha_free(ptr, 1));
24760
+ const AnchoredRSIFinalization = (typeof FinalizationRegistry === 'undefined')
24761
+ ? { register: () => {}, unregister: () => {} }
24762
+ : new FinalizationRegistry(ptr => wasm.__wbg_anchoredrsi_free(ptr, 1));
24234
24763
  const AnchoredVWAPFinalization = (typeof FinalizationRegistry === 'undefined')
24235
24764
  ? { register: () => {}, unregister: () => {} }
24236
24765
  : new FinalizationRegistry(ptr => wasm.__wbg_anchoredvwap_free(ptr, 1));
@@ -24549,6 +25078,9 @@ const InvertedHammerFinalization = (typeof FinalizationRegistry === 'undefined')
24549
25078
  const JMAFinalization = (typeof FinalizationRegistry === 'undefined')
24550
25079
  ? { register: () => {}, unregister: () => {} }
24551
25080
  : new FinalizationRegistry(ptr => wasm.__wbg_jma_free(ptr, 1));
25081
+ const KagiBarsFinalization = (typeof FinalizationRegistry === 'undefined')
25082
+ ? { register: () => {}, unregister: () => {} }
25083
+ : new FinalizationRegistry(ptr => wasm.__wbg_kagibars_free(ptr, 1));
24552
25084
  const KAMAFinalization = (typeof FinalizationRegistry === 'undefined')
24553
25085
  ? { register: () => {}, unregister: () => {} }
24554
25086
  : new FinalizationRegistry(ptr => wasm.__wbg_kama_free(ptr, 1));
@@ -24729,6 +25261,9 @@ const PiercingDarkCloudFinalization = (typeof FinalizationRegistry === 'undefine
24729
25261
  const PMOFinalization = (typeof FinalizationRegistry === 'undefined')
24730
25262
  ? { register: () => {}, unregister: () => {} }
24731
25263
  : new FinalizationRegistry(ptr => wasm.__wbg_pmo_free(ptr, 1));
25264
+ const PointAndFigureBarsFinalization = (typeof FinalizationRegistry === 'undefined')
25265
+ ? { register: () => {}, unregister: () => {} }
25266
+ : new FinalizationRegistry(ptr => wasm.__wbg_pointandfigurebars_free(ptr, 1));
24732
25267
  const PPOFinalization = (typeof FinalizationRegistry === 'undefined')
24733
25268
  ? { register: () => {}, unregister: () => {} }
24734
25269
  : new FinalizationRegistry(ptr => wasm.__wbg_ppo_free(ptr, 1));
@@ -24756,6 +25291,9 @@ const RecoveryFactorFinalization = (typeof FinalizationRegistry === 'undefined')
24756
25291
  const RelativeStrengthABFinalization = (typeof FinalizationRegistry === 'undefined')
24757
25292
  ? { register: () => {}, unregister: () => {} }
24758
25293
  : new FinalizationRegistry(ptr => wasm.__wbg_relativestrengthab_free(ptr, 1));
25294
+ const RenkoBarsFinalization = (typeof FinalizationRegistry === 'undefined')
25295
+ ? { register: () => {}, unregister: () => {} }
25296
+ : new FinalizationRegistry(ptr => wasm.__wbg_renkobars_free(ptr, 1));
24759
25297
  const RenkoTrailingStopFinalization = (typeof FinalizationRegistry === 'undefined')
24760
25298
  ? { register: () => {}, unregister: () => {} }
24761
25299
  : new FinalizationRegistry(ptr => wasm.__wbg_renkotrailingstop_free(ptr, 1));
@@ -24939,6 +25477,9 @@ const ThrustingFinalization = (typeof FinalizationRegistry === 'undefined')
24939
25477
  const TIIFinalization = (typeof FinalizationRegistry === 'undefined')
24940
25478
  ? { register: () => {}, unregister: () => {} }
24941
25479
  : new FinalizationRegistry(ptr => wasm.__wbg_tii_free(ptr, 1));
25480
+ const TpoProfileFinalization = (typeof FinalizationRegistry === 'undefined')
25481
+ ? { register: () => {}, unregister: () => {} }
25482
+ : new FinalizationRegistry(ptr => wasm.__wbg_tpoprofile_free(ptr, 1));
24942
25483
  const TradeImbalanceFinalization = (typeof FinalizationRegistry === 'undefined')
24943
25484
  ? { register: () => {}, unregister: () => {} }
24944
25485
  : new FinalizationRegistry(ptr => wasm.__wbg_tradeimbalance_free(ptr, 1));
@@ -25011,6 +25552,9 @@ const VolumeOscillatorFinalization = (typeof FinalizationRegistry === 'undefined
25011
25552
  const VolumePriceTrendFinalization = (typeof FinalizationRegistry === 'undefined')
25012
25553
  ? { register: () => {}, unregister: () => {} }
25013
25554
  : new FinalizationRegistry(ptr => wasm.__wbg_volumepricetrend_free(ptr, 1));
25555
+ const VolumeProfileFinalization = (typeof FinalizationRegistry === 'undefined')
25556
+ ? { register: () => {}, unregister: () => {} }
25557
+ : new FinalizationRegistry(ptr => wasm.__wbg_volumeprofile_free(ptr, 1));
25014
25558
  const VortexFinalization = (typeof FinalizationRegistry === 'undefined')
25015
25559
  ? { register: () => {}, unregister: () => {} }
25016
25560
  : new FinalizationRegistry(ptr => wasm.__wbg_vortex_free(ptr, 1));
Binary file