Volatility Stop

Created by J. Welles Wilder, Volatility Stop, also known his Volatility System, is an ATR based indicator used to determine trend direction, stops, and reversals. It is similar to Wilder’s Parabolic SAR and SuperTrend. [Discuss] 💬

chart for Volatility Stop

// C# usage syntax
IEnumerable<VolatilityStopResult> results =
  quotes.GetVolatilityStop(lookbackPeriods, multiplier);

Parameters

lookbackPeriods int - Number of periods (N) ATR lookback window. Must be greater than 1. Default is 7.

multiplier double - ATR multiplier for the offset. Must be greater than 0. Default is 3.0.

Historical quotes requirements

You must have at least N+100 periods of quotes to cover the warmup and convergence periods. Since the underlying ATR uses a smoothing technique, we recommend you use at least N+250 data points prior to the intended usage date for better precision. Initial values prior to the first reversal are not accurate and are excluded from the results. Therefore, provide sufficient quotes to capture prior trend reversals.

quotes is a collection of generic TQuote historical price quotes. It should have a consistent frequency (day, hour, minute, etc). See the Guide for more information.

Response

IEnumerable<VolatilityStopResult>

Convergence warning: The first N+100 periods will have decreasing magnitude, convergence-related precision errors that can be as high as ~5% deviation in indicator values for earlier periods.

VolatilityStopResult

Date DateTime - Date from evaluated TQuote

Sar double - Stop and Reverse value contains both Upper and Lower segments

IsStop bool - Indicates a trend reversal

UpperBand double - Upper band only (bearish/red)

LowerBand double - Lower band only (bullish/green)

UpperBand and LowerBand values are provided to differentiate bullish vs bearish trends and to clearly demark trend reversal. Sar is the contiguous combination of both upper and lower line data.

Utilities

See Utilities and helpers for more information.

Chaining

Results can be further processed on Sar with additional chain-enabled indicators.

// example
var results = quotes
    .GetVolatilityStop(..)
    .GetEma(..);

This indicator must be generated from quotes and cannot be generated from results of another chain-enabled indicator or method.