feat: add Alt-Chart Bars (Renko, Kagi, Point & Figure) via a BarBuilder trait (#146)

Introduces a BarBuilder trait for price-driven chart constructors that emit a variable number of bars per candle (deliberately not Indicator). Adds Renko (box-size bricks, 2-box reversal), Kagi (reversal-amount segments) and Point & Figure (box-size X/O columns, N-box reversal) in a new Alt-Chart Bars family, with custom Python/Node/WASM bindings, a dedicated fuzz target, tests and docs. Indicator count 292 -> 295.
This commit is contained in:
kingchenc
2026-06-02 21:56:00 +02:00
committed by GitHub
parent f37eedd44e
commit d4b3f9dbd1
20 changed files with 1692 additions and 43 deletions
+40
View File
@@ -310,6 +310,21 @@ export interface LiquidationFeaturesValue {
total: number
imbalance: number
}
export interface RenkoBrickValue {
open: number
close: number
direction: number
}
export interface KagiSegmentValue {
start: number
end: number
direction: number
}
export interface PnfColumnValue {
direction: number
high: number
low: number
}
export type SmaNode = SMA
export declare class SMA {
constructor(period: number)
@@ -3022,6 +3037,31 @@ export declare class InformationRatio {
isReady(): boolean
warmupPeriod(): number
}
export type RenkoBarsNode = RenkoBars
export declare class RenkoBars {
constructor(boxSize: number)
update(close: number): Array<RenkoBrickValue>
batch(close: Array<number>): Array<RenkoBrickValue>
boxSize(): number
reset(): void
}
export type KagiBarsNode = KagiBars
export declare class KagiBars {
constructor(reversal: number)
update(close: number): Array<KagiSegmentValue>
batch(close: Array<number>): Array<KagiSegmentValue>
reversal(): number
reset(): void
}
export type PointAndFigureBarsNode = PointAndFigureBars
export declare class PointAndFigureBars {
constructor(boxSize: number, reversal: number)
update(close: number): Array<PnfColumnValue>
batch(close: Array<number>): Array<PnfColumnValue>
boxSize(): number
reversal(): number
reset(): void
}
export type AlphaNode = Alpha
export declare class Alpha {
constructor(period: number, riskFree: number)