Skip to content

Standard Deviation Channels

Standard Deviation Channels are prices ranges based on an linear regression centerline and standard deviations band widths. [Discuss] 💬

csharp
// C# usage syntax
IReadOnlyList<StdDevChannelsResult> results =
  bars.ToStdDevChannels(lookbackPeriods, stdDeviations);

Parameters

paramtypedescription
lookbackPeriodsintSize (N) of the evaluation window. Must be null or greater than 1 to calculate. A null value will produce a full bars evaluation window (see below). Default is 20.
stdDeviationsdoubleWidth of bands. Standard deviations (D) from the regression line. Must be greater than 0. Default is 2.

Historical price bars requirements

You must have at least N periods of bars to cover the warmup periods.

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

csharp
IReadOnlyList<StdDevChannelsResult>
  • This method returns a time series of all available indicator values for the bars provided.
  • 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.
  • Up to N-1 periods will have null values since there's not enough data to calculate.

️🖌️ Repaint warning

Historical results are a function of the current period window position and will fluctuate over time. Recommended for visualization; not recommended for backtesting.

StdDevChannelsResult

propertytypedescription
TimestampDateTimeDate from evaluated TBar
CenterlinedoubleLinear regression line (center line)
UpperChanneldoubleUpper line is D standard deviations above the center line
LowerChanneldoubleLower line is D standard deviations below the center line
BreakPointboolHelper information. Indicates first point in new window.

Utilities

See Utilities and helpers for more information.

Alternative depiction for full bars variant

If you specify null for the lookbackPeriods, you will get a regression line over the entire provided bars.

Chaining

This indicator may be generated from any chain-enabled indicator or method.

csharp
// example
var results = barsEval
    .Use(CandlePart.HL2)
    .ToStdDevChannels(..);

Results cannot be further chained with additional transforms.

See Chaining indicators for more.

Streaming

⚠️ Streaming not supported: Due to the reverse-window algorithm that recalculates the entire dataset on each new data point, Standard Deviation Channels is only available as a batch Series implementation. The computational cost grows quadratically (O(n²)) as the dataset size increases, making it impractical for incremental streaming (StreamHub) or buffer (BufferList) scenarios.

Recommendation: Use the Series implementation (ToStdDevChannels()) with periodic batch recalculation. For real-time scenarios, consider recalculating at appropriate intervals (e.g., end of period, every N bars) rather than on every tick.