PINE LIBRARY

TrendPivots

Updated
Library "TrendPivots"

This library provides functions to search for bullish and bearish divergences between pivots and indicators. Functions search for higher highs and lower lows, automating lines, labels and signals for technical analysis and strategies.

method maxBeforeLast(id)
  Method function to get the maximum price before the last, stored in an array pivotPoint.
  Namespace types: pivotPoint[]
  Parameters:
    id (pivotPoint[]): (array pivotPoint) The pivotPoint array to inspect.
  Returns: pivotPoint

method minBeforeLast(id)
  Method function to get the minimum price before the last, stored in an array pivotPoint.
  Namespace types: pivotPoint[]
  Parameters:
    id (pivotPoint[]): (array pivotPoint) The pivotPoint array to inspect.
  Returns: pivotPoint

method pivotLine(id, a, b, color)
  Sets the coordinates of a given line using two pivotPoint variables.
  Namespace types: series line
  Parameters:
    id (line): (line) Existing line
    a (pivotPoint): (pivotPoint) First pivotPoint.
    b (pivotPoint): (pivotPoint) Second pivotPoint.
    color (color): (color) The desired color. Default is red.
  Returns: void

bearishDivergence(pivotArray)
  Look for bearish divergence in a pivotPoint array cointaining pivot highs.
  Parameters:
    pivotArray (pivotPoint[]): (array pivotPoint) The pivotPoint array to inspect.
  Returns: bool True if bearish divergence was found.

bullishDivergence(pivotArray)
  Look for bullish divergence in a pivotPoint array cointaining pivot lows.
  Parameters:
    pivotArray (pivotPoint[]): (array pivotPoint) The pivotPoint array to inspect.
  Returns: bool True if bullish divergence was found.

uptrendPivot(leftBars, rightBars, indicator, reset, plotLabel, plotLine)
  Detects higher highs, higher lows and bearish divergence in an uptrend. Creates a line when bearish divergence is found, and labels.
  Parameters:
    leftBars (int): (int)
    rightBars (int): (int)
    indicator (float): (float) RSI, MACD or other value.
    reset (bool): (bool) A bool variable to reinitiates the pivot computation, such as time changes, crossovers, or another.
    plotLabel (bool): (bool) If true (default), plots labels to higher highs and for each pivot low. Default = true.
    plotLine (bool): (bool) If true (default), plots a line linking the lower lows with divergence. Default = true.
  Returns: [pH_point, pL_point, lowerLow, lowerHigh, bullish_divergence]

downtrendPivot(leftBars, rightBars, indicator, reset, plotLabel, plotLine)
  Detects lower lows, lower highs, and bullish divergence in a downtrend. Creates a line when bullish divergence is found, and labels.
  Parameters:
    leftBars (int): (int)
    rightBars (int): (int)
    indicator (float): (float) RSI, MACD or other value.
    reset (bool): (bool) A bool variable to reinitiates the pivot computation, such as time changes, crossovers, or another.
    plotLabel (bool): (bool) If true (default), plots labels to lower lows, and for each pivot low.
    plotLine (bool): (bool) If true (default), plots a line linking the lower lows with divergence. Default = true.
  Returns: [pH_point, pL_point, lowerLow, lowerHigh, bullish_divergence]

pivotPoint
  The coordinates of a pivot point and corresponding indicator value.
  Fields:
    x (series int): (int) Time.
    y (series float): (float) Price.
    indicator (series float): (float) Indicator value.
Release Notes
v2

Updated:
uptrendPivot(leftBars, rightBars, indicator, reset, plotLabel, plotLine)
  Detects higher highs, higher lows and bearish divergence in an uptrend. Creates a line when bearish divergence is found, and labels.
  Parameters:
    leftBars (int): (int)
    rightBars (int): (int)
    indicator (float): (float) RSI, MACD or other value.
    reset (bool): (bool) A bool variable to reinitiates the pivot computation, such as time changes, crossovers, or another.
    plotLabel (bool): (bool) If true (default), plots labels to higher highs and for each pivot low. Default = true.
    plotLine (bool): (bool) If true (default), plots a line linking the lower lows with divergence. Default = true.
  Returns: [pH_point, pL_point, higherHigh, higherLow, bearish_divergence]
Release Notes
v3
Adds more information to functions;

Changes in uptrendPivot() and downtrendPivot() function:
- Returned pivotPoints changed from series to var to retain values;
- Traces lines every higher high pivot (red = bearish divergence in uptrendPivot());
- Traces lines every lower low pivot (green = bullish divergence in downtrendPivot()).
- Adds indicator values in labels.

