← All ideas
#059NewBreakoutSwing

Trigger bar in a continuation base: narrow candle on the average and dry volume

A strong stock builds a flag or box and tightens toward EMA 10, EMA 21 or SMA 50. A narrow candle with the lowest volume in the base sets the levels: buy with a stop order above its high, stop below its low, risk less than the 20-day ADR%.

Jack Corsellis · Watch video

Markets

Stocks

Timeframe

D1, H1

Data

OHLC, Volume, Instrument universe

Rules

Partly formalised

Difficulty

Medium

Status

Untested

Some rules were added by us and are marked in the text.

TradingView ports directly
EasyLanguage has pitfalls
MetaTrader 5 has pitfalls

Idea in brief

Jack Corsellis looks for a stock among the strongest in the market that has paused after a rise. The pause looks like a flag, pennant, wedge or Darvas box. Inside the base, price pulls toward the 10-day EMA, the 21-day EMA or the 50-day SMA, and the candle ranges narrow. At some point a narrow candle appears, often an inside bar, right on the average and with the lowest volume in the base. Jack calls it the trigger bar: it is the signal.

The levels come from this candle. Buy with a stop order through its high, stop one cent below its low. If the stop in percent is larger than the stock's 20-day ADR%, the trade is skipped. On the best trigger bars the stop takes half to two thirds of ADR%.

The setup differs from the qullamaggie-breakout card in where the signal and the levels come from. There the entry goes through the high of the first minutes of the day with a stop at the low of the day. Here a narrow daily candle gives the signal and the levels: the base entry is a stop order through its high, the stop sits below its low, and proximity to the average and dry volume are set as separate conditions. Jack allows an opening range breakout as a replacement for the daily stop order, and the convergence of averages on the hourly chart serves only as a test in this card. Both cards include a prior rise, but the threshold has a different origin: in qullamaggie-breakout the author names a rise of 30% or more, here Jack names no threshold, and 30% over three months is our choice. Stock selection is moved to a separate rule at the end of the "Rules" section.

Why it might work

The author's explanation rests on supply and demand. A narrow candle in a tight base on falling volume means almost no sellers are left. Jack refers to Toby Crabel: volatility contraction is followed by expansion. Since the trend before the base was up, the expansion is expected in the same direction. On the best breakouts, a volume spike comes the next day.

The second argument concerns risk. A narrow candle gives a close stop, so the trade is asymmetric from the start: the risk is a fraction of ADR%, the potential is several ADR%. Jack sees stop runs and undercuts of the averages inside the base as a good sign: weak holders have already left.

These explanations have not been verified. The examples in the video were selected by the author, and there are no statistics on the setup.

Rules

Context on a single stock (author, thresholds Finetiq)

// daily bars of the stock
EMA10  = EMA(Close, 10);  EMA21 = EMA(Close, 21)
SMA50  = SMA(Close, 50);  SMA200 = SMA(Close, 200)
ADRpct = 100 * (Average(High / Low, 20) - 1)
// author: average daily range in % over 20 days, from low to high, without gaps
// Finetiq: formula as in the ADR% indicator on TradingView that the author uses

Uptrend = Close > SMA50 AND Close > SMA200               // author
Leader  = Close / Close[63] - 1 >= 30%                    // author: a big rise over 1, 3 or 6 months, examples of 30%, 50%, 70% or 100%
                                                          // Finetiq: 3-month window and 30% threshold
RS      = (Close / IndexClose) > (Close[63] / IndexClose[63])   // author: stronger than the index; Finetiq: method
// author: even better if the stock is stronger than its group. This needs a group index series

Base (author, formalization Finetiq)

BaseHigh = Highest(High, 60)
BaseLen  = number of bars after the BaseHigh bar
BaseLow  = Lowest(Low, BaseLen)

BaseOK = BaseLen >= 10                                    // author: two weeks or more, preferably three to four or longer
         AND (BaseHigh - BaseLow) / BaseHigh * 100 <= 4 * ADRpct   // Finetiq: base depth no more than 4 ADR%
// author: undercuts of the averages and shakeouts inside the base are acceptable, closes below the EMA are not prohibited
// author: do not enter after a sharp V-shaped reversal, wait for a higher low and a new trigger bar

Trigger bar (author, thresholds Finetiq)

Range  = High - Low
Inside = High <= High[1] AND Low >= Low[1]
Tight  = Inside OR Range = Lowest(Range, 7)
// author: a narrow candle, often an inside bar, "like Crabel's NR7"; Finetiq: inside bar or NR7

Band(MA) = 0.25 * ADRpct / 100 * MA                       // Finetiq: tolerance of a quarter of ADR%
OnMA   = (Low <= EMA10 + Band(EMA10) AND High >= EMA10 - Band(EMA10))
         OR (Low <= EMA21 + Band(EMA21) AND High >= EMA21 - Band(EMA21))
         OR (Low <= SMA50 + Band(SMA50) AND High >= SMA50 - Band(SMA50))
