Video: I WANT THIS MUCH EVIDENCE BEFORE I TRADE
Creator: Oliver Velez Trading
Original Video: Watch the original video
Difficulty: Advanced
The Big Idea
Oliver Velez describes a short setup built from a sequence: sharp late-day weakness, an unexpected gap up the next morning, an opening location near resistance, and a bearish price trigger. The point is to distinguish a promising location from an actual trade.
A gap up near a 200-period moving average may justify attention. It does not, by itself, authorize an entry. In the source, a bearish color change or a breakdown and failed recovery supplies the execution event, while the day’s high helps define invalidation.
The presenter calls the combined evidence unusually favorable. The transcript supplies examples, including a failure, but no complete sample establishing the probability or profitability of the pattern. Our task is to convert the sequence into a transparent research question.
If You Remember One Thing
Location is context; a trigger is permission to act; invalidation is the condition that ends the idea. Keep these separate. Adding descriptive reasons to a chart does not substitute for an executable plan or measured evidence.
The Evidence Stack in the Source
| Component | Source interpretation | Question to test |
|---|---|---|
| Sharp final-hour decline | Downward momentum may persist into the next open. | How often does the next regular open actually gap down after a precisely defined decline? |
| Close near the day’s low | Strengthens the weakness context. | Does proximity to the low improve conditional results? |
| Gap up instead | Sets up a possible gap-up fade, called “gap and crap.” | How often and how far does price retrace before making a new high? |
| Opening near the 200 average | Potential overhead resistance zone. | Does proximity improve results relative to comparable gap-ups elsewhere? |
| Round-price area | Another possible resistance reference. | Does this filter add information after accounting for the moving-average condition? |
| Bearish trigger | Converts context into a trade. | What fills and losses follow a fixed trigger definition? |
These observations can overlap. The gap, opening price, moving average and round-price distance all derive from related price information. Three descriptions of one location are not three independent confirmations. Do not multiply assumed probabilities or infer that each extra condition must improve expectancy.
Late-Day Weakness and the Unexpected Gap
The source discusses roughly the last hour of the preceding session. A fall ending at the day’s low is a different condition from a temporary dip that recovers before the close. A test needs a fixed session, a defined decline threshold and a consistent reference for the next open.
An overnight gap reflects information and trading between sessions. The market has no obligation to behave as it “should” based on the preceding close. News, earnings or broad-market changes can invalidate a continuation expectation. A gap up after weakness may fail, hold or accelerate upward.
Separate two hypotheses: first, whether late-day weakness predicts the next gap direction; second, whether the subset that gaps up offers a useful short after a trigger. A profitable conditional fade would not prove that most weak closes gap down.
Resistance Is an Area, Not a Guarantee
Velez treats the 200 average as a zone rather than a thin line. This accommodates openings slightly above or below it. The exact width matters: a broad zone admits more setups and can make almost any nearby price look relevant.
The source also distinguishes the significance of round prices: a major level such as $300 is not treated as equivalent to $276, and half-dollar areas receive a different emphasis. Those are qualitative preferences. A $1 grid is one possible test definition, not a faithful recreation of every tier the presenter describes.
Round-price proximity must be scaled sensibly. If tolerance is too large relative to the grid, almost every opening qualifies. Research should report how many events each filter removes and whether it changes out-of-sample results.
From Location to the Color-Change Entry
In the source’s short version, a green bar is followed by a red bar that takes it out. Two trigger variants are described:
- Body break: the bearish move clears the lower edge of the preceding green body.
- Full-bar break: it also clears the preceding green candle’s low, including the lower wick.
The source enters during the triggering bar and chooses between variants partly according to wick size. That discretion must become a rule for reproducible testing. On a green candle, the body’s lower edge is its open. Waiting for a completed red close below that price is later and stricter than entering at the intrabar crossing.
The baseline below uses confirmed closes and next-tick market entries. This avoids pretending that final historical candles reveal every intrabar color change. It deliberately differs from the source’s discretionary entry timing.
Worked Example: A Small Planned Stop Can Still Be Expensive
Consider an invented five-minute stock example. The preceding 15:00 open was $278, the regular close $274, the day’s low $273.90 and closing ATR(14) $1.50. The final-hour fall is $4, or 2.67 ATR, and the close is within 0.25 ATR of the low.
The next regular session opens at $276.10, near a prior 200 SMA of $276.30 and the $276 whole-dollar level. A green bar opens at $276.00, closes at $276.25 and has a low of $275.90. The following red bar closes at $275.80. It qualifies under both the body-break and full-bar-close variants.
Suppose the morning high through the signal is $276.60. A one-cent buffer places the planned stop at $276.61. If the next market fill is $275.75, the distance to that stop is $0.86. The prior close of $274 provides a research target $1.75 below the entry, about 2.03 times the planned stop distance before costs.
If the actual fill is $275.20 instead, stop distance becomes $1.41 and target distance $1.20: about 0.85 times planned risk. The same signal can therefore have a different payoff geometry after a gap or slippage. The code does not claim a fixed reward-to-risk multiple. A stop-market fill can also be worse than its level.
Adding Changes the Trade
The presenter says he adds on the first subsequent color change after entry, and describes adding on a recovery toward the 200 following a breakdown. These are separate management decisions, not extra confirmation retroactively improving the original entry.
If 100 shares are short at $275.75 with a $276.61 stop, planned price risk is $86. Adding 100 at $275.40 with the same stop adds $121, making total planned price risk $207 before costs. The price moved favorably, yet planned monetary loss increased because quantity increased.
The source does not specify complete quantities, an aggregate risk cap or all add conditions. Our baseline omits additions to isolate the initial-entry question. Testing adds requires a separate specification with frozen stops, total exposure and actual fill accounting.
Gap Fill Is an Outcome Definition, Not a Force
The source uses a metaphor of price returning to an unfilled space. That is intuition, not a physical mechanism requiring gaps to close. Define the outcome: a partial retracement, a touch of the prior regular close, or a closing price below it are different measurements.
The baseline targets the prior regular close as an experimental exit. The source discusses pursuing a much larger move and taking some profits without supplying a complete exit rule. A full-gap target therefore tests a simpler trade, not the entire “whale” management approach.
The Failure Example Matters
The transcript includes Apple moving above the 200 instead of fading. Velez describes traders buying a failure of the short scenario. This helps separate a context hypothesis from certainty.
A short setup failing does not automatically create a tested long strategy. Reversing requires its own entry, stop, sizing and exit rules. Likewise, the presenter’s reported approximately $2,600 Tesla result is a single reported outcome, not evidence of typical returns or a verified track record.
Experimental Rules for the Pine Baseline
View Pine Script Backtest Code
//@version=6
strategy("Late-day weakness / gap-up fade: initial entry only", overlay=true,
initial_capital=100000, default_qty_type=strategy.percent_of_equity,
default_qty_value=10, pyramiding=0, margin_short=100,
commission_type=strategy.commission.percent, commission_value=0.05,
slippage=2, process_orders_on_close=false,
calc_on_every_tick=false, calc_on_order_fills=false)
// Use standard 5-minute US equity candles, regular-hours chart data only.
if not (timeframe.isminutes and timeframe.multiplier == 5)
runtime.error("Use a five-minute chart with regular trading hours only.")
string tz = "America/New_York"
float lateDropATR = input.float(1.0, "Minimum final-hour decline / ATR", minval=0.1, step=0.1)
float nearLowATR = input.float(0.25, "Prior close distance from day low / ATR", minval=0.0, step=0.05)
float gapATR = input.float(0.10, "Minimum gap up / prior ATR", minval=0.0, step=0.05)
bool useMA = input.bool(true, "Require opening proximity to prior 200 SMA")
float maZoneATR = input.float(0.50, "200 SMA zone half-width / prior ATR", minval=0.01, step=0.1)
bool useRound = input.bool(true, "Require opening proximity to round price")
float roundStep = input.float(1.0, "Round-price spacing in dollars", minval=0.01, step=0.5)
float roundZoneATR = input.float(0.10, "Round-price tolerance / prior ATR", minval=0.0, step=0.05)
bool fullBar = input.bool(true, "Require close below full green-bar low")
int entryMinutes = input.int(60, "Entry window after 09:30", minval=10, maxval=180)
float stopBuffer = input.float(0.01, "Stop buffer in dollars", minval=0.01, step=0.01)
float ma200 = ta.sma(close, 200)
float atr = ta.atr(14)
bool rth = not na(time(timeframe.period, "0930-1600:23456", tz))
bool newSession = rth and hour(time, tz) == 9 and minute(time, tz) == 30
bool lastHourStart = rth and hour(time, tz) == 15 and minute(time, tz) == 0
bool finalBar = rth and hour(time, tz) == 15 and minute(time, tz) == 55
int minutesNow = hour(time, tz) * 60 + minute(time, tz)
var float sessionLow = na
var float sessionHigh = na
var float finalHourOpen = na
var float previousSeenClose = na
var float previousSeenATR = na
var float gapTarget = na
var bool candidate = false
var bool used = false
var float fixedStop = na
if barstate.isconfirmed and rth
if newSession
// Stored values describe the preceding observed regular session only.
bool complete = not na(finalHourOpen) and not na(previousSeenClose) and previousSeenATR > 0 and not na(ma200[1])
bool lateWeak = complete and previousSeenClose <= finalHourOpen - lateDropATR * previousSeenATR
bool lowClose = complete and previousSeenClose <= sessionLow + nearLowATR * previousSeenATR
bool gapUp = complete and open > previousSeenClose + gapATR * previousSeenATR
bool maOK = not useMA or (complete and math.abs(open - ma200[1]) <= maZoneATR * previousSeenATR)
float nearestRound = math.round(open / roundStep) * roundStep
bool roundOK = not useRound or (complete and math.abs(open - nearestRound) <= roundZoneATR * previousSeenATR)
candidate := lateWeak and lowClose and gapUp and maOK and roundOK
gapTarget := previousSeenClose
sessionLow := low
sessionHigh := high
finalHourOpen := na
used := false
// Missing closing bars may have left exposure; exit before another trade.
if strategy.position_size < 0
strategy.close("Short", comment="Carryover cleanup", immediately=true)
else
sessionLow := na(sessionLow) ? low : math.min(sessionLow, low)
sessionHigh := na(sessionHigh) ? high : math.max(sessionHigh, high)
if lastHourStart
finalHourOpen := open
// Require the preceding green bar to belong to this same morning.
bool sameSession = not newSession and rth[1]
bool greenThenRed = close[1] > open[1] and close < open
float breakLevel = fullBar ? low[1] : open[1]
bool entryWindow = minutesNow < 570 + entryMinutes
// Reject signals after the gap has already traded through the target.
bool unfilledGap = not na(gapTarget) and sessionLow > gapTarget
bool trigger = candidate and not used and sameSession and entryWindow and greenThenRed and close < breakLevel and unfilledGap
if trigger and strategy.position_size == 0
fixedStop := math.ceil((sessionHigh + stopBuffer) / syminfo.mintick) * syminfo.mintick
strategy.entry("Short", strategy.short)
strategy.exit("Bracket", from_entry="Short", stop=fixedStop, limit=gapTarget)
used := true
// Bracket values are frozen at submission; no additions or later replacement.
if finalBar and strategy.position_size < 0
strategy.close("Short", comment="Scheduled end-of-day exit", immediately=true)
previousSeenClose := close
previousSeenATR := atr
plot(ma200, "200 SMA", color=color.orange)
plot(rth and candidate ? gapTarget : na, "Prior-session close / target", color=color.blue, style=plot.style_linebr)
plot(strategy.position_size < 0 ? fixedStop : na, "Frozen stop", color=color.red, style=plot.style_linebr)
Use standard five-minute US equity candles with regular-hours data only. Our fixed clock is 09:30–16:00 America/New_York, which handles daylight-saving changes but does not model exchange calendars or early closes. A preceding session without a 15:00 bar cannot supply the required final-hour reference and is excluded from the next setup.
| Element | Baseline research choice |
|---|---|
| Late weakness | 15:00 open to final observed regular close falls at least one prior-session closing ATR(14). |
| Low close | Prior close no more than 0.25 ATR above the observed session low. |
| Gap up | 09:30 open exceeds the prior close by more than 0.10 prior ATR. |
| 200 zone | Opening within 0.50 prior ATR of the preceding 200 SMA; optional filter. |
| Round-price zone | Opening within 0.10 prior ATR of the nearest $1 grid price; optional filter. |
| Trigger | Same-morning green candle, then a red close below its low; body-break mode is selectable. |
| Eligibility | First hour only, one submitted entry per session, no earlier touch of the prior-close target. |
| Risk and exits | 10% equity exposure, stop above the observed session high at submission, prior-close target, scheduled session-end exit. |
These thresholds are experimental definitions, not numbers supplied by the creator. ATR is calculated from five-minute bars and includes the chart’s opening jump. The script’s 200 SMA is also a five-minute-bar average. The source’s chart timeframe is not specified in the supplied transcript, so we do not claim an exact reproduction.
What This Code Actually Tests
It tests an initial short after a close-confirmed color change within a precisely defined gap-up-after-weakness context. Opening-location filters are fixed for the session; the stop and prior-close target are frozen when the entry is submitted. An earlier gap fill disqualifies subsequent signals. Disabling the 200 or round-price filter supports controlled comparisons.
The strategy uses one position and one entry submission per session, with no pyramiding, automatic reversal or additions. The 10% equity input controls exposure, not a fixed percentage loss budget. The distance from actual fill to the frozen stop determines planned price risk.
What This Code Does Not Test
It does not recreate intrabar body crossings, the discretionary Tesla breakdown entry, subsequent adds, partial profits, major versus minor round-number tiers or an extended “whale” exit. It does not prove the general gap-direction claim, estimate universal odds or demonstrate institutional order flow.
The fixed session is unsuitable for other exchanges, continuous markets or early-closing sessions without modification. Extended-hours chart data would alter the moving average and ATR despite the clock filter. Use regular-hours data only. Missing bars, corporate actions, short availability and borrow fees require separate checks.
Execution and Validation
Signal decisions use completed bars; market orders normally fill at the following bar’s open. Absolute brackets are submitted with the entry. They retain their original levels and can operate during the entry bar without waiting for another close. No later setup replaces an active stop.
A next-bar opening beyond the target or stop can create an immediate or unfavorable exit instead of the planned geometry. The market-entry baseline cannot know and reject that future fill at the preceding signal close. Inspect those trades rather than assuming every entry offers the worked example’s ratio. If both exits are reached within a historical bar, assumed intrabar order matters.
The scheduled exit uses the 15:55 bar’s closing tick via an immediate close. This is a simulation shortcut, not a guaranteed executable closing-auction fill. If closing bars are absent, a carryover cleanup closes at the next observed 09:30 bar’s close, exposing the position overnight in the meantime. Do not treat that as a clean intraday result.
Defaults are 0.05% commission per fill and two ticks of slippage. Review short borrow costs separately. For session definitions and broker-emulator assumptions, see TradingView’s session documentation (paid link) and strategy documentation (paid link). Lower-timeframe Bar Magnifier information can help examine ambiguous bars; it does not recreate unavailable discretionary decisions.
Validation status: The complete script and execution logic have been statically reviewed, and code-interface integrity has been checked. It has not been compiled or run in TradingView. No backtest results or measured probabilities are claimed.
Backtest Lab
- Does location add value? Compare both filters enabled, only the 200 enabled, only round prices enabled, and both disabled. Keep the trigger and exits fixed. Record trade counts, expectancy after costs, drawdown and excluded winners as well as avoided losses.
- Body versus full-bar break: Toggle the trigger mode. Compare actual entry prices and reward-to-stop distances rather than win rate alone. Both modes still wait for a close; neither reproduces intrabar entry.
- Threshold robustness: Compare late-hour declines of 0.5, 1.0 and 1.5 ATR, then test a small range of resistance-zone widths separately. Preserve a later untouched period; do not optimize every input at once.
- Execution stress: Raise commission to 0.10% and slippage to five ticks. Inspect entries beyond bracket levels, same-bar exits and closing-time shortcuts. Evaluate different liquid stocks and news regimes, not only the illustrated winners.
For the separate gap-direction hypothesis, collect every qualifying weak prior close, not just next-day gap-ups. Measure next-open direction and gap size consistently. Conditional fade trades are a selected subset and cannot provide that unconditional statistic.
Check Your Understanding
- Is opening at the 200 SMA an entry? No. It defines a location; the source still requires a trade event.
- Does a gap have to fill? No. A fill is an observable outcome to measure, not an obligation.
- Do overlapping resistance descriptions provide independent evidence? Not necessarily. Test their incremental contribution.
- Does adding at a better price always reduce monetary risk? No. Increased quantity can raise total risk even with an unchanged stop.
- Does the Apple failure automatically validate a long reversal? No. That is a separate strategy requiring its own rules and evidence.
Practice Exercise
Before revealing the next bars, label 20 consecutive qualifying morning contexts. Record the prior final-hour change, close-to-low distance, opening gap, 200 distance, round-price distance and whether a valid color change occurred. Preserve cases with no trigger and cases that continued upward.
Then calculate the actual fill-to-stop and fill-to-target distances for each submitted trade. A context can look excellent while offering poor payoff geometry by the time an executable entry arrives. That distinction is the practical meaning of weighing evidence against risk.
Final Takeaway
The source’s useful structure is context, location, trigger and invalidation. Treat the evidence stack as a set of hypotheses rather than a probability guarantee. Define the conditions before outcomes, account for actual fills and added exposure, and test whether each filter improves results beyond the simpler baseline.
Risk Disclosure
This guide is educational and is not personalized financial advice. Short selling can produce losses beyond initial capital, and opening gaps, liquidity, borrowing costs and slippage can materially alter outcomes. Stops do not guarantee execution prices. Hypothetical examples and historical simulations do not guarantee future performance.
CandleChasers is an independent educational publisher and is not affiliated with Oliver Velez Trading. The calculations, examples and experimental definitions here are CandleChasers’ independent analysis of the supplied material.