How Price Approaches Support: Power Bars, Narrow Averages, and Probability

Video: The BASIC TRADING RULE Most BEGINNERS Get Wrong
Creator: Oliver Velez Trading
Original Video: Watch the original video
Difficulty: Advanced

The Big Idea

Support is a price reference, not an automatic instruction to buy. The way price reaches it can change the trade argument. A slow pullback into clustered moving averages differs from a large directional bar driving into the same area. This lesson examines that approach-speed idea while separating it from unsupported probability claims.

If you remember one thing: a forceful approach can justify a different hypothesis about support, but it cannot tell you in advance which individual trade will work.

The Same Support Can Meet Different Pressure

The source works mainly with two-minute candles and 20- and 200-period moving averages. A relatively small gap between the averages describes a narrow condition; flatness is preferred but not an absolute requirement. A large directional body supplies the proposed power component.

The bearish example drives down from above the averages into their apparent support area. Instead of automatically expecting a durable bounce, the trader considers downside continuation. A temporary bounce may provide another entry, while some moves continue without offering that pullback.

This is an interpretation of market behavior, not evidence that a large red candle physically weakens a known inventory of orders. Averages summarize historical prices. They do not reveal how much resting demand exists or whether it will remain when price arrives.

Two Play Families Should Stay Separate

FamilySource interpretationResearch question
Power against apparent supportA strong red bar may carry through the average areaDoes approach strength change continuation outcomes?
Power with supportA strong green bar originates near the average areaDoes the narrow state improve an otherwise similar bullish entry?

The session also discusses combining consecutive directional bars mentally to understand the impulse. That visual aid should not become a historical shortcut that treats the second bar as known during the first. Any combined-bar trigger becomes available only after the required bars have formed.

Entering Early Versus Waiting for a Bounce

The source describes taking a smaller initial position during the final part of a developing two-minute power bar, then potentially adding if a bounce fails. That creates two distinct exposures. A continuation without a bounce may leave only the smaller position; a failed bounce entry may increase the position later.

Increasing size after confirmation does not remove the first position’s risk. Before adding, calculate the combined loss if the protective level is reached, including any change in the stop and costs. A small first entry plus an unplanned large addition can exceed the original risk budget.

The intrabar timing matters. A historical two-minute candle does not reveal exactly what it looked like at 1 minute 30 seconds. Its final body, high, and low were not all known then. Using its completed shape to enter retrospectively during its formation would introduce lookahead. The script below deliberately waits for the close and accepts the resulting timing difference.

Worked Example: Power Does Not Cap the Loss

Imagine a two-minute stock candle opening at $60.40, reaching $60.45, and closing at $59.90 after driving into an average cluster near $60.00. A short at $59.90 with a stop at $60.46 has $0.56 planned risk per share. With a $112 price-risk budget, that permits 200 shares before costs.

If you begin with 100 shares, their planned exposure is $56. Suppose a later bounce gives an additional 100-share short at $60.10 using the same $60.46 stop. The second portion risks $36, so combined planned exposure is $92 before execution costs. Calculate both entries rather than assuming two equal lots carry equal risk.

If instead you move the stop to $60.70 while adding, the exposure changes to $80 on the first portion and $60 on the second: $140. The smaller starting size has not kept the total within the original $112 budget. A widening stop can overwhelm the intended caution.

The Second Leg Requires a Separate Definition

The source describes a later continuation opportunity when a pullback stays in the upper half of an initial bullish leg and a color change triggers another entry. If the pullback breaks that midpoint, the management plan changes. The unresolved issue for coding is where the first leg ends and which exact color-change event qualifies.

Keep that second-leg pattern separate from the first power-bar experiment. Otherwise a favorable result could come from partial exits, additions, or midpoint management rather than the original approach-to-support concept. A simpler test is easier to interpret even though it omits much of the discretionary session.

A Claimed Probability Is Not a Guarantee

The source states several high success probabilities and suggests a sequence of ten trades should produce a richer account. The supplied examples do not establish those rates. Even with a genuine independent 70% win probability, the chance of losing all ten trades would be 0.3 to the tenth power, which is small but not zero; less extreme losing sequences are much more likely. Real trades also need not be independent.

More fundamentally, win rate alone does not establish profit. If wins average 0.3R and losses average 1R, a 70% win rate produces 0.7 × 0.3 − 0.3 × 1 = −0.09R per trade before costs. A properly executed stop can be a process success while still remaining a financial loss in the trading record.

