Trend Retracements and Inversion Gaps: Setup, Risk, and Process

Video: How to Day Trade Explained as if you are a 5 year old
Creator: Antonio Russo
Original Video: Watch the original video
Difficulty: Intermediate

The Big Idea

Antonio Russo organizes his trading framework into a directional map, key levels, a retracement, and a fair-value-gap inversion. He then connects execution to account risk and a process-based review.

A simple explanation can make those components easier to understand. It does not make the resulting trade risk-free or fully mechanical. The source leaves several definitions open, including which swing establishes the trend, how a leg is selected, and exactly when a gap is considered inverted.

The useful goal is to turn the framework into decisions that can be checked before the outcome, rather than accept its claims of profits or student success as evidence that the same result will follow.

Use the Higher Timeframe as a Map

The source describes an uptrend through higher highs and higher lows, and a downtrend through lower highs and lower lows. A lower-timeframe decline can occur within a higher-timeframe uptrend; trading its recovery is different from assuming every small bearish move has reversed the larger trend.

Choose the map timeframe and swing rule first. A swing requiring later candles for confirmation becomes available only after those candles arrive. Its apparent turning point is not its signal time.

The source’s accumulation–manipulation–distribution description is an interpretation of consolidation, an excursion beyond a watched area, and subsequent directional movement. Candles alone do not establish deliberate manipulation, identify trapped traders, or prove that market makers intend to take someone else’s money.

Define the Levels for the Actual Market

Source levelPurposeDefinition to record
Overnight high and lowReferences before the cash openingInstrument, session start, end, and timezone
9:30 New York opening priceA potential intraday objectiveThe exact price source and timestamp
Equal highs or lowsA visibly repeated price areaTolerance, required touches, and separation
Four-hour highs or lowsHigher-timeframe structureCompleted candle extremes or confirmed swing points

The presenter defines the overnight period from 18:00 New York time. That resembles an equity-index futures session convention, not a universal definition of stock premarket. CME’s E-mini S&P 500 overview describes its evening Globex opening and daily maintenance period. Other products require their own session definitions.

Use a timezone such as America/New_York to account for daylight-saving changes. “EST” should not be treated as a fixed clock offset for every date.

Make the 50–66% Retracement Concrete

For an original bullish leg from 100 to 110, a 50% pullback reaches 105 and a 66% pullback reaches 103.40. The candidate area is therefore 103.40–105.

For a bearish leg from 110 to 100, the corresponding upward retracement spans 105–106.60. The calculation reverses with the leg’s direction.

These percentages describe location, not a guaranteed reversal zone. A deeper pullback can continue through the original leg’s low or high. Freeze the anchors when the setup becomes available rather than moving them afterward to fit the successful turn.

What an Inversion Fair Value Gap Means

A conventional bullish three-candle gap has the third candle’s low above the first candle’s high. A bearish gap has the third candle’s high below the first candle’s low. The middle candle can trade through the entire marked interval; the pattern does not prove an absence of transactions.

An inversion hypothesis treats a gap’s failure as a potential shift in its role. For a bullish version, price closes through the upper boundary of a previously identified bearish gap. For a bearish version, price closes through the lower boundary of a bullish gap.

The transcript illustrates inversion but does not fully specify its calculation or retest requirements. Decide whether a wick, a close, or a later reaction is required. A long taken immediately after a confirmed inversion differs from a long waiting for a subsequent retest.

In an original example, a bearish gap spans 104–104.50. Price later closes at 104.80 above its upper boundary. That is a defined bullish inversion event. It is additional evidence, not proof of continuation.

The Opening Price Is a Conditional Target

The source commonly targets the 9:30 opening price for trades around 9:45–10:30 New York time, although one explanation narrows the endpoint to 10:15. A reproducible test needs one chosen window.

The opening price must also lie in the profitable direction. If a long enters above the open, the open is not an upside profit target. Its distance should be compared with the actual stop.

Suppose a long enters at 104.80, has protection at 104.20, and targets a recorded opening price of 106. Planned risk is 0.60 units and reward is 1.20, or 2R before costs. A fill at 105 with the same levels changes that to 0.80 risk and 1.00 reward, only 1.25R.

Different fixed-R policies have different break-even thresholds. Exact +1R wins and −1R losses require 50% wins before costs; +1.5R wins require 40%; +2R wins require about 33.33%. None of those target sizes guarantees profitability.

Account “Bullets” Need a Real Loss Budget

The presenter suggests surviving five losing attempts during evaluation and seven on a funded account. This expresses a desire to avoid losing an account on one trade, but the arithmetic must use the actual permitted loss room.

In an original example, an account with $1,000 of remaining maximum-loss allowance would allocate $200 per full planned loss if divided into five equal attempts, or about $142.86 for seven. Those amounts leave no reserve for adverse execution or other deductions.

A buffer, daily limit, trailing floor, open-position rules, and existing exposure can require smaller amounts. Headline account size is not the same as the remaining loss allowance. If reaching the floor breaches the account, the fifth or seventh loss cannot be treated as safely available.

