wickra-wasm 0.6.8 → 0.7.0

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=488" 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 488 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.** 488 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 488 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** | **488** | **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
+ 488 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,11 +149,11 @@ 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 |
156
- | 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, Order Flow Imbalance, VPIN, Amihud Illiquidity, Roll Measure |
156
+ | 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, Order Flow Imbalance, VPIN, Amihud Illiquidity, Roll Measure, Trade-Sign Autocorrelation, Hasbrouck Information Share |
157
157
  | 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 |
158
158
  | Market Profile | Value Area (POC / VAH / VAL), Volume Profile (histogram), TPO Profile, Initial Balance, Opening Range |
159
159
  | Market Breadth | Advance/Decline Line, Advance/Decline Ratio, Advance/Decline Volume Line, McClellan Oscillator, McClellan Summation Index, TRIN / Arms Index, Breadth Thrust, New Highs - New Lows, High-Low Index, Percent Above Moving Average, Up/Down Volume Ratio, Bullish Percent Index, Cumulative Volume Index, Absolute Breadth Index, TICK Index |
@@ -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 488 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.7.0",
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,32 @@ 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
+
1899
+ export class HasbrouckInformationShare {
1900
+ free(): void;
1901
+ [Symbol.dispose](): void;
1902
+ /**
1903
+ * Batch over two equally-sized arrays. Returns one `f64` per
1904
+ * input position (`NaN` during warmup).
1905
+ */
1906
+ batch(x: Float64Array, y: Float64Array): Float64Array;
1907
+ isReady(): boolean;
1908
+ constructor(period: number);
1909
+ reset(): void;
1910
+ update(x: number, y: number): number | undefined;
1911
+ warmupPeriod(): number;
1912
+ }
1913
+
1866
1914
  export class HeadAndShoulders {
1867
1915
  free(): void;
1868
1916
  [Symbol.dispose](): void;
@@ -2904,6 +2952,17 @@ export class NewHighsNewLows {
2904
2952
  warmupPeriod(): number;
2905
2953
  }
2906
2954
 
2955
+ export class NewPriceLines {
2956
+ free(): void;
2957
+ [Symbol.dispose](): void;
2958
+ batch(high: Float64Array, low: Float64Array, close: Float64Array): Float64Array;
2959
+ isReady(): boolean;
2960
+ constructor(count: number);
2961
+ reset(): void;
2962
+ update(high: number, low: number, close: number): number | undefined;
2963
+ warmupPeriod(): number;
2964
+ }
2965
+
2907
2966
  export class Nrtr {
2908
2967
  free(): void;
2909
2968
  [Symbol.dispose](): void;
@@ -3275,6 +3334,16 @@ export class PiercingDarkCloud {
3275
3334
  warmupPeriod(): number;
3276
3335
  }
3277
3336
 
3337
+ export class Pin {
3338
+ free(): void;
3339
+ [Symbol.dispose](): void;
3340
+ isReady(): boolean;
3341
+ constructor(window: number);
3342
+ reset(): void;
3343
+ update(price: number, size: number, is_buy: boolean): number | undefined;
3344
+ warmupPeriod(): number;
3345
+ }
3346
+
3278
3347
  export class PivotReversal {
3279
3348
  free(): void;
3280
3349
  [Symbol.dispose](): void;
@@ -4726,6 +4795,17 @@ export class TimeOfDayReturnProfile {
4726
4795
  warmupPeriod(): number;
4727
4796
  }
4728
4797
 
4798
+ export class TowerTopBottom {
4799
+ free(): void;
4800
+ [Symbol.dispose](): void;
4801
+ batch(open: Float64Array, high: Float64Array, low: Float64Array, close: Float64Array): Float64Array;
4802
+ isReady(): boolean;
4803
+ constructor();
4804
+ reset(): void;
4805
+ update(open: number, high: number, low: number, close: number): number | undefined;
4806
+ warmupPeriod(): number;
4807
+ }
4808
+
4729
4809
  export class TpoProfile {
4730
4810
  free(): void;
4731
4811
  [Symbol.dispose](): void;
@@ -4750,6 +4830,16 @@ export class TradeImbalance {
4750
4830
  warmupPeriod(): number;
4751
4831
  }
4752
4832
 
4833
+ export class TradeSignAutocorrelation {
4834
+ free(): void;
4835
+ [Symbol.dispose](): void;
4836
+ isReady(): boolean;
4837
+ constructor(period: number);
4838
+ reset(): void;
4839
+ update(price: number, size: number, is_buy: boolean): number | undefined;
4840
+ warmupPeriod(): number;
4841
+ }
4842
+
4753
4843
  export class TradeVolumeIndex {
4754
4844
  free(): void;
4755
4845
  [Symbol.dispose](): void;
@@ -4815,6 +4905,17 @@ export class TripleTopBottom {
4815
4905
  warmupPeriod(): number;
4816
4906
  }
4817
4907
 
4908
+ export class Tristar {
4909
+ free(): void;
4910
+ [Symbol.dispose](): void;
4911
+ batch(open: Float64Array, high: Float64Array, low: Float64Array, close: Float64Array): Float64Array;
4912
+ isReady(): boolean;
4913
+ constructor();
4914
+ reset(): void;
4915
+ update(open: number, high: number, low: number, close: number): number | undefined;
4916
+ warmupPeriod(): number;
4917
+ }
4918
+
4818
4919
  export class TrueRange {
4819
4920
  free(): void;
4820
4921
  [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, HasbrouckInformationShare, 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, Pin, 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, TradeSignAutocorrelation, 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,189 @@ 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
+
13874
+ export class HasbrouckInformationShare {
13875
+ __destroy_into_raw() {
13876
+ const ptr = this.__wbg_ptr;
13877
+ this.__wbg_ptr = 0;
13878
+ HasbrouckInformationShareFinalization.unregister(this);
13879
+ return ptr;
13880
+ }
13881
+ free() {
13882
+ const ptr = this.__destroy_into_raw();
13883
+ wasm.__wbg_hasbrouckinformationshare_free(ptr, 0);
13884
+ }
13885
+ /**
13886
+ * Batch over two equally-sized arrays. Returns one `f64` per
13887
+ * input position (`NaN` during warmup).
13888
+ * @param {Float64Array} x
13889
+ * @param {Float64Array} y
13890
+ * @returns {Float64Array}
13891
+ */
13892
+ batch(x, y) {
13893
+ try {
13894
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
13895
+ const ptr0 = passArrayF64ToWasm0(x, wasm.__wbindgen_export3);
13896
+ const len0 = WASM_VECTOR_LEN;
13897
+ const ptr1 = passArrayF64ToWasm0(y, wasm.__wbindgen_export3);
13898
+ const len1 = WASM_VECTOR_LEN;
13899
+ wasm.hasbrouckinformationshare_batch(retptr, this.__wbg_ptr, ptr0, len0, ptr1, len1);
13900
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
13901
+ var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
13902
+ var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);
13903
+ if (r2) {
13904
+ throw takeObject(r1);
13905
+ }
13906
+ return takeObject(r0);
13907
+ } finally {
13908
+ wasm.__wbindgen_add_to_stack_pointer(16);
13909
+ }
13910
+ }
13911
+ /**
13912
+ * @returns {boolean}
13913
+ */
13914
+ isReady() {
13915
+ const ret = wasm.hasbrouckinformationshare_isReady(this.__wbg_ptr);
13916
+ return ret !== 0;
13917
+ }
13918
+ /**
13919
+ * @param {number} period
13920
+ */
13921
+ constructor(period) {
13922
+ try {
13923
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
13924
+ wasm.hasbrouckinformationshare_new(retptr, period);
13925
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
13926
+ var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
13927
+ var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);
13928
+ if (r2) {
13929
+ throw takeObject(r1);
13930
+ }
13931
+ this.__wbg_ptr = r0;
13932
+ HasbrouckInformationShareFinalization.register(this, this.__wbg_ptr, this);
13933
+ return this;
13934
+ } finally {
13935
+ wasm.__wbindgen_add_to_stack_pointer(16);
13936
+ }
13937
+ }
13938
+ reset() {
13939
+ wasm.hasbrouckinformationshare_reset(this.__wbg_ptr);
13940
+ }
13941
+ /**
13942
+ * @param {number} x
13943
+ * @param {number} y
13944
+ * @returns {number | undefined}
13945
+ */
13946
+ update(x, y) {
13947
+ try {
13948
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
13949
+ wasm.hasbrouckinformationshare_update(retptr, this.__wbg_ptr, x, y);
13950
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
13951
+ var r2 = getDataViewMemory0().getFloat64(retptr + 8 * 1, true);
13952
+ return r0 === 0 ? undefined : r2;
13953
+ } finally {
13954
+ wasm.__wbindgen_add_to_stack_pointer(16);
13955
+ }
13956
+ }
13957
+ /**
13958
+ * @returns {number}
13959
+ */
13960
+ warmupPeriod() {
13961
+ const ret = wasm.hasbrouckinformationshare_warmupPeriod(this.__wbg_ptr);
13962
+ return ret >>> 0;
13963
+ }
13964
+ }
13965
+ if (Symbol.dispose) HasbrouckInformationShare.prototype[Symbol.dispose] = HasbrouckInformationShare.prototype.free;
13966
+
13584
13967
  export class HeadAndShoulders {
13585
13968
  __destroy_into_raw() {
13586
13969
  const ptr = this.__wbg_ptr;
@@ -20989,6 +21372,106 @@ export class NewHighsNewLows {
20989
21372
  }
20990
21373
  if (Symbol.dispose) NewHighsNewLows.prototype[Symbol.dispose] = NewHighsNewLows.prototype.free;
20991
21374
 
21375
+ export class NewPriceLines {
21376
+ __destroy_into_raw() {
21377
+ const ptr = this.__wbg_ptr;
21378
+ this.__wbg_ptr = 0;
21379
+ NewPriceLinesFinalization.unregister(this);
21380
+ return ptr;
21381
+ }
21382
+ free() {
21383
+ const ptr = this.__destroy_into_raw();
21384
+ wasm.__wbg_newpricelines_free(ptr, 0);
21385
+ }
21386
+ /**
21387
+ * @param {Float64Array} high
21388
+ * @param {Float64Array} low
21389
+ * @param {Float64Array} close
21390
+ * @returns {Float64Array}
21391
+ */
21392
+ batch(high, low, close) {
21393
+ try {
21394
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
21395
+ const ptr0 = passArrayF64ToWasm0(high, wasm.__wbindgen_export3);
21396
+ const len0 = WASM_VECTOR_LEN;
21397
+ const ptr1 = passArrayF64ToWasm0(low, wasm.__wbindgen_export3);
21398
+ const len1 = WASM_VECTOR_LEN;
21399
+ const ptr2 = passArrayF64ToWasm0(close, wasm.__wbindgen_export3);
21400
+ const len2 = WASM_VECTOR_LEN;
21401
+ wasm.newpricelines_batch(retptr, this.__wbg_ptr, ptr0, len0, ptr1, len1, ptr2, len2);
21402
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
21403
+ var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
21404
+ var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);
21405
+ if (r2) {
21406
+ throw takeObject(r1);
21407
+ }
21408
+ return takeObject(r0);
21409
+ } finally {
21410
+ wasm.__wbindgen_add_to_stack_pointer(16);
21411
+ }
21412
+ }
21413
+ /**
21414
+ * @returns {boolean}
21415
+ */
21416
+ isReady() {
21417
+ const ret = wasm.newpricelines_isReady(this.__wbg_ptr);
21418
+ return ret !== 0;
21419
+ }
21420
+ /**
21421
+ * @param {number} count
21422
+ */
21423
+ constructor(count) {
21424
+ try {
21425
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
21426
+ wasm.newpricelines_new(retptr, count);
21427
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
21428
+ var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
21429
+ var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);
21430
+ if (r2) {
21431
+ throw takeObject(r1);
21432
+ }
21433
+ this.__wbg_ptr = r0;
21434
+ NewPriceLinesFinalization.register(this, this.__wbg_ptr, this);
21435
+ return this;
21436
+ } finally {
21437
+ wasm.__wbindgen_add_to_stack_pointer(16);
21438
+ }
21439
+ }
21440
+ reset() {
21441
+ wasm.newpricelines_reset(this.__wbg_ptr);
21442
+ }
21443
+ /**
21444
+ * @param {number} high
21445
+ * @param {number} low
21446
+ * @param {number} close
21447
+ * @returns {number | undefined}
21448
+ */
21449
+ update(high, low, close) {
21450
+ try {
21451
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-32);
21452
+ wasm.newpricelines_update(retptr, this.__wbg_ptr, high, low, close);
21453
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
21454
+ var r2 = getDataViewMemory0().getFloat64(retptr + 8 * 1, true);
21455
+ var r4 = getDataViewMemory0().getInt32(retptr + 4 * 4, true);
21456
+ var r5 = getDataViewMemory0().getInt32(retptr + 4 * 5, true);
21457
+ if (r5) {
21458
+ throw takeObject(r4);
21459
+ }
21460
+ return r0 === 0 ? undefined : r2;
21461
+ } finally {
21462
+ wasm.__wbindgen_add_to_stack_pointer(32);
21463
+ }
21464
+ }
21465
+ /**
21466
+ * @returns {number}
21467
+ */
21468
+ warmupPeriod() {
21469
+ const ret = wasm.newpricelines_warmupPeriod(this.__wbg_ptr);
21470
+ return ret >>> 0;
21471
+ }
21472
+ }
21473
+ if (Symbol.dispose) NewPriceLines.prototype[Symbol.dispose] = NewPriceLines.prototype.free;
21474
+
20992
21475
  export class Nrtr {
20993
21476
  __destroy_into_raw() {
20994
21477
  const ptr = this.__wbg_ptr;
@@ -23619,33 +24102,106 @@ export class PiercingDarkCloud {
23619
24102
  wasm.__wbindgen_add_to_stack_pointer(16);
23620
24103
  }
23621
24104
  }
23622
- /**
23623
- * @returns {boolean}
23624
- */
23625
- isReady() {
23626
- const ret = wasm.piercingdarkcloud_isReady(this.__wbg_ptr);
23627
- return ret !== 0;
23628
- }
23629
- constructor() {
23630
- const ret = wasm.piercingdarkcloud_new();
23631
- this.__wbg_ptr = ret;
23632
- PiercingDarkCloudFinalization.register(this, this.__wbg_ptr, this);
23633
- return this;
23634
- }
24105
+ /**
24106
+ * @returns {boolean}
24107
+ */
24108
+ isReady() {
24109
+ const ret = wasm.piercingdarkcloud_isReady(this.__wbg_ptr);
24110
+ return ret !== 0;
24111
+ }
24112
+ constructor() {
24113
+ const ret = wasm.piercingdarkcloud_new();
24114
+ this.__wbg_ptr = ret;
24115
+ PiercingDarkCloudFinalization.register(this, this.__wbg_ptr, this);
24116
+ return this;
24117
+ }
24118
+ reset() {
24119
+ wasm.piercingdarkcloud_reset(this.__wbg_ptr);
24120
+ }
24121
+ /**
24122
+ * @param {number} open
24123
+ * @param {number} high
24124
+ * @param {number} low
24125
+ * @param {number} close
24126
+ * @returns {number | undefined}
24127
+ */
24128
+ update(open, high, low, close) {
24129
+ try {
24130
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-32);
24131
+ wasm.piercingdarkcloud_update(retptr, this.__wbg_ptr, open, high, low, close);
24132
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
24133
+ var r2 = getDataViewMemory0().getFloat64(retptr + 8 * 1, true);
24134
+ var r4 = getDataViewMemory0().getInt32(retptr + 4 * 4, true);
24135
+ var r5 = getDataViewMemory0().getInt32(retptr + 4 * 5, true);
24136
+ if (r5) {
24137
+ throw takeObject(r4);
24138
+ }
24139
+ return r0 === 0 ? undefined : r2;
24140
+ } finally {
24141
+ wasm.__wbindgen_add_to_stack_pointer(32);
24142
+ }
24143
+ }
24144
+ /**
24145
+ * @returns {number}
24146
+ */
24147
+ warmupPeriod() {
24148
+ const ret = wasm.piercingdarkcloud_warmupPeriod(this.__wbg_ptr);
24149
+ return ret >>> 0;
24150
+ }
24151
+ }
24152
+ if (Symbol.dispose) PiercingDarkCloud.prototype[Symbol.dispose] = PiercingDarkCloud.prototype.free;
24153
+
24154
+ export class Pin {
24155
+ __destroy_into_raw() {
24156
+ const ptr = this.__wbg_ptr;
24157
+ this.__wbg_ptr = 0;
24158
+ PinFinalization.unregister(this);
24159
+ return ptr;
24160
+ }
24161
+ free() {
24162
+ const ptr = this.__destroy_into_raw();
24163
+ wasm.__wbg_pin_free(ptr, 0);
24164
+ }
24165
+ /**
24166
+ * @returns {boolean}
24167
+ */
24168
+ isReady() {
24169
+ const ret = wasm.pin_isReady(this.__wbg_ptr);
24170
+ return ret !== 0;
24171
+ }
24172
+ /**
24173
+ * @param {number} window
24174
+ */
24175
+ constructor(window) {
24176
+ try {
24177
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
24178
+ wasm.pin_new(retptr, window);
24179
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
24180
+ var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
24181
+ var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);
24182
+ if (r2) {
24183
+ throw takeObject(r1);
24184
+ }
24185
+ this.__wbg_ptr = r0;
24186
+ PinFinalization.register(this, this.__wbg_ptr, this);
24187
+ return this;
24188
+ } finally {
24189
+ wasm.__wbindgen_add_to_stack_pointer(16);
24190
+ }
24191
+ }
23635
24192
  reset() {
23636
- wasm.piercingdarkcloud_reset(this.__wbg_ptr);
24193
+ wasm.pin_reset(this.__wbg_ptr);
23637
24194
  }
23638
24195
  /**
23639
- * @param {number} open
23640
- * @param {number} high
23641
- * @param {number} low
23642
- * @param {number} close
24196
+ * @param {number} price
24197
+ * @param {number} size
24198
+ * @param {boolean} is_buy
23643
24199
  * @returns {number | undefined}
23644
24200
  */
23645
- update(open, high, low, close) {
24201
+ update(price, size, is_buy) {
23646
24202
  try {
23647
24203
  const retptr = wasm.__wbindgen_add_to_stack_pointer(-32);
23648
- wasm.piercingdarkcloud_update(retptr, this.__wbg_ptr, open, high, low, close);
24204
+ wasm.pin_update(retptr, this.__wbg_ptr, price, size, is_buy);
23649
24205
  var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
23650
24206
  var r2 = getDataViewMemory0().getFloat64(retptr + 8 * 1, true);
23651
24207
  var r4 = getDataViewMemory0().getInt32(retptr + 4 * 4, true);
@@ -23662,11 +24218,11 @@ export class PiercingDarkCloud {
23662
24218
  * @returns {number}
23663
24219
  */
23664
24220
  warmupPeriod() {
23665
- const ret = wasm.piercingdarkcloud_warmupPeriod(this.__wbg_ptr);
24221
+ const ret = wasm.pin_warmupPeriod(this.__wbg_ptr);
23666
24222
  return ret >>> 0;
23667
24223
  }
23668
24224
  }
23669
- if (Symbol.dispose) PiercingDarkCloud.prototype[Symbol.dispose] = PiercingDarkCloud.prototype.free;
24225
+ if (Symbol.dispose) Pin.prototype[Symbol.dispose] = Pin.prototype.free;
23670
24226
 
23671
24227
  export class PivotReversal {
23672
24228
  __destroy_into_raw() {
@@ -34256,6 +34812,96 @@ export class TimeOfDayReturnProfile {
34256
34812
  }
34257
34813
  if (Symbol.dispose) TimeOfDayReturnProfile.prototype[Symbol.dispose] = TimeOfDayReturnProfile.prototype.free;
34258
34814
 
34815
+ export class TowerTopBottom {
34816
+ __destroy_into_raw() {
34817
+ const ptr = this.__wbg_ptr;
34818
+ this.__wbg_ptr = 0;
34819
+ TowerTopBottomFinalization.unregister(this);
34820
+ return ptr;
34821
+ }
34822
+ free() {
34823
+ const ptr = this.__destroy_into_raw();
34824
+ wasm.__wbg_towertopbottom_free(ptr, 0);
34825
+ }
34826
+ /**
34827
+ * @param {Float64Array} open
34828
+ * @param {Float64Array} high
34829
+ * @param {Float64Array} low
34830
+ * @param {Float64Array} close
34831
+ * @returns {Float64Array}
34832
+ */
34833
+ batch(open, high, low, close) {
34834
+ try {
34835
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
34836
+ const ptr0 = passArrayF64ToWasm0(open, wasm.__wbindgen_export3);
34837
+ const len0 = WASM_VECTOR_LEN;
34838
+ const ptr1 = passArrayF64ToWasm0(high, wasm.__wbindgen_export3);
34839
+ const len1 = WASM_VECTOR_LEN;
34840
+ const ptr2 = passArrayF64ToWasm0(low, wasm.__wbindgen_export3);
34841
+ const len2 = WASM_VECTOR_LEN;
34842
+ const ptr3 = passArrayF64ToWasm0(close, wasm.__wbindgen_export3);
34843
+ const len3 = WASM_VECTOR_LEN;
34844
+ wasm.towertopbottom_batch(retptr, this.__wbg_ptr, ptr0, len0, ptr1, len1, ptr2, len2, ptr3, len3);
34845
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
34846
+ var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
34847
+ var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);
34848
+ if (r2) {
34849
+ throw takeObject(r1);
34850
+ }
34851
+ return takeObject(r0);
34852
+ } finally {
34853
+ wasm.__wbindgen_add_to_stack_pointer(16);
34854
+ }
34855
+ }
34856
+ /**
34857
+ * @returns {boolean}
34858
+ */
34859
+ isReady() {
34860
+ const ret = wasm.towertopbottom_isReady(this.__wbg_ptr);
34861
+ return ret !== 0;
34862
+ }
34863
+ constructor() {
34864
+ const ret = wasm.towertopbottom_new();
34865
+ this.__wbg_ptr = ret;
34866
+ TowerTopBottomFinalization.register(this, this.__wbg_ptr, this);
34867
+ return this;
34868
+ }
34869
+ reset() {
34870
+ wasm.towertopbottom_reset(this.__wbg_ptr);
34871
+ }
34872
+ /**
34873
+ * @param {number} open
34874
+ * @param {number} high
34875
+ * @param {number} low
34876
+ * @param {number} close
34877
+ * @returns {number | undefined}
34878
+ */
34879
+ update(open, high, low, close) {
34880
+ try {
34881
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-32);
34882
+ wasm.towertopbottom_update(retptr, this.__wbg_ptr, open, high, low, close);
34883
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
34884
+ var r2 = getDataViewMemory0().getFloat64(retptr + 8 * 1, true);
34885
+ var r4 = getDataViewMemory0().getInt32(retptr + 4 * 4, true);
34886
+ var r5 = getDataViewMemory0().getInt32(retptr + 4 * 5, true);
34887
+ if (r5) {
34888
+ throw takeObject(r4);
34889
+ }
34890
+ return r0 === 0 ? undefined : r2;
34891
+ } finally {
34892
+ wasm.__wbindgen_add_to_stack_pointer(32);
34893
+ }
34894
+ }
34895
+ /**
34896
+ * @returns {number}
34897
+ */
34898
+ warmupPeriod() {
34899
+ const ret = wasm.towertopbottom_warmupPeriod(this.__wbg_ptr);
34900
+ return ret >>> 0;
34901
+ }
34902
+ }
34903
+ if (Symbol.dispose) TowerTopBottom.prototype[Symbol.dispose] = TowerTopBottom.prototype.free;
34904
+
34259
34905
  export class TpoProfile {
34260
34906
  __destroy_into_raw() {
34261
34907
  const ptr = this.__wbg_ptr;
@@ -34426,6 +35072,79 @@ export class TradeImbalance {
34426
35072
  }
34427
35073
  if (Symbol.dispose) TradeImbalance.prototype[Symbol.dispose] = TradeImbalance.prototype.free;
34428
35074
 
35075
+ export class TradeSignAutocorrelation {
35076
+ __destroy_into_raw() {
35077
+ const ptr = this.__wbg_ptr;
35078
+ this.__wbg_ptr = 0;
35079
+ TradeSignAutocorrelationFinalization.unregister(this);
35080
+ return ptr;
35081
+ }
35082
+ free() {
35083
+ const ptr = this.__destroy_into_raw();
35084
+ wasm.__wbg_tradesignautocorrelation_free(ptr, 0);
35085
+ }
35086
+ /**
35087
+ * @returns {boolean}
35088
+ */
35089
+ isReady() {
35090
+ const ret = wasm.tradesignautocorrelation_isReady(this.__wbg_ptr);
35091
+ return ret !== 0;
35092
+ }
35093
+ /**
35094
+ * @param {number} period
35095
+ */
35096
+ constructor(period) {
35097
+ try {
35098
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
35099
+ wasm.tradesignautocorrelation_new(retptr, period);
35100
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
35101
+ var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
35102
+ var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);
35103
+ if (r2) {
35104
+ throw takeObject(r1);
35105
+ }
35106
+ this.__wbg_ptr = r0;
35107
+ TradeSignAutocorrelationFinalization.register(this, this.__wbg_ptr, this);
35108
+ return this;
35109
+ } finally {
35110
+ wasm.__wbindgen_add_to_stack_pointer(16);
35111
+ }
35112
+ }
35113
+ reset() {
35114
+ wasm.tradesignautocorrelation_reset(this.__wbg_ptr);
35115
+ }
35116
+ /**
35117
+ * @param {number} price
35118
+ * @param {number} size
35119
+ * @param {boolean} is_buy
35120
+ * @returns {number | undefined}
35121
+ */
35122
+ update(price, size, is_buy) {
35123
+ try {
35124
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-32);
35125
+ wasm.tradesignautocorrelation_update(retptr, this.__wbg_ptr, price, size, is_buy);
35126
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
35127
+ var r2 = getDataViewMemory0().getFloat64(retptr + 8 * 1, true);
35128
+ var r4 = getDataViewMemory0().getInt32(retptr + 4 * 4, true);
35129
+ var r5 = getDataViewMemory0().getInt32(retptr + 4 * 5, true);
35130
+ if (r5) {
35131
+ throw takeObject(r4);
35132
+ }
35133
+ return r0 === 0 ? undefined : r2;
35134
+ } finally {
35135
+ wasm.__wbindgen_add_to_stack_pointer(32);
35136
+ }
35137
+ }
35138
+ /**
35139
+ * @returns {number}
35140
+ */
35141
+ warmupPeriod() {
35142
+ const ret = wasm.tradesignautocorrelation_warmupPeriod(this.__wbg_ptr);
35143
+ return ret >>> 0;
35144
+ }
35145
+ }
35146
+ if (Symbol.dispose) TradeSignAutocorrelation.prototype[Symbol.dispose] = TradeSignAutocorrelation.prototype.free;
35147
+
34429
35148
  export class TradeVolumeIndex {
34430
35149
  __destroy_into_raw() {
34431
35150
  const ptr = this.__wbg_ptr;
@@ -34938,6 +35657,96 @@ export class TripleTopBottom {
34938
35657
  }
34939
35658
  if (Symbol.dispose) TripleTopBottom.prototype[Symbol.dispose] = TripleTopBottom.prototype.free;
34940
35659
 
35660
+ export class Tristar {
35661
+ __destroy_into_raw() {
35662
+ const ptr = this.__wbg_ptr;
35663
+ this.__wbg_ptr = 0;
35664
+ TristarFinalization.unregister(this);
35665
+ return ptr;
35666
+ }
35667
+ free() {
35668
+ const ptr = this.__destroy_into_raw();
35669
+ wasm.__wbg_tristar_free(ptr, 0);
35670
+ }
35671
+ /**
35672
+ * @param {Float64Array} open
35673
+ * @param {Float64Array} high
35674
+ * @param {Float64Array} low
35675
+ * @param {Float64Array} close
35676
+ * @returns {Float64Array}
35677
+ */
35678
+ batch(open, high, low, close) {
35679
+ try {
35680
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
35681
+ const ptr0 = passArrayF64ToWasm0(open, wasm.__wbindgen_export3);
35682
+ const len0 = WASM_VECTOR_LEN;
35683
+ const ptr1 = passArrayF64ToWasm0(high, wasm.__wbindgen_export3);
35684
+ const len1 = WASM_VECTOR_LEN;
35685
+ const ptr2 = passArrayF64ToWasm0(low, wasm.__wbindgen_export3);
35686
+ const len2 = WASM_VECTOR_LEN;
35687
+ const ptr3 = passArrayF64ToWasm0(close, wasm.__wbindgen_export3);
35688
+ const len3 = WASM_VECTOR_LEN;
35689
+ wasm.tristar_batch(retptr, this.__wbg_ptr, ptr0, len0, ptr1, len1, ptr2, len2, ptr3, len3);
35690
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
35691
+ var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
35692
+ var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);
35693
+ if (r2) {
35694
+ throw takeObject(r1);
35695
+ }
35696
+ return takeObject(r0);
35697
+ } finally {
35698
+ wasm.__wbindgen_add_to_stack_pointer(16);
35699
+ }
35700
+ }
35701
+ /**
35702
+ * @returns {boolean}
35703
+ */
35704
+ isReady() {
35705
+ const ret = wasm.tristar_isReady(this.__wbg_ptr);
35706
+ return ret !== 0;
35707
+ }
35708
+ constructor() {
35709
+ const ret = wasm.tristar_new();
35710
+ this.__wbg_ptr = ret;
35711
+ TristarFinalization.register(this, this.__wbg_ptr, this);
35712
+ return this;
35713
+ }
35714
+ reset() {
35715
+ wasm.tristar_reset(this.__wbg_ptr);
35716
+ }
35717
+ /**
35718
+ * @param {number} open
35719
+ * @param {number} high
35720
+ * @param {number} low
35721
+ * @param {number} close
35722
+ * @returns {number | undefined}
35723
+ */
35724
+ update(open, high, low, close) {
35725
+ try {
35726
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-32);
35727
+ wasm.tristar_update(retptr, this.__wbg_ptr, open, high, low, close);
35728
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
35729
+ var r2 = getDataViewMemory0().getFloat64(retptr + 8 * 1, true);
35730
+ var r4 = getDataViewMemory0().getInt32(retptr + 4 * 4, true);
35731
+ var r5 = getDataViewMemory0().getInt32(retptr + 4 * 5, true);
35732
+ if (r5) {
35733
+ throw takeObject(r4);
35734
+ }
35735
+ return r0 === 0 ? undefined : r2;
35736
+ } finally {
35737
+ wasm.__wbindgen_add_to_stack_pointer(32);
35738
+ }
35739
+ }
35740
+ /**
35741
+ * @returns {number}
35742
+ */
35743
+ warmupPeriod() {
35744
+ const ret = wasm.tristar_warmupPeriod(this.__wbg_ptr);
35745
+ return ret >>> 0;
35746
+ }
35747
+ }
35748
+ if (Symbol.dispose) Tristar.prototype[Symbol.dispose] = Tristar.prototype.free;
35749
+
34941
35750
  export class TrueRange {
34942
35751
  __destroy_into_raw() {
34943
35752
  const ptr = this.__wbg_ptr;
@@ -40140,6 +40949,9 @@ const DragonflyDojiFinalization = (typeof FinalizationRegistry === 'undefined')
40140
40949
  const DrawdownDurationFinalization = (typeof FinalizationRegistry === 'undefined')
40141
40950
  ? { register: () => {}, unregister: () => {} }
40142
40951
  : new FinalizationRegistry(ptr => wasm.__wbg_drawdownduration_free(ptr, 1));
40952
+ const DumplingTopFinalization = (typeof FinalizationRegistry === 'undefined')
40953
+ ? { register: () => {}, unregister: () => {} }
40954
+ : new FinalizationRegistry(ptr => wasm.__wbg_dumplingtop_free(ptr, 1));
40143
40955
  const DXFinalization = (typeof FinalizationRegistry === 'undefined')
40144
40956
  ? { register: () => {}, unregister: () => {} }
40145
40957
  : new FinalizationRegistry(ptr => wasm.__wbg_dx_free(ptr, 1));
@@ -40248,6 +41060,9 @@ const FractalChaosBandsFinalization = (typeof FinalizationRegistry === 'undefine
40248
41060
  const FRAMAFinalization = (typeof FinalizationRegistry === 'undefined')
40249
41061
  ? { register: () => {}, unregister: () => {} }
40250
41062
  : new FinalizationRegistry(ptr => wasm.__wbg_frama_free(ptr, 1));
41063
+ const FryPanBottomFinalization = (typeof FinalizationRegistry === 'undefined')
41064
+ ? { register: () => {}, unregister: () => {} }
41065
+ : new FinalizationRegistry(ptr => wasm.__wbg_frypanbottom_free(ptr, 1));
40251
41066
  const FundingBasisFinalization = (typeof FinalizationRegistry === 'undefined')
40252
41067
  ? { register: () => {}, unregister: () => {} }
40253
41068
  : new FinalizationRegistry(ptr => wasm.__wbg_fundingbasis_free(ptr, 1));
@@ -40302,6 +41117,12 @@ const HangingManFinalization = (typeof FinalizationRegistry === 'undefined')
40302
41117
  const HaramiFinalization = (typeof FinalizationRegistry === 'undefined')
40303
41118
  ? { register: () => {}, unregister: () => {} }
40304
41119
  : new FinalizationRegistry(ptr => wasm.__wbg_harami_free(ptr, 1));
41120
+ const HaramiCrossFinalization = (typeof FinalizationRegistry === 'undefined')
41121
+ ? { register: () => {}, unregister: () => {} }
41122
+ : new FinalizationRegistry(ptr => wasm.__wbg_haramicross_free(ptr, 1));
41123
+ const HasbrouckInformationShareFinalization = (typeof FinalizationRegistry === 'undefined')
41124
+ ? { register: () => {}, unregister: () => {} }
41125
+ : new FinalizationRegistry(ptr => wasm.__wbg_hasbrouckinformationshare_free(ptr, 1));
40305
41126
  const HeadAndShouldersFinalization = (typeof FinalizationRegistry === 'undefined')
40306
41127
  ? { register: () => {}, unregister: () => {} }
40307
41128
  : new FinalizationRegistry(ptr => wasm.__wbg_headandshoulders_free(ptr, 1));
@@ -40584,6 +41405,9 @@ const NATRFinalization = (typeof FinalizationRegistry === 'undefined')
40584
41405
  const NewHighsNewLowsFinalization = (typeof FinalizationRegistry === 'undefined')
40585
41406
  ? { register: () => {}, unregister: () => {} }
40586
41407
  : new FinalizationRegistry(ptr => wasm.__wbg_newhighsnewlows_free(ptr, 1));
41408
+ const NewPriceLinesFinalization = (typeof FinalizationRegistry === 'undefined')
41409
+ ? { register: () => {}, unregister: () => {} }
41410
+ : new FinalizationRegistry(ptr => wasm.__wbg_newpricelines_free(ptr, 1));
40587
41411
  const NrtrFinalization = (typeof FinalizationRegistry === 'undefined')
40588
41412
  ? { register: () => {}, unregister: () => {} }
40589
41413
  : new FinalizationRegistry(ptr => wasm.__wbg_nrtr_free(ptr, 1));
@@ -40665,6 +41489,9 @@ const PGOFinalization = (typeof FinalizationRegistry === 'undefined')
40665
41489
  const PiercingDarkCloudFinalization = (typeof FinalizationRegistry === 'undefined')
40666
41490
  ? { register: () => {}, unregister: () => {} }
40667
41491
  : new FinalizationRegistry(ptr => wasm.__wbg_piercingdarkcloud_free(ptr, 1));
41492
+ const PinFinalization = (typeof FinalizationRegistry === 'undefined')
41493
+ ? { register: () => {}, unregister: () => {} }
41494
+ : new FinalizationRegistry(ptr => wasm.__wbg_pin_free(ptr, 1));
40668
41495
  const PivotReversalFinalization = (typeof FinalizationRegistry === 'undefined')
40669
41496
  ? { register: () => {}, unregister: () => {} }
40670
41497
  : new FinalizationRegistry(ptr => wasm.__wbg_pivotreversal_free(ptr, 1));
@@ -41040,12 +41867,18 @@ const TimeBasedStopFinalization = (typeof FinalizationRegistry === 'undefined')
41040
41867
  const TimeOfDayReturnProfileFinalization = (typeof FinalizationRegistry === 'undefined')
41041
41868
  ? { register: () => {}, unregister: () => {} }
41042
41869
  : new FinalizationRegistry(ptr => wasm.__wbg_timeofdayreturnprofile_free(ptr, 1));
41870
+ const TowerTopBottomFinalization = (typeof FinalizationRegistry === 'undefined')
41871
+ ? { register: () => {}, unregister: () => {} }
41872
+ : new FinalizationRegistry(ptr => wasm.__wbg_towertopbottom_free(ptr, 1));
41043
41873
  const TpoProfileFinalization = (typeof FinalizationRegistry === 'undefined')
41044
41874
  ? { register: () => {}, unregister: () => {} }
41045
41875
  : new FinalizationRegistry(ptr => wasm.__wbg_tpoprofile_free(ptr, 1));
41046
41876
  const TradeImbalanceFinalization = (typeof FinalizationRegistry === 'undefined')
41047
41877
  ? { register: () => {}, unregister: () => {} }
41048
41878
  : new FinalizationRegistry(ptr => wasm.__wbg_tradeimbalance_free(ptr, 1));
41879
+ const TradeSignAutocorrelationFinalization = (typeof FinalizationRegistry === 'undefined')
41880
+ ? { register: () => {}, unregister: () => {} }
41881
+ : new FinalizationRegistry(ptr => wasm.__wbg_tradesignautocorrelation_free(ptr, 1));
41049
41882
  const TradeVolumeIndexFinalization = (typeof FinalizationRegistry === 'undefined')
41050
41883
  ? { register: () => {}, unregister: () => {} }
41051
41884
  : new FinalizationRegistry(ptr => wasm.__wbg_tradevolumeindex_free(ptr, 1));
@@ -41073,6 +41906,9 @@ const TrinFinalization = (typeof FinalizationRegistry === 'undefined')
41073
41906
  const TripleTopBottomFinalization = (typeof FinalizationRegistry === 'undefined')
41074
41907
  ? { register: () => {}, unregister: () => {} }
41075
41908
  : new FinalizationRegistry(ptr => wasm.__wbg_tripletopbottom_free(ptr, 1));
41909
+ const TristarFinalization = (typeof FinalizationRegistry === 'undefined')
41910
+ ? { register: () => {}, unregister: () => {} }
41911
+ : new FinalizationRegistry(ptr => wasm.__wbg_tristar_free(ptr, 1));
41076
41912
  const TRIXFinalization = (typeof FinalizationRegistry === 'undefined')
41077
41913
  ? { register: () => {}, unregister: () => {} }
41078
41914
  : new FinalizationRegistry(ptr => wasm.__wbg_trix_free(ptr, 1));
Binary file