Constants/probuilder · probacktest · proorder · proscreener

Low

Low returns the lowest price of a bar in ProBuilder. Use Low, or Low[N] for the low N bars ago, as a price source in indicators, screeners, and strategies.

Syntax

probuilder
Low

Low[N] returns the lowest price N bars back, where N is 0 for the current bar, 1 for the previous bar, and so on. Low and Low[0] are equivalent.

How it works

Low reads the bottom price reached during a bar on the chart's working timeframe. On the current, unfinished bar the low can fall further as trading pushes lower, so it may decrease tick by tick until the bar closes.

The bracket offset addresses earlier bars relative to the one being processed. Low[1] is the previous bar's low and Low[10] is the low ten bars ago. The index must remain within the loaded history, since reaching before the first bar produces an error.

To find the lowest low across a window rather than a single bar, use the Lowest function, for example Lowest[20](Low). Support and stop logic often reference a recent Lowest[N](Low) level as a floor beneath current price.

Examples

Example 1, Distance above the recent low (Indicator)

probuilder
// How far the close sits above the lowest low of the last 20 bars
recentLow = Lowest[20](Low)
gap = Close - recentLow
RETURN gap AS "Above 20-bar low"

The indicator measures how far price has risen from its recent trough.

Example 2, Screening for new lows (ProScreener)

probuilder
// Current low undercuts the lowest low of the previous 50 bars
newLow = Low < Lowest[50](Low)[1]

SCREENER[newLow] (Low AS "Low")

The screener returns instruments printing a fresh 50-bar low on the latest bar.

Example 3, Stop placed under a recent low (ProOrder)

probuilder
DEFPARAM CumulateOrders = false

IF Close CROSSES OVER Average[20](Close) THEN
  BUY 1 CONTRACT AT MARKET
ENDIF

// Protective stop just below the lowest low of the last 10 bars
IF LONGONMARKET THEN
  SELL AT Lowest[10](Low) STOP
ENDIF

The exit uses the lowest Low of the recent range as a stop level under the position.

Common errors and gotchas

  • Offset out of range. Low[N] fails when N points before the first loaded bar. Guard long lookbacks or load enough history.
  • Single bar versus window. Low[5] is the low of one bar five back, not the lowest low of the last five bars. For a rolling minimum use Lowest[5](Low).
  • Live bar can extend. On the current bar the low may keep falling until close, so a break of support against the live low can trigger early. Compare against completed bars with Low[1] for confirmation.
  • High, the highest price of a bar.
  • Open, the opening price of a bar.
  • Close, the closing price of a bar.
  • Volume, the traded volume of a bar.
  • Range, the high minus low of a bar.
  • CustomClose, the user-selectable price source.
  • MedianPrice, the average of high and low.
  • DLow, the lowest price of a past daily bar.