PINE LIBRARY
Telah dikemas kini

BoxesLib

599
Library "BoxesLib"

isOverlappingBox(_boxes, _top, _bottom)
  Parameters:
    _boxes (array<box>)
    _top (float)
    _bottom (float)

isTooCloseBox(_boxes, _top, _bottom, zoneProximityPct)
  Parameters:
    _boxes (array<box>)
    _top (float)
    _bottom (float)
    zoneProximityPct (float)

createBox(_boxes, _top, _bottom, _leftBarIndex, _color, _txt, _is_breakout, numberLimit, zoneProximityPct, currentClose, isConfirmed)
  Parameters:
    _boxes (array<box>)
    _top (float)
    _bottom (float)
    _leftBarIndex (int)
    _color (color)
    _txt (string)
    _is_breakout (bool)
    numberLimit (int)
    zoneProximityPct (float)
    currentClose (float)
    isConfirmed (bool)

manageBoxes(_boxes, _is_breakout, currentClose, isConfirmed)
  Parameters:
    _boxes (array<box>)
    _is_breakout (bool)
    currentClose (float)
    isConfirmed (bool)
Nota Keluaran
v2
Added Confluence label to identify strong Support and Resistance
Nota Keluaran
v3

Updated:
createBox(_boxes, _boxTexts, _top, _bottom, _leftBarIndex, _color, _txt, _is_breakout, numberLimit, zoneProximityPct, currentClose, isConfirmed)
  Parameters:
    _boxes (array<box>)
    _boxTexts (array<string>)
    _top (float)
    _bottom (float)
    _leftBarIndex (int)
    _color (color)
    _txt (string)
    _is_breakout (bool)
    numberLimit (int)
    zoneProximityPct (float)
    currentClose (float)
    isConfirmed (bool)
Nota Keluaran
v4

Updated:
createBox(_boxes, _boxTexts, _isConfluence, _top, _bottom, _leftBarIndex, _color, _txt, _is_breakout, numberLimit, zoneProximityPct, currentClose, isConfirmed)
  Parameters:
    _boxes (array<box>)
    _boxTexts (array<string>)
    _isConfluence (array<bool>)
    _top (float)
    _bottom (float)
    _leftBarIndex (int)
    _color (color)
    _txt (string)
    _is_breakout (bool)
    numberLimit (int)
    zoneProximityPct (float)
    currentClose (float)
    isConfirmed (bool)
Nota Keluaran
v5

Updated:
createBox(_boxes, _top, _bottom, _leftBarIndex, _color, _txt, _is_breakout, numberLimit, zoneProximityPct, currentClose, isConfirmed, confluenceColor)
  Parameters:
    _boxes (array<box>)
    _top (float)
    _bottom (float)
    _leftBarIndex (int)
    _color (color)
    _txt (string)
    _is_breakout (bool)
    numberLimit (int)
    zoneProximityPct (float)
    currentClose (float)
    isConfirmed (bool)
    confluenceColor (color)
Nota Keluaran
v6

Text color changed to Black
Nota Keluaran
v7

Added:
isBoxConfluent(_testBox, _allBoxes)
  Parameters:
    _testBox (box)
    _allBoxes (array<box>)
Nota Keluaran
v8

Added:
getConfluenceBoxes(_boxes)
  Parameters:
    _boxes (array<box>)
Nota Keluaran
v9
What it does (for your users):

Overlap check (isOverlappingBox): blocks new boxes if they geometrically overlap existing ones.
Proximity check (isTooCloseBox): blocks near-duplicates within zoneProximityPct.
Confluence detection (isBoxConfluent / getConfluenceBoxes): a box is confluent only if another box with different bounds strictly overlaps it (self is skipped).
Creation (createBox):
If no overlap and not too close → create normal box.
If overlap or too close → recolor the existing overlapping/near boxes to the confluence color; do not add a new box.
Enforces capacity and deletes broken boxes against direction.
Maintenance (manageBoxes): keeps boxes aligned to the latest bar and removes invalidated boxes.
Nota Keluaran
v10

Updated:
createBox(_boxes, _top, _bottom, _leftBarIndex, _color, _txt, _is_breakout, numberLimit, currentClose, isConfirmed, confluenceColor)
  Parameters:
    _boxes (array<box>)
    _top (float)
    _bottom (float)
    _leftBarIndex (int)
    _color (color)
    _txt (string)
    _is_breakout (bool)
    numberLimit (int)
    currentClose (float)
    isConfirmed (bool)
    confluenceColor (color)

