The 3R Rule: Align Risk, Daily Bias and Range Before Scaling

Video: If You Only Have $50, Do This Every Morning (The 3R Rule)
Creator: The Rumers
Original Video: Watch the original video
Difficulty: Beginner to intermediate

The Big Idea

A reward target does not become likely simply because it is three times your stop distance. The Rumers combines three questions: does the intended trade fit the daily directional context, where are the relevant price levels, and how large is the move compared with the instrument’s recent range?

The presenter also argues that a stop should express a structural reason the trade is wrong, rather than being squeezed toward entry until the ticket shows a comfortable dollar amount. Position size then translates that price distance into a planned loss budget.

The title’s $50 is important to interpret correctly. In the transcript it is principally planned risk per trade, not the total amount needed to open and operate an account. The source later uses a hypothetical $5,000 account. Margin, transaction costs, permitted quantity and adverse execution remain separate constraints.

If You Remember Only One Thing

Choose the invalidation first, calculate the size second, and evaluate the target’s plausibility third. A 3R label is payoff geometry; it is not a probability estimate or a guaranteed payout.

60-Second Summary

  • The source uses a daily SMA(50) as a directional guide.
  • Previous-day highs and lows are reference levels; additional historical swing levels add context.
  • ATR describes past price movement, not a hard limit or remaining daily allowance.
  • $50 planned stop risk does not mean a $50 account is sufficient.
  • Actual loss can exceed the plan because of fees, gaps and adverse fills.
  • Structural stop distance determines position size; a tight stop does not make a setup intrinsically safer.
  • Scale based on evidence and account constraints, not a short winning streak.
  • The research strategy below tests a defined chart proxy and does not reproduce the complete discretionary method.

Make the Dollar Budget Follow the Trade

The source criticizes entering first and dragging a stop until the platform displays $50 of risk. That can place the stop inside ordinary noise without identifying what would invalidate the setup.

Our example: entry is $25, and the planned structural stop is $24.75. Gross risk per share is $0.25. A $50 budget supports 200 shares before costs, requiring $5,000 of exposure. If the logical stop is instead $24.50, the same budget supports 100 shares and $2,500 of exposure.

Whole shares = floor[risk budget / (entry-to-stop distance)]. Apply capital, quantity and cost constraints afterward. Moving the stop from $24.50 to $24.75 simply to double the shares changes the trade’s invalidation rule.

Neither scenario guarantees a $50 maximum loss. If the first position exits at $24.60, its price loss is $80 before costs. Minimum quantities can also make a valid setup impossible within the budget. The source’s claim that anyone can trade any asset at $50 risk overlooks those constraints.

Daily Bias Is a Filter, Not Control Over the Next Candle

The presenter favors longs above a daily 50-period simple moving average and shorts below it. He suggests directing most attention and larger planned risk toward that side, with smaller and shorter countertrend trades.

A SMA(50) is the arithmetic mean of the last 50 daily closes. Being above it is a defined trend proxy; it does not directly measure who holds orders or guarantee buyer control. A stock can remain above the average while falling intraday, and the average can lag a new trend.

The source’s 80–90% directional emphasis is an operating preference, not a supplied statistical result. “Full risk” should mean a pre-established budget within account limits, not maximum leverage. Whether trend alignment supports larger targets requires net trade data.

For our code, bias uses the previous completed daily close and its SMA. That intentionally avoids using today’s eventual close before it is known. It also differs from a discretionary reading of price relative to a moving average while the current day develops.

Mark Price References Without Claiming Hidden Orders

The source defines range high and range low as the previous day’s high and low. It then looks backward for an additional swing high above that range and a swing low below it. These levels organize location: a chasing long near an overhead level faces a different geometry from a reversal entry close to its invalidation.

Calling them liquidity zones is a hypothesis about possible interest, not proof of the strongest participants’ identity or order size. OHLC candles show where trades occurred; they do not establish a complete inventory of resting orders.

