PINE LIBRARY

HTFBands

█ OVERVIEW

  Contains type and methods for drawing higher-timeframe bands of several types:
  • Bollinger bands
  • Parabolic SAR
  • Supertrend
  • VWAP

  By copy pasting ready made code sections to your script you can add as many multi-timeframe bands as necessary.

█ HOW TO USE

  Please see instructions in the code. (Important: first fold all sections of the script: press Cmd + K then Cmd + - (for Windows Ctrl + K then Ctrl + -)

█ FULL LIST OF FUNCTIONS AND PARAMETERS

atr2(length)
  An alternate ATR function to the `ta.atr()` built-in, which allows a "series float"
`length` argument.
  Parameters:
    length (float): (series int/float) Length for the smoothing parameter calculation.
  Returns: (float) The ATR value.

pine_supertrend2(factor, atrLength, wicks)
  An alternate SuperTrend function to `supertrend()`, which allows a "series float"
`atrLength` argument.
  Parameters:
    factor (float): (series int/float) Multiplier for the ATR value.
    atrLength (float): (series int/float) Length for the ATR smoothing parameter calculation.
    wicks (simple bool): (simple bool) Condition to determine whether to take candle wicks into account when
reversing trend, or to use the close price. Optional. Default is false.
  Returns: ([float, int]) A tuple of the superTrend value and trend direction.

method getDefaultBandQ1(bandType)
  For a given BandType returns its default Q1
  Namespace types: series BandTypes
  Parameters:
    bandType (series BandTypes)

method getDefaultBandQ2(bandType)
  For a given BandType returns its default Q2
  Namespace types: series BandTypes
  Parameters:
    bandType (series BandTypes)

method getDefaultBandQ3(bandType)
  For a given BandType returns its default Q3
  Namespace types: series BandTypes
  Parameters:
    bandType (series BandTypes)

method init(this, bandsType, q1, q2, q3, vwapAnchor)
  Initiates RsParamsBands for each band (used in htfUpdate() withi req.sec())
  Namespace types: RsParamsBands
  Parameters:
    this (RsParamsBands)
    bandsType (series BandTypes)
    q1 (float): (float) Depending on type: BB - length, SAR - AF start, ST - ATR's prd
    q2 (float): (float) Depending on type: BB - StdDev mult, SAR - AF step, ST - mult
    q3 (float): (float) Depending on type: BB - not used, SAR - AF max, ST - not used
    vwapAnchor (series VwapAnchors): (VwapAnchors) VWAP ahcnor

method init(this, bandsType, tf, showRecentBars, lblsShow, lblsMaxLabels, lblSize, lnMidClr, lnUpClr, lnLoClr, fill, fillClr, lnWidth, lnSmoothen)
  Initialises object with params (incl. input). Creates arrays if any.
  Namespace types: HtfBands
  Parameters:
    this (HtfBands)
    bandsType (series BandTypes): (BandTypes) Just used to enable/disable - if BandTypes.none then disable )
    tf (string): (string) Timeframe
    showRecentBars (int): (int) Only show over this number of recent bars
    lblsShow (bool): (bool) Show labels
    lblsMaxLabels (int): (int) Max labels to show
    lblSize (string): (string) Size of the labels
    lnMidClr (color): (color) Middle band color
    lnUpClr (color): (color) Upper band color
    lnLoClr (color): (color) Lower band color
    fill (bool)
    fillClr (color): (color) Fill color
    lnWidth (int): (int) Line width
    lnSmoothen (bool): (bool) Smoothen the bands

method htfUpdateTuple(rsPrms, repaint)
  (HTF) Calculates Bands within request.security(). Returns tuple [middleBand, upperBand, lowerBand]. If any or all of the bands are not available returns na as their value.
  Namespace types: RsParamsBands
  Parameters:
    rsPrms (RsParamsBands): (RsParamsBands) Parameters of the band.
    repaint (bool): (bool) If true does not update on realtime bars.
  Returns: A tuple [HTF bar_index, middle, upper, lower, direction] (corresponds to fields in RsReturnBands)

