Add B8 Volume family deepening (7 indicators) (#195)
Deepens the **Volume** family (B8) with seven indicators (440 -> 447):
- **VolumeRsi** — Wilder RSI computed on signed volume flow.
- **WilliamsAd** — Williams Accumulation/Distribution cumulative line (distinct from Chaikin A/D).
- **TwiggsMoneyFlow** — true-range volume accumulation with Wilder smoothing (distinct from CMF).
- **TradeVolumeIndex** — tick-direction volume accumulation past a min-tick threshold (distinct from TSV).
- **IntradayIntensity** — volume weighted by close position within the bar range.
- **BetterVolume** — VSA volume-vs-spread effort/result classifier.
- **VolumeWeightedMacd** — MACD computed on VWMA with signal line and histogram (struct output).
("Up/Down Volume Ratio" already ships from A2.) All Candle input; the six scalar stops emit f64, VolumeWeightedMacd a {macd, signal, histogram} struct. Hand-written Python/Node/WASM bindings for the volume signature. Verified locally: 3620 core lib + 405 doc tests, clippy clean, 522 node tests, 865 pytest, counter 447.
This commit is contained in:
Vendored
+72
@@ -489,6 +489,11 @@ export interface FibTimeZonesValue {
|
||||
onZone: number
|
||||
barsToNext: number
|
||||
}
|
||||
export interface VolumeWeightedMacdValue {
|
||||
macd: number
|
||||
signal: number
|
||||
histogram: number
|
||||
}
|
||||
export type SmaNode = SMA
|
||||
export declare class SMA {
|
||||
constructor(period: number)
|
||||
@@ -4640,3 +4645,70 @@ export declare class FibTimeZones {
|
||||
isReady(): boolean
|
||||
warmupPeriod(): number
|
||||
}
|
||||
export type VolumeRsiNode = VolumeRsi
|
||||
export declare class VolumeRsi {
|
||||
constructor(period: number)
|
||||
update(close: number, volume: number): number | null
|
||||
batch(close: Array<number>, volume: Array<number>): Array<number>
|
||||
reset(): void
|
||||
isReady(): boolean
|
||||
warmupPeriod(): number
|
||||
}
|
||||
export type WadNode = Wad
|
||||
export declare class Wad {
|
||||
constructor()
|
||||
update(high: number, low: number, close: number): number | null
|
||||
batch(high: Array<number>, low: Array<number>, close: Array<number>): Array<number>
|
||||
reset(): void
|
||||
isReady(): boolean
|
||||
warmupPeriod(): number
|
||||
}
|
||||
export type TwiggsMoneyFlowNode = TwiggsMoneyFlow
|
||||
export declare class TwiggsMoneyFlow {
|
||||
constructor(period: number)
|
||||
update(high: number, low: number, close: number, volume: number): number | null
|
||||
batch(high: Array<number>, low: Array<number>, close: Array<number>, volume: Array<number>): Array<number>
|
||||
reset(): void
|
||||
isReady(): boolean
|
||||
warmupPeriod(): number
|
||||
}
|
||||
export type TradeVolumeIndexNode = TradeVolumeIndex
|
||||
export declare class TradeVolumeIndex {
|
||||
constructor(minTick: number)
|
||||
update(close: number, volume: number): number | null
|
||||
batch(close: Array<number>, volume: Array<number>): Array<number>
|
||||
reset(): void
|
||||
isReady(): boolean
|
||||
warmupPeriod(): number
|
||||
}
|
||||
export type IntradayIntensityNode = IntradayIntensity
|
||||
export declare class IntradayIntensity {
|
||||
constructor()
|
||||
update(high: number, low: number, close: number, volume: number): number | null
|
||||
batch(high: Array<number>, low: Array<number>, close: Array<number>, volume: Array<number>): Array<number>
|
||||
reset(): void
|
||||
isReady(): boolean
|
||||
warmupPeriod(): number
|
||||
}
|
||||
export type BetterVolumeNode = BetterVolume
|
||||
export declare class BetterVolume {
|
||||
constructor(period: number)
|
||||
update(high: number, low: number, close: number, volume: number): number | null
|
||||
batch(high: Array<number>, low: Array<number>, close: Array<number>, volume: Array<number>): Array<number>
|
||||
reset(): void
|
||||
isReady(): boolean
|
||||
warmupPeriod(): number
|
||||
}
|
||||
export type VolumeWeightedMacdNode = VolumeWeightedMacd
|
||||
export declare class VolumeWeightedMacd {
|
||||
constructor(fast: number, slow: number, signal: number)
|
||||
update(close: number, volume: number): VolumeWeightedMacdValue | null
|
||||
/**
|
||||
* Returns `[macd0, signal0, histogram0, macd1, ...]`, length `3 * n`.
|
||||
* Warmup positions are `NaN`.
|
||||
*/
|
||||
batch(close: Array<number>, volume: Array<number>): Array<number>
|
||||
reset(): void
|
||||
isReady(): boolean
|
||||
warmupPeriod(): number
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user