Specify whether previous-day data means regular hours or the full extended session. The choice can move both boundaries. Define swing detection before looking at the outcome; an obvious historical high selected after the reversal is not a reproducible prospective rule.

The transcript’s chart illustrations favor selling a rejection near overhead levels in bearish daily context. The exact dates, coordinates, confirmation criteria and trade records are not supplied. Its selected winning examples do not establish a win rate.

ATR Is a Scale for Movement, Not a Price Ceiling

True range for one bar is the largest of high minus low, absolute high minus previous close, and absolute low minus previous close. ATR smooths those true ranges over a chosen period. The source does not state its ATR period; our experiment uses 14.

If completed daily ATR is $0.70, that describes recent movement in price units. It does not mean exactly $0.70 is available upward and another $0.70 downward. It is not the expected profit from entry.

Our example: current session range is $0.50, or about 0.71 daily ATR. That ratio is a useful observation. It does not leave a guaranteed $0.20 allowance. The session can finish with $0.40 of range or expand beyond $1.40. Trend days and news can repeatedly exceed the historical average.

The video sometimes measures displacement from the previous close and elsewhere discusses range traveled. Those quantities differ. Our code uses the regular session high minus low divided by prior completed daily ATR. It does not reproduce a net-displacement measure or infer that a stretched move must reverse.

3R Only Helps When the Realized Distribution Supports It

Define 1R as the initial planned dollar price risk. At $50 initial risk, an ideal +3R winner earns $150 before costs, and an ideal −1R loser loses $50. If every result matched those two outcomes, gross expectancy would be 4p − 1 R, with break-even at a 25% win rate.

Idealized win rateGross expectancyWith 0.10R average costs
20%−0.20R−0.30R
30%+0.20R+0.10R
40%+0.60R+0.50R

A target hit rate cannot be inferred from its multiple. Partial exits, early exits, session liquidation and losses exceeding −1R change the calculation. Use conditional average realized winners and losers rather than assuming every planned target becomes a winner.

The presenter’s “probability factor” is a discretionary checklist, not a calibrated numerical probability model. Its three components can be tested separately. A filter that makes examples look cleaner might still reduce net expectancy or remove the best trend days.

Scale the Risk Process, Not Just the Share Count

The source’s hypothetical “Wall Street raise” increases shares by 10% after account growth of 10%: a $5,000 account with 50 shares becomes $5,500 with 55 shares. At a constant $1 stop distance, gross risk rises from $50 to $55 while remaining 1% of those respective balances.

That proportion only holds if stop distance stays constant. If the new trade needs a $2 stop, 55 shares risks $110, or 2% of $5,500. Share count is therefore not a sufficient scaling rule. Recalculate risk, exposure and estimated execution costs for each setup.

The presenter proposes several profitable days per week and a few consistent weeks before scaling. These are practice milestones, not proof of statistical edge. Three +$20 days and two −$100 days total −$140, despite three winning days. Record net expectancy, drawdown, deviations and adverse losses alongside daily win frequency.

A review policy can require an unchanged rule set, complete records and predefined responses to drawdown before any increase. That is our process suggestion, not a guarantee of safe growth. Scaling can alter fills, impact and behavior, so execution must be reassessed.

Instrument Choice Has Constraints the Title Does Not Capture

The source prefers equity-index futures for beginners and reports time-based SPY long-entry win rates of 51%, 53% and 54% across different exits. It provides no complete sample ledger or cost-adjusted payoff distribution. The broader claim that futures go up about 80% of the time is undefined and is not established by those reported figures.

SPY and an equity-index futures contract have different multipliers, margin, fees and session mechanics. A win rate slightly above 50% does not establish positive expectancy if losers are larger or costs overwhelm small gains. Adding indicators does not automatically improve a baseline.