Pine Script Backtest Code

View Pine Script Backtest Code
//@version=6
// Learning guide: https://candlechasers.com/power-bar-support-approach-probability/
// Original research approximation. Not the creator's complete trading system.
strategy("CC Power Into Support", overlay=true, pyramiding=0, initial_capital=1000000, default_qty_type=strategy.fixed, default_qty_value=1, margin_long=100, margin_short=100, commission_type=strategy.commission.percent, commission_value=0.01, slippage=1, calc_on_every_tick=false, calc_on_order_fills=false, process_orders_on_close=false)
qty = input.float(1, "Units/contracts (check instrument minimum)", minval=0.001)
atrLen = input.int(14, "ATR length", minval=1)
stopATR = input.float(1.0, "Stop distance in ATR", minval=0.1, step=0.1)
rewardR = input.float(2.0, "Target in R", minval=0.1, step=0.1)
maxHold = input.int(20, "Maximum bars held", minval=1)
atr = ta.atr(atrLen)
useNarrow = input.bool(true, "Require narrow average gap")
maxGapATR = input.float(0.5, "Maximum prior MA gap in ATR", minval=0.05, step=0.05)
powerATR = input.float(0.8, "Red body / prior ATR minimum", minval=0.1, step=0.1)
bodyFraction = input.float(0.7, "Red body / full range minimum", minval=0.1, maxval=1, step=0.05)
fast = ta.sma(close, 20)
slow = ta.sma(close, 200)
gapATR = math.abs(fast[1] - slow[1]) / atr[1]
body = open - close
span = high - low
power = close < open and span > 0 and body >= atr[1] * powerATR and body / span >= bodyFraction
zoneTop = math.max(fast[1], slow[1])
zoneBottom = math.min(fast[1], slow[1])
// Prior-bar averages define the support proxy before the power bar develops.
candidate = power and open > zoneTop and low <= zoneTop and close <= zoneTop
signal = candidate and (not useNarrow or gapATR <= maxGapATR)
var int candidates = 0
var int eligible = 0
var int submitted = 0
if barstate.isconfirmed and candidate
    candidates += 1
if barstate.isconfirmed and signal
    eligible += 1
bool submit = barstate.isconfirmed and signal and strategy.position_size == 0 and not na(atr)
if submit
    int riskTicks = math.max(1, int(math.ceil(atr * stopATR / syminfo.mintick)))
    int targetTicks = math.max(1, int(math.round(riskTicks * rewardR)))
    strategy.entry("Trade", strategy.short, qty=qty)
    // Bracket submitted with entry. Distances are measured from actual entry fill.
    strategy.exit("Bracket", "Trade", loss=riskTicks, profit=targetTicks)
    submitted += 1
if strategy.opentrades > 0
    int held = bar_index - strategy.opentrades.entry_bar_index(0)
    if held >= maxHold
        strategy.close("Trade", comment="Time exit")
plot(fast, "20 SMA (research choice)", color=color.blue)
plot(slow, "200 SMA (research choice)", color=color.red)
plot(gapATR, "Prior MA gap / ATR", display=display.data_window)
plotshape(barstate.isconfirmed and candidate, title="Candidate", style=shape.circle, location=location.belowbar, color=color.gray, size=size.tiny)
plotshape(submit, title="Order submitted, not a fill", style=shape.triangleup, location=location.belowbar, color=color.aqua, size=size.small)
var table info = table.new(position.top_right, 2, 4, bgcolor=color.new(color.black, 15))
if barstate.islast
    table.cell(info, 0, 0, "Candidates", text_color=color.white)
    table.cell(info, 1, 0, str.tostring(candidates), text_color=color.white)
    table.cell(info, 0, 1, "Eligible signals", text_color=color.white)
    table.cell(info, 1, 1, str.tostring(eligible), text_color=color.white)
    table.cell(info, 0, 2, "Orders submitted", text_color=color.white)
    table.cell(info, 1, 2, str.tostring(submitted), text_color=color.white)
    table.cell(info, 0, 3, "Closed trades", text_color=color.white)
    table.cell(info, 1, 3, str.tostring(strategy.closedtrades), text_color=color.white)

What This Code Actually Tests

This original short-only experiment defines power as a red body at least 0.8 of the prior ATR and at least 70% of the candle’s full range. The candle opens above both prior-bar averages, reaches their upper boundary, and closes at or below that boundary. An optional narrow-state filter caps the prior average gap at 0.5 ATR.