Removed:
isTooCloseBox(_boxes, _top, _bottom, zoneProximityPct)
Nota Keluaran
v11

Removed:
isOverlappingBox(_boxes, _top, _bottom)

isBoxConfluent(_testBox, _allBoxes)

getConfluenceBoxes(_boxes)
Nota Keluaran
v12
Nota Keluaran
v13

Added:
manageBoxesWithBreakRetest(_boxes, _top, _bottom, _isResistance, currentClose, resistanceBreachUp, resistanceBreachDown, supportBreachDown, supportBreachUp, resistanceRetestCrossback, supportRetestCrossback, maxRetestBars, maxConfirmationBars)
  Parameters:
    _boxes (array<BoxState>): Array of BoxState objects
    _top (float): Top level of box
    _bottom (float): Bottom level of box
    _isResistance (bool): True if box is resistance (false if support)
    currentClose (float): Current closing price - used to validate decisive breaks
    resistanceBreachUp (bool): Crossover signal for resistance (ta.crossover called on every bar globally)
    resistanceBreachDown (bool): Crossunder signal for resistance (ta.crossunder called on every bar globally)
    supportBreachDown (bool): Crossunder signal for support (ta.crossunder called on every bar globally)
    supportBreachUp (bool): Crossover signal for support (ta.crossover called on every bar globally)
    resistanceRetestCrossback (bool): Crossunder signal when price returns to resistance
    supportRetestCrossback (bool): Crossover signal when price returns to support
    maxRetestBars (int): Maximum bars to detect retest (like input_retValid) - limits retest window
    maxConfirmationBars (int): Bars required to confirm a breach (default 2)

countActiveBreakovers(_boxes)
  Parameters:
    _boxes (array<BoxState>)

countRetested(_boxes)
  Parameters:
    _boxes (array<BoxState>)

getMostRecentBreakout(_boxes)
  Parameters:
    _boxes (array<BoxState>)

BoxState
  BoxState Tracks the state of a box through its lifecycle
  Fields:
    boxObj (series box)
    isBreakout (series bool): Whether this box represents a breakout (true) or retest (false)
    barsBreached (series int): Number of bars since breach occurred
    hasRetested (series bool): Whether price has retested this level after breach
    breachDirection (series int): Direction of breach: 1 (up), -1 (down), 0 (none)
Nota Keluaran
v14

Added:
manageBoxesWithLabels(_boxes, _top, _bottom, _isResistance, currentClose, resistanceBreachUp, resistanceBreachDown, supportBreachDown, supportBreachUp, resistanceRetestCrossback, supportRetestCrossback, maxRetestBars, maxConfirmationBars, showBreachLabel, showRetestLabel, breachLabelColor, retestLabelColor)
  Parameters:
    _boxes (array<BoxState>): Array of BoxState objects to track
    _top (float): Top level of support/resistance
    _bottom (float): Bottom level of support/resistance
    _isResistance (bool): True for resistance, false for support
    currentClose (float): Current close price - validates decisive breaks
    resistanceBreachUp (bool): Crossover signal for resistance breakthrough
    resistanceBreachDown (bool): Crossunder signal for resistance invalidation
    supportBreachDown (bool): Crossunder signal for support breakthrough
    supportBreachUp (bool): Crossover signal for support invalidation
    resistanceRetestCrossback (bool): Retest signal for resistance
    supportRetestCrossback (bool): Retest signal for support
    maxRetestBars (int): Maximum bars to detect retest - controls retest window
    maxConfirmationBars (int): Bars required to confirm breach - validates break duration
    showBreachLabel (bool): Whether to display "Breakout" labels
    showRetestLabel (bool): Whether to display "Retest" labels - determines label visibility
    breachLabelColor (color): Color for breakout labels
    retestLabelColor (color): Color for retest labels and retest box coloring - applies to both label and box

Updated:
BoxState
  BoxState Tracks the state of a box through its lifecycle
  Fields:
    boxObj (series box)
    isBreakout (series bool)
    barsBreached (series int)
    hasRetested (series bool)
    breachDirection (series int)
    breachLabel (series label)
    retestLabel (series label)
    retestColor (series color)

Removed:
manageBoxesWithBreakRetest(_boxes, _top, _bottom, _isResistance, currentClose, resistanceBreachUp, resistanceBreachDown, supportBreachDown, supportBreachUp, resistanceRetestCrossback, supportRetestCrossback, maxRetestBars, maxConfirmationBars)
Nota Keluaran
v15

Added:
countActiveBoxes(_boxes)
  Parameters:
    _boxes (array<box>)