For a concrete sizing example, CME specifies Micro E-mini S&P 500 futures as $5 per index point with a 0.25-point minimum tick. One tick is therefore $1.25 per contract. A ten-point stop on one contract represents $50 gross price risk before fees or adverse execution. A twelve-point stop represents $60, and a fraction of one contract is not available.

This example is not a futures recommendation or a claim that $50 meets margin requirements. The code uses USD stock/ETF share mechanics instead. Source ETF examples also require checking the actual fund mandate and leverage rather than assuming a fund simply behaves like its underlying stock.

Executable Research: Bias, Prior-Day Rejection and Range Stretch

View Pine Script Backtest Code
//@version=6
strategy("CandleChasers: Bias, Prior Levels and Range Lab", overlay=true, initial_capital=5000, currency=currency.USD, pyramiding=0, commission_type=strategy.commission.percent, commission_value=0.05, slippage=2, margin_long=100, margin_short=100, calc_on_every_tick=false, calc_on_order_fills=false, process_orders_on_close=false)

// Original chart-component proxy. Does not reproduce structural stops.
useBias = input.bool(true, "Require daily SMA direction")
useRange = input.bool(true, "Require intraday range stretch")
stretch = input.float(1.0, "Session range / completed daily ATR", minval=0.1, step=0.1)
cashRisk = input.float(50.0, "Planned gross stop-risk dollars", minval=1)
exposurePct = input.float(90.0, "Estimated exposure ceiling (%)", minval=1, maxval=100)
stopATR = input.float(1.0, "Stop distance / chart ATR", minval=0.1, step=0.1)
targetR = input.float(3.0, "Target / initial stop distance", minval=0.1, step=0.1)

if not timeframe.isminutes or timeframe.multiplier != 5
    runtime.error("Use standard five-minute candles.")
if syminfo.type != "stock" or syminfo.currency != "USD" or syminfo.pointvalue != 1
    runtime.error("Use a USD US-listed stock or stock-type ETF with point value 1.")

regularTicker = ticker.new(syminfo.prefix, syminfo.ticker, session.regular)
[pdHigh, pdLow, pdClose, dailySMA, dailyATR] = request.security(regularTicker, "D", [high[1], low[1], close[1], ta.sma(close, 50)[1], ta.atr(14)[1]], lookahead=barmerge.lookahead_on)
entryWindow = not na(time(timeframe.period, "0935-1500:23456", "America/New_York"))
atr = ta.atr(14)
var float sessionHigh = na
var float sessionLow = na
var bool submittedToday = false
var int stopTicks = na
var int targetTicks = na

if session.isfirstbar_regular
    sessionHigh := high
    sessionLow := low
    submittedToday := false
else if session.ismarket
    sessionHigh := na(sessionHigh) ? high : math.max(sessionHigh, high)
    sessionLow := na(sessionLow) ? low : math.min(sessionLow, low)

rangePass = not useRange or (not na(dailyATR) and dailyATR > 0 and sessionHigh - sessionLow >= stretch * dailyATR)
longBias = not useBias or pdClose > dailySMA
shortBias = not useBias or pdClose < dailySMA
longReject = not na(pdLow) and low < pdLow and close > pdLow and close > open
shortReject = not na(pdHigh) and high > pdHigh and close < pdHigh and close < open
closedThisBar = strategy.closedtrades > nz(strategy.closedtrades[1], 0)

if barstate.isconfirmed and session.ismarket and entryWindow and not session.islastbar_regular and not submittedToday and strategy.position_size == 0 and not closedThisBar and rangePass and not na(atr) and atr > 0 and strategy.equity > 0
    longSignal = longReject and longBias
    shortSignal = shortReject and shortBias
    if longSignal != shortSignal
        stopTicks := math.max(1, int(math.ceil(stopATR * atr / syminfo.mintick)))
        targetTicks := math.max(1, int(math.round(stopTicks * targetR)))
        riskShares = math.floor(cashRisk / (stopTicks * syminfo.mintick))
        capShares = math.floor(strategy.equity * exposurePct / 100.0 / close)
        shares = math.min(riskShares, capShares)
        if shares >= 1
            if longSignal
                strategy.entry("Long", strategy.long, qty=shares)
                strategy.exit("Long bracket", "Long", loss=stopTicks, profit=targetTicks)
            else
                strategy.entry("Short", strategy.short, qty=shares)
                strategy.exit("Short bracket", "Short", loss=stopTicks, profit=targetTicks)
            submittedToday := true