// author: the candle sits on one or more key averages
NotExt = Close <= EMA10 * (1 + 0.5 * ADRpct / 100)        // author: not extended from EMA 10; Finetiq: no more than half an ADR% above
DryUp  = Volume < Average(Volume, 30)                     // author: below the 30-bar volume average
         AND Volume <= 1.25 * Lowest(Volume, BaseLen)     // author: the lowest or nearly the lowest volume in the base
                                                          // Finetiq: 25% margin
Trigger = Uptrend AND Leader AND RS AND BaseOK AND Tight AND OnMA AND NotExt AND DryUp

Entry and stop (author)

// the day after Trigger
BuyLevel  = High(Trigger) + 0.01
StopLevel = Low(Trigger) - 0.01                           // author: one cent below the candle's low
RiskPct   = (BuyLevel - StopLevel) / BuyLevel * 100

IF RiskPct > ADRpct THEN skip                             // author: risk less than the 20-day ADR%
// author: on the best trigger bars RiskPct is 1/2 to 2/3 of ADRpct

BUY STOP at BuyLevel LIMIT BuyLevel * 1.01                // author: buy stop limit; Finetiq: 1% limit
SELL STOP at StopLevel
// Finetiq: the order lives for one day. If the next candle is also a Trigger, the levels move to it
// if the open is above the limit, there is no trade

// author: instead of a daily stop order, an opening range breakout can be used
// (on the AMD 2024 slide it is 30-minute), the ORH mechanics and the low-of-day stop are in qullamaggie-breakout

Trade management and hourly filter (author, thresholds Finetiq)

// author: half the position at 1R or a third at 2R, the stop on the rest stays in place (free-roll-exit)
// author: as the trade moves the stop is tightened, the rest is managed on EMA 10, EMA 21 or SMA 50
IF Close < EMA10 THEN EXIT rest AT NEXT BAR OPEN      // Finetiq: starting choice; choosing by ADR% in ema-trail-adr

// author: on the hourly chart of the trigger bar day, EMA 10, EMA 21 and SMA 50 converge
Converged = (MAX(EMA10_H1, EMA21_H1, SMA50_H1) - MIN(EMA10_H1, EMA21_H1, SMA50_H1)) / Close * 100
            <= 0.25 * ADRpct                              // Finetiq: threshold; for testing only

Stock selection (a separate rule)

// author: screen after the close on US stocks, the result goes to a watchlist
Close > SMA(Close, 50) AND Close > SMA(Close, 200)
AND (Average(Volume, 50) > 100 000 OR Average(Close * Volume, 50) >= 5 000 000)
// author: if there are many results, raise volume to 250-500 thousand or 1 million,
// dollar volume to $25, 50 or 100 million
// sorted by gain over 1, 3 or 6 months; the slide also shows proximity to the 52-week high
// optionally ADRpct > 2, 3 or 4 (author: 3.5-4 for fast stocks)
// the signal above is calculated on each stock from the list separately

Parameters

