Pullback Depth and Breakout Expectations: Measure the Move Before Trusting the Odds

Video: MOST TRADERS NEVER LEARN THIS
Creator: Oliver Velez Trading
Original Video: Watch the original video
Difficulty: Advanced

The Big Idea

A shallow pause after a strong move presents a different continuation hypothesis from a retracement that gives almost everything back. The source organizes that observation using thirds, halves, and the move’s origin. The useful research task is to define the impulse, measure the retracement consistently, and distinguish a level reaction from a profitable trade.

Two Different Questions Hide Inside the Percentages

The source discusses both how often a strong move retraces to a particular depth and what happens if price later attempts to break the prior extreme. These are not the same conditional probability.

One question is whether a move reaches a halfway retracement. Another is whether a later breakout fails, given that the preceding retracement was halfway. Combining them into a single confidence score hides the sequence and the population being measured.

The lesson defines a prior high through a move followed by a pullback, rather than treating every uptick as a breakout event. Preserve that context when collecting data. A one-tick higher high and a return to a meaningful prior peak may have very different implications.

Use a Consistent Depth Formula

For an upward impulse from L to H, the retracement at price P is (H − P) ÷ (H − L). For a downward impulse from H to L, an upward retracement is (P − L) ÷ (H − L). Use a fixed origin and extreme until a predeclared replacement rule applies.

DepthDescriptive interpretationResearch question
Up to one-thirdRelatively little of the impulse has been given backDoes continuation differ from deeper-pullback cases?
One-third to one-halfA moderate retracementHow much entry room remains at the next breakout?
One-half to two-thirdsA larger recovery against the original directionDoes a subsequent test stall or begin a new structure?
Near the originMost or all of the original impulse has been retracedIs the old continuation thesis still the right one?

The source uses 33% and 66% as rounded thirds. The indicator uses exactly one-third and two-thirds. These are convenient proportional references; they are not all Fibonacci ratios and do not become probabilities merely because they divide a chart neatly.

Worked Example: Same Peak, Different Preparation

Fictional upward impulse

Assume a move from 100.00 to 110.00. The following depths use the same frozen ten-point span.

StepCalculation or observationMeaning
Shallow pullbackLow 107.00: (110 − 107) ÷ 10 = 30%Little of the initial advance was retraced.
Halfway pullbackLow 105.00: 50%A different candidate category, not an automatic buy.
Deep pullbackLow 102.00: 80%A return toward the former peak begins much farther away.
Later breakPrice moves above 110.00Record whether it holds or fails using a predefined distance and time rule.

The source describes deeper returns to the old peak as potentially vulnerable. A possible explanation is that the approach and prior retracement reveal different market conditions. A claim that a stock is tired is a metaphor, not an observable inventory of buying capacity.

The Headline Failure Rate Is Not a Trade Win Rate

Define failure before testing it. Does a breakout fail if price returns one tick inside the old range, closes inside it, or travels a full risk unit in the opposite direction? Does that need to happen within five bars or fifty? The answer materially changes the measured frequency.

Even a genuine high hit rate would not by itself prove positive expectancy. For a fictional process with 72% wins averaging +0.25R and 28% losses averaging −1R, gross expectancy is 0.72 × 0.25 − 0.28 × 1 = −0.10R per trade before costs.

A claim that fading every new extreme guarantees profit is therefore unsupported. You would need a complete entry, loss-control, exit, and execution process, as well as evidence that its payoff distribution survives costs.

What Counts as the Original Move?

The source prefers a sharp, substantial impulse and allows either one powerful bar or several directional bars. This flexibility is useful for interpretation but makes sample collection subjective. Set the impulse rule before looking at the later pullback.

The included map deliberately isolates the one-bar case. It does not pretend that a rolling arbitrary high and low perfectly identify a multi-bar impulse. A separate multi-bar study should define start, completion, overlap, and replacement rather than selecting whichever span makes the level fit.

When the Reference Should Change

The lesson later emphasizes that a sufficiently deep recovery can become the new dominant leg. That changes which move is being divided. It is a structural reassessment, not merely moving the same grid until every reaction touches a line.

Record both the old map and the point when the new interpretation became available. Do not combine depth categories from different anchors in the same trade record. An 80% retracement of one leg may be a shallow pullback of a larger leg, so identify the scale.

Time of Day Is a Separate Variable

The source mentions more failures during a midday period. Treat that as another hypothesis, not a verified rule that rescues the headline percentage. Label session and time of day when gathering candidates, then compare them without changing the impulse definition.

Useful data include the impulse range, duration, depth reached before the next extreme test, breakout distance, first adverse response, and time to each event. Keep candidates that never retest the old extreme; excluding them changes the question from continuation opportunity to conditional breakout behavior.

Pine Script Indicator