if strategy.position_size > 0
    strategy.exit("Long bracket", "Long", loss=stopTicks, profit=targetTicks)
if strategy.position_size < 0
    strategy.exit("Short bracket", "Short", loss=stopTicks, profit=targetTicks)

// Explicit emulator assumption: liquidation at the last regular bar's close.
if barstate.isconfirmed and session.islastbar_regular
    strategy.cancel_all()
    strategy.close_all(comment="Regular session close", immediately=true)

plot(pdHigh, "Previous completed regular-day high", color=color.red, style=plot.style_stepline)
plot(pdLow, "Previous completed regular-day low", color=color.green, style=plot.style_stepline)
plot(session.ismarket and not na(dailyATR) and dailyATR > 0 ? (sessionHigh - sessionLow) / dailyATR : na, "Session range / prior daily ATR", display=display.data_window)

Research question: Does daily directional alignment improve net outcomes for a defined previous-day level rejection, and how does requiring a stretched session range change participation?

Source Rules vs Experimental Definitions vs Implementation Shortcuts

LevelIncluded here
Source conceptsDaily SMA(50) bias, previous-day high/low, range context, modest risk and larger payoff targets
Our definitionsFive-minute wick through a prior regular-day level with a directional close back inside; session range at least one prior daily ATR; one entry submission per day; 3R bracket
ShortcutsFill-relative chart-ATR stop instead of structural invalidation; no additional swing levels, discretion, scaling ladder or futures contracts

This code tests one objective interpretation of the source’s concept. Any mechanical definitions introduced here are ours and are not necessarily the creator’s exact rules. The ATR stop is intentionally a baseline simplification; this experiment does not validate the source’s structural-stop lesson.

Execution Assumptions and Validation status

Use standard five-minute candles on US-listed USD stocks or stock-type ETFs with point value 1. Prior levels, SMA and daily ATR come from the regular-session ticker and only completed daily data. The regular session high and low build from observed bars; completed bar information is used only at that bar’s close.

Entry submissions occur during the 9:35 a.m.–3:00 p.m. New York window, within the regular session. A confirmed signal normally produces a market fill on the next opening tick. Stop and target distances are frozen from chart ATR, converted into ticks and submitted with the entry. They anchor to the actual fill, rather than treating the signal close as an entry price. The stop need not sit outside the signal candle’s extreme.

The $50 gross stop budget is divided by the frozen per-share distance and rounded down. A 90% signal-price exposure cap can reduce quantity further. These are experimental defaults, not recommended risk levels. An opening gap can change exposure or cause margin rejection; fees and adverse exits can take actual loss beyond $50. The same gross sizing cap applies to long and short entries, but the emulator does not verify stock-borrow availability.

The script permits one entry submission per regular day, rejects ambiguous simultaneous long/short signals, and ignores new signals while positioned. Fixed bracket state cannot be overwritten. It cancels orders and submits immediate liquidation on the feed’s last regular-session bar. This models an exit at that bar’s close; real execution at that exact price is not assured. Check last-bar flags on full and shortened sessions, and treat missing session bars as a data limitation.

Commission is an illustrative 0.05% per executed order and slippage two ticks, adjustable in Properties. Spread, market impact, borrow fees, locate restrictions and dividend obligations are not separately modeled. Both bracket levels reachable in one bar require lower-timeframe review or a Bar Magnifier comparison. See TradingView’s official strategy documentation (paid link) for emulator assumptions.

