Sweep, Structure Break, and Deep Retracement: Keep the Evidence Separate

Video: How I Trade This 15-Minute Strategy Every Week (Trades Explained)
Creator: Ara Kerbabian
Original Video: Watch the original video
Difficulty: Advanced

The Big Idea

Ara Kerbabian combines a higher-timeframe range assessment with a liquidity excursion, forceful structure break, and a deep retracement entry area. The examples show how a checklist can organize a decision, but also why its numerical score, an attractive fill, and a profitable outcome must remain separate kinds of evidence.

Two Recaps Are Useful Examples, Not a Performance Distribution

The source reviews a long in EUR/JPY and a short in gold. The first used a thirty-minute chart accidentally, although the creator usually uses fifteen minutes for day trading. The second used fifteen minutes. That difference is acknowledged rather than hidden, and it matters when translating bar counts into time.

Both trades are described as successful. The transcript does not provide the complete candidate set, losing trades, verified execution records, account history, or costs. These examples explain the creator’s reasoning without establishing how often the approach works across markets or timeframes.

The reported checklist scores of 100 and 75 are not probabilities. A 100-point score does not mean certainty, and a 75-point score does not establish a seventy-five-percent win rate. The full scoring algorithm and its calibration are not supplied.

ElementSource useWhat still needs definition
Higher-timeframe rangeFour-hour premium or discount context.Which anchors define the range, and when are they known?
Liquidity excursionA false break followed by aggressive reversal.Reference level, return requirement, and allowed time.
Structure breakProgress through important opposing swings.Which swing counts and whether a completed close is required.
Retracement67% and 75% entry references.The exact impulse endpoints and later anchor revision policy.
Profile contextVolume concentration near the area, then low-volume space.Profile window, feed, construction, and thresholds.
ExecutionPending entry, protection, and target.Order timing, actual fill, costs, and complete management rules.

A Sweep Is Recognized Through Subsequent Behavior

The creator explains that the EUR/JPY downside excursion could initially look like a bearish structural break. Its later aggressive reversal changes the interpretation into a failed break or sweep. That sequence is important: the final classification was not automatically available at the first trade below the old low.

A chart can show an excursion, recovery, and opposing structure break. It cannot establish every stop order triggered or prove that all traders beyond the level were trapped. Keep the price description separate from the proposed liquidity mechanism. This makes the idea testable without claiming access to an unseen order book.

Our indicator requires a completed one-sided excursion through a previously known confirmed pivot and a close back across that same reference. It excludes a bar sweeping both known extremes, because its final OHLC does not determine which event happened first. This is a deliberately narrow definition, not every sweep the creator might recognize.

A Structure Break Adds a Different Observation

The source favors a forceful reversal through multiple structural points. Our baseline waits for a separate later candle to close beyond the frozen opposing pivot. Its range must be at least 1.25 prior ATR and its body at least sixty percent of its range. Those thresholds are original definitions for studying displacement.

The code uses three-bar confirmed pivots by default. A turning point therefore becomes available three bars later; it is not treated as known at the earlier extreme. A level confirmed on the current bar is stored only after that bar’s sequence checks, preventing an earlier event from using a newly discovered reference.

One external swing break is not the same as all internal and lower-timeframe breaks mentioned in the recap. The baseline intentionally omits the full hierarchy. Comparing its observations with a written manual rubric is more informative than calling its markers the creator’s exact trades.

Use Fibonacci as a Measurement of a Chosen Range

The creator explicitly describes Fibonacci as a way to measure ranges, not a standalone reason to trade. The source uses 67% and 75% deep retracement references. Which price belongs to either ratio depends entirely on the selected impulse low and high.

Calculate a deep retracement in both directions

These fictional prices illustrate the geometry and omit execution costs.

StepObservation or calculationMeaning
Upward impulseLow 100 to high 120; distance 20A bullish retracement is measured down from 120.
Bullish 67% and 75%120 − 0.67 × 20 = 106.60; 120 − 0.75 × 20 = 105The original long-side area spans 105–106.60.
Downward impulseHigh 120 to low 100; distance 20A bearish retracement is measured up from 100.
Bearish 67% and 75%100 + 0.67 × 20 = 113.40; 100 + 0.75 × 20 = 115The original short-side area spans 113.40–115.

