Opening Surge From a Flat 200: Entries, Adds, and Risk

Video: THE #1 SIGNAL I LOOK FOR THE OPEN
Creator: Oliver Velez Trading
Original Video: Watch the original video
Difficulty: Advanced

The Big Idea

The opening bell creates more opportunities than a trader can watch carefully. Oliver Velez’s solution begins before entry: reduce a familiar stock list to a few candidates, including stocks expected to open near a relatively flat 200-period moving average on a two-minute chart.

Proximity earns attention. A forceful move away from that area, clearing recent prices, supplies the potential trigger. The rest of the lesson concerns how to protect the initial position, add when the move confirms itself, and gradually exit.

The important distinction is between identifying a location worth watching and receiving an entry signal. Opening near the 200 is the first step, not proof that a trade will work.

Prepare the Chart Before the Bell

Velez uses a two-minute chart and compares the 20- and 200-period averages. He favors a relatively flat 200 and describes averages beginning to separate after previously narrowing. A flat average can be consistent with recent price balance; it does not establish that orders are waiting at the line.

His chart excludes extended-hours candles. He separately uses the latest premarket price to anticipate where the regular session might begin. These are compatible tasks: inspect a premarket quote without incorporating every premarket bar into the moving-average calculation.

A 200-period average on a two-minute chart covers 200 chart bars, rather than 200 days. Changing the session or timeframe changes its meaning. Extended-hours averages are not inherently incorrect, but they define a different setup from the one described here.

The last premarket trade is also an estimate of opening location. The actual opening price can differ. Record both if you want to evaluate how useful the premarket shortlist was, rather than selecting candidates retrospectively from the opening candle.

From Location to Opening Surge

The example is a bearish move from the 200. Velez watches the first two-minute candle become strongly red, break through a nearby cluster of earlier candles, and move below the 20. He generally wants at least a minute to pass, although he describes allowing earlier action for an unusually strong surge from a flat 200.

That is an intrabar decision. A completed candle shows its eventual high, low, and close; those values were not all available 50 or 90 seconds after the bell. Buying or selling at an earlier price because the finished candle later looks convincing introduces hindsight.

Source conceptWhat to recordWhat remains discretionary
Opening near the 200Opening price and distance from the previous completed averageThe acceptable distance
Relatively flat 200Change in the average across a specified lookbackThe slope threshold
Forceful clearing candleBody size, range, and earlier prices crossedHow much force and which cluster matter
Early participationElapsed time and information visible at the decisionWhen an exception to waiting is justified

Velez assigns exceptional importance to this setup, including suggesting that some nearby obstacles can be ignored. Treat that as his trading judgment rather than evidence that the setup overrides liquidity, execution risk, news, or higher-timeframe levels. A comparison with and without those context filters would be more informative than accepting the claim universally.

Initial Size Comes From the Stop

The source places protection beyond the event that motivated entry: above the surge candle for a short, with the mirrored logic for a long. Velez suggests extra size for an exceptional setup but explicitly reduces quantity when the proposed position would violate the maximum loss per trade.

That qualification controls the arithmetic. In an original short example, an entry at $50.00 with a $50.40 stop exposes approximately $0.40 per share before costs. A $120 price-risk budget permits 300 shares. If the entry deteriorates to $49.90 with the same stop, the distance grows to $0.50 and the same budget permits 240 shares.

Size should respond to the actual risk distance, permitted increments, and execution allowance. A fixed number of “lots” is insufficient when candle ranges and instrument values vary. A stop order also cannot guarantee its price through a gap or fast move.

Add When the Move Confirms Itself

In the bearish example, a green countertrend candle appears after the initial entry. Velez adds when selling takes out that countertrend candle. The idea is to increase exposure after renewed movement in the desired direction, rather than add simply because the original trade is losing.

He describes the first such add as a regular part of his method, while later adds are optional. He also cautions against adding far from the move’s origin. Those instructions still sit inside the maximum-loss constraint: when an add does not fit, the source offers skipping it or using separate protection for that tranche.

Suppose the original 300-share short is at $50.00 with a $50.40 stop. An additional 100 shares at $49.70 would expose another $70 at the same stop, increasing combined entry-to-stop price risk from $120 to $190. Giving the added shares a separate $49.90 stop reduces their price risk to $20, but the combined figure is still $140. It still exceeds a $120 budget.

A tighter stop on the add does not automatically make the whole trade compliant. Sum the risk of every remaining tranche, include realized losses and execution allowances, and distinguish initial-capital risk from the amount of open profit that could be surrendered. Do not assume accumulated paper profit is permanently secured.

The transcript allows different treatment of candle wicks in identifying an add. A mechanical test needs one explicit rule. Mixing body breaks and wick breaks selectively after seeing the outcome would make the result difficult to interpret.

Manage the Exit Without Assuming Safety

