Multi-Source Support/Resistance Zone Fusion
Install and import#
npm install fintech-algorithmsimport { multiSourceSupportResistanceZoneFusion } from "fintech-algorithms/geometric-chart-patterns/level-confluence-and-zone-scoring/multi-source-support-resistance-zone-fusion";Signature#
multiSourceSupportResistanceZoneFusion(input)Clusters nearby levels, computes deterministic zone centers, and separates accepted multi-source zones from rejected clusters.
Parameters#
| Name | Type | Notes |
|---|---|---|
input | { fusion_tolerance: number; minimum_sources: number; levels: { level_id: string; source: string; price: number; weight: number }[] } | Record containing non-empty uniquely identified levels, fusion tolerance, and minimum distinct-source count. |
Returns#
{ state, zones, rejected_clusters, fusion_tolerance, minimum_sources }
One calculated fusion record with ranked accepted zones and reason-coded rejected clusters.
Errors#
- When levels are empty, identities repeat, source/price/weight fields are invalid, or fusion settings are invalid — throws
Complexity: time ,
space .
Worked example#
executed Captured by running this function on the input its own test provides. Real output of real code — but not asserted against a published figure.
Input#
{
"fusion_tolerance": 0.25,
"minimum_sources": 2,
"levels": [
{
"level_id": "PIV-1",
"source": "pivot",
"price": 99.8,
"weight": 0.9
},
{
"level_id": "FIB-1",
"source": "fibonacci",
"price": 100.1,
"weight": 0.7
},
{
"level_id": "RND-1",
"source": "round-number",
"price": 100,
"weight": 0.8
}
]
}Call#
multiSourceSupportResistanceZoneFusion(input)Returns#
object with 5 fields: state, zones, rejected_clusters, fusion_tolerance, minimum_sources
{
"state": "calculated",
"zones": [
{
"zone_id": "Z01",
"lower": 99.55,
"upper": 100.45,
"center": 100.026470588235,
"source_count": 4,
"sources": ["fibonacci", "pivot", "round-number", "volume-profile"],
"weight_sum": 3.4,
"member_ids": ["PIV-1", "RND-1", "FIB-1", "VOL-1"]
}
],
"rejected_clusters": [
{
"zone_id": "Z02",
"lower": 104.75,
"upper": 105.25,
"center": 105,
"source_count": 1,
"sources": ["pivot"],
"weight_sum": 0.6,
"member_ids": ["PIV-2"],
"reason": "insufficient-distinct-sources"
}
],
"fusion_tolerance": 0.25,
"minimum_sources": 2
}Other exports#
This module also exports
calculate, priceByVolumeProfileConstruction, pocValueAreaHvnLvnDetection, fibonacciRetracementExtensionProjection, psychologicalRoundNumberLevelGeneration, supportResistanceZoneStrengthDecayScoring, supportResistanceRoleReversalStateMachine, breakoutAndRetestDetection, marketWideZoneProximityScannerRanking. Every module additionally exports run as an alias of its
primary function, and a meta object carrying its catalog id, domain, family,
shape and article URL.
Diagrams#
Calculation flow#
Multi-Source Support/Resistance Zone Fusion calculation flow
flowchart LR
S1["Validate candidate IDs source families prices weights "]
S2["Sort candidates deterministically by price source and "]
S3["Start a new cluster whenever diameter would exceed twi"]
S4["Compute bounds members sources and weighted or unweigh"]
S5["Apply the distinctsource minimum and rank eligible zon"]
S1 --> S2
S2 --> S3
S3 --> S4
S4 --> S5
S5 --> D{"cluster diameter may not exceed twice the fusion tolerance"}
D --> O["zones + diagnostics"]
O --> A["Audit: The output is a deterministic function of validated inputs"]
How it works#
This page states the contract — how to call it correctly. The article explains the concept: why it works, and where it breaks.
References#
- Volume profile indicators: basic concepts — TradingView
- Auto Fib Retracement — TradingView
- Currency Orders and Exchange-Rate Dynamics: Explaining the Success of Technical Analysis — Carol L. Osler
- Foundations of Technical Analysis: Computational Algorithms, Statistical Inference, and Empirical Implementation — Andrew W. Lo, Harry Mamaysky, and Jiang Wang
- Evidence boundary