Our code fixes the first anchor at the recorded sweep extreme and the second at the structure-break candle’s opposite extreme. That second anchor is not necessarily the final swing extreme the source would choose. It freezes immediately when the break completes rather than moving to fit a later pullback.

A frozen approximation may miss a deeper or later source-style range. That is an intentional timing trade-off: an eventual swing high is not known with finality at the first breakout close. Do not credit the code with a later ideal anchor while keeping an earlier entry time.

Imbalance and Volume Profile Are Distinct Inputs

The source favors an imbalance near the retracement, but chooses the deeper 75% entry even when the 67% level more neatly overlaps the pictured imbalance. The rationale involves the nearby volume concentration and prior price responses. This shows that the checklist is not a rigid rule that the closest imbalance always wins.

The transcript does not fully define imbalance boundaries or the profile’s data window and construction. A chart gap proxy would be an original approximation, and time-bar volume alone does not reveal exact traded volume at every price. In forex, the meaning and coverage of the volume data also depend on the feed.

A high-volume node describes historical activity under a particular profile. It is not a direct inventory of current resting orders or guaranteed support. A low-volume area can motivate a hypothesis about movement through it, but it does not guarantee a fast path to target. The code therefore does not fabricate a profile or call its retracement area a verified liquidity pocket.

Higher-Timeframe Alignment Is a Rule With an Explicit Exception

The EUR/JPY example aligns with a four-hour discount reading. The gold short does not: the creator still sees potential downward travel within a larger bullish range before a later upward continuation. He accepts a lower checklist score and makes a discretionary exception based on that nested-range interpretation.

That is more nuanced than “always buy discount and sell premium.” It also creates a research problem: if exceptions are added only after profitable outcomes, the higher-timeframe rule cannot be evaluated fairly. Define an exception category in advance and preserve failed counter-bias attempts.

The companion indicator’s optional filter uses the last completed higher-timeframe close against the midpoint of the preceding twenty-bar high/low range. Default context is four hours. This is our simple range-half proxy, not the creator’s anchor selection. It is off by default so the core sequence can be studied separately. Turning it on deliberately excludes some counter-bias cases rather than pretending to reproduce the gold exception.

A Better Entry Price Can Come With a Different Fill Problem

Compare two limit proposals without granting either a fill

Use the fictional bullish impulse from 100 to 120, a separately assumed stop at 99.50, and target at 119. Costs, gaps, and order priority are omitted.

StepObservation or calculationMeaning
67% proposal at 106.60Risk 7.10; reward 12.40Nominal reward/risk about 1.75R.
75% proposal at 105Risk 5.50; reward 14.00Nominal reward/risk about 2.55R.
Price turns at 106The deeper proposal is never touchedDo not record the attractive 105 proposal as an executed winner.
Price gaps through the areaExecution can differ from the proposed levelA fixed limit reference does not resolve order timing or all operational risks.

The creator describes a news-related EUR/JPY spike nearly hitting protection and acknowledges luck in the outcome. The actual event and its exact timing are not independently identified in the supplied text. It would be inappropriate to turn that near miss into evidence that news spikes reliably reverse or that the protective distance was proven optimal.

The gold trade is described as entering cleanly and closing before a later aggressive candle. Those are source-reported executions. A completed candle can contain both favorable and adverse extremes; without order and intrabar records, do not assume the favorable sequence automatically occurred for every hypothetical entry.

The Companion Marker Is a Later Response, Not the Source Limit Order

After the separate sweep and break, the indicator waits for a later candle overlapping the frozen 67–75% area and closing with the intended body color. That close is a completed response observation. The source instead describes pending limit entries; the code does not simulate them and does not assign the limit price to the later marker.

One sequence is retained, with competing sweeps ignored while it is active. A completed close beyond the adverse sweep extreme or a forty-bar default deadline cancels it. A qualifying response consumes it. Replacement is deferred until a later bar, and neither the anchor nor zone is silently updated during the active sequence.

The optional higher-timeframe values use prior completed bars, following TradingView’s documented approach to confirmed higher-timeframe data (paid link). A standard chart below the context timeframe is required. Fifteen- and thirty-minute charts are useful starting contexts from the examples, but the same forty-bar lifetime represents different elapsed time on each.

Pine Script Indicator

