Electrified

Volatility

Library "Volatility"
Functions for determining if volatility (true range) is within or exceeds normal.
The "True Range" (ta. tr ) is used for measuring volatility .
Values are normalized by the volume adjusted weighted moving average (VAWMA) to be more like percent moves than price.

current( len ) Returns the current price adjusted volatitlity ratio.
  Parameters:
    len: Number of bars to get a volume adjusted weighted average price.

normal( len , maxDeviation, level, gapDays, spec, res) Returns the normal upper range of volatility . Compensates for overnight gaps within a regular session.
  Parameters:
    len: Number of bars to measure volatility .
    maxDeviation: The limit of volatility before considered an outlier.
    level: The amount of standard deviation after cleaning outliers to be considered within normal.
    gapDays: The number of days in the past to measure overnight gap volaility.
    spec: session.regular (default), session.extended or other time spec.
    res: The resolution (default = '1440').

isNormal( len , maxDeviation, level, gapDays, spec, res) Returns true if the volatility (true range) is within normal levels. Compensates for overnight gaps within a regular session.
  Parameters:
    len: Number of bars to measure volatility .
    maxDeviation: The limit of volatility before considered an outlier.
    level: The amount of standard deviation after cleaning outliers to be considered within normal.
    gapDays: The number of days in the past to measure overnight gap volaility.
    spec: session.regular (default), session.extended or other time spec.
    res: The resolution (default = '1440').

severity( len , maxDeviation, level, gapDays, spec, res) Returns ratio of the current value to the normal value. Compensates for overnight gaps within a regular session.
  Parameters:
    len: Number of bars to measure volatility .
    maxDeviation: The limit of volatility before considered an outlier.
    level: The amount of standard deviation after cleaning outliers to be considered within normal.
    gapDays: The number of days in the past to measure overnight gap volaility.
    spec: session.regular (default), session.extended or other time spec.
    res: The resolution (default = '1440').
Notas de Lançamento: v2 Attempt to improve performance and reduce dependencies.
Notas de Lançamento: v3 Improved performance by exposing gap level to caller if needed. Opened up ability to use a different volatility value.

Added:
normalWithGap(len, maxDeviation, level, gapDays, spec, res, volatility) Returns the normal upper range of volatility and the normal gap value.
  Parameters:
    len: Number of bars to measure volatility.
    maxDeviation: The limit of volatility before considered an outlier.
    level: The amount of standard deviation after cleaning outliers to be considered within normal.
    gapDays: The number of days in the past to measure overnight gap volaility.
    spec: session.regular (default), session.extended or other time spec.
    res: The resolution (default = '1440').
    volatility: The value to use as a volatility measure. Default is (ta.tr) the "True Range".
  Returns:

Updated:
normal(len, maxDeviation, level, gapDays, spec, res, volatility) Returns the normal upper range of volatility. Compensates for overnight gaps within a regular session.
  Parameters:
    len: Number of bars to measure volatility.
    maxDeviation: The limit of volatility before considered an outlier.
    level: The amount of standard deviation after cleaning outliers to be considered within normal.
    gapDays: The number of days in the past to measure overnight gap volaility.
    spec: session.regular (default), session.extended or other time spec.
    res: The resolution (default = '1440').
    volatility: The value to use as a volatility measure. Default is (ta.tr) the "True Range".

isNormal(len, maxDeviation, level, gapDays, spec, res, volatility) Returns true if the volatility (true range) is within normal levels. Compensates for overnight gaps within a regular session.
  Parameters:
    len: Number of bars to measure volatility.
    maxDeviation: The limit of volatility before considered an outlier.
    level: The amount of standard deviation after cleaning outliers to be considered within normal.
    gapDays: The number of days in the past to measure overnight gap volaility.
    spec: session.regular (default), session.extended or other time spec.
    res: The resolution (default = '1440').
    volatility: The value to use as a volatility measure. Default is (ta.tr) the "True Range".

severity(len, maxDeviation, level, gapDays, spec, res, volatility) Returns ratio of the current value to the normal value. Compensates for overnight gaps within a regular session.
  Parameters:
    len: Number of bars to measure volatility.
    maxDeviation: The limit of volatility before considered an outlier.
    level: The amount of standard deviation after cleaning outliers to be considered within normal.
    gapDays: The number of days in the past to measure overnight gap volaility.
    spec: session.regular (default), session.extended or other time spec.
    res: The resolution (default = '1440').
    volatility: The value to use as a volatility measure. Default is (ta.tr) the "True Range".

Removed:
current(len) Returns the current price adjusted volatitlity ratio.
Notas de Lançamento: v4 Improved use of data cleaning and gap detection.
Notas de Lançamento: v5 Improved defaults.
Pine library

In true TradingView spirit, the author has published this Pine code as an open-source library so that other Pine programmers from our community can reuse it. Cheers to the author! You may use this library privately or in other open-source publications, but reuse of this code in a publication is governed by House Rules.

Want to use this library?

Copy the following line and paste it in your script.