Multiple accounts also do not erase exposure. Copied or correlated positions can lose together, and evaluation or reset fees are real costs. Blowing accounts is not a necessary training method; practice can occur in simulation or replay.

Pine Script: A Defined Bullish Branch

Expand the complete Pine Script research strategy

//@version=6
strategy("Bullish IFVG after a supplied retracement - research test", overlay=true,
     initial_capital=25000, pyramiding=0, margin_long=100,
     commission_type=strategy.commission.percent, commission_value=0.01,
     slippage=2, calc_on_order_fills=true, calc_on_every_tick=false,
     process_orders_on_close=false)

legLow = input.float(0, "Preselected bullish leg low", minval=0)
legHigh = input.float(0, "Preselected bullish leg high", minval=0)
knownAfter = input.time(timestamp("01 Jan 2024 00:00 +0000"), "Leg first known after this time")
activeUntil = input.time(timestamp("01 Feb 2024 00:00 +0000"), "Stop using this leg after this time")
gapExpiry = input.int(20, "Bearish gap expiry, chart bars", minval=1)
minGapTicks = input.int(2, "Minimum gap, ticks", minval=1)
cashRisk = input.float(100, "Estimated cash risk before costs", minval=1)
qtyStep = input.float(1, "Quantity increment", minval=0.000001)
maxQty = input.float(100, "Maximum quantity", minval=0.000001)
minRR = input.float(1, "Minimum planned R to 9:30 open", minval=0.1)

if barstate.isfirst
    if not chart.is_standard or not timeframe.isminutes or timeframe.multiplier != 1
        runtime.error("Use standard one-minute candles.")
    if legLow <= 0 or legHigh <= legLow or activeUntil <= knownAfter
        runtime.error("Supply a valid preselected bullish leg and availability window.")

retracementLow = legHigh - 0.66 * (legHigh - legLow)
retracementHigh = legHigh - 0.50 * (legHigh - legLow)
bearGap = high < low[2] and low[2] - high >= minGapTicks * syminfo.mintick
inRetracement = low <= retracementHigh and high >= retracementLow
minutesOpen = hour(time, "America/New_York") * 60 + minute(time, "America/New_York")
minutesClose = hour(time_close, "America/New_York") * 60 + minute(time_close, "America/New_York")
firstBar = minutesOpen == 570
available = time >= knownAfter and time_close < activeUntil

dayKey = year(time, "America/New_York") * 10000 + month(time, "America/New_York") * 100 + dayofmonth(time, "America/New_York")
varip int openDayKey = na
varip float cashOpen = na
varip bool used = false
varip bool gapActive = false
varip int gapBar = na
varip float gapUpper = na
varip float gapLower = na
varip float tradeStop = na
varip float tradeTarget = na
varip float seenPosition = 0.0
fillPass = strategy.position_size != seenPosition
seenPosition := strategy.position_size

if fillPass and strategy.position_size > 0
    if strategy.position_avg_price <= tradeStop or strategy.position_avg_price >= tradeTarget
        strategy.close("L", comment="Invalid gap fill", immediately=true)

if not fillPass and barstate.isconfirmed
    if firstBar
        cashOpen := open
        openDayKey := dayKey
        used := false
        gapActive := false
    if not available
        gapActive := false
    else if strategy.position_size == 0 and not used
        if gapActive and bar_index - gapBar > gapExpiry
            gapActive := false
        if not gapActive and bearGap and inRetracement and minutesOpen >= 570
            gapActive := true
            gapBar := bar_index
            gapLower := high
            gapUpper := low[2]
        if gapActive and bar_index > gapBar and close > gapUpper
            window = openDayKey == dayKey and minutesOpen >= 585 and minutesClose < 630
            candidateStop = low - syminfo.mintick
            distance = close - candidateStop
            rewardDistance = cashOpen - close
            quantity = distance > 0 ? math.floor(math.min(maxQty, cashRisk / (distance * syminfo.pointvalue)) / qtyStep) * qtyStep : 0
            if window and close > open and distance > 0 and rewardDistance / distance >= minRR and quantity >= qtyStep
                tradeStop := candidateStop
                tradeTarget := cashOpen
                used := true
                strategy.entry("L", strategy.long, qty=quantity)
                strategy.exit("L-bracket", "L", stop=tradeStop, limit=tradeTarget)
            // First confirmed inversion consumes the gap, even if no trade qualifies.
            gapActive := false

    if strategy.position_size > 0 and (minutesClose >= 660 or time_close >= activeUntil)
        strategy.cancel_all()
        strategy.close("L", comment="Research time exit")

if strategy.position_size > 0
    strategy.exit("L-bracket", "L", stop=tradeStop, limit=tradeTarget)

plot(available ? retracementLow : na, "66% retracement", color=color.orange)
plot(available ? retracementHigh : na, "50% retracement", color=color.orange)
plot(cashOpen, "Recorded 9:30 open", color=color.blue)
plot(gapActive ? gapUpper : na, "Active bearish gap upper edge", color=color.purple, style=plot.style_linebr)
plot(gapActive ? gapLower : na, "Active bearish gap lower edge", color=color.purple, style=plot.style_linebr)

