Daily Sweeps: Reclaims, Invalidation, and the Cost of Re-entry

Video: Once You Learn The Daily Sweep, Trading Becomes Simple
Creator: JadeCap
Original Video: Watch the original video
Difficulty: Intermediate

The Big Idea

JadeCap’s sweep framework looks for price to cross a meaningful prior high or low and then close back on the other side. The setup depends on the reclaim and the broader directional context, not simply a wick beyond a level.

The creator illustrates the idea with weekly ranges on four-hour charts, daily levels on hourly charts, and session ranges on five-minute charts. These examples explain the same concept at different scales; they do not establish identical performance across timeframes.

If You Remember Only One Thing

A reclaim is observable; the story about who caused it is not established by candles, and each re-entry consumes more of the risk budget.

60-Second Summary

  • Use completed daily or session references for intraday review.
  • Require the reclaim close rather than predicting it from a forming wick.
  • Match the setup’s timeframe to the intended holding period.
  • Place invalidation against the actual sweep extreme.
  • Count repeated attempts as a combined sequence, including costs.

Mark the Reference Before Price Arrives

Potential references include completed monthly, weekly, daily, and session extremes, along with visible equal highs or lows. Choose a small set relevant to the planned holding period. A session trader and a position trader should not automatically use the same target horizon.

When using a previous session, define its hours and timezone. When using a swing, identify when it became confirmable. A completed range is historical information; the final extreme of a still-forming range is not.

The Reclaim Is the Essential Observation

For a bearish example, price trades above a known high and then closes below it. For a bullish example, price trades below a known low and closes above it. The source prefers a quick rejection rather than prolonged trading outside the reference.

A bearish higher-timeframe view favors examining sweeps above highs for short entries. A bullish view favors examining sweeps below lows for longs. “Bias” still needs explicit criteria. Do not declare it obvious only after seeing which direction eventually won.

Correct the Order-Type Language

The transcript sometimes describes limit orders turning into market orders when triggered. The relevant distinction is that a stop order becomes a market order after its trigger; a stop-limit becomes a limit order. An ordinary limit order does not automatically become a market order because price crosses a chart level. The SEC’s order-type overview explains these differences.

Stops may cluster near obvious references, but a candle does not show the complete order book, the identity of counterparties, or proof that an institution intentionally caused a stop run. The observable signal is the excursion and reclaim. Claims of absorption or institutional positioning remain interpretations without additional evidence.

Put Invalidation Beyond the Actual Sweep

The creator places a short stop beyond the sweep high and a long stop beyond the sweep low. This gives the trade room to revisit part of the wick while keeping a defined price that contradicts the setup.

For a hypothetical long after reclaiming 100, suppose entry is 100.50, protection is 99.50, and a previously identified target is 103. Planned reward is 2.5R before costs. If confirmation moves entry to 102, that same target and stop offer only 0.4R. The pattern label does not preserve the earlier opportunity.

A Sweep Can Fail

The video includes a weekly-low reclaim that fails before another attempt later succeeds. That is a useful limitation: a completed reclaim still does not guarantee reversal. The market can resume its breakout, consolidate for days, or reach an earlier obstacle before the intended target.

Holding through a retracement is only reasonable within the predefined risk plan. It is not a reason to move the stop farther away after entry. Targets should be known references rather than the largest move visible after the fact.

Budget Repeated Attempts Together

The creator discusses two, three, or four attempts when conviction remains strong. Each attempt adds risk. Four losses of 1% of current equity reduce equity by about 3.94% before additional costs. A later winner may not recover that sequence.

Specify a maximum attempt count and daily or thesis-level loss budget before trading. Require a fresh reclaim and a new reward calculation; being stopped out is not itself a new entry signal.

Build a Reviewable Sample

Record the completed reference, directional criteria, reclaim close, sweep extreme, entry, stop, target, costs, and result. Separate first attempts from re-entries and compare session-level setups with weekly-level ones. Keep failed reclaims in the sample.

The indicator below makes one range-reclaim interpretation explicit without silently adding a moving-average bias or an arbitrary custom session. Its event rules are separated from the source’s discretionary context and execution choices.

A Re-entry Sequence in R

Consider an original hypothetical weekly-low thesis with three equal-risk attempts. The first loses 1R, the second loses 1R, and the third gains 2R. The gross sequence is flat. After three round trips of costs, it is negative. Reporting only the final successful reclaim would turn a weak sequence into an impressive-looking example.

If the third trade gains 4R, the gross sequence becomes +2R. That can be a useful outcome, but it still required tolerating two losses and funding the third attempt. A plan needs both the eventual payoff distribution and the maximum acceptable exposure along the way.

