Library "Pattern"

Pattern object definitions and functions. Easily draw and keep track of patterns, legs, and points.

Supported pattern types (as of Version 1):
Type             Leg validation         # legs
"xabcd"         Direction                3 or 4 (point D not required)
"zigzag"         Direction                >= 2
"free"            None                      >= 2

erase_label(this)
  Delete the point label
  Parameters:
    this: Point
  Returns: Void

draw_label(this, position, clr, transp, txt_clr, txt, tooltip, size)
  Draw the point label
  Parameters:
    this: Point
    position
    clr
    transp
    txt_clr
    txt
    tooltip
    size
  Returns: line

leg_init(a, b, prev, next, line)
  Initialize a pattern leg
  Parameters:
    a: Point A (required)
    b: Point B (required)
    prev: Previous leg
    next: Next leg
    line: Line
  Returns: New instance of leg object

erase(this)
  Delete the pattern leg
  Parameters:
    this: Leg
  Returns: Void

erase(this)
  Parameters:
    this

draw(this, clr, style, transp, width)
  Draw the pattern leg
  Parameters:
    this: Leg
    clr: Color
    style: Style ("solid", "dotted", "dashed", "arrowleft", "arrowright")
    transp: Transparency
    width: Width
  Returns: line

draw(this, clr, style, transp, width)
  Parameters:
    this
    clr
    style
    transp
    width

leg_getLineTerms(this)
  Get the slope and y-intercept of a leg
  Parameters:
    this: Leg
  Returns:

leg_getPrice(this, index)
  Get the price (Y) at a given bar index (X) within the leg
  Parameters:
    this: Leg
    index: Bar index
  Returns: Price (float)

pattern_init(legs, tp, name, subType, pid)
  Initialize a pattern object from a given set of legs
  Parameters:
    legs: Array of pattern legs (required)
    tp: Pattern type ("zigzag", "xabcd", or "free". dft = "free")
    name: Pattern name
    subType: Pattern subtype
    pid: Pattern Identifier string
  Returns: New instance of pattern object, if one was successfully created

pattern_init(points, tp, name, subType, pid)
  Initialize a pattern object from a given set of points
  Parameters:
    points
    tp: Pattern type ("zigzag", "xabcd", or "free". dft = "free")
    name: Pattern name
    subType: Pattern subtype
    pid: Pattern Identifier string
  Returns: New instance of pattern object, if one was successfully created

point
  A point on the chart (x,y)
  Fields:
    x: Bar index (x coordinate)
    y
    label

leg
  A pattern leg (point A to point B)
  Fields:
    a: Point A
    b
    deltaX
    deltaY
    prev
    next
    retrace
    line

pattern
  A pattern (set of at least 2 connected legs)
  Fields:
    legs
    type
    subType
    name
    pid

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.

Disclaimer

The information and publications are not meant to be, and do not constitute, financial, investment, trading, or other types of advice or recommendations supplied or endorsed by TradingView. Read more in the Terms of Use.

Want to use this library?

Copy the following line and paste it in your script.