The following original strategy tests a bearish gap’s bullish inversion after it forms at a manually supplied 50–66% pullback. Supply the bullish leg’s real anchors, when they first became known, and the interval during which that leg remains relevant. Zero-price and date defaults are placeholders requiring replacement.

Our definitions: the gap must span at least two ticks and form in the retracement area after 9:30. It stays fixed for up to 20 bars. Its first later close above the full gap consumes it. A bullish inversion between 9:45 and 10:30 can enter only if the recorded open is above entry with at least 1R of planned room.

The stop is one tick beneath the inversion candle’s low; the target is the fixed recorded open. Default risk is an estimated $100, capped at 100 units, rounded to a configurable quantity increment. The strategy permits one submitted entry per day and uses an 11:00 time exit. These are research choices, not a reproduction of every source rule.

Execution QA

Use standard one-minute candles with a valid 9:30 New York bar. The code records its opening price and requires that record to belong to the current calendar day. It does not require that the instrument itself begin its full trading session then.

The script cannot verify that the manual leg represents a valid higher-timeframe trend or that its anchors were known at the supplied time. That requires your recorded map. It does not implement overnight sweeps, equal highs and lows, or an automatic four-hour trend classifier.

A gap is available only after its third candle closes. It cannot invert on its formation candle. A valid active gap is not overwritten by newer gaps; it is consumed at its first confirmed inversion even if the time or target conditions disqualify the trade.

Signals use completed closes and market entries normally fill at the next bar’s open. Both protective stop and fixed target are submitted with entry. A fill-only check uses the actual entry to identify an inverted bracket without selecting setups from the fill bar’s completed high or low. Invalid fills prompt an immediate simulated exit.

Quantity and minimum reward/risk are estimated at the signal close. A gap can change actual cash risk and reduce actual reward/risk below the planned minimum. Set the increment and contract value for the product; the sizing assumes risk and instrument profit-and-loss values use the same currency, with no conversion model.

Commission defaults to 0.01% per fill and slippage to two ticks, adjustable in Strategy Properties. Spreads, funding, account rules, and product-specific restrictions are not modeled. The time exit normally fills on the next available tick. Same-bar bracket outcomes depend on emulator assumptions; inspect them with Bar Magnifier where available.

TradingView’s strategy documentation (paid link) explains those execution assumptions. The code has been reviewed but has not been compiled or backtested in TradingView. It is a conditional entry experiment, not a demonstrated profitable full strategy.

Grade the Process and Continue Measuring Results

The source recommends evaluating decisions separately from money made. A rule-compliant loss can receive a good process assessment, while a random profitable trade should not reinforce a poor habit.

That does not make profit irrelevant to strategy evaluation. Disciplined execution of an unprofitable method can continue losing. The source’s assurance that money or payouts will follow consistent process is not established by the transcript.

Replace vague “A+” labels with observable conditions. Set session and cumulative-risk boundaries before trading rather than taking unlimited trades because each feels valid. A session without a qualifying setup is a valid outcome.

The emotional advice is personal experience rather than a universal model of rationality. Practical responses can include stepping away, reviewing the plan, or reducing exposure within predetermined limits. Feeling little stress does not itself justify increasing size, and self-punishment or spending money is not required to reset after a session.

Backtest Lab

ExperimentChange one assumptionEvaluate
Retracement locationUse consistently preselected legs across periodsWhether results generalize beyond selected examples
Gap freshnessChange the expiry intervalLate versus early inversion outcomes
Time windowCompare the stated 10:15 and 10:30 endpointsTrade count and net expectancy
Execution stressIncrease costs and slippageWhether narrow-stop results survive friction

Keep the same leg-selection method and include failures. Reserve later data for validation. A single hand-picked leg is a case study, not a statistical basis for selecting risk or promising funded-account success.

Final Takeaway

The framework becomes useful when trend, levels, retracement, inversion, and risk are defined before entry. Process grading supports consistent execution, while a complete net record determines whether the method deserves continued use. Neither confidence, frequent participation, nor a preferred reward multiple guarantees profit.


Risk Disclosure: This material is for educational and research purposes only and is not financial or investment advice. Trading can result in substantial losses. Backtests and simulations are hypothetical, depend heavily on their assumptions, and cannot reproduce every aspect of live execution. Commissions, spreads, slippage, liquidity, gaps, funding, order behavior, market regime changes, and discretionary decisions can materially affect results. Leveraged products carry additional risks. Funded-program fees can be lost, and passing an evaluation does not guarantee a payout. Historical results and consistent rule adherence do not guarantee future profitability.

This article is an independent educational companion to the video and is not affiliated with, sponsored by, endorsed by, or authorized by Antonio Russo or the providers discussed in the source.

As an Amazon Associate I earn from qualifying purchases.