Parameter Value Source
Trend Close above SMA 50 and SMA 200 author
Rise before the base 30% or more over 63 bars Finetiq (author: a big rise over 1-6 months, examples of 30-100%)
Relative strength versus the index over 63 bars author, method Finetiq
Base 10 bars or more, depth up to 4 ADR% author (length), Finetiq (depth)
Narrow candle inside bar or NR7 Finetiq (author: narrow, often an inside bar)
Averages EMA 10, EMA 21, SMA 50, tolerance 1/4 ADR% author, tolerance Finetiq
Extension from EMA 10 no more than 1/2 ADR% Finetiq (author: not extended)
Volume below the 30-bar average, up to 1.25 of the base minimum author, margin Finetiq
Entry buy stop limit through the high, limit +1% author, limit Finetiq
Stop one cent below the candle's low author
Maximum risk less than ADR%, preferably 1/2-2/3 author
Partial exit 1/2 at 1R or 1/3 at 2R author
Exit for the rest close below EMA 10 Finetiq (author: 10, 21 or 50 depending on the stock's character)
Screen above SMA 50/200, volume of 100,000 or more or dollar volume of $5 million or more author

What to test

  1. Is dry volume needed. Three runs: without DryUp, only "below the 30-bar average", and the full filter with the base minimum. The author considers volume the main sign. If the result is no worse without the filter, the filter only reduces the number of trades.
  2. What counts as a narrow candle. Inside bar, NR7, NR4, a range smaller than half the 20-day average. Compare the number of trades and the average trade in R.
  3. Which average. Split trades by the average the trigger bar sat on: EMA 10, EMA 21, SMA 50. Jack shows EMA 10 most often.
  4. Threshold neighborhood. Tolerance to the average of 0.1, 0.25 and 0.5 ADR%. Base length of 5, 10 and 15 bars or more. Rise before the base of 20%, 30% and 50%. Limit of 0.5%, 1% and 2%. If the result holds at only one point, the formalization is overfitted.
  5. Risk versus ADR%. Split trades by RiskPct / ADRpct: up to 1/2, from 1/2 to 2/3, from 2/3 to 1. The author claims the best trades are in the middle group.
  6. Hourly filter and breakout volume. Compare trades with and without Converged. Separately, split trades by breakout-day volume relative to the 30-day average: this shows whether a trade is worth holding if there was no spike.
  7. Survivorship bias and costs. A screen on today's leaders inflates the result; you need a history that includes delisted stocks. A stop-limit fills perfectly in a test, while the author had slippage even in the example discussed. Assume 0.1-0.2% on entry and a loss larger than the stop on gaps down.

Platform notes

TradingView (Pine Script)

  • ADR% in one line: 100 * (ta.sma(high / low, 20) - 1). NR7: high - low == ta.lowest(high - low, 7).
  • Buy stop limit: strategy.entry("L", strategy.long, stop = buyLevel, limit = buyLevel * 1.01). In Pine an order stays active until canceled. To make it live for one day, call strategy.cancel("L") on the next bar if there is no position.
  • A strategy trades only the chart symbol. The scan, sorting by gain and comparison with the group across the whole universe cannot be repeated in a backtest. Testing preselected stocks one at a time already contains survivorship bias.
  • The index for relative strength is read via request.security with the index symbol. Take the value of the closed bar, otherwise the signal will see the future on history.

MultiCharts and TradeStation (EasyLanguage)

  • Buy next bar at BuyLevel stop lives for one bar, which matches the one-day rule. A stop-limit is easier to model as a plain stop order that skips the trade if the day's open is above the limit.
  • The index is added as the second data stream (Close of Data2), the group index as the third. EMA: XAverage(Close, 10), NR7: Range = Lowest(Range, 7).
  • Stop as a price: Sell next bar at StopLevel stop. SetStopLoss is set in money and will give a different level.
  • For the ORB variant on TradeStation intraday bars, full volume has historically been stored in Ticks. Calculate the dry volume filter on daily bars. The universe scan is done in Portfolio Maestro or Portfolio Trader.

MetaTrader 5 (MQL5)

  • At most MT5 brokers, stocks are CFDs with tick volume. The dry volume and dollar volume filters cannot be reproduced with it. You need a broker with exchange-traded stocks and real volume (iRealVolume).
  • The daily bar is built on server time. If it includes quotes outside the main session, High and Low differ, and NR7 and ADR% will shift.
  • A stop-limit exists as the ORDER_TYPE_BUY_STOP_LIMIT order type. Set the expiration to the end of the trading day.
  • Get the index for RS via iClose on a symbol from Market Watch. Brokers often have only an index CFD, so relative strength values will be approximate.

Where the idea can break

  • All examples were selected by the author in hindsight, and there are no statistics on the setup. Jack judges base quality and how "narrow" a candle is by eye. Our thresholds may select completely different charts.
  • On a single stock the signal is rare: over years only a few dozen trades accumulate. A meaningful test is possible only on a portfolio of many stocks, which means a portfolio module and data with delistings.
  • A tight stop on daily bars does not protect against a gap down. The actual loss on some trades will be noticeably larger than RiskPct.
  • A screen on the top gainers over 1-6 months selects what has already risen. Without the historical composition of the universe, the test result will be better than reality.
  • The video has a sponsor (MarketSurge) and advertises the author's own screener.

Sources

  • How to Trade & Screen for a Simple Breakout Setup for Swing Traders using the Daily Chart

    Jack Corsellis

    • 00:53Strong trend and relative strength versus the index and the group
    • 01:08Support at EMA 10, EMA 21 or SMA 50, undercuts are acceptable
    • 01:48Narrow candle on the averages, a reference to Crabel's NR7
    • 02:14Buy stop limit or ORB, risk less than the 20-day ADR%
    • 03:31Screen: price above SMA 50 and SMA 200
    • 04:25Liquidity: volume of 100,000 or more, or dollar volume of $5 million or more
    • 04:52Sorting by gain over 1, 3 or 6 months
    • 05:43Optionally ADR% of 2-4% or more
    • 07:15Trigger bar not extended from EMA 10
    • 08:05Base of two weeks or more, preferably three to four
    • 08:19Lowest volume in the base, below the 30-bar average
    • 10:15Volume spike on the breakout in the best examples
  • Simple Trading Setup EVERY TRADER Should Know

    Jack Corsellis

    • 07:36Definition: a narrow low-volume inside candle near the averages
    • 08:44Do not buy a V-shaped reversal, wait for a higher low
    • 11:36Hourly chart: EMA 10, EMA 21 and SMA 50 converge
    • 12:13APP: entry 78.34, stop 76.37, risk 2.51%
    • 14:33ADR% without gaps, about 1% for indices
    • 16:29Good trigger bars have a stop of 1/2-2/3 ADR%
    • 18:40Selling half at 1R
    • 23:01The stop is tightened as the trade moves

Author's claims

These figures and statements are the author's. We have not verified them.

  • Jack Corsellis shows the setup on charts from 1981-2024 (KEX 1981, CRUS 2010, AMD 2019 and 2024) and calls it timeless. The video has no statistics on the setup.
  • Jack's trade in APP in June 2024: entry 78.34, stop 76.37, risk $1.97 per share or 2.51% with a 20-day ADR% of 4.93%, which is about half of ADR%. The figures assume perfect execution; according to Jack, there was slippage in reality.

Related ideas

Updated: 2026-09-11