Updated:
BoxState
  BoxState Tracks the state of a box through its lifecycle
  Fields:
    boxObj (series box)
    isBreakout (series bool)
    barsBreached (series int)
    hasRetested (series bool)
    breachDirection (series int)

Removed:
manageBoxesWithLabels(_boxes, _top, _bottom, _isResistance, currentClose, resistanceBreachUp, resistanceBreachDown, supportBreachDown, supportBreachUp, resistanceRetestCrossback, supportRetestCrossback, maxRetestBars, maxConfirmationBars, showBreachLabel, showRetestLabel, breachLabelColor, retestLabelColor)

countActiveBreakovers(_boxes)

countRetested(_boxes)

getMostRecentBreakout(_boxes)
Nota Keluaran
v16

Updated:
createBox(_boxes, _top, _bottom, _leftBarIndex, _color, _txt, _is_breakout, numberLimit, currentClose, isConfirmed, confluenceColor)
  Create box with overlap/confluence detection and capacity control.
On overlap: existing box recolored + marked, new box NOT created.
  Parameters:
    _boxes (array<box>): Array of managed boxes
    _top (float): Box top price
    _bottom (float): Box bottom price
    _leftBarIndex (int): Left bar index
    _color (color): Box color
    _txt (string): Box tooltip text
    _is_breakout (bool): True for support (breakout), false for resistance (breakdown)
    numberLimit (int): Max boxes to keep
    currentClose (float): Current close price for invalidation
    isConfirmed (bool): Only act on confirmed bars
    confluenceColor (color): Color for overlapping (confluence) boxes
  Returns: box ID if created, na if overlap detected

manageBoxes(_boxes, _is_breakout, currentClose, isConfirmed)
  Keep boxes right-aligned to current bar, remove when broken
  Parameters:
    _boxes (array<box>): Array of managed boxes
    _is_breakout (bool): True for support, false for resistance
    currentClose (float): Current close price
    isConfirmed (bool): Only remove on confirmed bars

Removed:
countActiveBoxes(_boxes)

BoxState
  BoxState Tracks the state of a box through its lifecycle
Nota Keluaran
v17

Updated:
createBox(_boxes, _top, _bottom, _leftBarIndex, _color, _txt, _is_breakout, numberLimit, currentClose, isConfirmed, confluenceColor)
  Create box with overlap/confluence detection and capacity control
  Parameters:
    _boxes (array<box>)
    _top (float)
    _bottom (float)
    _leftBarIndex (int)
    _color (color)
    _txt (string)
    _is_breakout (bool)
    numberLimit (int)
    currentClose (float)
    isConfirmed (bool)
    confluenceColor (color)

manageBoxes(_boxes, _is_breakout, currentClose, isConfirmed)
  Keep boxes right-aligned to current bar, remove when broken
  Parameters:
    _boxes (array<box>)
    _is_breakout (bool)
    currentClose (float)
    isConfirmed (bool)
Nota Keluaran
v18

Updated:
createBox(_boxes, _top, _bot, _left, _col, _txt, _isBo, _cap, _close, _conf, _confCol)
  Parameters:
    _boxes (array<box>)
    _top (float)
    _bot (float)
    _left (int)
    _col (color)
    _txt (string)
    _isBo (bool)
    _cap (int)
    _close (float)
    _conf (bool)
    _confCol (color)

manageBoxes(_boxes, _isBo, _close, _conf)
  Parameters:
    _boxes (array<box>)
    _isBo (bool)
    _close (float)
    _conf (bool)
Nota Keluaran
v19

Updated:
createBox(_boxes, _top, _bot, _left, _bgCol, _borderCol, _txtCol, _strongBgCol, _strongBorderCol, _txt, _cap, _isBo, _conf, _close)
  Parameters:
    _boxes (array<box>)
    _top (float)
    _bot (float)
    _left (int)
    _bgCol (color)
    _borderCol (color)
    _txtCol (color)
    _strongBgCol (color)
    _strongBorderCol (color)
    _txt (string)
    _cap (int)
    _isBo (bool)
    _conf (bool)
    _close (float)

manageBoxes(_boxes, _isBo, _close, _conf, _extendRight)
  Parameters:
    _boxes (array<box>)
    _isBo (bool)
    _close (float)
    _conf (bool)
    _extendRight (bool)

Penafian

Maklumat dan penerbitan adalah tidak bertujuan, dan tidak membentuk, nasihat atau cadangan kewangan, pelaburan, dagangan atau jenis lain yang diberikan atau disahkan oleh TradingView. Baca lebih dalam Terma Penggunaan.