wickra 0.4.7 → 0.5.1

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=325" 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=351" 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)
@@ -9,7 +9,7 @@
9
9
  [![crates.io](https://img.shields.io/crates/v/wickra.svg?logo=rust&color=orange)](https://crates.io/crates/wickra)
10
10
  [![PyPI](https://img.shields.io/pypi/v/wickra.svg?logo=pypi&color=blue)](https://pypi.org/project/wickra/)
11
11
  [![npm](https://img.shields.io/npm/v/wickra.svg?logo=npm&color=red)](https://www.npmjs.com/package/wickra)
12
- [![License: PolyForm-NC](https://img.shields.io/badge/license-PolyForm--NC--1.0.0-purple)](LICENSE)
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
14
  [![Build provenance](https://img.shields.io/badge/provenance-attested-brightgreen?logo=github)](https://github.com/wickra-lib/wickra/attestations)
15
15
  [![Docs](https://img.shields.io/badge/docs-docs.wickra.org-0ea5e9?logo=readthedocs&logoColor=white)](https://docs.wickra.org)
@@ -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 325 indicators; start at the
50
+ every one of the 351 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
- 325 streaming-first indicators across twenty families. Every one passes the
138
+ 351 streaming-first indicators across twenty-one 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).
@@ -160,8 +160,9 @@ warmup) at [docs.wickra.org](https://docs.wickra.org/Indicators-Overview).
160
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 |
161
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 |
162
162
  | Market Profile | Value Area (POC / VAH / VAL), Volume Profile (histogram), TPO Profile, Initial Balance, Opening Range |
163
- | Market Breadth | Advance/Decline Line |
163
+ | 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
164
  | 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) |
165
+ | 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
166
 
166
167
  Every candlestick pattern emits a signed per-bar value — `+1.0` bullish,
167
168
  `−1.0` bearish, `0.0` none — so the family drops straight into a feature matrix
@@ -240,7 +241,7 @@ A Python live-trading example using the public `websockets` package lives at
240
241
  ```
241
242
  wickra/
242
243
  ├── crates/
243
- │ ├── wickra-core/ core engine + all 325 indicators
244
+ │ ├── wickra-core/ core engine + all 351 indicators
244
245
  │ ├── wickra/ top-level facade crate (publishes on crates.io) + benches/
245
246
  │ └── wickra-data/ CSV reader, tick aggregator, live exchange feeds
246
247
  ├── bindings/
@@ -324,13 +325,20 @@ shape together before you invest the time.
324
325
 
325
326
  ## License
326
327
 
327
- Licensed under the **PolyForm Noncommercial License 1.0.0**. See [LICENSE](LICENSE).
328
+ Licensed under either of
328
329
 
329
- In plain English: use it, fork it, modify it, redistribute it, file issues, send
330
- pull requests — all welcome. Personal projects, research, education, non-profits,
331
- government, hobby trading bots: all fine. The one thing that's not allowed is
332
- commercial sale of the software or of services built around it. If you want to
333
- use Wickra commercially, get in touch about a license.
330
+ - Apache License, Version 2.0 ([LICENSE-APACHE](LICENSE-APACHE) or
331
+ <http://www.apache.org/licenses/LICENSE-2.0>)
332
+ - MIT license ([LICENSE-MIT](LICENSE-MIT) or <http://opensource.org/licenses/MIT>)
333
+
334
+ at your option. Use it, fork it, modify it, redistribute it — commercially or
335
+ not — file issues, send pull requests; all welcome.
336
+
337
+ ### Contribution
338
+
339
+ Unless you explicitly state otherwise, any contribution intentionally submitted
340
+ for inclusion in the work by you, as defined in the Apache-2.0 license, shall be
341
+ dual licensed as above, without any additional terms or conditions.
334
342
 
335
343
  ## Disclaimer
336
344
 
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)
@@ -3253,6 +3266,132 @@ export declare class AdvanceDecline {
3253
3266
  isReady(): boolean
3254
3267
  warmupPeriod(): number
3255
3268
  }
3269
+ export type AdvanceDeclineRatioNode = AdvanceDeclineRatio
3270
+ export declare class AdvanceDeclineRatio {
3271
+ constructor()
3272
+ update(change: Array<number>, volume: Array<number>, newHigh: Array<boolean>, newLow: Array<boolean>): number | null
3273
+ batch(change: Array<Array<number>>, volume: Array<Array<number>>, newHigh: Array<Array<boolean>>, newLow: Array<Array<boolean>>): Array<number>
3274
+ reset(): void
3275
+ isReady(): boolean
3276
+ warmupPeriod(): number
3277
+ }
3278
+ export type AdVolumeLineNode = AdVolumeLine
3279
+ export declare class AdVolumeLine {
3280
+ constructor()
3281
+ update(change: Array<number>, volume: Array<number>, newHigh: Array<boolean>, newLow: Array<boolean>): number | null
3282
+ batch(change: Array<Array<number>>, volume: Array<Array<number>>, newHigh: Array<Array<boolean>>, newLow: Array<Array<boolean>>): Array<number>
3283
+ reset(): void
3284
+ isReady(): boolean
3285
+ warmupPeriod(): number
3286
+ }
3287
+ export type McClellanOscillatorNode = McClellanOscillator
3288
+ export declare class McClellanOscillator {
3289
+ constructor()
3290
+ update(change: Array<number>, volume: Array<number>, newHigh: Array<boolean>, newLow: Array<boolean>): number | null
3291
+ batch(change: Array<Array<number>>, volume: Array<Array<number>>, newHigh: Array<Array<boolean>>, newLow: Array<Array<boolean>>): Array<number>
3292
+ reset(): void
3293
+ isReady(): boolean
3294
+ warmupPeriod(): number
3295
+ }
3296
+ export type McClellanSummationIndexNode = McClellanSummationIndex
3297
+ export declare class McClellanSummationIndex {
3298
+ constructor()
3299
+ update(change: Array<number>, volume: Array<number>, newHigh: Array<boolean>, newLow: Array<boolean>): number | null
3300
+ batch(change: Array<Array<number>>, volume: Array<Array<number>>, newHigh: Array<Array<boolean>>, newLow: Array<Array<boolean>>): Array<number>
3301
+ reset(): void
3302
+ isReady(): boolean
3303
+ warmupPeriod(): number
3304
+ }
3305
+ export type TrinNode = Trin
3306
+ export declare class Trin {
3307
+ constructor()
3308
+ update(change: Array<number>, volume: Array<number>, newHigh: Array<boolean>, newLow: Array<boolean>): number | null
3309
+ batch(change: Array<Array<number>>, volume: Array<Array<number>>, newHigh: Array<Array<boolean>>, newLow: Array<Array<boolean>>): Array<number>
3310
+ reset(): void
3311
+ isReady(): boolean
3312
+ warmupPeriod(): number
3313
+ }
3314
+ export type BreadthThrustNode = BreadthThrust
3315
+ export declare class BreadthThrust {
3316
+ constructor(period: number)
3317
+ update(change: Array<number>, volume: Array<number>, newHigh: Array<boolean>, newLow: Array<boolean>): number | null
3318
+ batch(change: Array<Array<number>>, volume: Array<Array<number>>, newHigh: Array<Array<boolean>>, newLow: Array<Array<boolean>>): Array<number>
3319
+ reset(): void
3320
+ isReady(): boolean
3321
+ warmupPeriod(): number
3322
+ }
3323
+ export type NewHighsNewLowsNode = NewHighsNewLows
3324
+ export declare class NewHighsNewLows {
3325
+ constructor()
3326
+ update(change: Array<number>, volume: Array<number>, newHigh: Array<boolean>, newLow: Array<boolean>): number | null
3327
+ batch(change: Array<Array<number>>, volume: Array<Array<number>>, newHigh: Array<Array<boolean>>, newLow: Array<Array<boolean>>): Array<number>
3328
+ reset(): void
3329
+ isReady(): boolean
3330
+ warmupPeriod(): number
3331
+ }
3332
+ export type HighLowIndexNode = HighLowIndex
3333
+ export declare class HighLowIndex {
3334
+ constructor(period: number)
3335
+ update(change: Array<number>, volume: Array<number>, newHigh: Array<boolean>, newLow: Array<boolean>): number | null
3336
+ batch(change: Array<Array<number>>, volume: Array<Array<number>>, newHigh: Array<Array<boolean>>, newLow: Array<Array<boolean>>): Array<number>
3337
+ reset(): void
3338
+ isReady(): boolean
3339
+ warmupPeriod(): number
3340
+ }
3341
+ export type PercentAboveMaNode = PercentAboveMa
3342
+ export declare class PercentAboveMa {
3343
+ constructor()
3344
+ update(change: Array<number>, volume: Array<number>, newHigh: Array<boolean>, newLow: Array<boolean>, aboveMa: Array<boolean>): number | null
3345
+ batch(change: Array<Array<number>>, volume: Array<Array<number>>, newHigh: Array<Array<boolean>>, newLow: Array<Array<boolean>>, aboveMa: Array<Array<boolean>>): Array<number>
3346
+ reset(): void
3347
+ isReady(): boolean
3348
+ warmupPeriod(): number
3349
+ }
3350
+ export type UpDownVolumeRatioNode = UpDownVolumeRatio
3351
+ export declare class UpDownVolumeRatio {
3352
+ constructor()
3353
+ update(change: Array<number>, volume: Array<number>, newHigh: Array<boolean>, newLow: Array<boolean>): number | null
3354
+ batch(change: Array<Array<number>>, volume: Array<Array<number>>, newHigh: Array<Array<boolean>>, newLow: Array<Array<boolean>>): Array<number>
3355
+ reset(): void
3356
+ isReady(): boolean
3357
+ warmupPeriod(): number
3358
+ }
3359
+ export type BullishPercentIndexNode = BullishPercentIndex
3360
+ export declare class BullishPercentIndex {
3361
+ constructor()
3362
+ update(change: Array<number>, volume: Array<number>, newHigh: Array<boolean>, newLow: Array<boolean>, onBuySignal: Array<boolean>): number | null
3363
+ batch(change: Array<Array<number>>, volume: Array<Array<number>>, newHigh: Array<Array<boolean>>, newLow: Array<Array<boolean>>, onBuySignal: Array<Array<boolean>>): Array<number>
3364
+ reset(): void
3365
+ isReady(): boolean
3366
+ warmupPeriod(): number
3367
+ }
3368
+ export type CumulativeVolumeIndexNode = CumulativeVolumeIndex
3369
+ export declare class CumulativeVolumeIndex {
3370
+ constructor()
3371
+ update(change: Array<number>, volume: Array<number>, newHigh: Array<boolean>, newLow: Array<boolean>): number | null
3372
+ batch(change: Array<Array<number>>, volume: Array<Array<number>>, newHigh: Array<Array<boolean>>, newLow: Array<Array<boolean>>): Array<number>
3373
+ reset(): void
3374
+ isReady(): boolean
3375
+ warmupPeriod(): number
3376
+ }
3377
+ export type AbsoluteBreadthIndexNode = AbsoluteBreadthIndex
3378
+ export declare class AbsoluteBreadthIndex {
3379
+ constructor()
3380
+ update(change: Array<number>, volume: Array<number>, newHigh: Array<boolean>, newLow: Array<boolean>): number | null
3381
+ batch(change: Array<Array<number>>, volume: Array<Array<number>>, newHigh: Array<Array<boolean>>, newLow: Array<Array<boolean>>): Array<number>
3382
+ reset(): void
3383
+ isReady(): boolean
3384
+ warmupPeriod(): number
3385
+ }
3386
+ export type TickIndexNode = TickIndex
3387
+ export declare class TickIndex {
3388
+ constructor()
3389
+ update(change: Array<number>, volume: Array<number>, newHigh: Array<boolean>, newLow: Array<boolean>): number | null
3390
+ batch(change: Array<Array<number>>, volume: Array<Array<number>>, newHigh: Array<Array<boolean>>, newLow: Array<Array<boolean>>): Array<number>
3391
+ reset(): void
3392
+ isReady(): boolean
3393
+ warmupPeriod(): number
3394
+ }
3256
3395
  export type SharpeRatioNode = SharpeRatio
3257
3396
  export declare class SharpeRatio {
3258
3397
  constructor(period: number, riskFree: number)
@@ -3431,3 +3570,121 @@ export declare class Alpha {
3431
3570
  isReady(): boolean
3432
3571
  warmupPeriod(): number
3433
3572
  }
3573
+ export type SessionVwapNode = SessionVwap
3574
+ export declare class SessionVwap {
3575
+ constructor(utcOffsetMinutes: number)
3576
+ update(open: number, high: number, low: number, close: number, volume: number, timestamp: number): number | null
3577
+ batch(open: Array<number>, high: Array<number>, low: Array<number>, close: Array<number>, volume: Array<number>, timestamp: Array<number>): Array<number>
3578
+ reset(): void
3579
+ isReady(): boolean
3580
+ warmupPeriod(): number
3581
+ utcOffsetMinutes(): number
3582
+ }
3583
+ export type OvernightGapNode = OvernightGap
3584
+ export declare class OvernightGap {
3585
+ constructor(utcOffsetMinutes: number)
3586
+ update(open: number, high: number, low: number, close: number, volume: number, timestamp: number): number | null
3587
+ batch(open: Array<number>, high: Array<number>, low: Array<number>, close: Array<number>, volume: Array<number>, timestamp: Array<number>): Array<number>
3588
+ reset(): void
3589
+ isReady(): boolean
3590
+ warmupPeriod(): number
3591
+ utcOffsetMinutes(): number
3592
+ }
3593
+ export type SeasonalZScoreNode = SeasonalZScore
3594
+ export declare class SeasonalZScore {
3595
+ constructor(utcOffsetMinutes: number)
3596
+ update(open: number, high: number, low: number, close: number, volume: number, timestamp: number): number | null
3597
+ batch(open: Array<number>, high: Array<number>, low: Array<number>, close: Array<number>, volume: Array<number>, timestamp: Array<number>): Array<number>
3598
+ reset(): void
3599
+ isReady(): boolean
3600
+ warmupPeriod(): number
3601
+ utcOffsetMinutes(): number
3602
+ }
3603
+ export type TimeOfDayReturnProfileNode = TimeOfDayReturnProfile
3604
+ export declare class TimeOfDayReturnProfile {
3605
+ constructor(buckets: number, utcOffsetMinutes: number)
3606
+ update(open: number, high: number, low: number, close: number, volume: number, timestamp: number): Array<number> | null
3607
+ batch(open: Array<number>, high: Array<number>, low: Array<number>, close: Array<number>, volume: Array<number>, timestamp: Array<number>): Array<number>
3608
+ reset(): void
3609
+ isReady(): boolean
3610
+ warmupPeriod(): number
3611
+ buckets(): number
3612
+ utcOffsetMinutes(): number
3613
+ }
3614
+ export type IntradayVolatilityProfileNode = IntradayVolatilityProfile
3615
+ export declare class IntradayVolatilityProfile {
3616
+ constructor(buckets: number, utcOffsetMinutes: number)
3617
+ update(open: number, high: number, low: number, close: number, volume: number, timestamp: number): Array<number> | null
3618
+ batch(open: Array<number>, high: Array<number>, low: Array<number>, close: Array<number>, volume: Array<number>, timestamp: Array<number>): Array<number>
3619
+ reset(): void
3620
+ isReady(): boolean
3621
+ warmupPeriod(): number
3622
+ buckets(): number
3623
+ utcOffsetMinutes(): number
3624
+ }
3625
+ export type VolumeByTimeProfileNode = VolumeByTimeProfile
3626
+ export declare class VolumeByTimeProfile {
3627
+ constructor(buckets: number, utcOffsetMinutes: number)
3628
+ update(open: number, high: number, low: number, close: number, volume: number, timestamp: number): Array<number> | null
3629
+ batch(open: Array<number>, high: Array<number>, low: Array<number>, close: Array<number>, volume: Array<number>, timestamp: Array<number>): Array<number>
3630
+ reset(): void
3631
+ isReady(): boolean
3632
+ warmupPeriod(): number
3633
+ buckets(): number
3634
+ utcOffsetMinutes(): number
3635
+ }
3636
+ export type DayOfWeekProfileNode = DayOfWeekProfile
3637
+ export declare class DayOfWeekProfile {
3638
+ constructor(utcOffsetMinutes: number)
3639
+ update(open: number, high: number, low: number, close: number, volume: number, timestamp: number): Array<number> | null
3640
+ batch(open: Array<number>, high: Array<number>, low: Array<number>, close: Array<number>, volume: Array<number>, timestamp: Array<number>): Array<number>
3641
+ reset(): void
3642
+ isReady(): boolean
3643
+ warmupPeriod(): number
3644
+ utcOffsetMinutes(): number
3645
+ }
3646
+ export type AverageDailyRangeNode = AverageDailyRange
3647
+ export declare class AverageDailyRange {
3648
+ constructor(period: number, utcOffsetMinutes: number)
3649
+ update(open: number, high: number, low: number, close: number, volume: number, timestamp: number): number | null
3650
+ batch(open: Array<number>, high: Array<number>, low: Array<number>, close: Array<number>, volume: Array<number>, timestamp: Array<number>): Array<number>
3651
+ reset(): void
3652
+ isReady(): boolean
3653
+ warmupPeriod(): number
3654
+ }
3655
+ export type TurnOfMonthNode = TurnOfMonth
3656
+ export declare class TurnOfMonth {
3657
+ constructor(nFirst: number, nLast: number, utcOffsetMinutes: number)
3658
+ update(open: number, high: number, low: number, close: number, volume: number, timestamp: number): number | null
3659
+ batch(open: Array<number>, high: Array<number>, low: Array<number>, close: Array<number>, volume: Array<number>, timestamp: Array<number>): Array<number>
3660
+ reset(): void
3661
+ isReady(): boolean
3662
+ warmupPeriod(): number
3663
+ }
3664
+ export type SessionHighLowNode = SessionHighLow
3665
+ export declare class SessionHighLow {
3666
+ constructor(utcOffsetMinutes: number)
3667
+ update(open: number, high: number, low: number, close: number, volume: number, timestamp: number): SessionHighLowValue | null
3668
+ batch(open: Array<number>, high: Array<number>, low: Array<number>, close: Array<number>, volume: Array<number>, timestamp: Array<number>): Array<number>
3669
+ reset(): void
3670
+ isReady(): boolean
3671
+ warmupPeriod(): number
3672
+ }
3673
+ export type SessionRangeNode = SessionRange
3674
+ export declare class SessionRange {
3675
+ constructor(utcOffsetMinutes: number)
3676
+ update(open: number, high: number, low: number, close: number, volume: number, timestamp: number): SessionRangeValue | null
3677
+ batch(open: Array<number>, high: Array<number>, low: Array<number>, close: Array<number>, volume: Array<number>, timestamp: Array<number>): Array<number>
3678
+ reset(): void
3679
+ isReady(): boolean
3680
+ warmupPeriod(): number
3681
+ }
3682
+ export type OvernightIntradayReturnNode = OvernightIntradayReturn
3683
+ export declare class OvernightIntradayReturn {
3684
+ constructor(utcOffsetMinutes: number)
3685
+ update(open: number, high: number, low: number, close: number, volume: number, timestamp: number): OvernightIntradayReturnValue | null
3686
+ batch(open: Array<number>, high: Array<number>, low: Array<number>, close: Array<number>, volume: Array<number>, timestamp: Array<number>): Array<number>
3687
+ reset(): void
3688
+ isReady(): boolean
3689
+ warmupPeriod(): number
3690
+ }
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, 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, 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
@@ -618,6 +618,20 @@ module.exports.LiquidationFeatures = LiquidationFeatures
618
618
  module.exports.TermStructureBasis = TermStructureBasis
619
619
  module.exports.CalendarSpread = CalendarSpread
620
620
  module.exports.AdvanceDecline = AdvanceDecline
621
+ module.exports.AdvanceDeclineRatio = AdvanceDeclineRatio
622
+ module.exports.AdVolumeLine = AdVolumeLine
623
+ module.exports.McClellanOscillator = McClellanOscillator
624
+ module.exports.McClellanSummationIndex = McClellanSummationIndex
625
+ module.exports.Trin = Trin
626
+ module.exports.BreadthThrust = BreadthThrust
627
+ module.exports.NewHighsNewLows = NewHighsNewLows
628
+ module.exports.HighLowIndex = HighLowIndex
629
+ module.exports.PercentAboveMa = PercentAboveMa
630
+ module.exports.UpDownVolumeRatio = UpDownVolumeRatio
631
+ module.exports.BullishPercentIndex = BullishPercentIndex
632
+ module.exports.CumulativeVolumeIndex = CumulativeVolumeIndex
633
+ module.exports.AbsoluteBreadthIndex = AbsoluteBreadthIndex
634
+ module.exports.TickIndex = TickIndex
621
635
  module.exports.SharpeRatio = SharpeRatio
622
636
  module.exports.SortinoRatio = SortinoRatio
623
637
  module.exports.CalmarRatio = CalmarRatio
@@ -638,3 +652,15 @@ module.exports.RenkoBars = RenkoBars
638
652
  module.exports.KagiBars = KagiBars
639
653
  module.exports.PointAndFigureBars = PointAndFigureBars
640
654
  module.exports.Alpha = Alpha
655
+ module.exports.SessionVwap = SessionVwap
656
+ module.exports.OvernightGap = OvernightGap
657
+ module.exports.SeasonalZScore = SeasonalZScore
658
+ module.exports.TimeOfDayReturnProfile = TimeOfDayReturnProfile
659
+ module.exports.IntradayVolatilityProfile = IntradayVolatilityProfile
660
+ module.exports.VolumeByTimeProfile = VolumeByTimeProfile
661
+ module.exports.DayOfWeekProfile = DayOfWeekProfile
662
+ module.exports.AverageDailyRange = AverageDailyRange
663
+ module.exports.TurnOfMonth = TurnOfMonth
664
+ module.exports.SessionHighLow = SessionHighLow
665
+ module.exports.SessionRange = SessionRange
666
+ module.exports.OvernightIntradayReturn = OvernightIntradayReturn
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "wickra-darwin-arm64",
3
- "version": "0.4.7",
3
+ "version": "0.5.1",
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": [
7
7
  "wickra.darwin-arm64.node"
8
8
  ],
9
- "license": "LicenseRef-Wickra-Noncommercial-1.0.0",
9
+ "license": "MIT OR Apache-2.0",
10
10
  "engines": {
11
11
  "node": ">= 18"
12
12
  },
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "wickra-darwin-x64",
3
- "version": "0.4.7",
3
+ "version": "0.5.1",
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": [
7
7
  "wickra.darwin-x64.node"
8
8
  ],
9
- "license": "LicenseRef-Wickra-Noncommercial-1.0.0",
9
+ "license": "MIT OR Apache-2.0",
10
10
  "engines": {
11
11
  "node": ">= 18"
12
12
  },
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "wickra-linux-arm64-gnu",
3
- "version": "0.4.7",
3
+ "version": "0.5.1",
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": [
7
7
  "wickra.linux-arm64-gnu.node"
8
8
  ],
9
- "license": "LicenseRef-Wickra-Noncommercial-1.0.0",
9
+ "license": "MIT OR Apache-2.0",
10
10
  "engines": {
11
11
  "node": ">= 18"
12
12
  },
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "wickra-linux-x64-gnu",
3
- "version": "0.4.7",
3
+ "version": "0.5.1",
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": [
7
7
  "wickra.linux-x64-gnu.node"
8
8
  ],
9
- "license": "LicenseRef-Wickra-Noncommercial-1.0.0",
9
+ "license": "MIT OR Apache-2.0",
10
10
  "engines": {
11
11
  "node": ">= 18"
12
12
  },
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "wickra-win32-arm64-msvc",
3
- "version": "0.4.7",
3
+ "version": "0.5.1",
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": [
7
7
  "wickra.win32-arm64-msvc.node"
8
8
  ],
9
- "license": "LicenseRef-Wickra-Noncommercial-1.0.0",
9
+ "license": "MIT OR Apache-2.0",
10
10
  "engines": {
11
11
  "node": ">= 18"
12
12
  },
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "wickra-win32-x64-msvc",
3
- "version": "0.4.7",
3
+ "version": "0.5.1",
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": [
7
7
  "wickra.win32-x64-msvc.node"
8
8
  ],
9
- "license": "LicenseRef-Wickra-Noncommercial-1.0.0",
9
+ "license": "MIT OR Apache-2.0",
10
10
  "engines": {
11
11
  "node": ">= 18"
12
12
  },
package/package.json CHANGED
@@ -1,11 +1,11 @@
1
1
  {
2
2
  "name": "wickra",
3
- "version": "0.4.7",
3
+ "version": "0.5.1",
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",
7
7
  "types": "index.d.ts",
8
- "license": "LicenseRef-Wickra-Noncommercial-1.0.0",
8
+ "license": "MIT OR Apache-2.0",
9
9
  "keywords": [
10
10
  "trading",
11
11
  "indicators",
@@ -47,12 +47,12 @@
47
47
  "node": ">= 18"
48
48
  },
49
49
  "optionalDependencies": {
50
- "wickra-linux-x64-gnu": "0.4.7",
51
- "wickra-linux-arm64-gnu": "0.4.7",
52
- "wickra-darwin-x64": "0.4.7",
53
- "wickra-darwin-arm64": "0.4.7",
54
- "wickra-win32-x64-msvc": "0.4.7",
55
- "wickra-win32-arm64-msvc": "0.4.7"
50
+ "wickra-linux-x64-gnu": "0.5.1",
51
+ "wickra-linux-arm64-gnu": "0.5.1",
52
+ "wickra-darwin-x64": "0.5.1",
53
+ "wickra-darwin-arm64": "0.5.1",
54
+ "wickra-win32-x64-msvc": "0.5.1",
55
+ "wickra-win32-arm64-msvc": "0.5.1"
56
56
  },
57
57
  "scripts": {
58
58
  "build": "napi build --platform --release",
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file