wickra 0.5.0 → 0.5.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -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=339" 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=367" 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)
@@ -11,6 +11,7 @@
11
11
  [![npm](https://img.shields.io/npm/v/wickra.svg?logo=npm&color=red)](https://www.npmjs.com/package/wickra)
12
12
  [![License: MIT OR Apache-2.0](https://img.shields.io/badge/license-MIT_OR_Apache--2.0-blue)](#license)
13
13
  [![OpenSSF Scorecard](https://api.securityscorecards.dev/projects/github.com/wickra-lib/wickra/badge)](https://scorecard.dev/viewer/?uri=github.com/wickra-lib/wickra)
14
+ [![OpenSSF Best Practices](https://www.bestpractices.dev/projects/13094/badge)](https://www.bestpractices.dev/projects/13094)
14
15
  [![Build provenance](https://img.shields.io/badge/provenance-attested-brightgreen?logo=github)](https://github.com/wickra-lib/wickra/attestations)
15
16
  [![Docs](https://img.shields.io/badge/docs-docs.wickra.org-0ea5e9?logo=readthedocs&logoColor=white)](https://docs.wickra.org)
16
17
 
@@ -47,7 +48,7 @@ Full documentation lives at **[docs.wickra.org](https://docs.wickra.org)**:
47
48
  [Node](https://docs.wickra.org/Quickstart-Node),
48
49
  [WASM](https://docs.wickra.org/Quickstart-WASM).
49
50
  - **Indicators** — a per-indicator deep dive (formula, parameters, warmup) for
50
- every one of the 339 indicators; start at the
51
+ every one of the 367 indicators; start at the
51
52
  [indicators overview](https://docs.wickra.org/Indicators-Overview).
52
53
  - **Reference** — [warmup periods](https://docs.wickra.org/Warmup-Periods),
53
54
  [streaming vs batch](https://docs.wickra.org/Streaming-vs-Batch),
@@ -135,7 +136,7 @@ python -m benchmarks.compare_libraries
135
136
 
136
137
  ## Indicators
137
138
 
138
- 339 streaming-first indicators across twenty families. Every one passes the
139
+ 367 streaming-first indicators across twenty-three families. Every one passes the
139
140
  `batch == streaming` equivalence test, reference-value tests, and reset
140
141
  semantics tests. Each has a per-indicator deep dive (formula, parameters,
141
142
  warmup) at [docs.wickra.org](https://docs.wickra.org/Indicators-Overview).
@@ -157,11 +158,14 @@ warmup) at [docs.wickra.org](https://docs.wickra.org/Indicators-Overview).
157
158
  | Ichimoku & Charts | Ichimoku Kinko Hyo (Tenkan, Kijun, Senkou A/B, Chikou), Heikin-Ashi |
158
159
  | Alt-Chart Bars | Renko (box-size bricks), Kagi (reversal-amount lines), Point & Figure (X/O columns) |
159
160
  | 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 |
161
+ | 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 |
162
+ | Harmonic Patterns | AB=CD, Gartley, Butterfly, Bat, Crab, Shark, Cypher, Three Drives |
160
163
  | 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 |
161
164
  | 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 |
162
165
  | Market Profile | Value Area (POC / VAH / VAL), Volume Profile (histogram), TPO Profile, Initial Balance, Opening Range |
163
166
  | 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 |
164
167
  | 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) |
168
+ | Seasonality & Session | Session VWAP, Session High/Low, Session Range, Average Daily Range, Overnight Gap, Overnight/Intraday Return, Turn-of-Month, Seasonal Z-Score, Time-of-Day Return Profile, Day-of-Week Profile, Intraday Volatility Profile, Volume-by-Time Profile |
165
169
 
166
170
  Every candlestick pattern emits a signed per-bar value — `+1.0` bullish,
167
171
  `−1.0` bearish, `0.0` none — so the family drops straight into a feature matrix
@@ -240,7 +244,7 @@ A Python live-trading example using the public `websockets` package lives at
240
244
  ```
241
245
  wickra/
242
246
  ├── crates/
243
- │ ├── wickra-core/ core engine + all 339 indicators
247
+ │ ├── wickra-core/ core engine + all 367 indicators
244
248
  │ ├── wickra/ top-level facade crate (publishes on crates.io) + benches/
245
249
  │ └── wickra-data/ CSV reader, tick aggregator, live exchange feeds
246
250
  ├── bindings/
package/index.d.ts CHANGED
@@ -349,6 +349,19 @@ export interface PnfColumnValue {
349
349
  high: number
350
350
  low: number
351
351
  }
352
+ export interface SessionHighLowValue {
353
+ high: number
354
+ low: number
355
+ }
356
+ export interface SessionRangeValue {
357
+ asia: number
358
+ eu: number
359
+ us: number
360
+ }
361
+ export interface OvernightIntradayReturnValue {
362
+ overnight: number
363
+ intraday: number
364
+ }
352
365
  export type SmaNode = SMA
353
366
  export declare class SMA {
354
367
  constructor(period: number)
@@ -3019,6 +3032,150 @@ export declare class ConcealingBabySwallow {
3019
3032
  isReady(): boolean
3020
3033
  warmupPeriod(): number
3021
3034
  }
3035
+ export type DoubleTopBottomNode = DoubleTopBottom
3036
+ export declare class DoubleTopBottom {
3037
+ constructor()
3038
+ update(open: number, high: number, low: number, close: number): number | null
3039
+ batch(open: Array<number>, high: Array<number>, low: Array<number>, close: Array<number>): Array<number>
3040
+ reset(): void
3041
+ isReady(): boolean
3042
+ warmupPeriod(): number
3043
+ }
3044
+ export type TripleTopBottomNode = TripleTopBottom
3045
+ export declare class TripleTopBottom {
3046
+ constructor()
3047
+ update(open: number, high: number, low: number, close: number): number | null
3048
+ batch(open: Array<number>, high: Array<number>, low: Array<number>, close: Array<number>): Array<number>
3049
+ reset(): void
3050
+ isReady(): boolean
3051
+ warmupPeriod(): number
3052
+ }
3053
+ export type HeadAndShouldersNode = HeadAndShoulders
3054
+ export declare class HeadAndShoulders {
3055
+ constructor()
3056
+ update(open: number, high: number, low: number, close: number): number | null
3057
+ batch(open: Array<number>, high: Array<number>, low: Array<number>, close: Array<number>): Array<number>
3058
+ reset(): void
3059
+ isReady(): boolean
3060
+ warmupPeriod(): number
3061
+ }
3062
+ export type TriangleNode = Triangle
3063
+ export declare class Triangle {
3064
+ constructor()
3065
+ update(open: number, high: number, low: number, close: number): number | null
3066
+ batch(open: Array<number>, high: Array<number>, low: Array<number>, close: Array<number>): Array<number>
3067
+ reset(): void
3068
+ isReady(): boolean
3069
+ warmupPeriod(): number
3070
+ }
3071
+ export type WedgeNode = Wedge
3072
+ export declare class Wedge {
3073
+ constructor()
3074
+ update(open: number, high: number, low: number, close: number): number | null
3075
+ batch(open: Array<number>, high: Array<number>, low: Array<number>, close: Array<number>): Array<number>
3076
+ reset(): void
3077
+ isReady(): boolean
3078
+ warmupPeriod(): number
3079
+ }
3080
+ export type FlagPennantNode = FlagPennant
3081
+ export declare class FlagPennant {
3082
+ constructor()
3083
+ update(open: number, high: number, low: number, close: number): number | null
3084
+ batch(open: Array<number>, high: Array<number>, low: Array<number>, close: Array<number>): Array<number>
3085
+ reset(): void
3086
+ isReady(): boolean
3087
+ warmupPeriod(): number
3088
+ }
3089
+ export type RectangleRangeNode = RectangleRange
3090
+ export declare class RectangleRange {
3091
+ constructor()
3092
+ update(open: number, high: number, low: number, close: number): number | null
3093
+ batch(open: Array<number>, high: Array<number>, low: Array<number>, close: Array<number>): Array<number>
3094
+ reset(): void
3095
+ isReady(): boolean
3096
+ warmupPeriod(): number
3097
+ }
3098
+ export type CupAndHandleNode = CupAndHandle
3099
+ export declare class CupAndHandle {
3100
+ constructor()
3101
+ update(open: number, high: number, low: number, close: number): number | null
3102
+ batch(open: Array<number>, high: Array<number>, low: Array<number>, close: Array<number>): Array<number>
3103
+ reset(): void
3104
+ isReady(): boolean
3105
+ warmupPeriod(): number
3106
+ }
3107
+ export type AbcdNode = Abcd
3108
+ export declare class Abcd {
3109
+ constructor()
3110
+ update(open: number, high: number, low: number, close: number): number | null
3111
+ batch(open: Array<number>, high: Array<number>, low: Array<number>, close: Array<number>): Array<number>
3112
+ reset(): void
3113
+ isReady(): boolean
3114
+ warmupPeriod(): number
3115
+ }
3116
+ export type GartleyNode = Gartley
3117
+ export declare class Gartley {
3118
+ constructor()
3119
+ update(open: number, high: number, low: number, close: number): number | null
3120
+ batch(open: Array<number>, high: Array<number>, low: Array<number>, close: Array<number>): Array<number>
3121
+ reset(): void
3122
+ isReady(): boolean
3123
+ warmupPeriod(): number
3124
+ }
3125
+ export type ButterflyNode = Butterfly
3126
+ export declare class Butterfly {
3127
+ constructor()
3128
+ update(open: number, high: number, low: number, close: number): number | null
3129
+ batch(open: Array<number>, high: Array<number>, low: Array<number>, close: Array<number>): Array<number>
3130
+ reset(): void
3131
+ isReady(): boolean
3132
+ warmupPeriod(): number
3133
+ }
3134
+ export type BatNode = Bat
3135
+ export declare class Bat {
3136
+ constructor()
3137
+ update(open: number, high: number, low: number, close: number): number | null
3138
+ batch(open: Array<number>, high: Array<number>, low: Array<number>, close: Array<number>): Array<number>
3139
+ reset(): void
3140
+ isReady(): boolean
3141
+ warmupPeriod(): number
3142
+ }
3143
+ export type CrabNode = Crab
3144
+ export declare class Crab {
3145
+ constructor()
3146
+ update(open: number, high: number, low: number, close: number): number | null
3147
+ batch(open: Array<number>, high: Array<number>, low: Array<number>, close: Array<number>): Array<number>
3148
+ reset(): void
3149
+ isReady(): boolean
3150
+ warmupPeriod(): number
3151
+ }
3152
+ export type SharkNode = Shark
3153
+ export declare class Shark {
3154
+ constructor()
3155
+ update(open: number, high: number, low: number, close: number): number | null
3156
+ batch(open: Array<number>, high: Array<number>, low: Array<number>, close: Array<number>): Array<number>
3157
+ reset(): void
3158
+ isReady(): boolean
3159
+ warmupPeriod(): number
3160
+ }
3161
+ export type CypherNode = Cypher
3162
+ export declare class Cypher {
3163
+ constructor()
3164
+ update(open: number, high: number, low: number, close: number): number | null
3165
+ batch(open: Array<number>, high: Array<number>, low: Array<number>, close: Array<number>): Array<number>
3166
+ reset(): void
3167
+ isReady(): boolean
3168
+ warmupPeriod(): number
3169
+ }
3170
+ export type ThreeDrivesNode = ThreeDrives
3171
+ export declare class ThreeDrives {
3172
+ constructor()
3173
+ update(open: number, high: number, low: number, close: number): number | null
3174
+ batch(open: Array<number>, high: Array<number>, low: Array<number>, close: Array<number>): Array<number>
3175
+ reset(): void
3176
+ isReady(): boolean
3177
+ warmupPeriod(): number
3178
+ }
3022
3179
  export type OrderBookImbalanceTop1Node = OrderBookImbalanceTop1
3023
3180
  export declare class OrderBookImbalanceTop1 {
3024
3181
  constructor()
@@ -3557,3 +3714,121 @@ export declare class Alpha {
3557
3714
  isReady(): boolean
3558
3715
  warmupPeriod(): number
3559
3716
  }
3717
+ export type SessionVwapNode = SessionVwap
3718
+ export declare class SessionVwap {
3719
+ constructor(utcOffsetMinutes: number)
3720
+ update(open: number, high: number, low: number, close: number, volume: number, timestamp: number): number | null
3721
+ batch(open: Array<number>, high: Array<number>, low: Array<number>, close: Array<number>, volume: Array<number>, timestamp: Array<number>): Array<number>
3722
+ reset(): void
3723
+ isReady(): boolean
3724
+ warmupPeriod(): number
3725
+ utcOffsetMinutes(): number
3726
+ }
3727
+ export type OvernightGapNode = OvernightGap
3728
+ export declare class OvernightGap {
3729
+ constructor(utcOffsetMinutes: number)
3730
+ update(open: number, high: number, low: number, close: number, volume: number, timestamp: number): number | null
3731
+ batch(open: Array<number>, high: Array<number>, low: Array<number>, close: Array<number>, volume: Array<number>, timestamp: Array<number>): Array<number>
3732
+ reset(): void
3733
+ isReady(): boolean
3734
+ warmupPeriod(): number
3735
+ utcOffsetMinutes(): number
3736
+ }
3737
+ export type SeasonalZScoreNode = SeasonalZScore
3738
+ export declare class SeasonalZScore {
3739
+ constructor(utcOffsetMinutes: number)
3740
+ update(open: number, high: number, low: number, close: number, volume: number, timestamp: number): number | null
3741
+ batch(open: Array<number>, high: Array<number>, low: Array<number>, close: Array<number>, volume: Array<number>, timestamp: Array<number>): Array<number>
3742
+ reset(): void
3743
+ isReady(): boolean
3744
+ warmupPeriod(): number
3745
+ utcOffsetMinutes(): number
3746
+ }
3747
+ export type TimeOfDayReturnProfileNode = TimeOfDayReturnProfile
3748
+ export declare class TimeOfDayReturnProfile {
3749
+ constructor(buckets: number, utcOffsetMinutes: number)
3750
+ update(open: number, high: number, low: number, close: number, volume: number, timestamp: number): Array<number> | null
3751
+ batch(open: Array<number>, high: Array<number>, low: Array<number>, close: Array<number>, volume: Array<number>, timestamp: Array<number>): Array<number>
3752
+ reset(): void
3753
+ isReady(): boolean
3754
+ warmupPeriod(): number
3755
+ buckets(): number
3756
+ utcOffsetMinutes(): number
3757
+ }
3758
+ export type IntradayVolatilityProfileNode = IntradayVolatilityProfile
3759
+ export declare class IntradayVolatilityProfile {
3760
+ constructor(buckets: number, utcOffsetMinutes: number)
3761
+ update(open: number, high: number, low: number, close: number, volume: number, timestamp: number): Array<number> | null
3762
+ batch(open: Array<number>, high: Array<number>, low: Array<number>, close: Array<number>, volume: Array<number>, timestamp: Array<number>): Array<number>
3763
+ reset(): void
3764
+ isReady(): boolean
3765
+ warmupPeriod(): number
3766
+ buckets(): number
3767
+ utcOffsetMinutes(): number
3768
+ }
3769
+ export type VolumeByTimeProfileNode = VolumeByTimeProfile
3770
+ export declare class VolumeByTimeProfile {
3771
+ constructor(buckets: number, utcOffsetMinutes: number)
3772
+ update(open: number, high: number, low: number, close: number, volume: number, timestamp: number): Array<number> | null
3773
+ batch(open: Array<number>, high: Array<number>, low: Array<number>, close: Array<number>, volume: Array<number>, timestamp: Array<number>): Array<number>
3774
+ reset(): void
3775
+ isReady(): boolean
3776
+ warmupPeriod(): number
3777
+ buckets(): number
3778
+ utcOffsetMinutes(): number
3779
+ }
3780
+ export type DayOfWeekProfileNode = DayOfWeekProfile
3781
+ export declare class DayOfWeekProfile {
3782
+ constructor(utcOffsetMinutes: number)
3783
+ update(open: number, high: number, low: number, close: number, volume: number, timestamp: number): Array<number> | null
3784
+ batch(open: Array<number>, high: Array<number>, low: Array<number>, close: Array<number>, volume: Array<number>, timestamp: Array<number>): Array<number>
3785
+ reset(): void
3786
+ isReady(): boolean
3787
+ warmupPeriod(): number
3788
+ utcOffsetMinutes(): number
3789
+ }
3790
+ export type AverageDailyRangeNode = AverageDailyRange
3791
+ export declare class AverageDailyRange {
3792
+ constructor(period: number, utcOffsetMinutes: number)
3793
+ update(open: number, high: number, low: number, close: number, volume: number, timestamp: number): number | null
3794
+ batch(open: Array<number>, high: Array<number>, low: Array<number>, close: Array<number>, volume: Array<number>, timestamp: Array<number>): Array<number>
3795
+ reset(): void
3796
+ isReady(): boolean
3797
+ warmupPeriod(): number
3798
+ }
3799
+ export type TurnOfMonthNode = TurnOfMonth
3800
+ export declare class TurnOfMonth {
3801
+ constructor(nFirst: number, nLast: number, utcOffsetMinutes: number)
3802
+ update(open: number, high: number, low: number, close: number, volume: number, timestamp: number): number | null
3803
+ batch(open: Array<number>, high: Array<number>, low: Array<number>, close: Array<number>, volume: Array<number>, timestamp: Array<number>): Array<number>
3804
+ reset(): void
3805
+ isReady(): boolean
3806
+ warmupPeriod(): number
3807
+ }
3808
+ export type SessionHighLowNode = SessionHighLow
3809
+ export declare class SessionHighLow {
3810
+ constructor(utcOffsetMinutes: number)
3811
+ update(open: number, high: number, low: number, close: number, volume: number, timestamp: number): SessionHighLowValue | null
3812
+ batch(open: Array<number>, high: Array<number>, low: Array<number>, close: Array<number>, volume: Array<number>, timestamp: Array<number>): Array<number>
3813
+ reset(): void
3814
+ isReady(): boolean
3815
+ warmupPeriod(): number
3816
+ }
3817
+ export type SessionRangeNode = SessionRange
3818
+ export declare class SessionRange {
3819
+ constructor(utcOffsetMinutes: number)
3820
+ update(open: number, high: number, low: number, close: number, volume: number, timestamp: number): SessionRangeValue | null
3821
+ batch(open: Array<number>, high: Array<number>, low: Array<number>, close: Array<number>, volume: Array<number>, timestamp: Array<number>): Array<number>
3822
+ reset(): void
3823
+ isReady(): boolean
3824
+ warmupPeriod(): number
3825
+ }
3826
+ export type OvernightIntradayReturnNode = OvernightIntradayReturn
3827
+ export declare class OvernightIntradayReturn {
3828
+ constructor(utcOffsetMinutes: number)
3829
+ update(open: number, high: number, low: number, close: number, volume: number, timestamp: number): OvernightIntradayReturnValue | null
3830
+ batch(open: Array<number>, high: Array<number>, low: Array<number>, close: Array<number>, volume: Array<number>, timestamp: Array<number>): Array<number>
3831
+ reset(): void
3832
+ isReady(): boolean
3833
+ warmupPeriod(): number
3834
+ }
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, MIDPOINT, ROCP, ROCR, ROCR100, LINEARREG_INTERCEPT, TSF, Autocorrelation, HurstExponent, PearsonCorrelation, Beta, PairwiseBeta, SpearmanCorrelation, RollingCorrelation, RollingCovariance, OuHalfLife, SpreadHurst, DistanceSsd, BetaNeutralSpread, PairSpreadZScore, LeadLagCrossCorrelation, Cointegration, RelativeStrengthAB, VarianceRatio, GrangerCausality, KalmanHedgeRatio, SpreadBollingerBands, 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, AdvanceDecline, AdvanceDeclineRatio, AdVolumeLine, McClellanOscillator, McClellanSummationIndex, Trin, BreadthThrust, NewHighsNewLows, HighLowIndex, PercentAboveMa, UpDownVolumeRatio, BullishPercentIndex, CumulativeVolumeIndex, AbsoluteBreadthIndex, TickIndex, SharpeRatio, SortinoRatio, CalmarRatio, OmegaRatio, MaxDrawdown, AverageDrawdown, DrawdownDuration, PainIndex, ValueAtRisk, ConditionalValueAtRisk, ProfitFactor, GainLossRatio, RecoveryFactor, KellyCriterion, TreynorRatio, InformationRatio, RenkoBars, KagiBars, PointAndFigureBars, 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, RollingCorrelation, RollingCovariance, OuHalfLife, SpreadHurst, DistanceSsd, BetaNeutralSpread, PairSpreadZScore, LeadLagCrossCorrelation, Cointegration, RelativeStrengthAB, VarianceRatio, GrangerCausality, KalmanHedgeRatio, SpreadBollingerBands, 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, DoubleTopBottom, TripleTopBottom, HeadAndShoulders, Triangle, Wedge, FlagPennant, RectangleRange, CupAndHandle, Abcd, Gartley, Butterfly, Bat, Crab, Shark, Cypher, ThreeDrives, 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, AdvanceDecline, AdvanceDeclineRatio, AdVolumeLine, McClellanOscillator, McClellanSummationIndex, Trin, BreadthThrust, NewHighsNewLows, HighLowIndex, PercentAboveMa, UpDownVolumeRatio, BullishPercentIndex, CumulativeVolumeIndex, AbsoluteBreadthIndex, TickIndex, SharpeRatio, SortinoRatio, CalmarRatio, OmegaRatio, MaxDrawdown, AverageDrawdown, DrawdownDuration, PainIndex, ValueAtRisk, ConditionalValueAtRisk, ProfitFactor, GainLossRatio, RecoveryFactor, KellyCriterion, TreynorRatio, InformationRatio, RenkoBars, KagiBars, PointAndFigureBars, Alpha, SessionVwap, OvernightGap, SeasonalZScore, TimeOfDayReturnProfile, IntradayVolatilityProfile, VolumeByTimeProfile, DayOfWeekProfile, AverageDailyRange, TurnOfMonth, SessionHighLow, SessionRange, OvernightIntradayReturn } = nativeBinding
314
314
 
315
315
  module.exports.version = version
316
316
  module.exports.SMA = SMA
@@ -592,6 +592,22 @@ module.exports.OpeningMarubozu = OpeningMarubozu
592
592
  module.exports.TasukiGap = TasukiGap
593
593
  module.exports.UniqueThreeRiver = UniqueThreeRiver
594
594
  module.exports.ConcealingBabySwallow = ConcealingBabySwallow
595
+ module.exports.DoubleTopBottom = DoubleTopBottom
596
+ module.exports.TripleTopBottom = TripleTopBottom
597
+ module.exports.HeadAndShoulders = HeadAndShoulders
598
+ module.exports.Triangle = Triangle
599
+ module.exports.Wedge = Wedge
600
+ module.exports.FlagPennant = FlagPennant
601
+ module.exports.RectangleRange = RectangleRange
602
+ module.exports.CupAndHandle = CupAndHandle
603
+ module.exports.Abcd = Abcd
604
+ module.exports.Gartley = Gartley
605
+ module.exports.Butterfly = Butterfly
606
+ module.exports.Bat = Bat
607
+ module.exports.Crab = Crab
608
+ module.exports.Shark = Shark
609
+ module.exports.Cypher = Cypher
610
+ module.exports.ThreeDrives = ThreeDrives
595
611
  module.exports.OrderBookImbalanceTop1 = OrderBookImbalanceTop1
596
612
  module.exports.OrderBookImbalanceFull = OrderBookImbalanceFull
597
613
  module.exports.Microprice = Microprice
@@ -652,3 +668,15 @@ module.exports.RenkoBars = RenkoBars
652
668
  module.exports.KagiBars = KagiBars
653
669
  module.exports.PointAndFigureBars = PointAndFigureBars
654
670
  module.exports.Alpha = Alpha
671
+ module.exports.SessionVwap = SessionVwap
672
+ module.exports.OvernightGap = OvernightGap
673
+ module.exports.SeasonalZScore = SeasonalZScore
674
+ module.exports.TimeOfDayReturnProfile = TimeOfDayReturnProfile
675
+ module.exports.IntradayVolatilityProfile = IntradayVolatilityProfile
676
+ module.exports.VolumeByTimeProfile = VolumeByTimeProfile
677
+ module.exports.DayOfWeekProfile = DayOfWeekProfile
678
+ module.exports.AverageDailyRange = AverageDailyRange
679
+ module.exports.TurnOfMonth = TurnOfMonth
680
+ module.exports.SessionHighLow = SessionHighLow
681
+ module.exports.SessionRange = SessionRange
682
+ module.exports.OvernightIntradayReturn = OvernightIntradayReturn
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "wickra-darwin-arm64",
3
- "version": "0.5.0",
3
+ "version": "0.5.2",
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.5.0",
3
+ "version": "0.5.2",
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.5.0",
3
+ "version": "0.5.2",
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.5.0",
3
+ "version": "0.5.2",
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.5.0",
3
+ "version": "0.5.2",
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.5.0",
3
+ "version": "0.5.2",
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.5.0",
3
+ "version": "0.5.2",
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.5.0",
51
- "wickra-linux-arm64-gnu": "0.5.0",
52
- "wickra-darwin-x64": "0.5.0",
53
- "wickra-darwin-arm64": "0.5.0",
54
- "wickra-win32-x64-msvc": "0.5.0",
55
- "wickra-win32-arm64-msvc": "0.5.0"
50
+ "wickra-linux-x64-gnu": "0.5.2",
51
+ "wickra-linux-arm64-gnu": "0.5.2",
52
+ "wickra-darwin-x64": "0.5.2",
53
+ "wickra-darwin-arm64": "0.5.2",
54
+ "wickra-win32-x64-msvc": "0.5.2",
55
+ "wickra-win32-arm64-msvc": "0.5.2"
56
56
  },
57
57
  "scripts": {
58
58
  "build": "napi build --platform --release",
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file