Do not increase the next size merely because the thesis feels overdue. Under a fixed current-equity percentage, the same fraction applies to the smaller remaining account. Under a fixed dollar budget, the fraction at risk rises as equity falls.

Research Lab: How Many Attempts Are Worth Allowing?

This is an original proposed comparison. Define a valid reclaim and freeze the higher-timeframe bias rule. Set one target convention and one sweep-based stop convention. Compare maximum attempt counts of one, two, and three per reference level, with the same total cash-risk budget for the entire thesis.

Holding the total budget constant matters. Three attempts at the full one-attempt size are a larger risk allocation, not a clean test of retry value. Record net R per thesis, cash drawdown, number of entries, time in the market, and the contribution of each additional attempt.

Interpret the third attempt by its incremental result: did allowing it improve the sequence after its extra costs, or merely increase turnover? Repeat the comparison on later dates using unchanged definitions. If a retry advantage appears only on one handpicked recovery, it has not established a general rule.

Does Fast Rejection Matter?

A second study can compare a reclaim within one bar, within two to three bars, and after a longer stay outside. Keep the level type, direction, stop, target, and execution timing fixed. Measure how much adverse movement follows confirmation, how often the opposite reference is reached, and the net result after costs.

Do not put a long outside-range consolidation into a “fast sweep” group because it eventually reversed. The classification must be assigned from information available when the reclaim occurs.

Check Your Understanding

Does crossing a high prove institutional stop hunting? No; it establishes only the observed price excursion. Can a reclaim fail? Yes. Is an ordinary limit order a stop? No. Can a profitable final attempt hide a losing thesis? Yes, if earlier attempts and costs are omitted. What makes the retry study fair? Fixed rules and a common total risk budget, with complete sequence accounting.

Pine Script Indicator: Daily Sweep, Reclaim, and Invalidation

Show Pine Script v6 — Daily Sweep Reclaim Indicator

//@version=6
// https://candlechasers.com/daily-sweep-reclaim-invalidation/
// Original chart-event indicator, not a strategy or guarantee of reversal.
indicator("CandleChasers - Daily Sweep Reclaim", overlay=true)
refTF = input.timeframe("D", "Completed reference period", options=["D", "W", "M"])
maxBars = input.int(3, "Maximum bars to reclaim, including sweep bar", minval=1, maxval=20)
limit = input.int(3, "Maximum markers per direction per reference period", minval=1, maxval=10)
bias = input.string("Both", "Manual directional filter",
 options=["Both", "Bullish only", "Bearish only"])
buffer = input.int(1, "Invalidation buffer in ticks", minval=0, maxval=100)
showInvalid = input.bool(true, "Show latest sweep invalidation references")
if not chart.is_standard
    runtime.error("Use standard price candles.")
if timeframe.in_seconds() >= timeframe.in_seconds(refTF)
    runtime.error("Reference period must be above chart timeframe. Use intraday with D, or choose W/M.")
// Offsets are INSIDE the requested expression: only a completed HTF bar is used.
[refHigh, refLow, refStamp] = request.security(syminfo.tickerid, refTF,
 [high[1], low[1], time[1]], lookahead=barmerge.lookahead_on)
bool valid = not na(refHigh) and not na(refLow) and refHigh > refLow
bool newPeriod = not na(refStamp) and (na(refStamp[1]) or refStamp != refStamp[1])
var bool abovePending = false
var bool belowPending = false
var int aboveStart = na
var int belowStart = na
var float sweepHigh = na
var float sweepLow = na
var int bullCount = 0
var int bearCount = 0
var int totalBull = 0
var int totalBear = 0
var int timedOut = 0
var int ambiguousCount = 0
var float longInvalid = na
var float shortInvalid = na
var bool longActive = false
var bool shortActive = false
bool bullSignal = false
bool bearSignal = false
bool longFailure = false
bool shortFailure = false
bool ambiguous = false
if barstate.isconfirmed
    if newPeriod
        abovePending := false
        belowPending := false
        aboveStart := na
        belowStart := na
        sweepHigh := na
        sweepLow := na
        bullCount := 0
        bearCount := 0
        longInvalid := na
        shortInvalid := na
        longActive := false
        shortActive := false
    if valid
        // Check the last marked invalidation before creating a fresh reference.
        if longActive and low <= longInvalid
            longFailure := true
            longActive := false
        if shortActive and high >= shortInvalid
            shortFailure := true
            shortActive := false
        if abovePending and bar_index - aboveStart >= maxBars
            abovePending := false
            timedOut += 1
        if belowPending and bar_index - belowStart >= maxBars
            belowPending := false
            timedOut += 1
        // A fresh excursion must start from a previous close on the inner side.
        if not abovePending and high > refHigh and close[1] <= refHigh
            abovePending := true
            aboveStart := bar_index
            sweepHigh := high
        if not belowPending and low < refLow and close[1] >= refLow
            belowPending := true
            belowStart := bar_index
            sweepLow := low
        if abovePending
            sweepHigh := math.max(sweepHigh, high)
        if belowPending
            sweepLow := math.min(sweepLow, low)
        // Both sides engaged before resolution: no inferred intrabar ordering.
        ambiguous := abovePending and belowPending
        if ambiguous
            ambiguousCount += 1
            abovePending := false
            belowPending := false
        else
            bool inside = close > refLow and close < refHigh
            if abovePending and inside
                if bearCount < limit and bias != "Bullish only"
                    bearSignal := true
                    bearCount += 1
                    totalBear += 1
                    shortInvalid := sweepHigh + buffer * syminfo.mintick
                    shortActive := true
                abovePending := false
            if belowPending and inside
                if bullCount < limit and bias != "Bearish only"
                    bullSignal := true
                    bullCount += 1
                    totalBull += 1
                    longInvalid := sweepLow - buffer * syminfo.mintick
                    longActive := true
                belowPending := false
