wickra 0.4.2 → 0.4.4
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 +7 -6
- package/index.d.ts +572 -0
- package/index.js +63 -1
- package/npm/darwin-arm64/package.json +1 -1
- package/npm/darwin-arm64/wickra.darwin-arm64.node +0 -0
- package/npm/darwin-x64/package.json +1 -1
- package/npm/darwin-x64/wickra.darwin-x64.node +0 -0
- package/npm/linux-arm64-gnu/package.json +1 -1
- package/npm/linux-arm64-gnu/wickra.linux-arm64-gnu.node +0 -0
- package/npm/linux-x64-gnu/package.json +1 -1
- package/npm/linux-x64-gnu/wickra.linux-x64-gnu.node +0 -0
- package/npm/win32-arm64-msvc/package.json +1 -1
- package/npm/win32-arm64-msvc/wickra.win32-arm64-msvc.node +0 -0
- package/npm/win32-x64-msvc/package.json +1 -1
- package/npm/win32-x64-msvc/wickra.win32-x64-msvc.node +0 -0
- package/package.json +7 -7
- package/wickra.darwin-arm64.node +0 -0
- package/wickra.darwin-x64.node +0 -0
- package/wickra.linux-arm64-gnu.node +0 -0
- package/wickra.linux-x64-gnu.node +0 -0
- package/wickra.win32-arm64-msvc.node +0 -0
- package/wickra.win32-x64-msvc.node +0 -0
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=
|
|
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>
|
|
3
3
|
</p>
|
|
4
4
|
|
|
5
5
|
[](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
|
|
50
|
+
every one of the 289 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
|
-
|
|
138
|
+
289 streaming-first indicators across eighteen 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).
|
|
@@ -155,8 +155,9 @@ warmup) at [docs.wickra.org](https://docs.wickra.org/Indicators-Overview).
|
|
|
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
|
-
| 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 |
|
|
159
|
-
| Microstructure | Order-Book Imbalance (Top-1 / Top-N / Full), Microprice, Quoted Spread, Signed Volume, Cumulative Volume Delta, Trade Imbalance |
|
|
158
|
+
| 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
|
+
| 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
|
+
| 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 |
|
|
160
161
|
| Market Profile | Value Area (POC / VAH / VAL), Initial Balance, Opening Range |
|
|
161
162
|
| 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) |
|
|
162
163
|
|
|
@@ -237,7 +238,7 @@ A Python live-trading example using the public `websockets` package lives at
|
|
|
237
238
|
```
|
|
238
239
|
wickra/
|
|
239
240
|
├── crates/
|
|
240
|
-
│ ├── wickra-core/ core engine + all
|
|
241
|
+
│ ├── wickra-core/ core engine + all 289 indicators
|
|
241
242
|
│ ├── wickra/ top-level facade crate (publishes on crates.io) + benches/
|
|
242
243
|
│ └── wickra-data/ CSV reader, tick aggregator, live exchange feeds
|
|
243
244
|
├── bindings/
|
package/index.d.ts
CHANGED
|
@@ -286,6 +286,20 @@ export interface ObSnapshot {
|
|
|
286
286
|
askPx: Array<number>
|
|
287
287
|
askSz: Array<number>
|
|
288
288
|
}
|
|
289
|
+
/** One price bucket of a footprint. */
|
|
290
|
+
export interface FootprintLevelValue {
|
|
291
|
+
price: number
|
|
292
|
+
bidVol: number
|
|
293
|
+
askVol: number
|
|
294
|
+
}
|
|
295
|
+
/** The liquidation feature vector for one tick. */
|
|
296
|
+
export interface LiquidationFeaturesValue {
|
|
297
|
+
long: number
|
|
298
|
+
short: number
|
|
299
|
+
net: number
|
|
300
|
+
total: number
|
|
301
|
+
imbalance: number
|
|
302
|
+
}
|
|
289
303
|
export type SmaNode = SMA
|
|
290
304
|
export declare class SMA {
|
|
291
305
|
constructor(period: number)
|
|
@@ -2196,6 +2210,411 @@ export declare class ThreeOutside {
|
|
|
2196
2210
|
isReady(): boolean
|
|
2197
2211
|
warmupPeriod(): number
|
|
2198
2212
|
}
|
|
2213
|
+
export type TwoCrowsNode = TwoCrows
|
|
2214
|
+
export declare class TwoCrows {
|
|
2215
|
+
constructor()
|
|
2216
|
+
update(open: number, high: number, low: number, close: number): number | null
|
|
2217
|
+
batch(open: Array<number>, high: Array<number>, low: Array<number>, close: Array<number>): Array<number>
|
|
2218
|
+
reset(): void
|
|
2219
|
+
isReady(): boolean
|
|
2220
|
+
warmupPeriod(): number
|
|
2221
|
+
}
|
|
2222
|
+
export type UpsideGapTwoCrowsNode = UpsideGapTwoCrows
|
|
2223
|
+
export declare class UpsideGapTwoCrows {
|
|
2224
|
+
constructor()
|
|
2225
|
+
update(open: number, high: number, low: number, close: number): number | null
|
|
2226
|
+
batch(open: Array<number>, high: Array<number>, low: Array<number>, close: Array<number>): Array<number>
|
|
2227
|
+
reset(): void
|
|
2228
|
+
isReady(): boolean
|
|
2229
|
+
warmupPeriod(): number
|
|
2230
|
+
}
|
|
2231
|
+
export type IdenticalThreeCrowsNode = IdenticalThreeCrows
|
|
2232
|
+
export declare class IdenticalThreeCrows {
|
|
2233
|
+
constructor()
|
|
2234
|
+
update(open: number, high: number, low: number, close: number): number | null
|
|
2235
|
+
batch(open: Array<number>, high: Array<number>, low: Array<number>, close: Array<number>): Array<number>
|
|
2236
|
+
reset(): void
|
|
2237
|
+
isReady(): boolean
|
|
2238
|
+
warmupPeriod(): number
|
|
2239
|
+
}
|
|
2240
|
+
export type ThreeLineStrikeNode = ThreeLineStrike
|
|
2241
|
+
export declare class ThreeLineStrike {
|
|
2242
|
+
constructor()
|
|
2243
|
+
update(open: number, high: number, low: number, close: number): number | null
|
|
2244
|
+
batch(open: Array<number>, high: Array<number>, low: Array<number>, close: Array<number>): Array<number>
|
|
2245
|
+
reset(): void
|
|
2246
|
+
isReady(): boolean
|
|
2247
|
+
warmupPeriod(): number
|
|
2248
|
+
}
|
|
2249
|
+
export type ThreeStarsInSouthNode = ThreeStarsInSouth
|
|
2250
|
+
export declare class ThreeStarsInSouth {
|
|
2251
|
+
constructor()
|
|
2252
|
+
update(open: number, high: number, low: number, close: number): number | null
|
|
2253
|
+
batch(open: Array<number>, high: Array<number>, low: Array<number>, close: Array<number>): Array<number>
|
|
2254
|
+
reset(): void
|
|
2255
|
+
isReady(): boolean
|
|
2256
|
+
warmupPeriod(): number
|
|
2257
|
+
}
|
|
2258
|
+
export type AbandonedBabyNode = AbandonedBaby
|
|
2259
|
+
export declare class AbandonedBaby {
|
|
2260
|
+
constructor()
|
|
2261
|
+
update(open: number, high: number, low: number, close: number): number | null
|
|
2262
|
+
batch(open: Array<number>, high: Array<number>, low: Array<number>, close: Array<number>): Array<number>
|
|
2263
|
+
reset(): void
|
|
2264
|
+
isReady(): boolean
|
|
2265
|
+
warmupPeriod(): number
|
|
2266
|
+
}
|
|
2267
|
+
export type AdvanceBlockNode = AdvanceBlock
|
|
2268
|
+
export declare class AdvanceBlock {
|
|
2269
|
+
constructor()
|
|
2270
|
+
update(open: number, high: number, low: number, close: number): number | null
|
|
2271
|
+
batch(open: Array<number>, high: Array<number>, low: Array<number>, close: Array<number>): Array<number>
|
|
2272
|
+
reset(): void
|
|
2273
|
+
isReady(): boolean
|
|
2274
|
+
warmupPeriod(): number
|
|
2275
|
+
}
|
|
2276
|
+
export type BeltHoldNode = BeltHold
|
|
2277
|
+
export declare class BeltHold {
|
|
2278
|
+
constructor()
|
|
2279
|
+
update(open: number, high: number, low: number, close: number): number | null
|
|
2280
|
+
batch(open: Array<number>, high: Array<number>, low: Array<number>, close: Array<number>): Array<number>
|
|
2281
|
+
reset(): void
|
|
2282
|
+
isReady(): boolean
|
|
2283
|
+
warmupPeriod(): number
|
|
2284
|
+
}
|
|
2285
|
+
export type BreakawayNode = Breakaway
|
|
2286
|
+
export declare class Breakaway {
|
|
2287
|
+
constructor()
|
|
2288
|
+
update(open: number, high: number, low: number, close: number): number | null
|
|
2289
|
+
batch(open: Array<number>, high: Array<number>, low: Array<number>, close: Array<number>): Array<number>
|
|
2290
|
+
reset(): void
|
|
2291
|
+
isReady(): boolean
|
|
2292
|
+
warmupPeriod(): number
|
|
2293
|
+
}
|
|
2294
|
+
export type CounterattackNode = Counterattack
|
|
2295
|
+
export declare class Counterattack {
|
|
2296
|
+
constructor()
|
|
2297
|
+
update(open: number, high: number, low: number, close: number): number | null
|
|
2298
|
+
batch(open: Array<number>, high: Array<number>, low: Array<number>, close: Array<number>): Array<number>
|
|
2299
|
+
reset(): void
|
|
2300
|
+
isReady(): boolean
|
|
2301
|
+
warmupPeriod(): number
|
|
2302
|
+
}
|
|
2303
|
+
export type DojiStarNode = DojiStar
|
|
2304
|
+
export declare class DojiStar {
|
|
2305
|
+
constructor()
|
|
2306
|
+
update(open: number, high: number, low: number, close: number): number | null
|
|
2307
|
+
batch(open: Array<number>, high: Array<number>, low: Array<number>, close: Array<number>): Array<number>
|
|
2308
|
+
reset(): void
|
|
2309
|
+
isReady(): boolean
|
|
2310
|
+
warmupPeriod(): number
|
|
2311
|
+
}
|
|
2312
|
+
export type DragonflyDojiNode = DragonflyDoji
|
|
2313
|
+
export declare class DragonflyDoji {
|
|
2314
|
+
constructor()
|
|
2315
|
+
update(open: number, high: number, low: number, close: number): number | null
|
|
2316
|
+
batch(open: Array<number>, high: Array<number>, low: Array<number>, close: Array<number>): Array<number>
|
|
2317
|
+
reset(): void
|
|
2318
|
+
isReady(): boolean
|
|
2319
|
+
warmupPeriod(): number
|
|
2320
|
+
}
|
|
2321
|
+
export type GravestoneDojiNode = GravestoneDoji
|
|
2322
|
+
export declare class GravestoneDoji {
|
|
2323
|
+
constructor()
|
|
2324
|
+
update(open: number, high: number, low: number, close: number): number | null
|
|
2325
|
+
batch(open: Array<number>, high: Array<number>, low: Array<number>, close: Array<number>): Array<number>
|
|
2326
|
+
reset(): void
|
|
2327
|
+
isReady(): boolean
|
|
2328
|
+
warmupPeriod(): number
|
|
2329
|
+
}
|
|
2330
|
+
export type LongLeggedDojiNode = LongLeggedDoji
|
|
2331
|
+
export declare class LongLeggedDoji {
|
|
2332
|
+
constructor()
|
|
2333
|
+
update(open: number, high: number, low: number, close: number): number | null
|
|
2334
|
+
batch(open: Array<number>, high: Array<number>, low: Array<number>, close: Array<number>): Array<number>
|
|
2335
|
+
reset(): void
|
|
2336
|
+
isReady(): boolean
|
|
2337
|
+
warmupPeriod(): number
|
|
2338
|
+
}
|
|
2339
|
+
export type RickshawManNode = RickshawMan
|
|
2340
|
+
export declare class RickshawMan {
|
|
2341
|
+
constructor()
|
|
2342
|
+
update(open: number, high: number, low: number, close: number): number | null
|
|
2343
|
+
batch(open: Array<number>, high: Array<number>, low: Array<number>, close: Array<number>): Array<number>
|
|
2344
|
+
reset(): void
|
|
2345
|
+
isReady(): boolean
|
|
2346
|
+
warmupPeriod(): number
|
|
2347
|
+
}
|
|
2348
|
+
export type EveningDojiStarNode = EveningDojiStar
|
|
2349
|
+
export declare class EveningDojiStar {
|
|
2350
|
+
constructor()
|
|
2351
|
+
update(open: number, high: number, low: number, close: number): number | null
|
|
2352
|
+
batch(open: Array<number>, high: Array<number>, low: Array<number>, close: Array<number>): Array<number>
|
|
2353
|
+
reset(): void
|
|
2354
|
+
isReady(): boolean
|
|
2355
|
+
warmupPeriod(): number
|
|
2356
|
+
}
|
|
2357
|
+
export type MorningDojiStarNode = MorningDojiStar
|
|
2358
|
+
export declare class MorningDojiStar {
|
|
2359
|
+
constructor()
|
|
2360
|
+
update(open: number, high: number, low: number, close: number): number | null
|
|
2361
|
+
batch(open: Array<number>, high: Array<number>, low: Array<number>, close: Array<number>): Array<number>
|
|
2362
|
+
reset(): void
|
|
2363
|
+
isReady(): boolean
|
|
2364
|
+
warmupPeriod(): number
|
|
2365
|
+
}
|
|
2366
|
+
export type GapSideBySideWhiteNode = GapSideBySideWhite
|
|
2367
|
+
export declare class GapSideBySideWhite {
|
|
2368
|
+
constructor()
|
|
2369
|
+
update(open: number, high: number, low: number, close: number): number | null
|
|
2370
|
+
batch(open: Array<number>, high: Array<number>, low: Array<number>, close: Array<number>): Array<number>
|
|
2371
|
+
reset(): void
|
|
2372
|
+
isReady(): boolean
|
|
2373
|
+
warmupPeriod(): number
|
|
2374
|
+
}
|
|
2375
|
+
export type HighWaveNode = HighWave
|
|
2376
|
+
export declare class HighWave {
|
|
2377
|
+
constructor()
|
|
2378
|
+
update(open: number, high: number, low: number, close: number): number | null
|
|
2379
|
+
batch(open: Array<number>, high: Array<number>, low: Array<number>, close: Array<number>): Array<number>
|
|
2380
|
+
reset(): void
|
|
2381
|
+
isReady(): boolean
|
|
2382
|
+
warmupPeriod(): number
|
|
2383
|
+
}
|
|
2384
|
+
export type HikkakeNode = Hikkake
|
|
2385
|
+
export declare class Hikkake {
|
|
2386
|
+
constructor()
|
|
2387
|
+
update(open: number, high: number, low: number, close: number): number | null
|
|
2388
|
+
batch(open: Array<number>, high: Array<number>, low: Array<number>, close: Array<number>): Array<number>
|
|
2389
|
+
reset(): void
|
|
2390
|
+
isReady(): boolean
|
|
2391
|
+
warmupPeriod(): number
|
|
2392
|
+
}
|
|
2393
|
+
export type HikkakeModifiedNode = HikkakeModified
|
|
2394
|
+
export declare class HikkakeModified {
|
|
2395
|
+
constructor()
|
|
2396
|
+
update(open: number, high: number, low: number, close: number): number | null
|
|
2397
|
+
batch(open: Array<number>, high: Array<number>, low: Array<number>, close: Array<number>): Array<number>
|
|
2398
|
+
reset(): void
|
|
2399
|
+
isReady(): boolean
|
|
2400
|
+
warmupPeriod(): number
|
|
2401
|
+
}
|
|
2402
|
+
export type HomingPigeonNode = HomingPigeon
|
|
2403
|
+
export declare class HomingPigeon {
|
|
2404
|
+
constructor()
|
|
2405
|
+
update(open: number, high: number, low: number, close: number): number | null
|
|
2406
|
+
batch(open: Array<number>, high: Array<number>, low: Array<number>, close: Array<number>): Array<number>
|
|
2407
|
+
reset(): void
|
|
2408
|
+
isReady(): boolean
|
|
2409
|
+
warmupPeriod(): number
|
|
2410
|
+
}
|
|
2411
|
+
export type OnNeckNode = OnNeck
|
|
2412
|
+
export declare class OnNeck {
|
|
2413
|
+
constructor()
|
|
2414
|
+
update(open: number, high: number, low: number, close: number): number | null
|
|
2415
|
+
batch(open: Array<number>, high: Array<number>, low: Array<number>, close: Array<number>): Array<number>
|
|
2416
|
+
reset(): void
|
|
2417
|
+
isReady(): boolean
|
|
2418
|
+
warmupPeriod(): number
|
|
2419
|
+
}
|
|
2420
|
+
export type InNeckNode = InNeck
|
|
2421
|
+
export declare class InNeck {
|
|
2422
|
+
constructor()
|
|
2423
|
+
update(open: number, high: number, low: number, close: number): number | null
|
|
2424
|
+
batch(open: Array<number>, high: Array<number>, low: Array<number>, close: Array<number>): Array<number>
|
|
2425
|
+
reset(): void
|
|
2426
|
+
isReady(): boolean
|
|
2427
|
+
warmupPeriod(): number
|
|
2428
|
+
}
|
|
2429
|
+
export type ThrustingNode = Thrusting
|
|
2430
|
+
export declare class Thrusting {
|
|
2431
|
+
constructor()
|
|
2432
|
+
update(open: number, high: number, low: number, close: number): number | null
|
|
2433
|
+
batch(open: Array<number>, high: Array<number>, low: Array<number>, close: Array<number>): Array<number>
|
|
2434
|
+
reset(): void
|
|
2435
|
+
isReady(): boolean
|
|
2436
|
+
warmupPeriod(): number
|
|
2437
|
+
}
|
|
2438
|
+
export type SeparatingLinesNode = SeparatingLines
|
|
2439
|
+
export declare class SeparatingLines {
|
|
2440
|
+
constructor()
|
|
2441
|
+
update(open: number, high: number, low: number, close: number): number | null
|
|
2442
|
+
batch(open: Array<number>, high: Array<number>, low: Array<number>, close: Array<number>): Array<number>
|
|
2443
|
+
reset(): void
|
|
2444
|
+
isReady(): boolean
|
|
2445
|
+
warmupPeriod(): number
|
|
2446
|
+
}
|
|
2447
|
+
export type KickingNode = Kicking
|
|
2448
|
+
export declare class Kicking {
|
|
2449
|
+
constructor()
|
|
2450
|
+
update(open: number, high: number, low: number, close: number): number | null
|
|
2451
|
+
batch(open: Array<number>, high: Array<number>, low: Array<number>, close: Array<number>): Array<number>
|
|
2452
|
+
reset(): void
|
|
2453
|
+
isReady(): boolean
|
|
2454
|
+
warmupPeriod(): number
|
|
2455
|
+
}
|
|
2456
|
+
export type KickingByLengthNode = KickingByLength
|
|
2457
|
+
export declare class KickingByLength {
|
|
2458
|
+
constructor()
|
|
2459
|
+
update(open: number, high: number, low: number, close: number): number | null
|
|
2460
|
+
batch(open: Array<number>, high: Array<number>, low: Array<number>, close: Array<number>): Array<number>
|
|
2461
|
+
reset(): void
|
|
2462
|
+
isReady(): boolean
|
|
2463
|
+
warmupPeriod(): number
|
|
2464
|
+
}
|
|
2465
|
+
export type LadderBottomNode = LadderBottom
|
|
2466
|
+
export declare class LadderBottom {
|
|
2467
|
+
constructor()
|
|
2468
|
+
update(open: number, high: number, low: number, close: number): number | null
|
|
2469
|
+
batch(open: Array<number>, high: Array<number>, low: Array<number>, close: Array<number>): Array<number>
|
|
2470
|
+
reset(): void
|
|
2471
|
+
isReady(): boolean
|
|
2472
|
+
warmupPeriod(): number
|
|
2473
|
+
}
|
|
2474
|
+
export type MatHoldNode = MatHold
|
|
2475
|
+
export declare class MatHold {
|
|
2476
|
+
constructor()
|
|
2477
|
+
update(open: number, high: number, low: number, close: number): number | null
|
|
2478
|
+
batch(open: Array<number>, high: Array<number>, low: Array<number>, close: Array<number>): Array<number>
|
|
2479
|
+
reset(): void
|
|
2480
|
+
isReady(): boolean
|
|
2481
|
+
warmupPeriod(): number
|
|
2482
|
+
}
|
|
2483
|
+
export type MatchingLowNode = MatchingLow
|
|
2484
|
+
export declare class MatchingLow {
|
|
2485
|
+
constructor()
|
|
2486
|
+
update(open: number, high: number, low: number, close: number): number | null
|
|
2487
|
+
batch(open: Array<number>, high: Array<number>, low: Array<number>, close: Array<number>): Array<number>
|
|
2488
|
+
reset(): void
|
|
2489
|
+
isReady(): boolean
|
|
2490
|
+
warmupPeriod(): number
|
|
2491
|
+
}
|
|
2492
|
+
export type LongLineNode = LongLine
|
|
2493
|
+
export declare class LongLine {
|
|
2494
|
+
constructor()
|
|
2495
|
+
update(open: number, high: number, low: number, close: number): number | null
|
|
2496
|
+
batch(open: Array<number>, high: Array<number>, low: Array<number>, close: Array<number>): Array<number>
|
|
2497
|
+
reset(): void
|
|
2498
|
+
isReady(): boolean
|
|
2499
|
+
warmupPeriod(): number
|
|
2500
|
+
}
|
|
2501
|
+
export type ShortLineNode = ShortLine
|
|
2502
|
+
export declare class ShortLine {
|
|
2503
|
+
constructor()
|
|
2504
|
+
update(open: number, high: number, low: number, close: number): number | null
|
|
2505
|
+
batch(open: Array<number>, high: Array<number>, low: Array<number>, close: Array<number>): Array<number>
|
|
2506
|
+
reset(): void
|
|
2507
|
+
isReady(): boolean
|
|
2508
|
+
warmupPeriod(): number
|
|
2509
|
+
}
|
|
2510
|
+
export type RisingThreeMethodsNode = RisingThreeMethods
|
|
2511
|
+
export declare class RisingThreeMethods {
|
|
2512
|
+
constructor()
|
|
2513
|
+
update(open: number, high: number, low: number, close: number): number | null
|
|
2514
|
+
batch(open: Array<number>, high: Array<number>, low: Array<number>, close: Array<number>): Array<number>
|
|
2515
|
+
reset(): void
|
|
2516
|
+
isReady(): boolean
|
|
2517
|
+
warmupPeriod(): number
|
|
2518
|
+
}
|
|
2519
|
+
export type FallingThreeMethodsNode = FallingThreeMethods
|
|
2520
|
+
export declare class FallingThreeMethods {
|
|
2521
|
+
constructor()
|
|
2522
|
+
update(open: number, high: number, low: number, close: number): number | null
|
|
2523
|
+
batch(open: Array<number>, high: Array<number>, low: Array<number>, close: Array<number>): Array<number>
|
|
2524
|
+
reset(): void
|
|
2525
|
+
isReady(): boolean
|
|
2526
|
+
warmupPeriod(): number
|
|
2527
|
+
}
|
|
2528
|
+
export type UpsideGapThreeMethodsNode = UpsideGapThreeMethods
|
|
2529
|
+
export declare class UpsideGapThreeMethods {
|
|
2530
|
+
constructor()
|
|
2531
|
+
update(open: number, high: number, low: number, close: number): number | null
|
|
2532
|
+
batch(open: Array<number>, high: Array<number>, low: Array<number>, close: Array<number>): Array<number>
|
|
2533
|
+
reset(): void
|
|
2534
|
+
isReady(): boolean
|
|
2535
|
+
warmupPeriod(): number
|
|
2536
|
+
}
|
|
2537
|
+
export type DownsideGapThreeMethodsNode = DownsideGapThreeMethods
|
|
2538
|
+
export declare class DownsideGapThreeMethods {
|
|
2539
|
+
constructor()
|
|
2540
|
+
update(open: number, high: number, low: number, close: number): number | null
|
|
2541
|
+
batch(open: Array<number>, high: Array<number>, low: Array<number>, close: Array<number>): Array<number>
|
|
2542
|
+
reset(): void
|
|
2543
|
+
isReady(): boolean
|
|
2544
|
+
warmupPeriod(): number
|
|
2545
|
+
}
|
|
2546
|
+
export type StalledPatternNode = StalledPattern
|
|
2547
|
+
export declare class StalledPattern {
|
|
2548
|
+
constructor()
|
|
2549
|
+
update(open: number, high: number, low: number, close: number): number | null
|
|
2550
|
+
batch(open: Array<number>, high: Array<number>, low: Array<number>, close: Array<number>): Array<number>
|
|
2551
|
+
reset(): void
|
|
2552
|
+
isReady(): boolean
|
|
2553
|
+
warmupPeriod(): number
|
|
2554
|
+
}
|
|
2555
|
+
export type StickSandwichNode = StickSandwich
|
|
2556
|
+
export declare class StickSandwich {
|
|
2557
|
+
constructor()
|
|
2558
|
+
update(open: number, high: number, low: number, close: number): number | null
|
|
2559
|
+
batch(open: Array<number>, high: Array<number>, low: Array<number>, close: Array<number>): Array<number>
|
|
2560
|
+
reset(): void
|
|
2561
|
+
isReady(): boolean
|
|
2562
|
+
warmupPeriod(): number
|
|
2563
|
+
}
|
|
2564
|
+
export type TakuriNode = Takuri
|
|
2565
|
+
export declare class Takuri {
|
|
2566
|
+
constructor()
|
|
2567
|
+
update(open: number, high: number, low: number, close: number): number | null
|
|
2568
|
+
batch(open: Array<number>, high: Array<number>, low: Array<number>, close: Array<number>): Array<number>
|
|
2569
|
+
reset(): void
|
|
2570
|
+
isReady(): boolean
|
|
2571
|
+
warmupPeriod(): number
|
|
2572
|
+
}
|
|
2573
|
+
export type ClosingMarubozuNode = ClosingMarubozu
|
|
2574
|
+
export declare class ClosingMarubozu {
|
|
2575
|
+
constructor()
|
|
2576
|
+
update(open: number, high: number, low: number, close: number): number | null
|
|
2577
|
+
batch(open: Array<number>, high: Array<number>, low: Array<number>, close: Array<number>): Array<number>
|
|
2578
|
+
reset(): void
|
|
2579
|
+
isReady(): boolean
|
|
2580
|
+
warmupPeriod(): number
|
|
2581
|
+
}
|
|
2582
|
+
export type OpeningMarubozuNode = OpeningMarubozu
|
|
2583
|
+
export declare class OpeningMarubozu {
|
|
2584
|
+
constructor()
|
|
2585
|
+
update(open: number, high: number, low: number, close: number): number | null
|
|
2586
|
+
batch(open: Array<number>, high: Array<number>, low: Array<number>, close: Array<number>): Array<number>
|
|
2587
|
+
reset(): void
|
|
2588
|
+
isReady(): boolean
|
|
2589
|
+
warmupPeriod(): number
|
|
2590
|
+
}
|
|
2591
|
+
export type TasukiGapNode = TasukiGap
|
|
2592
|
+
export declare class TasukiGap {
|
|
2593
|
+
constructor()
|
|
2594
|
+
update(open: number, high: number, low: number, close: number): number | null
|
|
2595
|
+
batch(open: Array<number>, high: Array<number>, low: Array<number>, close: Array<number>): Array<number>
|
|
2596
|
+
reset(): void
|
|
2597
|
+
isReady(): boolean
|
|
2598
|
+
warmupPeriod(): number
|
|
2599
|
+
}
|
|
2600
|
+
export type UniqueThreeRiverNode = UniqueThreeRiver
|
|
2601
|
+
export declare class UniqueThreeRiver {
|
|
2602
|
+
constructor()
|
|
2603
|
+
update(open: number, high: number, low: number, close: number): number | null
|
|
2604
|
+
batch(open: Array<number>, high: Array<number>, low: Array<number>, close: Array<number>): Array<number>
|
|
2605
|
+
reset(): void
|
|
2606
|
+
isReady(): boolean
|
|
2607
|
+
warmupPeriod(): number
|
|
2608
|
+
}
|
|
2609
|
+
export type ConcealingBabySwallowNode = ConcealingBabySwallow
|
|
2610
|
+
export declare class ConcealingBabySwallow {
|
|
2611
|
+
constructor()
|
|
2612
|
+
update(open: number, high: number, low: number, close: number): number | null
|
|
2613
|
+
batch(open: Array<number>, high: Array<number>, low: Array<number>, close: Array<number>): Array<number>
|
|
2614
|
+
reset(): void
|
|
2615
|
+
isReady(): boolean
|
|
2616
|
+
warmupPeriod(): number
|
|
2617
|
+
}
|
|
2199
2618
|
export type OrderBookImbalanceTop1Node = OrderBookImbalanceTop1
|
|
2200
2619
|
export declare class OrderBookImbalanceTop1 {
|
|
2201
2620
|
constructor()
|
|
@@ -2232,6 +2651,15 @@ export declare class QuotedSpread {
|
|
|
2232
2651
|
isReady(): boolean
|
|
2233
2652
|
warmupPeriod(): number
|
|
2234
2653
|
}
|
|
2654
|
+
export type DepthSlopeNode = DepthSlope
|
|
2655
|
+
export declare class DepthSlope {
|
|
2656
|
+
constructor()
|
|
2657
|
+
update(bidPx: Array<number>, bidSz: Array<number>, askPx: Array<number>, askSz: Array<number>): number | null
|
|
2658
|
+
batch(snapshots: Array<ObSnapshot>): Array<number>
|
|
2659
|
+
reset(): void
|
|
2660
|
+
isReady(): boolean
|
|
2661
|
+
warmupPeriod(): number
|
|
2662
|
+
}
|
|
2235
2663
|
export type OrderBookImbalanceTopNNode = OrderBookImbalanceTopN
|
|
2236
2664
|
export declare class OrderBookImbalanceTopN {
|
|
2237
2665
|
constructor(levels: number)
|
|
@@ -2268,6 +2696,150 @@ export declare class TradeImbalance {
|
|
|
2268
2696
|
isReady(): boolean
|
|
2269
2697
|
warmupPeriod(): number
|
|
2270
2698
|
}
|
|
2699
|
+
export type EffectiveSpreadNode = EffectiveSpread
|
|
2700
|
+
export declare class EffectiveSpread {
|
|
2701
|
+
constructor()
|
|
2702
|
+
update(price: number, size: number, isBuy: boolean, mid: number): number | null
|
|
2703
|
+
batch(price: Array<number>, size: Array<number>, isBuy: Array<boolean>, mid: Array<number>): Array<number>
|
|
2704
|
+
reset(): void
|
|
2705
|
+
isReady(): boolean
|
|
2706
|
+
warmupPeriod(): number
|
|
2707
|
+
}
|
|
2708
|
+
export type RealizedSpreadNode = RealizedSpread
|
|
2709
|
+
export declare class RealizedSpread {
|
|
2710
|
+
constructor(horizon: number)
|
|
2711
|
+
update(price: number, size: number, isBuy: boolean, mid: number): number | null
|
|
2712
|
+
batch(price: Array<number>, size: Array<number>, isBuy: Array<boolean>, mid: Array<number>): Array<number>
|
|
2713
|
+
reset(): void
|
|
2714
|
+
isReady(): boolean
|
|
2715
|
+
warmupPeriod(): number
|
|
2716
|
+
}
|
|
2717
|
+
export type KylesLambdaNode = KylesLambda
|
|
2718
|
+
export declare class KylesLambda {
|
|
2719
|
+
constructor(window: number)
|
|
2720
|
+
update(price: number, size: number, isBuy: boolean, mid: number): number | null
|
|
2721
|
+
batch(price: Array<number>, size: Array<number>, isBuy: Array<boolean>, mid: Array<number>): Array<number>
|
|
2722
|
+
reset(): void
|
|
2723
|
+
isReady(): boolean
|
|
2724
|
+
warmupPeriod(): number
|
|
2725
|
+
}
|
|
2726
|
+
export type FootprintNode = Footprint
|
|
2727
|
+
export declare class Footprint {
|
|
2728
|
+
constructor(tickSize: number)
|
|
2729
|
+
update(price: number, size: number, isBuy: boolean): Array<FootprintLevelValue>
|
|
2730
|
+
batch(price: Array<number>, size: Array<number>, isBuy: Array<boolean>): Array<Array<FootprintLevelValue>>
|
|
2731
|
+
reset(): void
|
|
2732
|
+
isReady(): boolean
|
|
2733
|
+
warmupPeriod(): number
|
|
2734
|
+
}
|
|
2735
|
+
export type FundingRateNode = FundingRate
|
|
2736
|
+
export declare class FundingRate {
|
|
2737
|
+
constructor()
|
|
2738
|
+
update(fundingRate: number): number | null
|
|
2739
|
+
batch(fundingRate: Array<number>): Array<number>
|
|
2740
|
+
reset(): void
|
|
2741
|
+
isReady(): boolean
|
|
2742
|
+
warmupPeriod(): number
|
|
2743
|
+
}
|
|
2744
|
+
export type FundingRateMeanNode = FundingRateMean
|
|
2745
|
+
export declare class FundingRateMean {
|
|
2746
|
+
constructor(window: number)
|
|
2747
|
+
update(fundingRate: number): number | null
|
|
2748
|
+
batch(fundingRate: Array<number>): Array<number>
|
|
2749
|
+
reset(): void
|
|
2750
|
+
isReady(): boolean
|
|
2751
|
+
warmupPeriod(): number
|
|
2752
|
+
}
|
|
2753
|
+
export type FundingRateZScoreNode = FundingRateZScore
|
|
2754
|
+
export declare class FundingRateZScore {
|
|
2755
|
+
constructor(window: number)
|
|
2756
|
+
update(fundingRate: number): number | null
|
|
2757
|
+
batch(fundingRate: Array<number>): Array<number>
|
|
2758
|
+
reset(): void
|
|
2759
|
+
isReady(): boolean
|
|
2760
|
+
warmupPeriod(): number
|
|
2761
|
+
}
|
|
2762
|
+
export type FundingBasisNode = FundingBasis
|
|
2763
|
+
export declare class FundingBasis {
|
|
2764
|
+
constructor()
|
|
2765
|
+
update(markPrice: number, indexPrice: number): number | null
|
|
2766
|
+
batch(markPrice: Array<number>, indexPrice: Array<number>): Array<number>
|
|
2767
|
+
reset(): void
|
|
2768
|
+
isReady(): boolean
|
|
2769
|
+
warmupPeriod(): number
|
|
2770
|
+
}
|
|
2771
|
+
export type OpenInterestDeltaNode = OpenInterestDelta
|
|
2772
|
+
export declare class OpenInterestDelta {
|
|
2773
|
+
constructor()
|
|
2774
|
+
update(openInterest: number): number | null
|
|
2775
|
+
batch(openInterest: Array<number>): Array<number>
|
|
2776
|
+
reset(): void
|
|
2777
|
+
isReady(): boolean
|
|
2778
|
+
warmupPeriod(): number
|
|
2779
|
+
}
|
|
2780
|
+
export type OIPriceDivergenceNode = OIPriceDivergence
|
|
2781
|
+
export declare class OIPriceDivergence {
|
|
2782
|
+
constructor(window: number)
|
|
2783
|
+
update(openInterest: number, markPrice: number): number | null
|
|
2784
|
+
batch(openInterest: Array<number>, markPrice: Array<number>): Array<number>
|
|
2785
|
+
reset(): void
|
|
2786
|
+
isReady(): boolean
|
|
2787
|
+
warmupPeriod(): number
|
|
2788
|
+
}
|
|
2789
|
+
export type OIWeightedNode = OIWeighted
|
|
2790
|
+
export declare class OIWeighted {
|
|
2791
|
+
constructor()
|
|
2792
|
+
update(markPrice: number, openInterest: number): number | null
|
|
2793
|
+
batch(markPrice: Array<number>, openInterest: Array<number>): Array<number>
|
|
2794
|
+
reset(): void
|
|
2795
|
+
isReady(): boolean
|
|
2796
|
+
warmupPeriod(): number
|
|
2797
|
+
}
|
|
2798
|
+
export type LongShortRatioNode = LongShortRatio
|
|
2799
|
+
export declare class LongShortRatio {
|
|
2800
|
+
constructor()
|
|
2801
|
+
update(longSize: number, shortSize: number): number | null
|
|
2802
|
+
batch(longSize: Array<number>, shortSize: Array<number>): Array<number>
|
|
2803
|
+
reset(): void
|
|
2804
|
+
isReady(): boolean
|
|
2805
|
+
warmupPeriod(): number
|
|
2806
|
+
}
|
|
2807
|
+
export type TakerBuySellRatioNode = TakerBuySellRatio
|
|
2808
|
+
export declare class TakerBuySellRatio {
|
|
2809
|
+
constructor()
|
|
2810
|
+
update(takerBuyVolume: number, takerSellVolume: number): number | null
|
|
2811
|
+
batch(takerBuyVolume: Array<number>, takerSellVolume: Array<number>): Array<number>
|
|
2812
|
+
reset(): void
|
|
2813
|
+
isReady(): boolean
|
|
2814
|
+
warmupPeriod(): number
|
|
2815
|
+
}
|
|
2816
|
+
export type LiquidationFeaturesNode = LiquidationFeatures
|
|
2817
|
+
export declare class LiquidationFeatures {
|
|
2818
|
+
constructor()
|
|
2819
|
+
update(longLiquidation: number, shortLiquidation: number): LiquidationFeaturesValue | null
|
|
2820
|
+
batch(longLiquidation: Array<number>, shortLiquidation: Array<number>): Array<number>
|
|
2821
|
+
reset(): void
|
|
2822
|
+
isReady(): boolean
|
|
2823
|
+
warmupPeriod(): number
|
|
2824
|
+
}
|
|
2825
|
+
export type TermStructureBasisNode = TermStructureBasis
|
|
2826
|
+
export declare class TermStructureBasis {
|
|
2827
|
+
constructor()
|
|
2828
|
+
update(futuresPrice: number, indexPrice: number): number | null
|
|
2829
|
+
batch(futuresPrice: Array<number>, indexPrice: Array<number>): Array<number>
|
|
2830
|
+
reset(): void
|
|
2831
|
+
isReady(): boolean
|
|
2832
|
+
warmupPeriod(): number
|
|
2833
|
+
}
|
|
2834
|
+
export type CalendarSpreadNode = CalendarSpread
|
|
2835
|
+
export declare class CalendarSpread {
|
|
2836
|
+
constructor()
|
|
2837
|
+
update(futuresPrice: number, markPrice: number): number | null
|
|
2838
|
+
batch(futuresPrice: Array<number>, markPrice: Array<number>): Array<number>
|
|
2839
|
+
reset(): void
|
|
2840
|
+
isReady(): boolean
|
|
2841
|
+
warmupPeriod(): number
|
|
2842
|
+
}
|
|
2271
2843
|
export type SharpeRatioNode = SharpeRatio
|
|
2272
2844
|
export declare class SharpeRatio {
|
|
2273
2845
|
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, OrderBookImbalanceTop1, OrderBookImbalanceFull, Microprice, QuotedSpread, OrderBookImbalanceTopN, SignedVolume, CumulativeVolumeDelta, TradeImbalance, 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, 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
|
|
314
314
|
|
|
315
315
|
module.exports.version = version
|
|
316
316
|
module.exports.SMA = SMA
|
|
@@ -515,14 +515,76 @@ module.exports.Tweezer = Tweezer
|
|
|
515
515
|
module.exports.SpinningTop = SpinningTop
|
|
516
516
|
module.exports.ThreeInside = ThreeInside
|
|
517
517
|
module.exports.ThreeOutside = ThreeOutside
|
|
518
|
+
module.exports.TwoCrows = TwoCrows
|
|
519
|
+
module.exports.UpsideGapTwoCrows = UpsideGapTwoCrows
|
|
520
|
+
module.exports.IdenticalThreeCrows = IdenticalThreeCrows
|
|
521
|
+
module.exports.ThreeLineStrike = ThreeLineStrike
|
|
522
|
+
module.exports.ThreeStarsInSouth = ThreeStarsInSouth
|
|
523
|
+
module.exports.AbandonedBaby = AbandonedBaby
|
|
524
|
+
module.exports.AdvanceBlock = AdvanceBlock
|
|
525
|
+
module.exports.BeltHold = BeltHold
|
|
526
|
+
module.exports.Breakaway = Breakaway
|
|
527
|
+
module.exports.Counterattack = Counterattack
|
|
528
|
+
module.exports.DojiStar = DojiStar
|
|
529
|
+
module.exports.DragonflyDoji = DragonflyDoji
|
|
530
|
+
module.exports.GravestoneDoji = GravestoneDoji
|
|
531
|
+
module.exports.LongLeggedDoji = LongLeggedDoji
|
|
532
|
+
module.exports.RickshawMan = RickshawMan
|
|
533
|
+
module.exports.EveningDojiStar = EveningDojiStar
|
|
534
|
+
module.exports.MorningDojiStar = MorningDojiStar
|
|
535
|
+
module.exports.GapSideBySideWhite = GapSideBySideWhite
|
|
536
|
+
module.exports.HighWave = HighWave
|
|
537
|
+
module.exports.Hikkake = Hikkake
|
|
538
|
+
module.exports.HikkakeModified = HikkakeModified
|
|
539
|
+
module.exports.HomingPigeon = HomingPigeon
|
|
540
|
+
module.exports.OnNeck = OnNeck
|
|
541
|
+
module.exports.InNeck = InNeck
|
|
542
|
+
module.exports.Thrusting = Thrusting
|
|
543
|
+
module.exports.SeparatingLines = SeparatingLines
|
|
544
|
+
module.exports.Kicking = Kicking
|
|
545
|
+
module.exports.KickingByLength = KickingByLength
|
|
546
|
+
module.exports.LadderBottom = LadderBottom
|
|
547
|
+
module.exports.MatHold = MatHold
|
|
548
|
+
module.exports.MatchingLow = MatchingLow
|
|
549
|
+
module.exports.LongLine = LongLine
|
|
550
|
+
module.exports.ShortLine = ShortLine
|
|
551
|
+
module.exports.RisingThreeMethods = RisingThreeMethods
|
|
552
|
+
module.exports.FallingThreeMethods = FallingThreeMethods
|
|
553
|
+
module.exports.UpsideGapThreeMethods = UpsideGapThreeMethods
|
|
554
|
+
module.exports.DownsideGapThreeMethods = DownsideGapThreeMethods
|
|
555
|
+
module.exports.StalledPattern = StalledPattern
|
|
556
|
+
module.exports.StickSandwich = StickSandwich
|
|
557
|
+
module.exports.Takuri = Takuri
|
|
558
|
+
module.exports.ClosingMarubozu = ClosingMarubozu
|
|
559
|
+
module.exports.OpeningMarubozu = OpeningMarubozu
|
|
560
|
+
module.exports.TasukiGap = TasukiGap
|
|
561
|
+
module.exports.UniqueThreeRiver = UniqueThreeRiver
|
|
562
|
+
module.exports.ConcealingBabySwallow = ConcealingBabySwallow
|
|
518
563
|
module.exports.OrderBookImbalanceTop1 = OrderBookImbalanceTop1
|
|
519
564
|
module.exports.OrderBookImbalanceFull = OrderBookImbalanceFull
|
|
520
565
|
module.exports.Microprice = Microprice
|
|
521
566
|
module.exports.QuotedSpread = QuotedSpread
|
|
567
|
+
module.exports.DepthSlope = DepthSlope
|
|
522
568
|
module.exports.OrderBookImbalanceTopN = OrderBookImbalanceTopN
|
|
523
569
|
module.exports.SignedVolume = SignedVolume
|
|
524
570
|
module.exports.CumulativeVolumeDelta = CumulativeVolumeDelta
|
|
525
571
|
module.exports.TradeImbalance = TradeImbalance
|
|
572
|
+
module.exports.EffectiveSpread = EffectiveSpread
|
|
573
|
+
module.exports.RealizedSpread = RealizedSpread
|
|
574
|
+
module.exports.KylesLambda = KylesLambda
|
|
575
|
+
module.exports.Footprint = Footprint
|
|
576
|
+
module.exports.FundingRate = FundingRate
|
|
577
|
+
module.exports.FundingRateMean = FundingRateMean
|
|
578
|
+
module.exports.FundingRateZScore = FundingRateZScore
|
|
579
|
+
module.exports.FundingBasis = FundingBasis
|
|
580
|
+
module.exports.OpenInterestDelta = OpenInterestDelta
|
|
581
|
+
module.exports.OIPriceDivergence = OIPriceDivergence
|
|
582
|
+
module.exports.OIWeighted = OIWeighted
|
|
583
|
+
module.exports.LongShortRatio = LongShortRatio
|
|
584
|
+
module.exports.TakerBuySellRatio = TakerBuySellRatio
|
|
585
|
+
module.exports.LiquidationFeatures = LiquidationFeatures
|
|
586
|
+
module.exports.TermStructureBasis = TermStructureBasis
|
|
587
|
+
module.exports.CalendarSpread = CalendarSpread
|
|
526
588
|
module.exports.SharpeRatio = SharpeRatio
|
|
527
589
|
module.exports.SortinoRatio = SortinoRatio
|
|
528
590
|
module.exports.CalmarRatio = CalmarRatio
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "wickra-darwin-arm64",
|
|
3
|
-
"version": "0.4.
|
|
3
|
+
"version": "0.4.4",
|
|
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": [
|
|
Binary file
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "wickra-darwin-x64",
|
|
3
|
-
"version": "0.4.
|
|
3
|
+
"version": "0.4.4",
|
|
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": [
|
|
Binary file
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "wickra-linux-arm64-gnu",
|
|
3
|
-
"version": "0.4.
|
|
3
|
+
"version": "0.4.4",
|
|
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": [
|
|
Binary file
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "wickra-linux-x64-gnu",
|
|
3
|
-
"version": "0.4.
|
|
3
|
+
"version": "0.4.4",
|
|
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": [
|
|
Binary file
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "wickra-win32-arm64-msvc",
|
|
3
|
-
"version": "0.4.
|
|
3
|
+
"version": "0.4.4",
|
|
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": [
|
|
Binary file
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "wickra-win32-x64-msvc",
|
|
3
|
-
"version": "0.4.
|
|
3
|
+
"version": "0.4.4",
|
|
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": [
|
|
Binary file
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "wickra",
|
|
3
|
-
"version": "0.4.
|
|
3
|
+
"version": "0.4.4",
|
|
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.
|
|
51
|
-
"wickra-linux-arm64-gnu": "0.4.
|
|
52
|
-
"wickra-darwin-x64": "0.4.
|
|
53
|
-
"wickra-darwin-arm64": "0.4.
|
|
54
|
-
"wickra-win32-x64-msvc": "0.4.
|
|
55
|
-
"wickra-win32-arm64-msvc": "0.4.
|
|
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"
|
|
56
56
|
},
|
|
57
57
|
"scripts": {
|
|
58
58
|
"build": "napi build --platform --release",
|
package/wickra.darwin-arm64.node
CHANGED
|
Binary file
|
package/wickra.darwin-x64.node
CHANGED
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|