Velez distinguishes accelerated pushes from a gradual crawl and describes taking partial profits after three pushes. He mentally removes the latest-added exposure first, then some of the original entry, and moves protection on the remainder toward breakeven.

That is a trade-management convention. Actual tax-lot identification and broker handling depend on the account and instrument. Separate entry records and stop quantities are necessary if you intend to reproduce separate tranches rather than manage a single average-price position.

The source later tightens protection around a substantial directional candle and uses an eight-period average for the final runner when price has moved away from the 20. A breakeven stop reduces planned price risk, but costs, gaps, and adverse fills can still turn the overall result negative.

The “whale” pattern describes an initial move, a separated pause, and another move in the same direction. Its apparent midpoint becomes clear only as the second leg develops. Use the possibility to frame a scenario; do not backdate an entry or exit because the final geometry later looks balanced.

Research Test: Does the Opening Location Help?

Expand the complete Pine Script research strategy

//@version=6
strategy("Opening surge near a flat 200 - research proxy", overlay=true,
     initial_capital=25000, pyramiding=0, margin_long=100, margin_short=100,
     commission_type=strategy.commission.percent, commission_value=0.01,
     slippage=2, process_orders_on_close=false, calc_on_every_tick=false,
     calc_on_order_fills=false)

useEMA = input.bool(false, "Use EMA instead of SMA (research choice)")
nearATR = input.float(0.25, "Opening proximity / prior ATR", minval=0.0)
flatATR = input.float(0.10, "Maximum 200 change / prior ATR", minval=0.0)
slopeBars = input.int(5, "200 slope lookback", minval=1)
bodyATR = input.float(1.0, "Minimum opening body / prior ATR", minval=0.0)
bodyFraction = input.float(0.70, "Minimum body / candle range", minval=0.0, maxval=1.0)
clearBars = input.int(5, "Previous bars to clear", minval=1)
cashRisk = input.float(100, "Estimated cash risk before costs", minval=1)
lotStep = input.float(1, "Quantity increment", minval=0.000001)
maxQty = input.float(1000, "Maximum quantity", minval=0.000001)
allowShorts = input.bool(true, "Allow shorts (requires actual borrow)")
useFlatFilter = input.bool(true, "Require flat 200")
useNearFilter = input.bool(true, "Require opening near 200")
cutoffHour = input.int(16, "Session closing hour, New York", minval=1, maxval=23)
cutoffMinute = input.int(0, "Session closing minute", minval=0, maxval=59)

if barstate.isfirst and (not timeframe.isminutes or timeframe.multiplier != 2)
    runtime.error("Use a standard two-minute US equity chart.")
if session.ispremarket or session.ispostmarket
    runtime.error("Disable extended hours. Moving averages require regular-session bars.")

ma200 = useEMA ? ta.ema(close, 200) : ta.sma(close, 200)
ma20 = useEMA ? ta.ema(close, 20) : ta.sma(close, 20)
ma8 = useEMA ? ta.ema(close, 8) : ta.sma(close, 8)
atr = ta.atr(14)
priorHigh = ta.highest(high, clearBars)[1]
priorLow = ta.lowest(low, clearBars)[1]
priorATR = atr[1]
ready = not na(ma200[slopeBars + 1]) and not na(priorATR) and priorATR > 0
firstBar = hour(time, "America/New_York") == 9 and minute(time, "America/New_York") == 30
flatOK = ready and (not useFlatFilter or math.abs(ma200[1] - ma200[slopeBars + 1]) <= flatATR * priorATR)
nearOK = ready and (not useNearFilter or math.abs(open - ma200[1]) <= nearATR * priorATR)
strongBody = math.abs(close - open) >= bodyATR * priorATR and
     high > low and math.abs(close - open) / (high - low) >= bodyFraction
longSignal = firstBar and flatOK and nearOK and strongBody and close > open and
     close > priorHigh and close > ma20 and close > ma200
shortSignal = firstBar and flatOK and nearOK and strongBody and close < open and
     close < priorLow and close < ma20 and close < ma200 and allowShorts

var float fixedStop = na
if strategy.position_size == 0 and strategy.position_size[1] != 0
    fixedStop := na

if strategy.position_size == 0 and (longSignal or shortSignal)
    candidateStop = longSignal ? low - syminfo.mintick : high + syminfo.mintick
    distance = math.abs(close - candidateStop)
    perUnitRisk = distance * syminfo.pointvalue
    quantity = perUnitRisk > 0 ? math.floor(math.min(maxQty, cashRisk / perUnitRisk) / lotStep) * lotStep : 0.0
    if quantity >= lotStep
        fixedStop := candidateStop
        if longSignal
            strategy.entry("L", strategy.long, qty=quantity)
            strategy.exit("L-stop", "L", stop=fixedStop)
        else
            strategy.entry("S", strategy.short, qty=quantity)
            strategy.exit("S-stop", "S", stop=fixedStop)