Validation status: This complete Pine v6 strategy has been reviewed as text but has not been compiled in TradingView or run against historical data here. No performance results are claimed. Compile first and audit daily references, session resets, quantities, fills and liquidation before reading summary metrics.

What This Code Actually Tests

Long candidates reject below the prior-day low and close bullishly back above it; shorts reject above the prior-day high and close bearishly back below it. Optional daily bias and range-stretch filters accept or reject those candidates. The outcomes include fixed 3R targets, ATR stops, costs and session exits under the specified model.

What This Code Does Not Test

It does not reconstruct the presenter’s structural entries, extra swing levels, market-depth claims, countertrend scalps or complete “probability factor.” It does not implement account-growth scaling, verify reported baseline win rates, establish futures suitability or demonstrate profitability from a $50 account.

Backtest Lab

These are our experiments. Freeze instrument, dates, session, entry definition, sizing, exits and costs except for the single variable being studied. Reserve later data before choosing settings.

ExperimentChange onlyMeasure and interpret
Does daily bias add value?Bias filter on versus offNet expectancy, trade count and long/short results separately. Do not hide one side’s losses in an aggregate.
Does stretch favor reversal?Range filter off, then thresholds at 0.75, 1 and 1.25 ATRParticipation, net R and target hits. A stretched range can still trend farther.
Is 3R supported?Target at 2R, 3R and 4RRealized payoff, stop frequency and session exits. Planned targets alone do not determine average winners.
How fragile are small-risk results?Commission alone, then slippage aloneAverage net trade and costs in initial-risk units. Small nominal budgets can magnify friction relative to R.

Report filled trades, rejected or unaffordable signals, net expectancy, conditional average wins and losses, profit factor, drawdown, actual losses beyond planned R and rule deviations in paper practice. Because only one submission is allowed per day, a filter can change which later opportunity becomes the day’s entry. Use a common raw-candidate journal for participation comparisons.

Try It Yourself

Build a morning worksheet with completed daily close/SMA, prior regular-day high/low, explicitly defined additional swings, completed daily ATR, planned entry, invalidation and available capital. For each hypothetical trade, calculate shares and the move needed for 3R before viewing the outcome.

Example: $20 entry, $19.80 structural stop, $50 gross risk budget. The risk-based quantity is 250 shares and exposure $5,000; the ideal 3R target is $20.60. If only $2,500 is available without leverage, 125 shares fit, risking $25 and targeting $75 gross. The appropriate response is a smaller position or no trade, not moving the stop to force $50 risk.

Check Your Understanding

1. Does the video describe a $50 account?
Its examples primarily describe $50 planned risk per trade; account capital and margin are separate.

2. Is 3R a probability?
No. It is a planned reward multiple relative to initial risk.

3. Does reaching one daily ATR force reversal?
No. ATR is a historical movement scale, not a limit.

4. Why can increasing shares by 10% double the risk percentage?
If the new stop distance doubles, proportional share growth no longer preserves the old risk fraction.

5. Do three profitable days prove a profitable week?
No. Two larger losing days can outweigh them.

6. Does the code test structural stop placement?
No. It uses an explicitly independent ATR stop to test chart filters.

Final Takeaway

The source’s useful lesson is to connect modest planned risk with market context and realistic payoff expectations before scaling. It does not prove that ATR caps a move, that futures forgive mistakes, or that a 3R target supplies an edge. Test one defined filter at a time, reconcile actual outcomes and costs, and size from an honest invalidation rule.

Risk Disclosure

This material is for educational and research purposes only, not financial or investment advice. Trading can cause substantial losses. Historical and simulated outcomes do not guarantee future results. Leverage, gaps, liquidity, costs and order behavior can cause losses beyond a planned budget; short positions have theoretically unlimited price-loss potential.

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

As an Amazon Associate I earn from qualifying purchases.