Updated:
method maxBeforeLast(id)
  Method function to get the maximum price before the last, stored in an array pivotPoint.
  Namespace types: pivotPoint[]
  Parameters:
    id (pivotPoint[]): (array pivotPoint) The pivotPoint array to inspect.
  Returns: pivotPoint The last higher high pivot coordinates and indicator before current.

method minBeforeLast(id)
  Method function to get the minimum price before the last, stored in an array pivotPoint.
  Namespace types: pivotPoint[]
  Parameters:
    id (pivotPoint[]): (array pivotPoint) The pivotPoint array to inspect.
  Returns: pivotPoint The last lower low pivot coordinates and indicator before current.

bearishDivergence(pivotArray)
  Look for bearish divergence in a pivotPoint array cointaining pivot highs.
  Parameters:
    pivotArray (pivotPoint[]): (array pivotPoint) The pivotPoint array to inspect.
  Returns: series bool True if bearish divergence was found.

bullishDivergence(pivotArray)
  Look for bullish divergence in a pivotPoint array cointaining pivot lows.
  Parameters:
    pivotArray (pivotPoint[]): (array pivotPoint) The pivotPoint array to inspect.
  Returns: series bool True if bullish divergence was found.

uptrendPivot(leftBars, rightBars, indicator, reset, plotLabel, plotLine)
  Detects higher highs, higher lows and bearish divergence in an uptrend. Creates a line linking two pivot highs (red when bearish divergence, otherwise green), and labels.
  Parameters:
    leftBars (int): (int)
    rightBars (int): (int)
    indicator (float): (float) RSI, MACD or other value.
    reset (bool): (bool) A bool variable to reinitiates the pivot computation, such as time changes, crossovers, or another.
    plotLabel (bool): (bool) If true (default), plots labels to higher highs and for each pivot low. Default = true.
    plotLine (bool): (bool) If true (default), plots a line linking the lower lows with divergence. Default = true.
  Returns: [var pivotPoint pH_point, var pivotPoint pL_point, series bool higherHigh, series bool higherLow, series bool bearish_divergence] -> The most recent higher high pivot, the most recent pivot low, true when higher high, true when higher low, true when bearish divergence.

downtrendPivot(leftBars, rightBars, indicator, reset, plotLabel, plotLine)
  Detects lower lows, lower highs, and bullish divergence in a downtrend. Creates a line linking two pivot lows (green when bullish divergence, otherwise red), and labels.
  Parameters:
    leftBars (int): (int)
    rightBars (int): (int)
    indicator (float): (float) RSI, MACD or other value.
    reset (bool): (bool) A bool variable to reinitiates the pivot computation, such as time changes, crossovers, or another.
    plotLabel (bool): (bool) If true (default), plots labels to lower lows, and for each pivot low.
    plotLine (bool): (bool) If true (default), plots a line linking the lower lows with divergence. Default = true.
  Returns: [var pivotPoint pH_point, var pivotPoint pL_point, series bool lowerLow, series bool lowerHigh, series bool bullish_divergence] -> The most recent lower low pivot, the most recent pivot high, true if lower low, true if lower high, true when bullish divergence.
Release Notes
v4

Updated:
downtrendPivot(leftBars, rightBars, indicator, reset, plotLabel, plotLine)
  Detects lower lows, lower highs, and bullish divergence in a downtrend. Creates a line linking two pivot lows (green when bullish divergence, otherwise red), and labels.
  Parameters:
    leftBars (int): (int)
    rightBars (int): (int)
    indicator (float): (float) RSI, MACD or other value.
    reset (bool): (bool) A bool variable to reinitiates the pivot computation, such as time changes, crossovers, or another.
    plotLabel (bool): (bool) If true (default), plots labels to lower lows, and for each pivot low.
    plotLine (bool): (bool) If true (default), plots a line linking the lower lows with divergence. Default = true.
  Returns: [var pivotPoint pL_point, var pivotPoint pH_point, series bool lowerLow, series bool lowerHigh, series bool bullish_divergence] -> The most recent lower low pivot, the most recent pivot high, true if lower low, true if lower high, true when bullish divergence.
Release Notes
v5
Bug fix on pivotHigh labels in downtrendPivot() function.
Bearish PatternsBullish PatternsconvergenceDivergencedowntrendtechindicatoruptrend

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.


Also on:

Disclaimer