The 20- and 200-period lengths come from the source. Simple averages, the ATR thresholds, and the exact contact rule are our research choices. The support proxy uses previous-bar averages so the reference is established before the signal candle develops. Contact does not require closing below both averages.

What This Code Does Not Test

The script does not enter during an unfinished bar, add on a failed bounce, combine bars, take the bullish with-support play, or manage the second-leg pattern. It uses a one-ATR stop and 2R target from actual fill, rather than a stop above the power-bar high. It does not validate any quoted 70%, 90%, or half-the-opportunities claim.

Execution Assumptions and Chart Setup

Use standard candlesticks rather than synthetic-price charts. Signals are evaluated on completed bars. Orders are submitted after confirmation and become eligible on the next available tick; a signal marker is not a fill. Neither calculation on every tick nor recalculation after fills is enabled. There are no higher-timeframe requests or negatively offset signals in these scripts.

A market entry and its stop/target bracket are submitted together. ATR is sampled at the signal, rounded upward into a positive tick risk distance, and frozen for that trade. The bracket distances are measured from actual simulated entry; they do not imply execution at the signal close. A time exit is requested after the selected number of bars and normally fills on a later tick. There is no automatic end-of-day flattening.

Defaults use one unit or contract, illustrative capital of $1,000,000, 100% margin, commission of 0.01% per transaction, and one tick of slippage. These are research settings, not sizing advice or a claim about a broker’s fees. Adjust quantity to the instrument’s tradable minimum and verify affordability, contract value, and currency. One contract does not mean 1% account risk.

Inspect trades where stop and target are both inside one candle: OHLC bars do not identify the actual event sequence. Compare Bar Magnifier where available and stress costs separately. See TradingView’s official strategy documentation (paid link) for broker-emulator and order behavior.

Validation status: the rules, state handling, raw code, and HTML presentation were reviewed statically. This script has not been compiled in TradingView or run against market data here; no win rate, profitability, or browser-tested copying is claimed. Compile it in Pine Editor and inspect the trade list before using its results.

If the Chart Shows No Trades

Check that the plotted reference lines appear and enough bars have loaded for the longest lookback. Compare the candidate, order, and closed-trade counters. Candidates without orders indicate a filter or position-state restriction; orders without fills require checking price conditions, quantity, and capital. Open trades are not yet closed trades. Use the controls to isolate the blocking condition, and preserve that diagnostic run separately from your formal experiment.

Research Lab: Controlled Comparisons

  1. Narrow-state contribution: compare the filter enabled and disabled with identical power, contact, and exit rules.
  2. Approach strength: hold the narrow-state choice fixed and compare red-body thresholds of 0.5, 0.8, and 1.1 prior ATR. Examine both net performance and how many opportunities remain.
  3. Timing cost: audit a replay sample using genuine lower-timeframe data to compare the close-based baseline with a separately defined intrabar rule. Never infer that earlier rule from the completed two-minute bar.

Begin on standard two-minute charts with enough history for the 200-period average. The baseline has no opening-session restriction, so do not describe its all-day result as evidence about the first bar after the open. Reserve later dates for validation and report average win/loss alongside the win percentage.

Check Your Understanding

1. Does a violent approach prove support will fail? No. It defines a continuation hypothesis that can still be stopped out.

2. Can a completed two-minute candle justify a historical entry 30 seconds before its close? Not without the information actually available at that earlier time.

3. Is a 70% win rate necessarily profitable? No. Average payoff, loss size, costs, and dependence between trades all matter.

Final Takeaway

Judge the approach to a level as well as the level itself. Keep entry timing and total position risk explicit, and test the power-bar hypothesis without importing the source’s unverified probability claims.

Risk Disclosure

This guide is for education and research, not personalized financial advice or a recommendation to buy or sell any security, contract, or other asset. Trading can result in substantial losses, and leveraged products can produce losses beyond the initial amount committed. Position exposure is not the same as capital at risk. Stops do not guarantee execution at their stated prices; gaps, slippage, spreads, fees, illiquidity, and trading halts can materially change results. Short selling introduces additional risks, including potentially unlimited losses. Historical examples, creator-reported outcomes, and hypothetical backtests do not establish future performance. Paper-test any rules, understand the instrument and execution assumptions, 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.