View Pine Script Indicator Code
//@version=6
// Article: https://candlechasers.com/sweep-structure-deep-retracement-context/
// Original educational proxy; no orders, fills or performance simulation.
indicator("CC Sweep Break Deep Retracement Context", overlay=true)
strength = input.int(3, "Pivot confirmation bars", minval=1,maxval=10)
life = input.int(40, "Sequence lifetime / chart bars", minval=2)
useHTF = input.bool(false, "Require original confirmed 4h range-half alignment")
htf = input.timeframe("240", "Context timeframe")
[hclose,hhigh,hlow] = request.security(syminfo.tickerid,htf,[close[1],ta.highest(high,20)[1],ta.lowest(low,20)[1]],lookahead=barmerge.lookahead_on)
mid = (hhigh+hlow)/2
valid = chart.is_standard and timeframe.in_seconds() < timeframe.in_seconds(htf)
ph = ta.pivothigh(high,strength,strength)
pl = ta.pivotlow(low,strength,strength)
a = ta.atr(14)
var float H = na
var float L = na
var int stage = 0
var int side = 0
var int born = na
var int changed = na
var float sweep = na
var float breakLevel = na
var float A = na
var float B = na
bool bull = false
bool bear = false
if valid and barstate.isconfirmed
    bool occupied = stage != 0
    if occupied
        bool invalidated = side == 1 ? close < sweep : close > sweep
        if bar_index-born > life or invalidated
            stage := 0
        else if stage == 1 and bar_index > changed
            float rr = high-low
            bool power = rr >= 1.25*a[1] and math.abs(close-open)/math.max(rr,syminfo.mintick) >= 0.6
            bool broken = side == 1 ? close > breakLevel and close > open : close < breakLevel and close < open
            if power and broken
                A := sweep
                B := side == 1 ? high : low
                stage := 2
                changed := bar_index
        else if stage == 2 and bar_index > changed
            float z1 = B+(A-B)*0.67
            float z2 = B+(A-B)*0.75
            bool touch = low <= math.max(z1,z2) and high >= math.min(z1,z2)
            bool alignment = not useHTF or (side == 1 ? hclose < mid : hclose > mid)
            bull := side == 1 and touch and close > open and alignment
            bear := side == -1 and touch and close < open and alignment
            if bull or bear
                stage := 0
    if not occupied and not na(H) and not na(L) and H > L
        bool lowSweep = low < L and close > L
        bool highSweep = high > H and close < H
        // Two-sided excursions on one bar are deliberately excluded.
        if lowSweep != highSweep
            side := lowSweep ? 1 : -1
            sweep := lowSweep ? low : high
            breakLevel := lowSweep ? H : L
            born := bar_index
            changed := bar_index
            stage := 1
    if not na(ph)
        H := ph
    if not na(pl)
        L := pl
z67 = stage == 2 ? B+(A-B)*0.67 : na
z75 = stage == 2 ? B+(A-B)*0.75 : na
plot(H,"Known confirmed swing high",color=color.new(color.red,65),style=plot.style_stepline)
plot(L,"Known confirmed swing low",color=color.new(color.teal,65),style=plot.style_stepline)
x = plot(z67,"Frozen 67% retracement",color=color.blue,linewidth=2,style=plot.style_linebr)
y = plot(z75,"Frozen 75% retracement",color=color.blue,linewidth=2,style=plot.style_linebr)
fill(x,y,color=color.new(color.blue,87))
plot(stage != 0 ? sweep : na,"Frozen sweep extreme: reference only",color=color.orange,style=plot.style_linebr)
plot(stage != 0 ? breakLevel : na,"Frozen opposing structure",color=color.purple,style=plot.style_linebr)
plot(valid ? mid : na,"Original confirmed HTF 20-bar midpoint",color=color.new(color.gray,65))
plotshape(bull,"Completed bullish zone response",shape.triangleup,location.belowbar,color.aqua)
plotshape(bear,"Completed bearish zone response",shape.triangledown,location.abovebar,color.orange)
alertcondition(bull or bear,"Deep retracement response","CC: completed sweep/break/frozen retracement response proxy. No volume profile, score or limit fill.")
var table panel = table.new(position.top_right,1,2,bgcolor=color.new(color.black,10))
if barstate.islast
    table.cell(panel,0,0,not valid ? "Use STANDARD chart below context timeframe" : stage == 0 ? "Waiting for one-sided confirmed-reference sweep" : stage == 1 ? "Sweep recorded; waiting for later strong structure close" : "Zone frozen; waiting for completed color response",text_color=color.white)
    table.cell(panel,0,1,"Original anchor/threshold rules | HTF filter " + (useHTF ? "ON" : "OFF") + " | no profile reconstruction",text_color=color.white,text_size=size.small)

