wickra-wasm 0.6.8 → 0.6.9

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=479" 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=485" 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 479 indicators; start at the
51
+ every one of the 485 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.** 479 indicators across 24
69
+ - **The biggest streaming-native catalogue, period.** 485 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,8 +77,8 @@ 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 479 indicators**.
81
- - **Orders of magnitude faster where it counts.** In streaming Wickra is **958×**
80
+ for all 485 indicators**.
81
+ - **Orders of magnitude faster where it counts.** In streaming Wickra is **1156×**
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
84
84
  and trades the simple recurrences (SMA, EMA, MACD) for its guarantees — and
@@ -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** | **479** | **yes** |
98
+ | **★&nbsp;Wickra**| **clean** | **yes, O(1)** | **Python · Node · WASM · Rust** | **485** | **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 |
@@ -118,7 +118,7 @@ useful version of that itch is the one other people can build on too.
118
118
  ## Benchmarks
119
119
 
120
120
  Wickra updates every indicator in **O(1)** per tick. In **streaming** — the
121
- workload it is built for — it is **958× faster** than the only other incremental
121
+ workload it is built for — it is **1156× faster** than the only other incremental
122
122
  peer and **thousands of times** faster than recompute-on-every-tick libraries.
123
123
  **Batch** is competitive: it wins several rows outright and trades a few µs
124
124
  elsewhere for `None`-warmup, NaN-safety and bit-exact `batch == streaming`.