plot(refHigh, "Completed prior-period high", color=color.red,
 linewidth=2, style=plot.style_stepline)
plot(refLow, "Completed prior-period low", color=color.lime,
 linewidth=2, style=plot.style_stepline)
plot(valid ? (refHigh + refLow) / 2 : na, "Prior range midpoint",
 color=color.new(color.gray, 40), style=plot.style_stepline)
plot(showInvalid ? longInvalid : na, "Latest bullish sweep invalidation",
 color=longActive ? color.teal : color.new(color.gray, 55), style=plot.style_stepline)
plot(showInvalid ? shortInvalid : na, "Latest bearish sweep invalidation",
 color=shortActive ? color.orange : color.new(color.gray, 55), style=plot.style_stepline)
plotshape(bullSignal, title="Confirmed bullish reclaim", text="RECLAIM",
 style=shape.triangleup, location=location.belowbar, color=color.lime,
 textcolor=color.lime, size=size.small)
plotshape(bearSignal, title="Confirmed bearish reclaim", text="RECLAIM",
 style=shape.triangledown, location=location.abovebar, color=color.red,
 textcolor=color.red, size=size.small)
plotshape(longFailure or shortFailure, title="Latest invalidation touched",
 style=shape.xcross, location=location.abovebar, color=color.gray, size=size.tiny)
bgcolor(ambiguous ? color.new(color.orange, 80) : na,
 title="Both edges swept before resolution; signals suppressed")
alertcondition(bullSignal, "Bullish sweep reclaim",
 "Price swept the completed prior low and closed inside the reference range.")
alertcondition(bearSignal, "Bearish sweep reclaim",
 "Price swept the completed prior high and closed inside the reference range.")
alertcondition(longFailure or shortFailure, "Latest sweep invalidation touched",
 "Price touched the latest marked sweep invalidation reference.")
var table info = table.new(position.top_right, 1, 3, border_width=1)
if barstate.islast
    string message = not valid ? "Waiting for valid completed reference data" :
     abovePending ? "High swept; waiting for reclaim" :
     belowPending ? "Low swept; waiting for reclaim" : "Watching completed reference levels"
    table.cell(info, 0, 0, "Sweep Reclaim | " + refTF + " | " + message,
     text_color=color.white, bgcolor=color.rgb(25, 35, 50))
    table.cell(info, 0, 1, "Current-period bullish/bearish markers: " +
     str.tostring(bullCount) + "/" + str.tostring(bearCount) +
     " | filter: " + bias, text_color=color.white, bgcolor=color.rgb(25, 35, 50))
    table.cell(info, 0, 2, "Total bullish/bearish: " + str.tostring(totalBull) +
     "/" + str.tostring(totalBear) + " | expired: " + str.tostring(timedOut) +
     " | ambiguous: " + str.tostring(ambiguousCount),
     text_color=color.white, bgcolor=color.rgb(25, 35, 50))

This original Pine Script v6 indicator applies the article’s sweep-and-reclaim concept to a completed daily, weekly, or monthly range. It draws the reference high, low, and midpoint, marks confirmed reclaims, and tracks the latest sweep-based invalidation reference in each direction. It is a chart-event indicator, not an automated version of JadeCap’s discretionary trading decisions.

Exact Signal Rules

  • Bearish reclaim: price trades strictly above the completed reference high after the previous close was at or below it, then closes strictly inside the reference range within the chosen window.
  • Bullish reclaim: price trades strictly below the completed reference low after the previous close was at or above it, then closes strictly inside the range.
  • Reclaim window: three chart bars by default, including the initial excursion bar. A setting of one requires a same-bar wick and reclaim. An expired excursion cannot be revived by a much later return.
  • Ambiguity: if both sides have pending sweeps before either resolves, both candidates are discarded. Orange shading identifies that case; the script does not guess the intrabar sequence.
  • Repeat markers: at most three per direction per reference period by default. Each requires a fresh excursion and reclaim. Changing this limit changes event selection, not a trading risk budget.