// Keep the original protective price fixed; never widen it.
if strategy.position_size > 0
    strategy.exit("L-stop", "L", stop=fixedStop)
    if close < ma8
        strategy.close("L", comment="Closed below 8")
if strategy.position_size < 0
    strategy.exit("S-stop", "S", stop=fixedStop)
    if close > ma8
        strategy.close("S", comment="Closed above 8")

endBar = hour(time_close, "America/New_York") == cutoffHour and
     minute(time_close, "America/New_York") == cutoffMinute
if endBar
    strategy.cancel_all()
    strategy.close_all(comment="Session flatten", immediately=true)

plot(ma200, "200", color=color.orange, linewidth=2)
plot(ma20, "20", color=color.blue)
plot(ma8, "8", color=color.purple)
plot(strategy.position_size != 0 ? fixedStop : na, "Original stop", color=color.red, style=plot.style_linebr)
plotshape(longSignal, "Long candidate", shape.triangleup, location.belowbar, color=color.green, size=size.tiny)
plotshape(shortSignal, "Short candidate", shape.triangledown, location.abovebar, color=color.red, size=size.tiny)

The following Pine Script tests a narrower question: does a strong opening candle that clears recent prices perform differently when the stock opens near a flat 200? It uses a completed first two-minute candle, one position, a fixed protective stop beyond that candle, and an eight-average closing signal for exit.

These numerical definitions are ours: proximity within 0.25 prior ATR; a five-bar change in the 200 no larger than 0.10 prior ATR; candle body at least one prior ATR and 70% of its range; and a close beyond the previous five bars. The body must also finish beyond the 20 and 200 in its direction. ATR uses 14 regular-session bars. These defaults are hypotheses, not settings supplied or validated by Velez.

The transcript calls the lines moving averages without consistently establishing their calculation type. This test defaults to SMA and provides an EMA alternative as a research choice. It omits adds, push counting, partial profits, and whale geometry so the initial location can be studied without combining multiple discretionary rules.

Run it on standard two-minute US equity candles with extended hours disabled and adequate history. Entries are submitted after the opening candle closes and normally fill at the next bar’s open. Quantity is estimated from the signal close, so a gap can change actual cash risk. The original stop is submitted with the entry and remains fixed; it can fill adversely if price gaps through it.

Execution Checks and Backtest Lab

The strategy calculates on completed bars, uses no future data or higher-timeframe requests, and does not recalculate after fills. The eight-average exit normally fills on the next bar. Its protective stop remains active meanwhile. The end-of-session flatten uses an immediate simulated close at the configured closing time; this is an optimistic execution assumption and requires additional cost stress. Set the cutoff to 13:00 for early-close sessions and test those dates separately; the script does not automatically identify exchange holidays.

Commission defaults to 0.01% per fill and slippage to two ticks, adjustable in Strategy Properties. These are placeholders. Short availability, borrow charges, opening liquidity, and rejected orders are not modeled. Margin is 100%, so buying power can prevent a candidate from becoming a position. A plotted candidate therefore does not guarantee a fill.

TradingView’s strategy documentation (paid link) explains order timing and broker-emulator assumptions. Use Bar Magnifier when available to inspect intrabar stop behavior. This code has been reviewed for its stated logic but has not been compiled or backtested in TradingView; no performance result is claimed.

ComparisonChange one variableMeasure
Location filterToggle proximity to the 200Net expectancy, trade count, adverse excursion
Flatness filterToggle the slope requirementDrawdown and stability across periods
Average constructionSwitch SMA to EMACandidate overlap and outcome sensitivity
Execution stressIncrease slippage and commissionWhether apparent profitability survives costs

Use the same instruments and dates for each comparison, retain unchanged rules for an out-of-sample period, and include losing candidates. A single-symbol test cannot reproduce the premarket selection of two or three stocks from a larger watchlist. That selection needs a separate record of what was available before the bell.

Final Takeaway

The lesson combines preparation, a forceful move from a defined location, and position management. Watchlist selection should happen before the opportunity; adding should follow a specified confirmation; and every tranche must fit the trade’s total risk budget. Testing the opening location separately helps determine whether it adds value before attaching the source’s more discretionary management techniques.


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 are hypothetical, depend heavily on their assumptions, and cannot reproduce every aspect of live execution. Commissions, spreads, slippage, liquidity, gaps, order behavior, market regime changes, and discretionary decision-making can materially affect real-world results. Short selling adds borrow and potentially unlimited-loss risks. Historical results do not guarantee future performance.

This article is an independent educational companion to the video and is not affiliated with, sponsored by, endorsed by, or authorized by Oliver Velez Trading.

As an Amazon Associate I earn from qualifying purchases.