feat(indicators): A5a Fibonacci tools (price-level) (#171)
Adds the six price-level Fibonacci tools as a new **Fibonacci** family (catalogue 367 -> 373, twenty-four families). All build on the internal `pattern_swing` ZigZag tracker, are parameter-free (baked 5% swing threshold), and emit `Candle -> struct` outputs via custom Python/Node/WASM bindings. | Tool | Output | |------|--------| | `FibRetracement` | seven levels (0/23.6/38.2/50/61.8/78.6/100%) of the last swing leg | | `FibExtension` | five extension ratios (127.2/141.4/161.8/200/261.8%) projected beyond the leg | | `FibProjection` | A-B-C measured-move target zone (61.8/100/161.8/261.8%) | | `AutoFib` | retracement anchored on the dominant (largest-magnitude) recent leg | | `GoldenPocket` | the 0.618-0.65 optimal-trade-entry band (low/mid/high) | | `FibConfluence` | densest cluster of retracement levels across recent legs (price + strength) | Fully wired: core (100% unit-tested branches), Python/Node/WASM struct bindings, fuzz driver, reference + streaming-vs-batch tests, README/docs counter. The four geometric/time tools (Fan, Arcs, Channel, Time Zones) follow in A5b. Verification: `cargo test --workspace` green, clippy `-D warnings` clean, node 450 tests, python 760 tests.
This commit is contained in:
Vendored
+94
@@ -362,6 +362,46 @@ export interface OvernightIntradayReturnValue {
|
||||
overnight: number
|
||||
intraday: number
|
||||
}
|
||||
export interface FibRetracementValue {
|
||||
level0: number
|
||||
level236: number
|
||||
level382: number
|
||||
level500: number
|
||||
level618: number
|
||||
level786: number
|
||||
level1000: number
|
||||
}
|
||||
export interface FibExtensionValue {
|
||||
level1272: number
|
||||
level1414: number
|
||||
level1618: number
|
||||
level2000: number
|
||||
level2618: number
|
||||
}
|
||||
export interface FibProjectionValue {
|
||||
level618: number
|
||||
level1000: number
|
||||
level1618: number
|
||||
level2618: number
|
||||
}
|
||||
export interface AutoFibValue {
|
||||
level0: number
|
||||
level236: number
|
||||
level382: number
|
||||
level500: number
|
||||
level618: number
|
||||
level786: number
|
||||
level1000: number
|
||||
}
|
||||
export interface GoldenPocketValue {
|
||||
low: number
|
||||
mid: number
|
||||
high: number
|
||||
}
|
||||
export interface FibConfluenceValue {
|
||||
price: number
|
||||
strength: number
|
||||
}
|
||||
export type SmaNode = SMA
|
||||
export declare class SMA {
|
||||
constructor(period: number)
|
||||
@@ -3832,3 +3872,57 @@ export declare class OvernightIntradayReturn {
|
||||
isReady(): boolean
|
||||
warmupPeriod(): number
|
||||
}
|
||||
export type FibRetracementNode = FibRetracement
|
||||
export declare class FibRetracement {
|
||||
constructor()
|
||||
update(high: number, low: number): FibRetracementValue | null
|
||||
batch(high: Array<number>, low: Array<number>): Array<number>
|
||||
reset(): void
|
||||
isReady(): boolean
|
||||
warmupPeriod(): number
|
||||
}
|
||||
export type FibExtensionNode = FibExtension
|
||||
export declare class FibExtension {
|
||||
constructor()
|
||||
update(high: number, low: number): FibExtensionValue | null
|
||||
batch(high: Array<number>, low: Array<number>): Array<number>
|
||||
reset(): void
|
||||
isReady(): boolean
|
||||
warmupPeriod(): number
|
||||
}
|
||||
export type FibProjectionNode = FibProjection
|
||||
export declare class FibProjection {
|
||||
constructor()
|
||||
update(high: number, low: number): FibProjectionValue | null
|
||||
batch(high: Array<number>, low: Array<number>): Array<number>
|
||||
reset(): void
|
||||
isReady(): boolean
|
||||
warmupPeriod(): number
|
||||
}
|
||||
export type AutoFibNode = AutoFib
|
||||
export declare class AutoFib {
|
||||
constructor()
|
||||
update(high: number, low: number): AutoFibValue | null
|
||||
batch(high: Array<number>, low: Array<number>): Array<number>
|
||||
reset(): void
|
||||
isReady(): boolean
|
||||
warmupPeriod(): number
|
||||
}
|
||||
export type GoldenPocketNode = GoldenPocket
|
||||
export declare class GoldenPocket {
|
||||
constructor()
|
||||
update(high: number, low: number): GoldenPocketValue | null
|
||||
batch(high: Array<number>, low: Array<number>): Array<number>
|
||||
reset(): void
|
||||
isReady(): boolean
|
||||
warmupPeriod(): number
|
||||
}
|
||||
export type FibConfluenceNode = FibConfluence
|
||||
export declare class FibConfluence {
|
||||
constructor()
|
||||
update(high: number, low: number): FibConfluenceValue | null
|
||||
batch(high: Array<number>, low: Array<number>): Array<number>
|
||||
reset(): void
|
||||
isReady(): boolean
|
||||
warmupPeriod(): number
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user