@@ -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
- 479 streaming-first indicators across twenty-four families. Every one passes the
131
+ 485 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).
@@ -149,7 +149,7 @@ warmup) at [docs.wickra.org](https://docs.wickra.org/Indicators-Overview).
149
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, Heikin-Ashi Oscillator, Three Line Break, Smoothed Heikin-Ashi, Equivolume, CandleVolume |
151
151
  | Alt-Chart Bars | Renko (box-size bricks), Kagi (reversal-amount lines), Point & Figure (X/O columns) |
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 |
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, Tristar, Harami Cross, Tower Top/Bottom, Dumpling Top, New Price Lines, Frying Pan Bottom |
153
153
  | Chart Patterns | Double Top / Bottom, Triple Top / Bottom, Head and Shoulders, Triangle (asc/desc/sym), Wedge (rising/falling), Flag / Pennant, Rectangle / Range, Cup and Handle |
154
154
  | Harmonic Patterns | AB=CD, Gartley, Butterfly, Bat, Crab, Shark, Cypher, Three Drives |
155
155
  | Fibonacci | Fibonacci Retracement, Fibonacci Extension, Fibonacci Projection, Auto-Fibonacci, Golden Pocket, Fibonacci Confluence, Fibonacci Fan, Fibonacci Arcs, Fibonacci Channel, Fibonacci Time Zones |
@@ -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 479 indicators
240
+ │ ├── wickra-core/ core engine + all 485 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.8",
8
+ "version": "0.6.9",
9
9
  "license": "MIT OR Apache-2.0",
10
10
  "repository": {
11
11
  "type": "git",
package/wickra_wasm.d.ts CHANGED
@@ -1210,6 +1210,17 @@ export class DrawdownDuration {
1210
1210
  warmupPeriod(): number;
1211
1211
  }
1212
1212
 
1213
+ export class DumplingTop {
1214
+ free(): void;
1215
+ [Symbol.dispose](): void;
1216
+ batch(high: Float64Array, low: Float64Array, close: Float64Array): Float64Array;
1217
+ isReady(): boolean;
1218
+ constructor(period: number);
1219
+ reset(): void;
1220
+ update(high: number, low: number, close: number): number | undefined;
1221
+ warmupPeriod(): number;
1222
+ }
1223
+
1213
1224
  export class DynamicMomentumIndex {
1214
1225
  free(): void;
1215
1226
  [Symbol.dispose](): void;
@@ -1603,6 +1614,17 @@ export class FractalChaosBands {
1603
1614
  warmupPeriod(): number;
1604
1615
  }
1605
1616
 
1617
+ export class FryPanBottom {
1618
+ free(): void;
1619
+ [Symbol.dispose](): void;
1620
+ batch(high: Float64Array, low: Float64Array, close: Float64Array): Float64Array;
1621
+ isReady(): boolean;
1622
+ constructor(period: number);
1623
+ reset(): void;
1624
+ update(high: number, low: number, close: number): number | undefined;
1625
+ warmupPeriod(): number;
1626
+ }
1627
+
1606
1628
  export class FundingBasis {
1607
1629
  free(): void;
1608
1630
  [Symbol.dispose](): void;
@@ -1863,6 +1885,17 @@ export class Harami {
1863
1885
  warmupPeriod(): number;
1864
1886
  }
1865
1887
 
1888
+ export class HaramiCross {
1889
+ free(): void;
1890
+ [Symbol.dispose](): void;
1891
+ batch(open: Float64Array, high: Float64Array, low: Float64Array, close: Float64Array): Float64Array;
1892
+ isReady(): boolean;
1893
+ constructor();
1894
+ reset(): void;
1895
+ update(open: number, high: number, low: number, close: number): number | undefined;
1896
+ warmupPeriod(): number;
1897
+ }
1898
+
1866
1899
  export class HeadAndShoulders {
1867
1900
  free(): void;
1868
1901
  [Symbol.dispose](): void;
@@ -2904,6 +2937,17 @@ export class NewHighsNewLows {
2904
2937
  warmupPeriod(): number;
2905
2938
  }
2906
2939
 
2940
+ export class NewPriceLines {
2941
+ free(): void;
2942
+ [Symbol.dispose](): void;
2943
+ batch(high: Float64Array, low: Float64Array, close: Float64Array): Float64Array;
2944
+ isReady(): boolean;
2945
+ constructor(count: number);
2946
+ reset(): void;
2947
+ update(high: number, low: number, close: number): number | undefined;
2948
+ warmupPeriod(): number;
2949
+ }
2950
+
2907
2951
  export class Nrtr {
2908
2952
  free(): void;
2909
2953
  [Symbol.dispose](): void;
@@ -4726,6 +4770,17 @@ export class TimeOfDayReturnProfile {
4726
4770
  warmupPeriod(): number;
4727
4771
  }
4728
4772
 
4773
+ export class TowerTopBottom {
4774
+ free(): void;
4775
+ [Symbol.dispose](): void;
4776
+ batch(open: Float64Array, high: Float64Array, low: Float64Array, close: Float64Array): Float64Array;
4777
+ isReady(): boolean;
4778
+ constructor();
4779
+ reset(): void;
4780
+ update(open: number, high: number, low: number, close: number): number | undefined;
4781
+ warmupPeriod(): number;
4782
+ }
4783
+
4729
4784
  export class TpoProfile {
4730
4785
  free(): void;
4731
4786
  [Symbol.dispose](): void;
@@ -4815,6 +4870,17 @@ export class TripleTopBottom {
4815
4870
  warmupPeriod(): number;
4816
4871
  }
4817
4872
 
4873
+ export class Tristar {
4874
+ free(): void;
4875
+ [Symbol.dispose](): void;
4876
+ batch(open: Float64Array, high: Float64Array, low: Float64Array, close: Float64Array): Float64Array;
4877
+ isReady(): boolean;
4878
+ constructor();
4879
+ reset(): void;
4880
+ update(open: number, high: number, low: number, close: number): number | undefined;
4881
+ warmupPeriod(): number;
4882
+ }
4883
+
4818
4884
  export class TrueRange {
4819
4885
  free(): void;
4820
4886
  [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, CandleVolume, 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, Equivolume, 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, HeikinAshiOscillator, 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, SmoothedHeikinAshi, 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, ThreeLineBreak, 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, CandleVolume, 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, DumplingTop, DynamicMomentumIndex, EHMA, EMA, EVENBETTERSINE, EVWMA, EaseOfMovement, EffectiveSpread, EhlersStochastic, ElderImpulse, ElderRay, ElderSafeZone, EmpiricalModeDecomposition, Engulfing, Equivolume, EveningDojiStar, EwmaVolatility, Expectancy, FAMA, FRAMA, FallingThreeMethods, FibArcs, FibChannel, FibConfluence, FibExtension, FibFan, FibProjection, FibRetracement, FibTimeZones, FibonacciPivots, FisherRSI, FisherTransform, FlagPennant, Footprint, ForceIndex, FractalChaosBands, FryPanBottom, 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, HaramiCross, HeadAndShoulders, HeikinAshi, HeikinAshiOscillator, 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, NewPriceLines, 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, SmoothedHeikinAshi, 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, ThreeLineBreak, ThreeLineStrike, ThreeOutside, ThreeSoldiersOrCrows, ThreeStarsInSouth, Thrusting, TickIndex, TimeBasedStop, TimeOfDayReturnProfile, TowerTopBottom, TpoProfile, TradeImbalance, TradeVolumeIndex, TrendLabel, TreynorRatio, Triangle, Trin, TripleTopBottom, Tristar, 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
@@ -8907,6 +8907,106 @@ export class DrawdownDuration {
8907
8907
  }
8908
8908
  if (Symbol.dispose) DrawdownDuration.prototype[Symbol.dispose] = DrawdownDuration.prototype.free;
8909
8909
 
8910
+ export class DumplingTop {
8911
+ __destroy_into_raw() {
8912
+ const ptr = this.__wbg_ptr;
8913
+ this.__wbg_ptr = 0;
8914
+ DumplingTopFinalization.unregister(this);
8915
+ return ptr;
8916
+ }
8917
+ free() {
8918
+ const ptr = this.__destroy_into_raw();
8919
+ wasm.__wbg_dumplingtop_free(ptr, 0);
8920
+ }
8921
+ /**
8922
+ * @param {Float64Array} high
8923
+ * @param {Float64Array} low
8924
+ * @param {Float64Array} close
8925
+ * @returns {Float64Array}
8926
+ */
8927
+ batch(high, low, close) {
8928
+ try {
8929
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
8930
+ const ptr0 = passArrayF64ToWasm0(high, wasm.__wbindgen_export3);
8931
+ const len0 = WASM_VECTOR_LEN;
8932
+ const ptr1 = passArrayF64ToWasm0(low, wasm.__wbindgen_export3);
8933
+ const len1 = WASM_VECTOR_LEN;
8934
+ const ptr2 = passArrayF64ToWasm0(close, wasm.__wbindgen_export3);
8935
+ const len2 = WASM_VECTOR_LEN;
8936
+ wasm.dumplingtop_batch(retptr, this.__wbg_ptr, ptr0, len0, ptr1, len1, ptr2, len2);
8937
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
8938
+ var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
8939
+ var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);
8940
+ if (r2) {
8941
+ throw takeObject(r1);
8942
+ }
8943
+ return takeObject(r0);
8944
+ } finally {
8945
+ wasm.__wbindgen_add_to_stack_pointer(16);
8946
+ }
8947
+ }
8948
+ /**
8949
+ * @returns {boolean}
8950
+ */
8951
+ isReady() {
8952
+ const ret = wasm.dumplingtop_isReady(this.__wbg_ptr);
8953
+ return ret !== 0;
8954
+ }
8955
+ /**
8956
+ * @param {number} period
8957
+ */
8958
+ constructor(period) {
8959
+ try {
8960
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
8961
+ wasm.dumplingtop_new(retptr, period);
8962
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
8963
+ var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
8964
+ var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);
8965
+ if (r2) {
8966
+ throw takeObject(r1);
8967
+ }
8968
+ this.__wbg_ptr = r0;
8969
+ DumplingTopFinalization.register(this, this.__wbg_ptr, this);
8970
+ return this;
8971
+ } finally {
8972
+ wasm.__wbindgen_add_to_stack_pointer(16);
8973
+ }
8974
+ }
8975
+ reset() {
8976
+ wasm.dumplingtop_reset(this.__wbg_ptr);
8977
+ }
8978
+ /**
8979
+ * @param {number} high
8980
+ * @param {number} low
8981
+ * @param {number} close
8982
+ * @returns {number | undefined}
8983
+ */
8984
+ update(high, low, close) {
8985
+ try {
8986
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-32);
8987
+ wasm.dumplingtop_update(retptr, this.__wbg_ptr, high, low, close);
8988
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
8989
+ var r2 = getDataViewMemory0().getFloat64(retptr + 8 * 1, true);
8990
+ var r4 = getDataViewMemory0().getInt32(retptr + 4 * 4, true);
8991
+ var r5 = getDataViewMemory0().getInt32(retptr + 4 * 5, true);
8992
+ if (r5) {
8993
+ throw takeObject(r4);
8994
+ }
8995
+ return r0 === 0 ? undefined : r2;
8996
+ } finally {
8997
+ wasm.__wbindgen_add_to_stack_pointer(32);
8998
+ }
8999
+ }
9000
+ /**
9001
+ * @returns {number}
9002
+ */
9003
+ warmupPeriod() {
9004
+ const ret = wasm.dumplingtop_warmupPeriod(this.__wbg_ptr);
9005
+ return ret >>> 0;
9006
+ }
9007
+ }
9008
+ if (Symbol.dispose) DumplingTop.prototype[Symbol.dispose] = DumplingTop.prototype.free;
9009
+
8910
9010
  export class DynamicMomentumIndex {
8911
9011
  __destroy_into_raw() {
8912
9012
  const ptr = this.__wbg_ptr;
@@ -11776,6 +11876,106 @@ export class FractalChaosBands {
11776
11876
  }
11777
11877
  if (Symbol.dispose) FractalChaosBands.prototype[Symbol.dispose] = FractalChaosBands.prototype.free;
11778
11878
 
11879
+ export class FryPanBottom {
11880
+ __destroy_into_raw() {
11881
+ const ptr = this.__wbg_ptr;
11882
+ this.__wbg_ptr = 0;
11883
+ FryPanBottomFinalization.unregister(this);
11884
+ return ptr;
11885
+ }
11886
+ free() {
11887
+ const ptr = this.__destroy_into_raw();
11888
+ wasm.__wbg_frypanbottom_free(ptr, 0);
11889
+ }
11890
+ /**
11891
+ * @param {Float64Array} high
11892
+ * @param {Float64Array} low
11893
+ * @param {Float64Array} close
11894
+ * @returns {Float64Array}
11895
+ */
11896
+ batch(high, low, close) {
11897
+ try {
11898
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
11899
+ const ptr0 = passArrayF64ToWasm0(high, wasm.__wbindgen_export3);
11900
+ const len0 = WASM_VECTOR_LEN;
11901
+ const ptr1 = passArrayF64ToWasm0(low, wasm.__wbindgen_export3);
11902
+ const len1 = WASM_VECTOR_LEN;
11903
+ const ptr2 = passArrayF64ToWasm0(close, wasm.__wbindgen_export3);
11904
+ const len2 = WASM_VECTOR_LEN;
11905
+ wasm.frypanbottom_batch(retptr, this.__wbg_ptr, ptr0, len0, ptr1, len1, ptr2, len2);
11906
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
11907
+ var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
11908
+ var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);
11909
+ if (r2) {
11910
+ throw takeObject(r1);
11911
+ }
11912
+ return takeObject(r0);
11913
+ } finally {
11914
+ wasm.__wbindgen_add_to_stack_pointer(16);
11915
+ }
11916
+ }
11917
+ /**
11918
+ * @returns {boolean}
11919
+ */
11920
+ isReady() {
11921
+ const ret = wasm.frypanbottom_isReady(this.__wbg_ptr);
11922
+ return ret !== 0;
11923
+ }
11924
+ /**
11925
+ * @param {number} period
11926
+ */
11927
+ constructor(period) {
11928
+ try {
11929
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
11930
+ wasm.frypanbottom_new(retptr, period);
11931
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
11932
+ var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
11933
+ var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);
11934
+ if (r2) {
11935
+ throw takeObject(r1);
11936
+ }
11937
+ this.__wbg_ptr = r0;
11938
+ FryPanBottomFinalization.register(this, this.__wbg_ptr, this);
11939
+ return this;
11940
+ } finally {
11941
+ wasm.__wbindgen_add_to_stack_pointer(16);
11942
+ }
11943
+ }
11944
+ reset() {
11945
+ wasm.frypanbottom_reset(this.__wbg_ptr);
11946
+ }
11947
+ /**
11948
+ * @param {number} high
11949
+ * @param {number} low
11950
+ * @param {number} close
11951
+ * @returns {number | undefined}
11952
+ */
11953
+ update(high, low, close) {
11954
+ try {
11955
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-32);
11956
+ wasm.frypanbottom_update(retptr, this.__wbg_ptr, high, low, close);
11957
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
11958
+ var r2 = getDataViewMemory0().getFloat64(retptr + 8 * 1, true);
11959
+ var r4 = getDataViewMemory0().getInt32(retptr + 4 * 4, true);
11960
+ var r5 = getDataViewMemory0().getInt32(retptr + 4 * 5, true);
11961
+ if (r5) {
11962
+ throw takeObject(r4);
11963
+ }
11964
+ return r0 === 0 ? undefined : r2;
11965
+ } finally {
11966
+ wasm.__wbindgen_add_to_stack_pointer(32);
11967
+ }
11968
+ }
11969
+ /**
11970
+ * @returns {number}
11971
+ */
11972
+ warmupPeriod() {
11973
+ const ret = wasm.frypanbottom_warmupPeriod(this.__wbg_ptr);
11974
+ return ret >>> 0;
11975
+ }
11976
+ }
11977
+ if (Symbol.dispose) FryPanBottom.prototype[Symbol.dispose] = FryPanBottom.prototype.free;
11978
+
11779
11979
  export class FundingBasis {
11780
11980
  __destroy_into_raw() {
11781
11981
  const ptr = this.__wbg_ptr;
@@ -13581,6 +13781,96 @@ export class Harami {
13581
13781
  }
13582
13782
  if (Symbol.dispose) Harami.prototype[Symbol.dispose] = Harami.prototype.free;
13583
13783
 
13784
+ export class HaramiCross {
13785
+ __destroy_into_raw() {
13786
+ const ptr = this.__wbg_ptr;
13787
+ this.__wbg_ptr = 0;
13788
+ HaramiCrossFinalization.unregister(this);
13789
+ return ptr;
13790
+ }
13791
+ free() {
13792
+ const ptr = this.__destroy_into_raw();
13793
+ wasm.__wbg_haramicross_free(ptr, 0);
13794
+ }
13795
+ /**
13796
+ * @param {Float64Array} open
13797
+ * @param {Float64Array} high
13798
+ * @param {Float64Array} low
13799
+ * @param {Float64Array} close
13800
+ * @returns {Float64Array}
13801
+ */
13802
+ batch(open, high, low, close) {
13803
+ try {
13804
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
13805
+ const ptr0 = passArrayF64ToWasm0(open, wasm.__wbindgen_export3);
13806
+ const len0 = WASM_VECTOR_LEN;
13807
+ const ptr1 = passArrayF64ToWasm0(high, wasm.__wbindgen_export3);
13808
+ const len1 = WASM_VECTOR_LEN;
13809
+ const ptr2 = passArrayF64ToWasm0(low, wasm.__wbindgen_export3);
13810
+ const len2 = WASM_VECTOR_LEN;
13811
+ const ptr3 = passArrayF64ToWasm0(close, wasm.__wbindgen_export3);
13812
+ const len3 = WASM_VECTOR_LEN;
13813
+ wasm.haramicross_batch(retptr, this.__wbg_ptr, ptr0, len0, ptr1, len1, ptr2, len2, ptr3, len3);
13814
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
13815
+ var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
13816
+ var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);
13817
+ if (r2) {
13818
+ throw takeObject(r1);
13819
+ }
13820
+ return takeObject(r0);
13821
+ } finally {
13822
+ wasm.__wbindgen_add_to_stack_pointer(16);
13823
+ }
13824
+ }
13825
+ /**
13826
+ * @returns {boolean}
13827
+ */
13828
+ isReady() {
13829
+ const ret = wasm.haramicross_isReady(this.__wbg_ptr);
13830
+ return ret !== 0;
13831
+ }
13832
+ constructor() {
13833
+ const ret = wasm.haramicross_new();
13834
+ this.__wbg_ptr = ret;
13835
+ HaramiCrossFinalization.register(this, this.__wbg_ptr, this);
13836
+ return this;
13837
+ }
13838
+ reset() {
13839
+ wasm.haramicross_reset(this.__wbg_ptr);
13840
+ }
13841
+ /**
13842
+ * @param {number} open
13843
+ * @param {number} high
13844
+ * @param {number} low
13845
+ * @param {number} close
13846
+ * @returns {number | undefined}
13847
+ */
13848
+ update(open, high, low, close) {
13849
+ try {
13850
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-32);
13851
+ wasm.haramicross_update(retptr, this.__wbg_ptr, open, high, low, close);
13852
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
13853
+ var r2 = getDataViewMemory0().getFloat64(retptr + 8 * 1, true);
13854
+ var r4 = getDataViewMemory0().getInt32(retptr + 4 * 4, true);
13855
+ var r5 = getDataViewMemory0().getInt32(retptr + 4 * 5, true);
13856
+ if (r5) {
13857
+ throw takeObject(r4);
13858
+ }
13859
+ return r0 === 0 ? undefined : r2;
13860
+ } finally {
13861
+ wasm.__wbindgen_add_to_stack_pointer(32);
13862
+ }
13863
+ }
13864
+ /**
13865
+ * @returns {number}
13866
+ */
13867
+ warmupPeriod() {
13868
+ const ret = wasm.haramicross_warmupPeriod(this.__wbg_ptr);
13869
+ return ret >>> 0;
13870
+ }
13871
+ }
13872
+ if (Symbol.dispose) HaramiCross.prototype[Symbol.dispose] = HaramiCross.prototype.free;
13873
+
13584
13874
  export class HeadAndShoulders {
13585
13875
  __destroy_into_raw() {
13586
13876
  const ptr = this.__wbg_ptr;
@@ -20989,6 +21279,106 @@ export class NewHighsNewLows {
20989
21279
  }
20990
21280
  if (Symbol.dispose) NewHighsNewLows.prototype[Symbol.dispose] = NewHighsNewLows.prototype.free;
20991
21281
 
21282
+ export class NewPriceLines {
21283
+ __destroy_into_raw() {
21284
+ const ptr = this.__wbg_ptr;
21285
+ this.__wbg_ptr = 0;
21286
+ NewPriceLinesFinalization.unregister(this);
21287
+ return ptr;
21288
+ }
21289
+ free() {
21290
+ const ptr = this.__destroy_into_raw();
21291
+ wasm.__wbg_newpricelines_free(ptr, 0);
21292
+ }
21293
+ /**
21294
+ * @param {Float64Array} high
21295
+ * @param {Float64Array} low
21296
+ * @param {Float64Array} close
21297
+ * @returns {Float64Array}
21298
+ */
21299
+ batch(high, low, close) {
21300
+ try {
21301
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
21302
+ const ptr0 = passArrayF64ToWasm0(high, wasm.__wbindgen_export3);
21303
+ const len0 = WASM_VECTOR_LEN;
21304
+ const ptr1 = passArrayF64ToWasm0(low, wasm.__wbindgen_export3);
21305
+ const len1 = WASM_VECTOR_LEN;
21306
+ const ptr2 = passArrayF64ToWasm0(close, wasm.__wbindgen_export3);
21307
+ const len2 = WASM_VECTOR_LEN;
21308
+ wasm.newpricelines_batch(retptr, this.__wbg_ptr, ptr0, len0, ptr1, len1, ptr2, len2);
21309
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
21310
+ var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
21311
+ var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);
21312
+ if (r2) {
21313
+ throw takeObject(r1);
21314
+ }
21315
+ return takeObject(r0);
21316
+ } finally {
21317
+ wasm.__wbindgen_add_to_stack_pointer(16);
21318
+ }
21319
+ }
21320
+ /**
21321
+ * @returns {boolean}
21322
+ */
21323
+ isReady() {
21324
+ const ret = wasm.newpricelines_isReady(this.__wbg_ptr);
21325
+ return ret !== 0;
21326
+ }
21327
+ /**
21328
+ * @param {number} count
21329
+ */
21330
+ constructor(count) {
21331
+ try {
21332
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
21333
+ wasm.newpricelines_new(retptr, count);
21334
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
21335
+ var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
21336
+ var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);
21337
+ if (r2) {
21338
+ throw takeObject(r1);
21339
+ }
21340
+ this.__wbg_ptr = r0;
21341
+ NewPriceLinesFinalization.register(this, this.__wbg_ptr, this);
21342
+ return this;
21343
+ } finally {
21344
+ wasm.__wbindgen_add_to_stack_pointer(16);
21345
+ }
21346
+ }
21347
+ reset() {
21348
+ wasm.newpricelines_reset(this.__wbg_ptr);
21349
+ }
21350
+ /**
21351
+ * @param {number} high
21352
+ * @param {number} low
21353
+ * @param {number} close
21354
+ * @returns {number | undefined}
21355
+ */
21356
+ update(high, low, close) {
21357
+ try {
21358
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-32);
21359
+ wasm.newpricelines_update(retptr, this.__wbg_ptr, high, low, close);
21360
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
21361
+ var r2 = getDataViewMemory0().getFloat64(retptr + 8 * 1, true);
21362
+ var r4 = getDataViewMemory0().getInt32(retptr + 4 * 4, true);
21363
+ var r5 = getDataViewMemory0().getInt32(retptr + 4 * 5, true);
21364
+ if (r5) {
21365
+ throw takeObject(r4);
21366
+ }
21367
+ return r0 === 0 ? undefined : r2;
21368
+ } finally {
21369
+ wasm.__wbindgen_add_to_stack_pointer(32);
21370
+ }
21371
+ }
21372
+ /**
21373
+ * @returns {number}
21374
+ */
21375
+ warmupPeriod() {
21376
+ const ret = wasm.newpricelines_warmupPeriod(this.__wbg_ptr);
21377
+ return ret >>> 0;
21378
+ }
21379
+ }
21380
+ if (Symbol.dispose) NewPriceLines.prototype[Symbol.dispose] = NewPriceLines.prototype.free;
21381
+
20992
21382
  export class Nrtr {
20993
21383
  __destroy_into_raw() {
20994
21384
  const ptr = this.__wbg_ptr;
@@ -34256,6 +34646,96 @@ export class TimeOfDayReturnProfile {
34256
34646
  }
34257
34647
  if (Symbol.dispose) TimeOfDayReturnProfile.prototype[Symbol.dispose] = TimeOfDayReturnProfile.prototype.free;
34258
34648
 
34649
+ export class TowerTopBottom {
34650
+ __destroy_into_raw() {
34651
+ const ptr = this.__wbg_ptr;
34652
+ this.__wbg_ptr = 0;
34653
+ TowerTopBottomFinalization.unregister(this);
34654
+ return ptr;
34655
+ }
34656
+ free() {
34657
+ const ptr = this.__destroy_into_raw();
34658
+ wasm.__wbg_towertopbottom_free(ptr, 0);
34659
+ }
34660
+ /**
34661
+ * @param {Float64Array} open
34662
+ * @param {Float64Array} high
34663
+ * @param {Float64Array} low
34664
+ * @param {Float64Array} close
34665
+ * @returns {Float64Array}
34666
+ */
34667
+ batch(open, high, low, close) {
34668
+ try {
34669
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
34670
+ const ptr0 = passArrayF64ToWasm0(open, wasm.__wbindgen_export3);
34671
+ const len0 = WASM_VECTOR_LEN;
34672
+ const ptr1 = passArrayF64ToWasm0(high, wasm.__wbindgen_export3);
34673
+ const len1 = WASM_VECTOR_LEN;
34674
+ const ptr2 = passArrayF64ToWasm0(low, wasm.__wbindgen_export3);
34675
+ const len2 = WASM_VECTOR_LEN;
34676
+ const ptr3 = passArrayF64ToWasm0(close, wasm.__wbindgen_export3);
34677
+ const len3 = WASM_VECTOR_LEN;
34678
+ wasm.towertopbottom_batch(retptr, this.__wbg_ptr, ptr0, len0, ptr1, len1, ptr2, len2, ptr3, len3);
34679
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
34680
+ var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
34681
+ var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);
34682
+ if (r2) {
34683
+ throw takeObject(r1);
34684
+ }
34685
+ return takeObject(r0);
34686
+ } finally {
34687
+ wasm.__wbindgen_add_to_stack_pointer(16);
34688
+ }
34689
+ }
34690
+ /**
34691
+ * @returns {boolean}
34692
+ */
34693
+ isReady() {
34694
+ const ret = wasm.towertopbottom_isReady(this.__wbg_ptr);
34695
+ return ret !== 0;
34696
+ }
34697
+ constructor() {
34698
+ const ret = wasm.towertopbottom_new();
34699
+ this.__wbg_ptr = ret;
34700
+ TowerTopBottomFinalization.register(this, this.__wbg_ptr, this);
34701
+ return this;
34702
+ }
34703
+ reset() {
34704
+ wasm.towertopbottom_reset(this.__wbg_ptr);
34705
+ }
34706
+ /**
34707
+ * @param {number} open
34708
+ * @param {number} high
34709
+ * @param {number} low
34710
+ * @param {number} close
34711
+ * @returns {number | undefined}
34712
+ */
34713
+ update(open, high, low, close) {
34714
+ try {
34715
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-32);
34716
+ wasm.towertopbottom_update(retptr, this.__wbg_ptr, open, high, low, close);
34717
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
34718
+ var r2 = getDataViewMemory0().getFloat64(retptr + 8 * 1, true);
34719
+ var r4 = getDataViewMemory0().getInt32(retptr + 4 * 4, true);
34720
+ var r5 = getDataViewMemory0().getInt32(retptr + 4 * 5, true);
34721
+ if (r5) {
34722
+ throw takeObject(r4);
34723
+ }
34724
+ return r0 === 0 ? undefined : r2;
34725
+ } finally {
34726
+ wasm.__wbindgen_add_to_stack_pointer(32);
34727
+ }
34728
+ }
34729
+ /**
34730
+ * @returns {number}
34731
+ */
34732
+ warmupPeriod() {
34733
+ const ret = wasm.towertopbottom_warmupPeriod(this.__wbg_ptr);
34734
+ return ret >>> 0;
34735
+ }
34736
+ }
34737
+ if (Symbol.dispose) TowerTopBottom.prototype[Symbol.dispose] = TowerTopBottom.prototype.free;
34738
+
34259
34739
  export class TpoProfile {
34260
34740
  __destroy_into_raw() {
34261
34741
  const ptr = this.__wbg_ptr;
@@ -34938,6 +35418,96 @@ export class TripleTopBottom {
34938
35418
  }
34939
35419
  if (Symbol.dispose) TripleTopBottom.prototype[Symbol.dispose] = TripleTopBottom.prototype.free;
34940
35420
 
35421
+ export class Tristar {
35422
+ __destroy_into_raw() {
35423
+ const ptr = this.__wbg_ptr;
35424
+ this.__wbg_ptr = 0;
35425
+ TristarFinalization.unregister(this);
35426
+ return ptr;
35427
+ }
35428
+ free() {
35429
+ const ptr = this.__destroy_into_raw();
35430
+ wasm.__wbg_tristar_free(ptr, 0);
35431
+ }
35432
+ /**
35433
+ * @param {Float64Array} open
35434
+ * @param {Float64Array} high
35435
+ * @param {Float64Array} low
35436
+ * @param {Float64Array} close
35437
+ * @returns {Float64Array}
35438
+ */
35439
+ batch(open, high, low, close) {
35440
+ try {
35441
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
35442
+ const ptr0 = passArrayF64ToWasm0(open, wasm.__wbindgen_export3);
35443
+ const len0 = WASM_VECTOR_LEN;
35444
+ const ptr1 = passArrayF64ToWasm0(high, wasm.__wbindgen_export3);
35445
+ const len1 = WASM_VECTOR_LEN;
35446
+ const ptr2 = passArrayF64ToWasm0(low, wasm.__wbindgen_export3);
35447
+ const len2 = WASM_VECTOR_LEN;
35448
+ const ptr3 = passArrayF64ToWasm0(close, wasm.__wbindgen_export3);
35449
+ const len3 = WASM_VECTOR_LEN;
35450
+ wasm.tristar_batch(retptr, this.__wbg_ptr, ptr0, len0, ptr1, len1, ptr2, len2, ptr3, len3);
35451
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
35452
+ var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
35453
+ var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);
35454
+ if (r2) {
35455
+ throw takeObject(r1);
35456
+ }
35457
+ return takeObject(r0);
35458
+ } finally {
35459
+ wasm.__wbindgen_add_to_stack_pointer(16);
35460
+ }
35461
+ }
35462
+ /**
35463
+ * @returns {boolean}
35464
+ */
35465
+ isReady() {
35466
+ const ret = wasm.tristar_isReady(this.__wbg_ptr);
35467
+ return ret !== 0;
35468
+ }
35469
+ constructor() {
35470
+ const ret = wasm.tristar_new();
35471
+ this.__wbg_ptr = ret;
35472
+ TristarFinalization.register(this, this.__wbg_ptr, this);
35473
+ return this;
35474
+ }
35475
+ reset() {
35476
+ wasm.tristar_reset(this.__wbg_ptr);
35477
+ }
35478
+ /**
35479
+ * @param {number} open
35480
+ * @param {number} high
35481
+ * @param {number} low
35482
+ * @param {number} close
35483
+ * @returns {number | undefined}
35484
+ */
35485
+ update(open, high, low, close) {
35486
+ try {
35487
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-32);
35488
+ wasm.tristar_update(retptr, this.__wbg_ptr, open, high, low, close);
35489
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
35490
+ var r2 = getDataViewMemory0().getFloat64(retptr + 8 * 1, true);
35491
+ var r4 = getDataViewMemory0().getInt32(retptr + 4 * 4, true);
35492
+ var r5 = getDataViewMemory0().getInt32(retptr + 4 * 5, true);
35493
+ if (r5) {
35494
+ throw takeObject(r4);
35495
+ }
35496
+ return r0 === 0 ? undefined : r2;
35497
+ } finally {
35498
+ wasm.__wbindgen_add_to_stack_pointer(32);
35499
+ }
35500
+ }
35501
+ /**
35502
+ * @returns {number}
35503
+ */
35504
+ warmupPeriod() {
35505
+ const ret = wasm.tristar_warmupPeriod(this.__wbg_ptr);
35506
+ return ret >>> 0;
35507
+ }
35508
+ }
35509
+ if (Symbol.dispose) Tristar.prototype[Symbol.dispose] = Tristar.prototype.free;
35510
+
34941
35511
  export class TrueRange {
34942
35512
  __destroy_into_raw() {
34943
35513
  const ptr = this.__wbg_ptr;
@@ -40140,6 +40710,9 @@ const DragonflyDojiFinalization = (typeof FinalizationRegistry === 'undefined')
40140
40710
  const DrawdownDurationFinalization = (typeof FinalizationRegistry === 'undefined')
40141
40711
  ? { register: () => {}, unregister: () => {} }
40142
40712
  : new FinalizationRegistry(ptr => wasm.__wbg_drawdownduration_free(ptr, 1));
40713
+ const DumplingTopFinalization = (typeof FinalizationRegistry === 'undefined')
40714
+ ? { register: () => {}, unregister: () => {} }
40715
+ : new FinalizationRegistry(ptr => wasm.__wbg_dumplingtop_free(ptr, 1));
40143
40716
  const DXFinalization = (typeof FinalizationRegistry === 'undefined')
40144
40717
  ? { register: () => {}, unregister: () => {} }
40145
40718
  : new FinalizationRegistry(ptr => wasm.__wbg_dx_free(ptr, 1));
@@ -40248,6 +40821,9 @@ const FractalChaosBandsFinalization = (typeof FinalizationRegistry === 'undefine
40248
40821
  const FRAMAFinalization = (typeof FinalizationRegistry === 'undefined')
40249
40822
  ? { register: () => {}, unregister: () => {} }
40250
40823
  : new FinalizationRegistry(ptr => wasm.__wbg_frama_free(ptr, 1));
40824
+ const FryPanBottomFinalization = (typeof FinalizationRegistry === 'undefined')
40825
+ ? { register: () => {}, unregister: () => {} }
40826
+ : new FinalizationRegistry(ptr => wasm.__wbg_frypanbottom_free(ptr, 1));
40251
40827
  const FundingBasisFinalization = (typeof FinalizationRegistry === 'undefined')
40252
40828
  ? { register: () => {}, unregister: () => {} }
40253
40829
  : new FinalizationRegistry(ptr => wasm.__wbg_fundingbasis_free(ptr, 1));
@@ -40302,6 +40878,9 @@ const HangingManFinalization = (typeof FinalizationRegistry === 'undefined')
40302
40878
  const HaramiFinalization = (typeof FinalizationRegistry === 'undefined')
40303
40879
  ? { register: () => {}, unregister: () => {} }
40304
40880
  : new FinalizationRegistry(ptr => wasm.__wbg_harami_free(ptr, 1));
40881
+ const HaramiCrossFinalization = (typeof FinalizationRegistry === 'undefined')
40882
+ ? { register: () => {}, unregister: () => {} }
40883
+ : new FinalizationRegistry(ptr => wasm.__wbg_haramicross_free(ptr, 1));
40305
40884
  const HeadAndShouldersFinalization = (typeof FinalizationRegistry === 'undefined')
40306
40885
  ? { register: () => {}, unregister: () => {} }
40307
40886
  : new FinalizationRegistry(ptr => wasm.__wbg_headandshoulders_free(ptr, 1));
@@ -40584,6 +41163,9 @@ const NATRFinalization = (typeof FinalizationRegistry === 'undefined')
40584
41163
  const NewHighsNewLowsFinalization = (typeof FinalizationRegistry === 'undefined')
40585
41164
  ? { register: () => {}, unregister: () => {} }
40586
41165
  : new FinalizationRegistry(ptr => wasm.__wbg_newhighsnewlows_free(ptr, 1));
41166
+ const NewPriceLinesFinalization = (typeof FinalizationRegistry === 'undefined')
41167
+ ? { register: () => {}, unregister: () => {} }
41168
+ : new FinalizationRegistry(ptr => wasm.__wbg_newpricelines_free(ptr, 1));
40587
41169
  const NrtrFinalization = (typeof FinalizationRegistry === 'undefined')
40588
41170
  ? { register: () => {}, unregister: () => {} }
40589
41171
  : new FinalizationRegistry(ptr => wasm.__wbg_nrtr_free(ptr, 1));
@@ -41040,6 +41622,9 @@ const TimeBasedStopFinalization = (typeof FinalizationRegistry === 'undefined')
41040
41622
  const TimeOfDayReturnProfileFinalization = (typeof FinalizationRegistry === 'undefined')
41041
41623
  ? { register: () => {}, unregister: () => {} }
41042
41624
  : new FinalizationRegistry(ptr => wasm.__wbg_timeofdayreturnprofile_free(ptr, 1));
41625
+ const TowerTopBottomFinalization = (typeof FinalizationRegistry === 'undefined')
41626
+ ? { register: () => {}, unregister: () => {} }
41627
+ : new FinalizationRegistry(ptr => wasm.__wbg_towertopbottom_free(ptr, 1));
41043
41628
  const TpoProfileFinalization = (typeof FinalizationRegistry === 'undefined')
41044
41629
  ? { register: () => {}, unregister: () => {} }
41045
41630
  : new FinalizationRegistry(ptr => wasm.__wbg_tpoprofile_free(ptr, 1));
@@ -41073,6 +41658,9 @@ const TrinFinalization = (typeof FinalizationRegistry === 'undefined')
41073
41658
  const TripleTopBottomFinalization = (typeof FinalizationRegistry === 'undefined')
41074
41659
  ? { register: () => {}, unregister: () => {} }
41075
41660
  : new FinalizationRegistry(ptr => wasm.__wbg_tripletopbottom_free(ptr, 1));
41661
+ const TristarFinalization = (typeof FinalizationRegistry === 'undefined')
41662
+ ? { register: () => {}, unregister: () => {} }
41663
+ : new FinalizationRegistry(ptr => wasm.__wbg_tristar_free(ptr, 1));
41076
41664
  const TRIXFinalization = (typeof FinalizationRegistry === 'undefined')
41077
41665
  ? { register: () => {}, unregister: () => {} }
41078
41666
  : new FinalizationRegistry(ptr => wasm.__wbg_trix_free(ptr, 1));
Binary file