Fractal Support and Resistance
Install and import#
npm install fintech-algorithmsimport { fractalSupportAndResistance } from "fintech-algorithms/geometric-chart-patterns/pivots-and-levels/fractal-support-and-resistance";Signature#
fractalSupportAndResistance(input)Holds the most recent confirmed five-bar fractal high and low forward as resistance and support. This deliberately delegates to the same causal five-bar confirmation used by Fractal Chaos Bands, so a fractal at bar p is only reported from bar p+2 onward.
Parameters#
| Name | Type | Notes |
|---|---|---|
input | TopicInput | bars is the required OHLCV history, strictly ordered by timestamp and on a single adjustment basis. The fractal window is fixed at five bars and no parameters key changes it, though period (default 20, integer of at least 2) and multiplier (default 2, at least 0) are still validated when supplied. |
Returns#
TopicResult
series and latest carry upper and lower. The warm-up is at least four bars and then runs until the first fractal actually confirms, so ready_at is data-dependent (5 on the canonical fixture); once set, each level is held forward until the next fractal replaces it.
Warm-up#
The first 4 bars minimum, then until the first fractal confirms positions are null. Indices 0 to 3 can never confirm a centred five-bar window. From index 4 the pivot under test is i-2, so ready_at is the first index at or after 4 whose centre bar is the extreme of its five-bar neighbourhood.
Errors#
- When
barsis empty or is not an array — throws Error - When
multiplieris supplied as a negative number or is not finite — throws Error
Complexity: time O(n),
space O(n).
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#
{
"bars": [
{
"timestamp": "2024-01-02",
"basis": "synthetic-unadjusted",
"open": 100,
"high": 101.45,
"low": 98.695,
"close": 100,
"volume": 750000,
"benchmark": 200
},
{
"timestamp": "2024-01-03",
"basis": "synthetic-unadjusted",
"open": 101.49111452,
"high": 103.38381693,
"low": 100.05480022,
"close": 101.78791214,
"volume": 795117,
"benchmark": 200.56326135
},
{
"timestamp": "2024-01-04",
"basis": "synthetic-unadjusted",
"open": 102.45519048,
"high": 104.6701838,
"low": 100.91147007,
"close": 102.9549389,
"volume": 840234,
"benchmark": 201.11020913
}
],
"parameters": {}
}Call#
fractalSupportAndResistance(input)Returns#
object with 9 fields: topic_id, title, state, ready, ready_at, series, latest, parameters, …
{
"topic_id": "D08-F01-A11",
"title": "Fractal Support and Resistance",
"state": "calculated",
"ready": true,
"ready_at": 5,
"series": {
"upper": [null, null, null, null, null, 105.01857496],
"lower": [null, null, null, null, null, null]
},
"latest": {
"upper": 109.83623682,
"lower": 101.07584902
},
"parameters": {},
"diagnostics": {
"causal": true,
"input_count": 96
}
}Diagrams#
Calculation flow#
Fractal Support and Resistance calculation flow
flowchart LR
A["closed OHLC bars or causally confirmed pivots with session"] --> B["Validate order, basis, and finite values"]
B --> C["Apply the selected Fractal Support and Resistance convention"]
C --> D["Emit value, readiness, and diagnostics"]
D --> E["Interpret descriptively; test outcomes separately"]
B -->|invalid or insufficient| X["Withhold output with a reason"]
Fractal Support and Resistance readiness and evidence states
stateDiagram-v2
[*] --> Waiting
Waiting --> Ready: enough valid causal observations
Waiting --> Rejected: malformed or unsupported input
Ready --> Calculated: selected formula applied
Calculated --> Interpreted: diagnostic and limitation retained
Interpreted --> Ready: next observation arrives
Rejected --> Waiting: corrected input and deterministic reset
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#
- CFA Institute technical-analysis overview — see linked primary or authoritative record
- TA-Lib maintained source — see linked primary or authoritative record
- Long-Term Storage Capacity of Reservoirs — see linked primary or authoritative record
- Evidence decision
- Level 1 evidence map