View Pine Script Indicator Code
//@version=6
// Guide: https://candlechasers.com/pullback-depth-breakout-expectations/
// Independent educational approximation. Confirmed observations, no simulated orders.
indicator("CC Power Move Retracement Map", overlay=true)
powerATR = input.float(0.8, "Minimum power body / prior ATR", minval=0.1)
bodyPart = input.float(0.7, "Minimum body / full range", minval=0.1, maxval=1)
life = input.int(20, "Reference lifetime in chart bars", minval=1)
atr = ta.atr(14)
spanNow = high - low
power = spanNow > 0 and not na(atr[1]) and math.abs(close - open) >= atr[1] * powerATR and math.abs(close - open) / spanNow >= bodyPart
var float origin = na
var float extreme = na
var int side = 0
var int born = na
var float deepest = 0.0
bool newMap = false
if barstate.isconfirmed
    if side != 0
        if bar_index - born > life
            side := 0
        else if bar_index > born
            float depth = side == 1 ? (extreme - low) / (extreme - origin) : (high - extreme) / (origin - extreme)
            deepest := math.max(deepest, depth)
            if deepest > 1
                side := 0
    // Ignore new power candles while an existing map is active.
    if side == 0 and power
        side := close > open ? 1 : -1
        origin := side == 1 ? low : high
        extreme := side == 1 ? high : low
        born := bar_index
        deepest := 0
        newMap := true
level(float fraction) => side != 0 ? extreme + (origin - extreme) * fraction : na
plot(side != 0 ? extreme : na, "Power extreme / 0% given back", color=color.blue, style=plot.style_linebr)
plot(level(1.0/3.0), "One-third retracement", color=color.green, style=plot.style_linebr)
plot(level(0.5), "Half retracement", color=color.orange, style=plot.style_linebr)
plot(level(2.0/3.0), "Two-thirds retracement", color=color.red, style=plot.style_linebr)
plot(side != 0 ? origin : na, "Origin / 100% retracement", color=color.gray, style=plot.style_linebr)
plotshape(newMap, title="New confirmed power reference", style=shape.circle, location=location.belowbar, color=color.blue, size=size.tiny)
alertcondition(newMap, "New power reference", "CC: a new power-move retracement map is available on {{ticker}} {{interval}}. Context only.")
var table status = table.new(position.top_right, 1, 2, bgcolor=color.new(color.black, 15))
if barstate.islast
    table.cell(status, 0, 0, side == 0 ? "Waiting for a new power reference" : side == 1 ? "Upward reference" : "Downward reference", text_color=color.white)
    table.cell(status, 0, 1, side == 0 ? "No active depth classification" : "Maximum later retracement: " + str.tostring(deepest * 100, "#.##") + "%", text_color=color.white)

What This Indicator Shows

The original indicator freezes the range of one completed power candle and displays its extreme, thirds, half, and origin. Power defaults to a body of at least 0.8 prior ATR and 70% of full candle range. Those are our definitions. It tracks the greatest subsequent retracement, not just the latest close.

The map lasts twenty chart bars or until a later wick exceeds a full retracement. New power candles are ignored while a map remains active. A qualifying candle can start a replacement after expiry or invalidation. A blue dot marks when each reference became available.

What This Indicator Does Not Show

The map does not estimate any probability, identify every multi-bar impulse, or create breakout and fade orders. It does not re-anchor to a later high during an active map. A new extreme therefore does not silently change the original denominator. Displayed levels are context, not a guaranteed support or resistance ladder.

Setup, Alerts, and Validation

  1. Add: paste the complete script into Pine Editor, save, and add it to a standard-candlestick chart.
  2. Configure: follow this guide’s timeframe, direction, and session requirements. Load enough history for the longest lookback and pivot delay.
  3. Inspect: check the reference plots and status table. A strict rule can correctly produce no signals; a visible line or status helps distinguish that from missing data.
  4. Alert: select the relevant named condition and Once Per Bar Close. Recreate alerts after changing inputs.

Validation status: formulas, historical references, state rules, and HTML/code preservation were reviewed statically. The indicator has not been compiled or chart-tested in TradingView here. Live alerts, browser copying, and responsive rendering have not been tested. No simulated orders, fills, or measured performance results are claimed.

Practice and Research

  1. Define failure: compare a return inside the prior extreme with a full 1R adverse move as separate outcomes, using the same fixed observation period.
  2. Depth categories: collect consecutive power references and label the deepest pullback before the first later breakout attempt. Keep cases with no attempt in their own category.
  3. Robustness: review the frozen definitions on later dates and different sessions. Report sample counts, payoff sizes, costs, and overlap rather than only a success percentage.

Check Your Understanding

Is the frequency of reaching halfway the same as failure after a halfway pullback? No. They condition on different events.

Does a 72% reaction rate establish a profitable fade? No. Event definitions and payoffs matter.

Why freeze the anchors? Changing the span after the outcome changes the classification you were supposed to test.

Final Takeaway

Use depth to organize hypotheses about continuation and structural change. Establish the event definitions and payoff consequences before treating a claimed percentage as a trading edge.

Risk Disclosure

This guide is for education and research, not personalized financial advice or a recommendation to trade any security or contract. Trading can cause substantial losses, and leveraged products may produce losses beyond the amount initially committed. Short selling can involve unlimited loss. Stops and displayed prices do not guarantee execution; gaps, spread, slippage, fees, liquidity, halts, and platform interruptions can materially affect outcomes. Historical charts, indicators, hypothetical calculations, and creator-reported results do not establish future performance. Understand the instrument, execution assumptions, and total exposure, practice before risking capital, and use only risk capital you can afford to lose.

CandleChasers provides independent educational analysis and is not affiliated with, endorsed by, or sponsored by the source creator or any platform mentioned.

As an Amazon Associate I earn from qualifying purchases.