Fractal Chaos Bands (FCB)
Created by Edward William Dreiss, Fractal Chaos Bands outline high and low price channels to depict broad less-chaotic price movements. FCB is a channelized depiction of Williams Fractal. [Discuss] 💬
// C# usage syntax
IReadOnlyList<FcbResult> results =
bars.ToFcb(windowSpan);Parameters
| param | type | description |
|---|---|---|
windowSpan | int | Fractal evaluation window span width (S). Must be at least 2. Default is 2. |
The total evaluation window size is 2×S+1, representing ±S from the evaluation date. See Williams Fractal for more information about Fractals and windowSpan.
Historical price bars requirements
You must have at least 2×S+1 periods of bars to cover the warmup periods; however, more is typically provided since this is a chartable candlestick pattern.
bars is a collection of generic TBar historical price bars. It should have a consistent frequency (day, hour, minute, etc). See the Guide for more information.
Response
IReadOnlyList<FcbResult>- This method returns a time series of all available indicator values for the
barsprovided. - It always returns the same number of elements as there are in the historical price bars.
- It does not return a single incremental indicator value.
- The periods before the first fractal are
nullsince they cannot be calculated.
️🖌️ Repaint warning
Fractal Chaos Bands are based on Williams Fractal, which uses future bars. This indicator will never identify bands in the last S periods of bars since fractals are retroactively identified.
FcbResult
| property | type | description |
|---|---|---|
Timestamp | DateTime | Date from evaluated TBar |
UpperBand | decimal | FCB upper band |
LowerBand | decimal | FCB lower band |
Utilities
See Utilities and helpers for more information.
Chaining
This indicator is not chain-enabled and must be generated from bars. It cannot be used for further processing by other chain-enabled indicators.
See Chaining indicators for more.
Streaming
Use the buffer-style List<T> when you need incremental calculations without a hub:
FcbList fcbList = new(windowSpan);
foreach (IBar bar in bars) // simulating stream
{
fcbList.Add(bar);
}
// based on `ICollection<FcbResult>`
IReadOnlyList<FcbResult> results = fcbList;Subscribe to a BarHub for advanced streaming scenarios:
BarHub barHub = new();
FcbHub observer = barHub.ToFcbHub(windowSpan);
foreach (IBar bar in bars) // simulating stream
{
barHub.Add(bar);
}
IReadOnlyList<FcbResult> results = observer.Results;See Buffer lists and Stream hubs for full usage guides.