“Both,” “Bullish only,” and “Bearish only” are manual directional filters. The script does not silently substitute a moving average for the source’s higher-timeframe analysis. Reclaims excluded by the selected bias are cleared rather than becoming delayed signals later.

Install and Read the Display

  1. Use standard intraday candles. A five- or 15-minute chart with the default D reference is a practical starting point.
  2. Paste the complete script into Pine Editor, save, and add it to the chart.
  3. Red and green lines show the completed reference high and low. The gray line shows their midpoint.
  4. Green upward triangles mark bullish reclaims; red downward triangles mark bearish reclaims. Markers appear only at the confirming candle close.
  5. Read the table for pending sweeps, marker counts, expired candidates, and ambiguous cases.
  6. Create the desired bullish, bearish, or invalidation alert using Once Per Bar Close. Recreate alerts after changing the code or inputs.

The reference timeframe must be higher than the chart timeframe. For daily chart bars, select W or M instead of D. The requested higher-timeframe bars follow the symbol’s data-feed and exchange/session conventions; this is not a custom Asian-session range or a guaranteed regular-hours-only stock range. Compare the displayed reference with your chart’s actual daily data before interpreting it. Prefer chart bars aligned with the reference-period boundaries rather than bars spanning a change of period.

What the Invalidation Lines Mean

For a bullish marker, the indicator stores the lowest low observed during that sweep episode minus the selected tick buffer. For a bearish marker, it stores the highest high plus the buffer. The default buffer is one minimum tick. A gray cross indicates that a subsequent completed bar touched a latest active reference; the corresponding line becomes gray.

These are chart references, not placed stop orders. The script keeps only the latest bullish and latest bearish invalidation level. A new signal in the same direction replaces the older reference, and a new reference period clears both. Consequently, invalidation crosses are not a complete history of hypothetical trades, losses, or win rates. Earlier reclaim markers are not erased when later price invalidates their idea.

What This Code Actually Tests

It identifies completed-range excursions and their timing relative to a reclaim. The source supplies the concept of meaningful prior extremes, reversal confirmation, and sweep-based invalidation. Our explicit definitions add the reclaim window, strict inside close, ambiguity handling, manual bias switch, repeat-marker limit, and tick buffer.

The indicator can help collect the examples discussed in the research exercises above. For instance, compare reclaim windows of one, three, and five bars while keeping the market, reference timeframe, chart timeframe, bias selection, and dates fixed. Count original excursions as well as resulting markers so that increased selectivity remains visible.

What This Code Does Not Test

It places no orders and creates no Strategy Tester trades. It does not implement fair value gaps, equal-high or equal-low structures, Asian-session boundaries, discretionary displacement, position sizing, profit targets, or trading costs. A reclaim does not prove institutional intent, and three allowed markers do not authorize three equal-risk trades. Apply any thesis-level risk budget separately.

Confirmed Data and Validation

The higher-timeframe request uses high[1], low[1], and time[1] inside the requested expression. That offset restricts the request to the previously completed period. The associated lookahead setting makes those already-completed values available from the next period’s beginning; it does not import the current day’s eventual high or low. Marker and invalidation decisions wait for completed chart bars.

Offline checks covered same-bar and delayed reclaims, timeout boundaries, episode extremes, ambiguous sweeps, equality cases, marker limits, bias filtering, and prefix consistency. The script has not been compiled or run inside TradingView here. Data revisions, session changes, and changes in loaded history can still alter results. See TradingView’s higher-timeframe data documentation (paid link) for the confirmed-value request pattern.

If the chart shows levels but no markers, check whether the selected reference was actually swept, whether the close returned strictly inside within the allowed bars, whether the directional filter excluded it, or whether the marker limit was reached. If reference data is unavailable, the table reports it rather than inventing a range.

Final Takeaway

Wait for the reclaim, define the sweep extreme as a risk reference, and keep repeated attempts inside a fixed budget. A sweep is an observation to evaluate, not proof that price must reverse.

Risk Disclosure

This article is for educational purposes only and is not financial advice or a recommendation to buy or sell any security. Trading involves substantial risk, including loss of capital. Leverage can magnify losses, and stop orders do not guarantee an execution price. Examples and historical results do not predict future performance. Account for fees, spread, slippage, and your own financial circumstances before trading.

CandleChasers is independent of the video creator. This article provides educational analysis of the source material; it does not verify the creator’s earnings or endorse paid products.

As an Amazon Associate I earn from qualifying purchases.