What This Indicator Shows

The overlay displays known confirmed pivots, the frozen sweep and opposing structure, and a shaded 67–75% area once the break qualifies. The status panel identifies the current stage. A confirmed higher-timeframe midpoint remains visible as a labeled original context reference. Triangles mark completed color responses after zone overlap, not limit fills or score values. There is no requirement for imbalance or profile overlap in this baseline.

What This Indicator Does Not Show

It does not reproduce the terminal’s grading algorithm, volume profile, exact imbalance map, discretionary four-hour range, or gold counter-bias exception. The break-candle anchor, displacement thresholds, lifetime, and response marker are our definitions. No stop or target orders, position sizing, realized drawdown, or return statistics are generated. The indicator cannot establish how the news spike filled or whether a particular proposed limit order executed.

Setup and Validation

Paste the complete code into TradingView’s Pine Editor, save it, and add it to the chart. Use the chart type, timeframe, and context described above, then inspect the status panel and reference plots before expecting a marker. Use Once Per Bar Close for the supplied alert conditions and recreate alerts after changing code or settings. No alert submits an order.

Validation status: Statically reviewed for completed-bar timing, source-versus-proxy distinctions, future-data use, state behavior, reference replacement and expiry, and visible output. This code has not been compiled or chart-tested in TradingView here. No historical performance or live-execution results are claimed. Use replay to check the described behavior and report any compiler or runtime message exactly.

Practice: Keep a Candidate Ledger and a Fill Ledger

With future candles hidden, save the sweep reference, confirmation time, break, impulse anchors, retracement prices, and any independently defined profile or imbalance evidence. Separately record when an order could have existed, whether it was filled, and at what price. Retain candidates that never return, break their sweep extreme, or produce a response after an unfilled deeper proposal.

Research and Comparison Lab

These are original proposed experiments, not results established by the source. Change one main feature at a time, retain failures and missing opportunities, and reserve later observations for evaluation rather than repeatedly selecting rules from the same outcomes.

What does the deeper entry change?

Compare 67% and 75% limit proposals on identical frozen candidates, with the same invalidation, objective, order lifetime, and cost model. Measure trigger and feasible fill rates, outcomes per filled trade, and outcomes per eligible candidate. Do not give both proposals the same favorable participation by assumption.

Does the higher-timeframe proxy add information?

Compare the range-half filter off and on using the same lower-timeframe candidates and management. Keep its anchor window fixed. Record counter-bias opportunities excluded and reserve later observations for evaluation; this test does not validate the source’s discretionary exceptions.

Does profile evidence change candidate quality?

If reliable historical profile data are available, predeclare its window and node definition, then compare the same candidates with and without proximity. Keep entry level and all other filters fixed. Mark missing data as unavailable rather than reconstruct exact price-level volume from final OHLC.

Check Your Understanding

Is the 100 score a probability of success? No. Its calibration is not supplied.

When does an excursion become recognizable as a failed break? After the required opposing response, not simply at the first crossing.

Does the source always reject a counter-bias trade? No. Its gold example contains an explicit discretionary exception.

Is a deeper unfilled proposal an executed winner? No. Participation and outcome are separate.

Does the indicator place the source’s pending limit order? No. It marks a later completed response under explicit proxy rules.

Final Takeaway

The recap is useful because it exposes the reasoning behind two different decisions, including uncertainty and an exception. Make the sweep timing, range anchors, data inputs, and fill policy explicit before treating a deep retracement or a checklist score as evidence of an edge.

Risk Disclosure

This material is educational and is not personalized financial, investment, or trading advice. Trading can cause substantial losses. Source-reported results, hypothetical examples, and probability illustrations do not establish future performance. Calculations depend on their assumptions and omit costs unless stated. Commissions, spread, slippage, gaps, leverage, liquidity, borrowing, financing, and changing market conditions can materially affect outcomes. Indicators do not simulate broker execution or establish profitability. Short exposure can involve losses beyond the initial sale value. Evaluate any approach with appropriate data, realistic costs, and explicit risk limits before considering live use.

This is an independent educational companion and is not affiliated with, sponsored by, endorsed by, or authorized by the source creator, channel, or TradingView.

As an Amazon Associate I earn from qualifying purchases.