method importRsRetTuple(this, htfBi, mid, up, lo, dir)
  Imports a tuple returned from req.sec() into an HtfBands object
  Namespace types: HtfBands
  Parameters:
    this (HtfBands): (HtfBands) Object to import to
    htfBi (int): (float) Higher timeframe's bar index (Default = na)
    mid (float)
    up (float): (float) Value of upper band (Default = na)
    lo (float): (float) Value of lower band (Default = na)
    dir (int): (int) Direction (for bands like Parabolic SAR) (Default = na)

method addUpdDrawings(this, rsPrms)
  Draws band's labels
  Namespace types: HtfBands
  Parameters:
    this (HtfBands)
    rsPrms (RsParamsBands)

method update(this)
  Sets band's values to na on intrabars if `smoothen` is set.
  Namespace types: HtfBands
  Parameters:
    this (HtfBands)

method newRsParamsBands(this)
  A wraper for RsParamsBands.new()
  Namespace types: LO_A
  Parameters:
    this (LO_A)

method newHtfBands(this)
  A wraper for HtfBands.new()
  Namespace types: LO_B
  Parameters:
    this (LO_B)

RsParamsBands
  Used to pass bands' params to req.sec()
  Fields:
    bandsType (series BandTypes): (enum BandTypes) Type of the band (BB, SAR etc.)
    q1 (series float): (float) Depending on type: BB - length, SAR - AF start, ST - ATR's prd
    q2 (series float): (float) Depending on type: BB - StdDev mult, SAR - AF step, ST - mult
    q3 (series float): (float) Depending on type: BB - not used, SAR - AF max, ST - not used
    vwapAnchor (series VwapAnchors)

RsReturnBands
  Used to return bands' data from req.sec(). Params of the bands are in RsParamsBands
  Fields:
    htfBi (series float): (float) Higher timeframe's bar index (Default = na)
    upBand (series float): (float) Value of upper band (Default = na)
    loBand (series float): (float) Value of lower band (Default = na)
    midBand (series float): (float) Value of middle band (Default = na)
    dir (series int): (float) Direction (for bands like Parabolic SAR) (Default = na)

BandsDrawing
  Contains plot visualization parameters and stores and keeps track of lines, labels and other visual objects (not plots)
  Fields:
    lnMidClr (series color): (color) Middle band color
    lnLoClr (series color): (color) Lower band color
    lnUpClr (series color): (color) Upper band color
    fillUpClr (series color)
    fillLoClr (series color)
    lnWidth (series int): (int) Line width
    lnSmoothen (series bool): (bool) Smoothen the bands
    showHistory (series bool): (bool) If true show bands lines, otherwise only current level
    showRecentBars (series int): (int) Only show over this number of recent bars
    arLbl (array<label>): (label Labels
    lblsMaxLabels (series int): (int) Max labels to show
    lblsShow (series bool): (bool) Show labels
    lblSize (series string): (string) Size of the labels

HtfBands
  Calcs and draws HTF bands
  Fields:
    rsRet (RsReturnBands): (RsReturnBands) Bands' values
    rsRetNaObj (RsReturnBands): (RsReturnBands) Dummy na obj for returning from request.security()
    rsPrms (RsParamsBands): (RsParamsBands) Band parameters (for htfUpdate() called in req.sec() )
    drw (BandsDrawing): (BandsDrawing) Contains plot visualization parameters and stores and keeps track of lines, labels and other visual objects (not plots)
    enabled (series bool): (bool) Toggles bands on/off
    tf (series string): (string) Timeframe

LO_A
  LO Library object, whose only purpose is to serve as a shorthand for library name in script code.
  Fields:
    dummy (series string)

LO_B
  LO Library object, whose only purpose is to serve as a shorthand for library name in script code.
  Fields:
    dummy (series string)
bollingersbandSARsupertrendtechindicatorvwapbands

Pinebibliotek

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.

Frånsägelse av ansvar