wickra 0.4.4 → 0.4.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -1,5 +1,5 @@
1
1
  <p align="center">
2
- <a href="https://wickra.org"><img src="https://raw.githubusercontent.com/wickra-lib/.github/main/profile/wickra-banner.webp?v=289" alt="Wickra — streaming-first technical indicators" width="100%"></a>
2
+ <a href="https://wickra.org"><img src="https://raw.githubusercontent.com/wickra-lib/.github/main/profile/wickra-banner.webp?v=314" alt="Wickra — streaming-first technical indicators" width="100%"></a>
3
3
  </p>
4
4
 
5
5
  [![CI](https://github.com/wickra-lib/wickra/actions/workflows/ci.yml/badge.svg)](https://github.com/wickra-lib/wickra/actions/workflows/ci.yml)
@@ -47,7 +47,7 @@ Full documentation lives at **[docs.wickra.org](https://docs.wickra.org)**:
47
47
  [Node](https://docs.wickra.org/Quickstart-Node),
48
48
  [WASM](https://docs.wickra.org/Quickstart-WASM).
49
49
  - **Indicators** — a per-indicator deep dive (formula, parameters, warmup) for
50
- every one of the 289 indicators; start at the
50
+ every one of the 314 indicators; start at the
51
51
  [indicators overview](https://docs.wickra.org/Indicators-Overview).
52
52
  - **Reference** — [warmup periods](https://docs.wickra.org/Warmup-Periods),
53
53
  [streaming vs batch](https://docs.wickra.org/Streaming-vs-Batch),
@@ -135,7 +135,7 @@ python -m benchmarks.compare_libraries
135
135
 
136
136
  ## Indicators
137
137
 
138
- 289 streaming-first indicators across eighteen families. Every one passes the
138
+ 314 streaming-first indicators across nineteen families. Every one passes the
139
139
  `batch == streaming` equivalence test, reference-value tests, and reset
140
140
  semantics tests. Each has a per-indicator deep dive (formula, parameters,
141
141
  warmup) at [docs.wickra.org](https://docs.wickra.org/Indicators-Overview).
@@ -143,22 +143,23 @@ warmup) at [docs.wickra.org](https://docs.wickra.org/Indicators-Overview).
143
143
  | Family | Indicators |
144
144
  |--------|-----------|
145
145
  | Moving Averages | SMA, EMA, WMA, DEMA, TEMA, HMA, KAMA, SMMA, TRIMA, ZLEMA, T3, VWMA, ALMA, McGinley Dynamic, FRAMA, VIDYA, JMA, Alligator, EVWMA |
146
- | Momentum Oscillators | RSI (Wilder), Stochastic, CCI, ROC, Williams %R, MFI, Awesome Oscillator, MOM, CMO, TSI, PMO, StochRSI, Ultimate Oscillator, RVI, PGO, KST, SMI, Laguerre RSI, Connors RSI, Inertia |
147
- | Trend & Directional | MACD, ADX (+DI/-DI), ADXR, Aroon, TRIX, Aroon Oscillator, Vortex, Random Walk Index, Trend Intensity Index, Wave Trend Oscillator, Mass Index, Choppiness Index, Vertical Horizontal Filter |
146
+ | Momentum Oscillators | RSI (Wilder), Anchored RSI, Stochastic, CCI, ROC, Williams %R, MFI, Awesome Oscillator, MOM, CMO, TSI, PMO, StochRSI, Ultimate Oscillator, RVI, PGO, KST, SMI, Laguerre RSI, Connors RSI, Inertia, ROC Percentage (ROCP), ROC Ratio (ROCR), ROC Ratio 100 (ROCR100) |
147
+ | Trend & Directional | MACD, MACD Fixed (MACDFIX), MACD Extended (MACDEXT), ADX (+DI/-DI), ADXR, Aroon, TRIX, Aroon Oscillator, Vortex, Random Walk Index, Trend Intensity Index, Wave Trend Oscillator, Mass Index, Choppiness Index, Vertical Horizontal Filter, Plus DM, Minus DM, Plus DI, Minus DI, DX |
148
148
  | Price Oscillators | PPO, DPO, Coppock, Accelerator Oscillator, Balance of Power, APO, AO Histogram, CFO, Zero-Lag MACD, Elder Impulse, STC |
149
149
  | Volatility & Bands | ATR, Bollinger Bands, Keltner Channels, Donchian Channels, NATR, StdDev, Ulcer Index, Historical Volatility, Bollinger Bandwidth, %B, True Range, Chaikin Volatility, RVI (Relative Volatility Index), Parkinson Volatility, Garman-Klass Volatility, Rogers-Satchell Volatility, Yang-Zhang Volatility |
150
150
  | Bands & Channels | MA Envelope, Acceleration Bands, STARC Bands, ATR Bands, Hurst Channel, LinReg Channel, Standard Error Bands, Double Bollinger Bands, TTM Squeeze, Fractal Chaos Bands, VWAP StdDev Bands |
151
- | Trailing Stops | Parabolic SAR, SuperTrend, Chandelier Exit, Chande Kroll Stop, ATR Trailing Stop, HiLo Activator, Volty Stop, Yo-Yo Exit, Donchian Channel Stop, Percentage Trailing Stop, Step Trailing Stop, Renko Trailing Stop |
151
+ | Trailing Stops | Parabolic SAR, Parabolic SAR Extended (SAREXT), SuperTrend, Chandelier Exit, Chande Kroll Stop, ATR Trailing Stop, HiLo Activator, Volty Stop, Yo-Yo Exit, Donchian Channel Stop, Percentage Trailing Stop, Step Trailing Stop, Renko Trailing Stop |
152
152
  | Volume | OBV, VWAP (cumulative + rolling), ADL, Volume-Price Trend, Chaikin Money Flow, Chaikin Oscillator, Force Index, Ease of Movement, Klinger Volume Oscillator, Volume Oscillator, NVI, PVI, Williams A/D, Anchored VWAP, Demand Index, TSV, VZO, Market Facilitation Index |
153
- | Price Statistics | Typical Price, Median Price, Weighted Close, Linear Regression, Linear Regression Slope, Z-Score, Linear Regression Angle, Variance, Coefficient of Variation, Skewness, Kurtosis, Standard Error, Detrended StdDev, R², Median Absolute Deviation, Autocorrelation, Hurst Exponent, Pearson Correlation, Beta, Pairwise Beta, Pair Spread Z-Score, Lead-Lag Cross-Correlation, Cointegration, Relative Strength A-vs-B, Spearman Correlation |
154
- | Ehlers / Cycle (DSP) | MAMA, FAMA, Fisher Transform, Inverse Fisher Transform, SuperSmoother, Hilbert Dominant Cycle, Sine Wave, Decycler, Decycler Oscillator, Roofing Filter, Center of Gravity, Cybernetic Cycle, Adaptive Cycle, Empirical Mode Decomposition, Ehlers Stochastic, Instantaneous Trendline |
153
+ | Price Statistics | Typical Price, Median Price, Weighted Close, Linear Regression, Linear Regression Slope, Z-Score, Linear Regression Angle, Variance, Coefficient of Variation, Skewness, Kurtosis, Standard Error, Detrended StdDev, R², Median Absolute Deviation, Autocorrelation, Hurst Exponent, Pearson Correlation, Beta, Pairwise Beta, Pair Spread Z-Score, Lead-Lag Cross-Correlation, Cointegration, Relative Strength A-vs-B, Spearman Correlation, Mid Price, Mid Point, Average Price, Linear Regression Intercept, Time Series Forecast |
154
+ | Ehlers / Cycle (DSP) | MAMA, FAMA, Fisher Transform, Inverse Fisher Transform, SuperSmoother, Hilbert Dominant Cycle, Hilbert Phasor, Hilbert DC Phase, Hilbert Trend Mode, Sine Wave, Decycler, Decycler Oscillator, Roofing Filter, Center of Gravity, Cybernetic Cycle, Adaptive Cycle, Empirical Mode Decomposition, Ehlers Stochastic, Instantaneous Trendline |
155
155
  | Pivots & S/R | Classic Pivots, Fibonacci Pivots, Camarilla, Woodie Pivots, DeMark Pivots, Williams Fractals, ZigZag |
156
156
  | DeMark | TD Setup, TD Sequential, TD DeMarker, TD REI, TD Pressure, TD Combo, TD Countdown, TD Lines, TD Range Projection, TD Differential, TD Open, TD Risk Level |
157
157
  | Ichimoku & Charts | Ichimoku Kinko Hyo (Tenkan, Kijun, Senkou A/B, Chikou), Heikin-Ashi |
158
+ | Alt-Chart Bars | Renko (box-size bricks), Kagi (reversal-amount lines), Point & Figure (X/O columns) |
158
159
  | Candlestick Patterns | Doji, Hammer, Inverted Hammer, Hanging Man, Shooting Star, Engulfing, Harami, Morning/Evening Star, Three White Soldiers/Black Crows, Piercing Line/Dark Cloud Cover, Marubozu, Tweezer, Spinning Top, Three Inside Up/Down, Three Outside Up/Down, Two Crows, Upside Gap Two Crows, Identical Three Crows, Three Line Strike, Three Stars in the South, Abandoned Baby, Advance Block, Belt-hold, Breakaway, Counterattack, Doji Star, Dragonfly Doji, Gravestone Doji, Long-Legged Doji, Rickshaw Man, Evening Doji Star, Morning Doji Star, Gap Side-by-Side White, High-Wave, Hikkake, Modified Hikkake, Homing Pigeon, On-Neck, In-Neck, Thrusting, Separating Lines, Kicking, Kicking by Length, Ladder Bottom, Mat Hold, Matching Low, Long Line, Short Line, Rising Three Methods, Falling Three Methods, Upside Gap Three Methods, Downside Gap Three Methods, Stalled Pattern, Stick Sandwich, Takuri, Closing Marubozu, Opening Marubozu, Tasuki Gap, Unique Three River, Concealing Baby Swallow |
159
160
  | Microstructure | Order-Book Imbalance (Top-1 / Top-N / Full), Microprice, Quoted Spread, Depth Slope, Signed Volume, Cumulative Volume Delta, Trade Imbalance, Effective Spread, Realized Spread, Kyle's Lambda, Footprint |
160
161
  | Derivatives | Funding Rate, Funding Rate Mean, Funding Rate Z-Score, Funding Basis, Open-Interest Delta, OI / Price Divergence, OI-Weighted Price, Long/Short Ratio, Taker Buy/Sell Ratio, Liquidation Features, Term-Structure Basis, Calendar Spread |
161
- | Market Profile | Value Area (POC / VAH / VAL), Initial Balance, Opening Range |
162
+ | Market Profile | Value Area (POC / VAH / VAL), Volume Profile (histogram), TPO Profile, Initial Balance, Opening Range |
162
163
  | Risk / Performance | Sharpe Ratio, Sortino Ratio, Calmar Ratio, Omega Ratio, Max Drawdown, Average Drawdown, Drawdown Duration, Pain Index, Value at Risk, Conditional Value at Risk (CVaR), Profit Factor, Gain/Loss Ratio, Recovery Factor, Kelly Criterion, Treynor Ratio, Information Ratio, Alpha (Jensen) |
163
164
 
164
165
  Every candlestick pattern emits a signed per-bar value — `+1.0` bullish,
@@ -238,7 +239,7 @@ A Python live-trading example using the public `websockets` package lives at
238
239
  ```
239
240
  wickra/
240
241
  ├── crates/
241
- │ ├── wickra-core/ core engine + all 289 indicators
242
+ │ ├── wickra-core/ core engine + all 314 indicators
242
243
  │ ├── wickra/ top-level facade crate (publishes on crates.io) + benches/
243
244
  │ └── wickra-data/ CSV reader, tick aggregator, live exchange feeds
244
245
  ├── bindings/
package/index.d.ts CHANGED
@@ -45,6 +45,10 @@ export interface BollingerValue {
45
45
  lower: number
46
46
  stddev: number
47
47
  }
48
+ export interface HtPhasorValue {
49
+ inphase: number
50
+ quadrature: number
51
+ }
48
52
  export interface StochValue {
49
53
  k: number
50
54
  d: number
@@ -270,6 +274,16 @@ export interface ValueAreaValue {
270
274
  vah: number
271
275
  val: number
272
276
  }
277
+ export interface VolumeProfileValue {
278
+ priceLow: number
279
+ priceHigh: number
280
+ bins: Array<number>
281
+ }
282
+ export interface TpoProfileValue {
283
+ priceLow: number
284
+ priceHigh: number
285
+ counts: Array<number>
286
+ }
273
287
  export interface InitialBalanceValue {
274
288
  high: number
275
289
  low: number
@@ -300,6 +314,21 @@ export interface LiquidationFeaturesValue {
300
314
  total: number
301
315
  imbalance: number
302
316
  }
317
+ export interface RenkoBrickValue {
318
+ open: number
319
+ close: number
320
+ direction: number
321
+ }
322
+ export interface KagiSegmentValue {
323
+ start: number
324
+ end: number
325
+ direction: number
326
+ }
327
+ export interface PnfColumnValue {
328
+ direction: number
329
+ high: number
330
+ low: number
331
+ }
303
332
  export type SmaNode = SMA
304
333
  export declare class SMA {
305
334
  constructor(period: number)
@@ -633,6 +662,60 @@ export declare class MedianAbsoluteDeviation {
633
662
  isReady(): boolean
634
663
  warmupPeriod(): number
635
664
  }
665
+ export type MidPointNode = MIDPOINT
666
+ export declare class MIDPOINT {
667
+ constructor(period: number)
668
+ update(value: number): number | null
669
+ batch(prices: Array<number>): Array<number>
670
+ reset(): void
671
+ isReady(): boolean
672
+ warmupPeriod(): number
673
+ }
674
+ export type RocpNode = ROCP
675
+ export declare class ROCP {
676
+ constructor(period: number)
677
+ update(value: number): number | null
678
+ batch(prices: Array<number>): Array<number>
679
+ reset(): void
680
+ isReady(): boolean
681
+ warmupPeriod(): number
682
+ }
683
+ export type RocrNode = ROCR
684
+ export declare class ROCR {
685
+ constructor(period: number)
686
+ update(value: number): number | null
687
+ batch(prices: Array<number>): Array<number>
688
+ reset(): void
689
+ isReady(): boolean
690
+ warmupPeriod(): number
691
+ }
692
+ export type Rocr100Node = ROCR100
693
+ export declare class ROCR100 {
694
+ constructor(period: number)
695
+ update(value: number): number | null
696
+ batch(prices: Array<number>): Array<number>
697
+ reset(): void
698
+ isReady(): boolean
699
+ warmupPeriod(): number
700
+ }
701
+ export type LinRegInterceptNode = LINEARREG_INTERCEPT
702
+ export declare class LINEARREG_INTERCEPT {
703
+ constructor(period: number)
704
+ update(value: number): number | null
705
+ batch(prices: Array<number>): Array<number>
706
+ reset(): void
707
+ isReady(): boolean
708
+ warmupPeriod(): number
709
+ }
710
+ export type TsfNode = TSF
711
+ export declare class TSF {
712
+ constructor(period: number)
713
+ update(value: number): number | null
714
+ batch(prices: Array<number>): Array<number>
715
+ reset(): void
716
+ isReady(): boolean
717
+ warmupPeriod(): number
718
+ }
636
719
  export type AutocorrelationNode = Autocorrelation
637
720
  export declare class Autocorrelation {
638
721
  constructor(period: number, lag: number)
@@ -776,6 +859,36 @@ export declare class MACD {
776
859
  isReady(): boolean
777
860
  warmupPeriod(): number
778
861
  }
862
+ export type MacdFixNode = MACDFIX
863
+ export declare class MACDFIX {
864
+ constructor(signal: number)
865
+ update(value: number): MacdValue | null
866
+ /**
867
+ * Batch over a price array. Returns a flat array of length `3 * n`,
868
+ * interleaved per row as `[macd0, signal0, histogram0, macd1, ...]`.
869
+ */
870
+ batch(prices: Array<number>): Array<number>
871
+ reset(): void
872
+ isReady(): boolean
873
+ warmupPeriod(): number
874
+ }
875
+ export type MacdExtNode = MACDEXT
876
+ export declare class MACDEXT {
877
+ /**
878
+ * Moving-average types are TA-Lib `MA_Type` codes `0..=5`
879
+ * (SMA, EMA, WMA, DEMA, TEMA, TRIMA).
880
+ */
881
+ constructor(fast: number, fastMatype: number, slow: number, slowMatype: number, signal: number, signalMatype: number)
882
+ update(value: number): MacdValue | null
883
+ /**
884
+ * Batch over a price array. Returns a flat array of length `3 * n`,
885
+ * interleaved per row as `[macd0, signal0, histogram0, macd1, ...]`.
886
+ */
887
+ batch(prices: Array<number>): Array<number>
888
+ reset(): void
889
+ isReady(): boolean
890
+ warmupPeriod(): number
891
+ }
779
892
  export type BollingerNode = BollingerBands
780
893
  export declare class BollingerBands {
781
894
  constructor(period: number, multiplier: number)
@@ -799,6 +912,91 @@ export declare class ATR {
799
912
  isReady(): boolean
800
913
  warmupPeriod(): number
801
914
  }
915
+ export type PlusDmNode = PLUS_DM
916
+ export declare class PLUS_DM {
917
+ constructor(period: number)
918
+ update(high: number, low: number, close: number): number | null
919
+ batch(high: Array<number>, low: Array<number>, close: Array<number>): Array<number>
920
+ reset(): void
921
+ isReady(): boolean
922
+ warmupPeriod(): number
923
+ }
924
+ export type MinusDmNode = MINUS_DM
925
+ export declare class MINUS_DM {
926
+ constructor(period: number)
927
+ update(high: number, low: number, close: number): number | null
928
+ batch(high: Array<number>, low: Array<number>, close: Array<number>): Array<number>
929
+ reset(): void
930
+ isReady(): boolean
931
+ warmupPeriod(): number
932
+ }
933
+ export type PlusDiNode = PLUS_DI
934
+ export declare class PLUS_DI {
935
+ constructor(period: number)
936
+ update(high: number, low: number, close: number): number | null
937
+ batch(high: Array<number>, low: Array<number>, close: Array<number>): Array<number>
938
+ reset(): void
939
+ isReady(): boolean
940
+ warmupPeriod(): number
941
+ }
942
+ export type MinusDiNode = MINUS_DI
943
+ export declare class MINUS_DI {
944
+ constructor(period: number)
945
+ update(high: number, low: number, close: number): number | null
946
+ batch(high: Array<number>, low: Array<number>, close: Array<number>): Array<number>
947
+ reset(): void
948
+ isReady(): boolean
949
+ warmupPeriod(): number
950
+ }
951
+ export type DxNode = DX
952
+ export declare class DX {
953
+ constructor(period: number)
954
+ update(high: number, low: number, close: number): number | null
955
+ batch(high: Array<number>, low: Array<number>, close: Array<number>): Array<number>
956
+ reset(): void
957
+ isReady(): boolean
958
+ warmupPeriod(): number
959
+ }
960
+ export type MidPriceNode = MIDPRICE
961
+ export declare class MIDPRICE {
962
+ constructor(period: number)
963
+ update(high: number, low: number, close: number): number | null
964
+ batch(high: Array<number>, low: Array<number>, close: Array<number>): Array<number>
965
+ reset(): void
966
+ isReady(): boolean
967
+ warmupPeriod(): number
968
+ }
969
+ export type AvgPriceNode = AVGPRICE
970
+ export declare class AVGPRICE {
971
+ constructor()
972
+ update(open: number, high: number, low: number, close: number): number | null
973
+ batch(open: Array<number>, high: Array<number>, low: Array<number>, close: Array<number>): Array<number>
974
+ reset(): void
975
+ isReady(): boolean
976
+ warmupPeriod(): number
977
+ }
978
+ export type SarExtNode = SAREXT
979
+ export declare class SAREXT {
980
+ constructor(startValue: number, offsetOnReverse: number, accelInitLong: number, accelLong: number, accelMaxLong: number, accelInitShort: number, accelShort: number, accelMaxShort: number)
981
+ update(high: number, low: number, close: number): number | null
982
+ batch(high: Array<number>, low: Array<number>, close: Array<number>): Array<number>
983
+ reset(): void
984
+ isReady(): boolean
985
+ warmupPeriod(): number
986
+ }
987
+ export type HtPhasorNode = HT_PHASOR
988
+ export declare class HT_PHASOR {
989
+ constructor()
990
+ update(value: number): HtPhasorValue | null
991
+ /**
992
+ * Batch over a price array. Returns a flat array of length `2 * n`,
993
+ * interleaved per row as `[inphase0, quadrature0, inphase1, ...]`.
994
+ */
995
+ batch(prices: Array<number>): Array<number>
996
+ reset(): void
997
+ isReady(): boolean
998
+ warmupPeriod(): number
999
+ }
802
1000
  export type StochNode = Stochastic
803
1001
  export declare class Stochastic {
804
1002
  constructor(kPeriod: number, dPeriod: number)
@@ -1224,6 +1422,16 @@ export declare class WilliamsAD {
1224
1422
  isReady(): boolean
1225
1423
  warmupPeriod(): number
1226
1424
  }
1425
+ export type AnchoredRsiNode = AnchoredRSI
1426
+ export declare class AnchoredRSI {
1427
+ constructor()
1428
+ setAnchor(): void
1429
+ update(value: number): number | null
1430
+ batch(prices: Array<number>): Array<number>
1431
+ reset(): void
1432
+ isReady(): boolean
1433
+ warmupPeriod(): number
1434
+ }
1227
1435
  export type AnchoredVwapNode = AnchoredVWAP
1228
1436
  export declare class AnchoredVWAP {
1229
1437
  constructor()
@@ -1975,6 +2183,24 @@ export declare class EmpiricalModeDecomposition {
1975
2183
  isReady(): boolean
1976
2184
  warmupPeriod(): number
1977
2185
  }
2186
+ export type HtDcPhaseNode = HT_DCPHASE
2187
+ export declare class HT_DCPHASE {
2188
+ constructor()
2189
+ update(value: number): number | null
2190
+ batch(prices: Array<number>): Array<number>
2191
+ reset(): void
2192
+ isReady(): boolean
2193
+ warmupPeriod(): number
2194
+ }
2195
+ export type HtTrendModeNode = HT_TRENDMODE
2196
+ export declare class HT_TRENDMODE {
2197
+ constructor()
2198
+ update(value: number): number | null
2199
+ batch(prices: Array<number>): Array<number>
2200
+ reset(): void
2201
+ isReady(): boolean
2202
+ warmupPeriod(): number
2203
+ }
1978
2204
  export type HilbertDominantCycleNode = HilbertDominantCycle
1979
2205
  export declare class HilbertDominantCycle {
1980
2206
  constructor()
@@ -2054,6 +2280,24 @@ export declare class ValueArea {
2054
2280
  update(high: number, low: number, volume: number): ValueAreaValue | null
2055
2281
  batch(high: Array<number>, low: Array<number>, volume: Array<number>): Array<number>
2056
2282
  }
2283
+ export type VolumeProfileNode = VolumeProfile
2284
+ export declare class VolumeProfile {
2285
+ constructor(period: number, binCount: number)
2286
+ reset(): void
2287
+ isReady(): boolean
2288
+ warmupPeriod(): number
2289
+ update(high: number, low: number, volume: number): VolumeProfileValue | null
2290
+ batch(high: Array<number>, low: Array<number>, volume: Array<number>): Array<number>
2291
+ }
2292
+ export type TpoProfileNode = TpoProfile
2293
+ export declare class TpoProfile {
2294
+ constructor(period: number, binCount: number)
2295
+ reset(): void
2296
+ isReady(): boolean
2297
+ warmupPeriod(): number
2298
+ update(high: number, low: number): TpoProfileValue | null
2299
+ batch(high: Array<number>, low: Array<number>): Array<number>
2300
+ }
2057
2301
  export type InitialBalanceNode = InitialBalance
2058
2302
  export declare class InitialBalance {
2059
2303
  constructor(period: number)
@@ -2984,6 +3228,31 @@ export declare class InformationRatio {
2984
3228
  isReady(): boolean
2985
3229
  warmupPeriod(): number
2986
3230
  }
3231
+ export type RenkoBarsNode = RenkoBars
3232
+ export declare class RenkoBars {
3233
+ constructor(boxSize: number)
3234
+ update(close: number): Array<RenkoBrickValue>
3235
+ batch(close: Array<number>): Array<RenkoBrickValue>
3236
+ boxSize(): number
3237
+ reset(): void
3238
+ }
3239
+ export type KagiBarsNode = KagiBars
3240
+ export declare class KagiBars {
3241
+ constructor(reversal: number)
3242
+ update(close: number): Array<KagiSegmentValue>
3243
+ batch(close: Array<number>): Array<KagiSegmentValue>
3244
+ reversal(): number
3245
+ reset(): void
3246
+ }
3247
+ export type PointAndFigureBarsNode = PointAndFigureBars
3248
+ export declare class PointAndFigureBars {
3249
+ constructor(boxSize: number, reversal: number)
3250
+ update(close: number): Array<PnfColumnValue>
3251
+ batch(close: Array<number>): Array<PnfColumnValue>
3252
+ boxSize(): number
3253
+ reversal(): number
3254
+ reset(): void
3255
+ }
2987
3256
  export type AlphaNode = Alpha
2988
3257
  export declare class Alpha {
2989
3258
  constructor(period: number, riskFree: number)
package/index.js CHANGED
@@ -310,7 +310,7 @@ if (!nativeBinding) {
310
310
  throw new Error(`Failed to load native binding`)
311
311
  }
312
312
 
313
- const { version, SMA, EMA, WMA, RSI, DEMA, TEMA, HMA, ROC, TRIX, SMMA, TRIMA, ZLEMA, MOM, CMO, DPO, StdDev, UlcerIndex, VerticalHorizontalFilter, ZScore, McGinleyDynamic, FRAMA, SuperSmoother, FisherTransform, Decycler, CenterOfGravity, CyberneticCycle, InstantaneousTrendline, EhlersStochastic, RVIVolatility, Variance, CoefficientOfVariation, Skewness, Kurtosis, StandardError, DetrendedStdDev, RSquared, MedianAbsoluteDeviation, Autocorrelation, HurstExponent, PearsonCorrelation, Beta, PairwiseBeta, SpearmanCorrelation, PairSpreadZScore, LeadLagCrossCorrelation, Cointegration, RelativeStrengthAB, MACD, BollingerBands, ATR, Stochastic, OBV, ADX, ADXR, CCI, WilliamsR, MFI, PSAR, Keltner, Donchian, VWAP, RollingVWAP, AwesomeOscillator, Aroon, Inertia, ConnorsRSI, LaguerreRSI, SMI, KST, PGO, RVI, AwesomeOscillatorHistogram, STC, ElderImpulse, ZeroLagMACD, CFO, APO, KAMA, EVWMA, Alligator, JMA, VIDYA, ALMA, T3, TSI, PMO, TII, ADL, VolumePriceTrend, ChaikinMoneyFlow, ChaikinOscillator, ForceIndex, NVI, PVI, VolumeOscillator, KVO, WilliamsAD, AnchoredVWAP, DemandIndex, TSV, VZO, MarketFacilitationIndex, EaseOfMovement, SuperTrend, ChandelierExit, ChandeKrollStop, AtrTrailingStop, HiLoActivator, VoltyStop, YoyoExit, DonchianStop, PercentageTrailingStop, StepTrailingStop, RenkoTrailingStop, TypicalPrice, MedianPrice, WeightedClose, LinearRegression, LinRegSlope, AcceleratorOscillator, BalanceOfPower, ChoppinessIndex, TrueRange, ChaikinVolatility, YangZhangVolatility, RogersSatchellVolatility, GarmanKlassVolatility, ParkinsonVolatility, LinRegAngle, BollingerBandwidth, PercentB, NATR, HistoricalVolatility, AroonOscillator, WaveTrend, RWI, Vortex, MassIndex, StochRSI, UltimateOscillator, PPO, Coppock, VWMA, MaEnvelope, AccelerationBands, StarcBands, AtrBands, HurstChannel, LinRegChannel, StandardErrorBands, DoubleBollinger, TtmSqueeze, FractalChaosBands, VwapStdDevBands, ClassicPivots, FibonacciPivots, Camarilla, WoodiePivots, DemarkPivots, WilliamsFractals, ZigZag, TDSetup, TDSequential, TDDeMarker, TDREI, TDPressure, TDCombo, TDCountdown, TDLines, TDRangeProjection, TDDifferential, TDOpen, TDRiskLevel, InverseFisherTransform, DecyclerOscillator, RoofingFilter, EmpiricalModeDecomposition, HilbertDominantCycle, AdaptiveCycle, SineWave, MAMA, FAMA, Ichimoku, HeikinAshi, ValueArea, InitialBalance, OpeningRange, Doji, Hammer, InvertedHammer, HangingMan, ShootingStar, Engulfing, Harami, MorningEveningStar, ThreeSoldiersOrCrows, PiercingDarkCloud, Marubozu, Tweezer, SpinningTop, ThreeInside, ThreeOutside, TwoCrows, UpsideGapTwoCrows, IdenticalThreeCrows, ThreeLineStrike, ThreeStarsInSouth, AbandonedBaby, AdvanceBlock, BeltHold, Breakaway, Counterattack, DojiStar, DragonflyDoji, GravestoneDoji, LongLeggedDoji, RickshawMan, EveningDojiStar, MorningDojiStar, GapSideBySideWhite, HighWave, Hikkake, HikkakeModified, HomingPigeon, OnNeck, InNeck, Thrusting, SeparatingLines, Kicking, KickingByLength, LadderBottom, MatHold, MatchingLow, LongLine, ShortLine, RisingThreeMethods, FallingThreeMethods, UpsideGapThreeMethods, DownsideGapThreeMethods, StalledPattern, StickSandwich, Takuri, ClosingMarubozu, OpeningMarubozu, TasukiGap, UniqueThreeRiver, ConcealingBabySwallow, OrderBookImbalanceTop1, OrderBookImbalanceFull, Microprice, QuotedSpread, DepthSlope, OrderBookImbalanceTopN, SignedVolume, CumulativeVolumeDelta, TradeImbalance, EffectiveSpread, RealizedSpread, KylesLambda, Footprint, FundingRate, FundingRateMean, FundingRateZScore, FundingBasis, OpenInterestDelta, OIPriceDivergence, OIWeighted, LongShortRatio, TakerBuySellRatio, LiquidationFeatures, TermStructureBasis, CalendarSpread, SharpeRatio, SortinoRatio, CalmarRatio, OmegaRatio, MaxDrawdown, AverageDrawdown, DrawdownDuration, PainIndex, ValueAtRisk, ConditionalValueAtRisk, ProfitFactor, GainLossRatio, RecoveryFactor, KellyCriterion, TreynorRatio, InformationRatio, Alpha } = nativeBinding
313
+ const { version, SMA, EMA, WMA, RSI, DEMA, TEMA, HMA, ROC, TRIX, SMMA, TRIMA, ZLEMA, MOM, CMO, DPO, StdDev, UlcerIndex, VerticalHorizontalFilter, ZScore, McGinleyDynamic, FRAMA, SuperSmoother, FisherTransform, Decycler, CenterOfGravity, CyberneticCycle, InstantaneousTrendline, EhlersStochastic, RVIVolatility, Variance, CoefficientOfVariation, Skewness, Kurtosis, StandardError, DetrendedStdDev, RSquared, MedianAbsoluteDeviation, MIDPOINT, ROCP, ROCR, ROCR100, LINEARREG_INTERCEPT, TSF, Autocorrelation, HurstExponent, PearsonCorrelation, Beta, PairwiseBeta, SpearmanCorrelation, PairSpreadZScore, LeadLagCrossCorrelation, Cointegration, RelativeStrengthAB, MACD, MACDFIX, MACDEXT, BollingerBands, ATR, PLUS_DM, MINUS_DM, PLUS_DI, MINUS_DI, DX, MIDPRICE, AVGPRICE, SAREXT, HT_PHASOR, Stochastic, OBV, ADX, ADXR, CCI, WilliamsR, MFI, PSAR, Keltner, Donchian, VWAP, RollingVWAP, AwesomeOscillator, Aroon, Inertia, ConnorsRSI, LaguerreRSI, SMI, KST, PGO, RVI, AwesomeOscillatorHistogram, STC, ElderImpulse, ZeroLagMACD, CFO, APO, KAMA, EVWMA, Alligator, JMA, VIDYA, ALMA, T3, TSI, PMO, TII, ADL, VolumePriceTrend, ChaikinMoneyFlow, ChaikinOscillator, ForceIndex, NVI, PVI, VolumeOscillator, KVO, WilliamsAD, AnchoredRSI, AnchoredVWAP, DemandIndex, TSV, VZO, MarketFacilitationIndex, EaseOfMovement, SuperTrend, ChandelierExit, ChandeKrollStop, AtrTrailingStop, HiLoActivator, VoltyStop, YoyoExit, DonchianStop, PercentageTrailingStop, StepTrailingStop, RenkoTrailingStop, TypicalPrice, MedianPrice, WeightedClose, LinearRegression, LinRegSlope, AcceleratorOscillator, BalanceOfPower, ChoppinessIndex, TrueRange, ChaikinVolatility, YangZhangVolatility, RogersSatchellVolatility, GarmanKlassVolatility, ParkinsonVolatility, LinRegAngle, BollingerBandwidth, PercentB, NATR, HistoricalVolatility, AroonOscillator, WaveTrend, RWI, Vortex, MassIndex, StochRSI, UltimateOscillator, PPO, Coppock, VWMA, MaEnvelope, AccelerationBands, StarcBands, AtrBands, HurstChannel, LinRegChannel, StandardErrorBands, DoubleBollinger, TtmSqueeze, FractalChaosBands, VwapStdDevBands, ClassicPivots, FibonacciPivots, Camarilla, WoodiePivots, DemarkPivots, WilliamsFractals, ZigZag, TDSetup, TDSequential, TDDeMarker, TDREI, TDPressure, TDCombo, TDCountdown, TDLines, TDRangeProjection, TDDifferential, TDOpen, TDRiskLevel, InverseFisherTransform, DecyclerOscillator, RoofingFilter, EmpiricalModeDecomposition, HT_DCPHASE, HT_TRENDMODE, HilbertDominantCycle, AdaptiveCycle, SineWave, MAMA, FAMA, Ichimoku, HeikinAshi, ValueArea, VolumeProfile, TpoProfile, InitialBalance, OpeningRange, Doji, Hammer, InvertedHammer, HangingMan, ShootingStar, Engulfing, Harami, MorningEveningStar, ThreeSoldiersOrCrows, PiercingDarkCloud, Marubozu, Tweezer, SpinningTop, ThreeInside, ThreeOutside, TwoCrows, UpsideGapTwoCrows, IdenticalThreeCrows, ThreeLineStrike, ThreeStarsInSouth, AbandonedBaby, AdvanceBlock, BeltHold, Breakaway, Counterattack, DojiStar, DragonflyDoji, GravestoneDoji, LongLeggedDoji, RickshawMan, EveningDojiStar, MorningDojiStar, GapSideBySideWhite, HighWave, Hikkake, HikkakeModified, HomingPigeon, OnNeck, InNeck, Thrusting, SeparatingLines, Kicking, KickingByLength, LadderBottom, MatHold, MatchingLow, LongLine, ShortLine, RisingThreeMethods, FallingThreeMethods, UpsideGapThreeMethods, DownsideGapThreeMethods, StalledPattern, StickSandwich, Takuri, ClosingMarubozu, OpeningMarubozu, TasukiGap, UniqueThreeRiver, ConcealingBabySwallow, OrderBookImbalanceTop1, OrderBookImbalanceFull, Microprice, QuotedSpread, DepthSlope, OrderBookImbalanceTopN, SignedVolume, CumulativeVolumeDelta, TradeImbalance, EffectiveSpread, RealizedSpread, KylesLambda, Footprint, FundingRate, FundingRateMean, FundingRateZScore, FundingBasis, OpenInterestDelta, OIPriceDivergence, OIWeighted, LongShortRatio, TakerBuySellRatio, LiquidationFeatures, TermStructureBasis, CalendarSpread, SharpeRatio, SortinoRatio, CalmarRatio, OmegaRatio, MaxDrawdown, AverageDrawdown, DrawdownDuration, PainIndex, ValueAtRisk, ConditionalValueAtRisk, ProfitFactor, GainLossRatio, RecoveryFactor, KellyCriterion, TreynorRatio, InformationRatio, RenkoBars, KagiBars, PointAndFigureBars, Alpha } = nativeBinding
314
314
 
315
315
  module.exports.version = version
316
316
  module.exports.SMA = SMA
@@ -350,6 +350,12 @@ module.exports.StandardError = StandardError
350
350
  module.exports.DetrendedStdDev = DetrendedStdDev
351
351
  module.exports.RSquared = RSquared
352
352
  module.exports.MedianAbsoluteDeviation = MedianAbsoluteDeviation
353
+ module.exports.MIDPOINT = MIDPOINT
354
+ module.exports.ROCP = ROCP
355
+ module.exports.ROCR = ROCR
356
+ module.exports.ROCR100 = ROCR100
357
+ module.exports.LINEARREG_INTERCEPT = LINEARREG_INTERCEPT
358
+ module.exports.TSF = TSF
353
359
  module.exports.Autocorrelation = Autocorrelation
354
360
  module.exports.HurstExponent = HurstExponent
355
361
  module.exports.PearsonCorrelation = PearsonCorrelation
@@ -361,8 +367,19 @@ module.exports.LeadLagCrossCorrelation = LeadLagCrossCorrelation
361
367
  module.exports.Cointegration = Cointegration
362
368
  module.exports.RelativeStrengthAB = RelativeStrengthAB
363
369
  module.exports.MACD = MACD
370
+ module.exports.MACDFIX = MACDFIX
371
+ module.exports.MACDEXT = MACDEXT
364
372
  module.exports.BollingerBands = BollingerBands
365
373
  module.exports.ATR = ATR
374
+ module.exports.PLUS_DM = PLUS_DM
375
+ module.exports.MINUS_DM = MINUS_DM
376
+ module.exports.PLUS_DI = PLUS_DI
377
+ module.exports.MINUS_DI = MINUS_DI
378
+ module.exports.DX = DX
379
+ module.exports.MIDPRICE = MIDPRICE
380
+ module.exports.AVGPRICE = AVGPRICE
381
+ module.exports.SAREXT = SAREXT
382
+ module.exports.HT_PHASOR = HT_PHASOR
366
383
  module.exports.Stochastic = Stochastic
367
384
  module.exports.OBV = OBV
368
385
  module.exports.ADX = ADX
@@ -410,6 +427,7 @@ module.exports.PVI = PVI
410
427
  module.exports.VolumeOscillator = VolumeOscillator
411
428
  module.exports.KVO = KVO
412
429
  module.exports.WilliamsAD = WilliamsAD
430
+ module.exports.AnchoredRSI = AnchoredRSI
413
431
  module.exports.AnchoredVWAP = AnchoredVWAP
414
432
  module.exports.DemandIndex = DemandIndex
415
433
  module.exports.TSV = TSV
@@ -490,6 +508,8 @@ module.exports.InverseFisherTransform = InverseFisherTransform
490
508
  module.exports.DecyclerOscillator = DecyclerOscillator
491
509
  module.exports.RoofingFilter = RoofingFilter
492
510
  module.exports.EmpiricalModeDecomposition = EmpiricalModeDecomposition
511
+ module.exports.HT_DCPHASE = HT_DCPHASE
512
+ module.exports.HT_TRENDMODE = HT_TRENDMODE
493
513
  module.exports.HilbertDominantCycle = HilbertDominantCycle
494
514
  module.exports.AdaptiveCycle = AdaptiveCycle
495
515
  module.exports.SineWave = SineWave
@@ -498,6 +518,8 @@ module.exports.FAMA = FAMA
498
518
  module.exports.Ichimoku = Ichimoku
499
519
  module.exports.HeikinAshi = HeikinAshi
500
520
  module.exports.ValueArea = ValueArea
521
+ module.exports.VolumeProfile = VolumeProfile
522
+ module.exports.TpoProfile = TpoProfile
501
523
  module.exports.InitialBalance = InitialBalance
502
524
  module.exports.OpeningRange = OpeningRange
503
525
  module.exports.Doji = Doji
@@ -601,4 +623,7 @@ module.exports.RecoveryFactor = RecoveryFactor
601
623
  module.exports.KellyCriterion = KellyCriterion
602
624
  module.exports.TreynorRatio = TreynorRatio
603
625
  module.exports.InformationRatio = InformationRatio
626
+ module.exports.RenkoBars = RenkoBars
627
+ module.exports.KagiBars = KagiBars
628
+ module.exports.PointAndFigureBars = PointAndFigureBars
604
629
  module.exports.Alpha = Alpha
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "wickra-darwin-arm64",
3
- "version": "0.4.4",
3
+ "version": "0.4.6",
4
4
  "description": "Native binding for wickra (macOS Apple Silicon). Installed automatically as an optional dependency of wickra on matching platforms.",
5
5
  "main": "wickra.darwin-arm64.node",
6
6
  "files": [
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "wickra-darwin-x64",
3
- "version": "0.4.4",
3
+ "version": "0.4.6",
4
4
  "description": "Native binding for wickra (macOS Intel). Installed automatically as an optional dependency of wickra on matching platforms.",
5
5
  "main": "wickra.darwin-x64.node",
6
6
  "files": [
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "wickra-linux-arm64-gnu",
3
- "version": "0.4.4",
3
+ "version": "0.4.6",
4
4
  "description": "Native binding for wickra (linux arm64 GNU). Installed automatically as an optional dependency of wickra on matching platforms.",
5
5
  "main": "wickra.linux-arm64-gnu.node",
6
6
  "files": [
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "wickra-linux-x64-gnu",
3
- "version": "0.4.4",
3
+ "version": "0.4.6",
4
4
  "description": "Native binding for wickra (linux x64 GNU). Installed automatically as an optional dependency of wickra on matching platforms.",
5
5
  "main": "wickra.linux-x64-gnu.node",
6
6
  "files": [
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "wickra-win32-arm64-msvc",
3
- "version": "0.4.4",
3
+ "version": "0.4.6",
4
4
  "description": "Native binding for wickra (Windows arm64 MSVC). Installed automatically as an optional dependency of wickra on matching platforms.",
5
5
  "main": "wickra.win32-arm64-msvc.node",
6
6
  "files": [
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "wickra-win32-x64-msvc",
3
- "version": "0.4.4",
3
+ "version": "0.4.6",
4
4
  "description": "Native binding for wickra (Windows x64 MSVC). Installed automatically as an optional dependency of wickra on matching platforms.",
5
5
  "main": "wickra.win32-x64-msvc.node",
6
6
  "files": [
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "wickra",
3
- "version": "0.4.4",
3
+ "version": "0.4.6",
4
4
  "description": "Streaming-first technical indicators: incremental, fast, install-free. Node bindings powered by Rust.",
5
5
  "author": "kingchenc <support@wickra.org>",
6
6
  "main": "index.js",
@@ -47,12 +47,12 @@
47
47
  "node": ">= 18"
48
48
  },
49
49
  "optionalDependencies": {
50
- "wickra-linux-x64-gnu": "0.4.4",
51
- "wickra-linux-arm64-gnu": "0.4.4",
52
- "wickra-darwin-x64": "0.4.4",
53
- "wickra-darwin-arm64": "0.4.4",
54
- "wickra-win32-x64-msvc": "0.4.4",
55
- "wickra-win32-arm64-msvc": "0.4.4"
50
+ "wickra-linux-x64-gnu": "0.4.6",
51
+ "wickra-linux-arm64-gnu": "0.4.6",
52
+ "wickra-darwin-x64": "0.4.6",
53
+ "wickra-darwin-arm64": "0.4.6",
54
+ "wickra-win32-x64-msvc": "0.4.6",
55
+ "wickra-win32-arm64-msvc": "0.4.6"
56
56
  },
57
57
  "scripts": {
58
58
  "build": "napi build --platform --release",
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file