← All ideas
#070NewRegime filterSwing

Follow-through day: the signal that an index correction is over

After a correction the index starts a rally attempt. From day four, a 1.5-2% gain on volume above the previous day, usually also above average, is needed: this permits buying breakouts again. O'Neil's rule as retold by Jack Corsellis.

Jack Corsellis · William O'Neil · Watch video

Markets

Indices, Stocks

Timeframe

D1

Data

OHLC, Volume

Rules

Partly formalised

Difficulty

Medium

Status

Untested

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

TradingView has pitfalls
EasyLanguage has pitfalls
MetaTrader 5 needs data or workarounds

Idea in brief

The filter answers a question: has the market correction ended, and can breakouts be bought again. William O'Neil, the creator of CANSLIM and founder of Investor's Business Daily, answers it with the follow-through day. Jack Corsellis covers the rule at the end of the first part of a review of the book "How to Make Money in Stocks".

The market is falling. On some day the index stops making new lows and begins a rally attempt: this is day 1. From the fourth day of the attempt we wait for a strong gain in one of the major indices on volume higher than the day before. Such a day says the rally attempt is most likely real. The strongest follow-throughs come on days 4-7. The signal does not mean buying everything at once: it permits starting to buy quality stocks that are breaking out of bases.

Why it might work

O'Neil's explanation is institutional demand. A bounce in the first days after the low is driven by short covering and small purchases. A strong gain on higher volume a few days later shows that big money capable of moving the index has come in. The first three days are skipped to filter out a one- or two-day bounce.

O'Neil's argument is asymmetric: every new bull market started with such a day. The reverse is not true, and Jack stresses this: after a follow-through the market can pull back, and some follow-throughs fail. The video has no statistics, only examples chosen in hindsight. How many follow-throughs did not lead to a rally is unknown.

How it differs from neighboring filters. index-ema-regime is built on monthly and weekly averages and turns buying back on weeks or a month after the reversal. The follow-through day catches the reversal earlier, in the first days of the rally attempt (the strongest on days 4-7, up to the tenth day in Jack's examples, and the card waits up to 25 days), at the cost of false signals. It differs from breadth-regime in its data: it needs only the index and its volume, with no statistics across all stocks.

Rules

Correction and day 1 (Finetiq)

In the video the correction and the rally attempt are described in words: the market is in a downtrend, then comes day 1. In Jack's examples day 1 is a doji near the low, a reversal bar after a gap down, or a candle with a long lower wick. The thresholds below are ours.

// daily index bars: NASDAQ Composite or S&P 500
// community (Jack): the Dow, with its 30 stocks, carries less weight
Correction = Close <= 0.92 * Highest(Close, 63)          // Finetiq: 8% below the 3-month high
             OR Close < EMA(Close, 21) on 10 closes in a row   // Finetiq: variant without a percentage

NewLow = Low <= Lowest(Low, 20)                           // Finetiq: 20-day low

IF Correction AND NOT Attempt AND NewLow
    CandidateLow = Low
IF CandidateLow is set AND NOT Attempt AND Close > Close[1]   // Finetiq: first up close after the low
    Attempt = TRUE; Day1Low = CandidateLow; DayCount = 1
// variant: count a new-low day that closes in the upper half of its range as day 1

IF Attempt
    DayCount = DayCount + 1 on each following bar
    IF Low < Day1Low                                      // Finetiq: break of the attempt low
        Attempt = FALSE; CandidateLow = Low               // this rule is not in the video, the count restarts

Follow-through day (author, thresholds from Jack and Finetiq)

IF Attempt AND DayCount >= 4                              // author: starting from the fourth day
    Gain = Close / Close[1] - 1
    FTD  = Gain >= 1.5%                                   // community (Jack): at least 1.5%, preferably 2%
           AND Volume > Volume[1]                          // author: always above the previous day
           AND Volume > Average(Volume, 30)[1]             // Finetiq: a hard condition; the author says "in most cases"
                                                           // Finetiq: 30 days, as on Jack's charts
    FTD_Soft = Gain >= 1.5% AND Volume > Volume[1]         // variant without the average condition, closer to the author's wording
    FTD_Strong = FTD AND Gain >= 2% AND DayCount <= 7      // author: strongest on days 4-7

IF Attempt AND DayCount > 25 AND NOT FTD                  // Finetiq: an attempt without a follow-through has gone stale
    Attempt = FALSE
// in Jack's examples a follow-through also came on the tenth day

Market state for the strategy (Finetiq)

// author: a follow-through permits starting to buy, not buying everything at once
IF FTD
    MarketOK = TRUE; FTD_Day1Low = Day1Low; Attempt = FALSE

// when the permission is withdrawn (Finetiq)
IF MarketOK AND Close < FTD_Day1Low                        // the index fell below the attempt low
    MarketOK = FALSE
IF MarketOK AND Close < EMA(Close, 21) on 5 closes in a row
    MarketOK = FALSE
// after withdrawal, look for a correction and day 1 again
// at the start of history MarketOK = TRUE if the index is above EMA 21 and not in a correction

// community (Jack): better if the index has reclaimed EMA 21 (Mike Webster: below it the market offers little)
MarketOK_Plus = MarketOK AND Close > EMA(Close, 21)

RiskMult = 0.5 in the first 10 days after FTD, then 1.0      // Finetiq: first positions are smaller

Connecting to other cards in the base (Finetiq)

// example 1: qullamaggie-breakout. There the regime uses daily EMA 10 and 20 of the NASDAQ Composite
Allowed_A = RegimeOK                                        // as in the card
Allowed_B = MarketOK                                        // follow-through day only
Allowed_C = RegimeOK OR (MarketOK AND BarsSince(FTD) <= 10) // the follow-through turns buying on before the averages do
// the card's entry, stop and trade management do not change

// example 2: index-ema-regime, variant B (weekly EMA 10 and 20)
EntryAllowed_FTD = (Uptrend AND NOT CashFlag) OR MarketOK   // the follow-through lifts the ban before the averages cross

Parameters

Parameter Value Source
Index NASDAQ Composite or S&P 500, the Dow carries less weight author (one of the major indices), community (Jack: the Dow carries less weight)
Correction 8% below the 3-month high or 10 closes below EMA 21 Finetiq
Day 1 first up close after a 20-day low Finetiq
Attempt cancellation break of the day 1 low Finetiq
Start of the follow-through window day 4 author
Strongest follow-through days 4-7 author
Waiting limit 25 days Finetiq
Gain on the follow-through day at least 1.5%, preferably 2% community (Jack on O'Neil's rule)
Volume above the previous day author
Volume above average required in the main version, variant FTD_Soft without it Finetiq (author: in most cases)
Volume average length 30 days community (Jack's charts), choice by Finetiq
Index above EMA 21 preferred community (Jack, per Mike Webster)
Permission withdrawal below the day 1 low or 5 closes below EMA 21 Finetiq
Size after the signal half the risk for the first 10 days Finetiq

What to test

  1. What happens after follow-throughs. Find all follow-through days over 30-40 years on the NASDAQ Composite and S&P 500 and calculate the index return after 5, 20 and 60 days. Compare with random days inside corrections. Jack's examples are hand-picked, and there are too few of them for conclusions.
  2. Failure rate. What share of follow-throughs was canceled by a break of the day 1 low within the next 20 days. This is the number of false permissions the strategy will get.
  3. Threshold neighborhood. Gain of 1%, 1.5%, 2%, 2.5%. First eligible day 3, 4, 5. Correction of 6%, 8%, 10%. Jack says O'Neil's threshold used to be lower, so the best threshold may differ between older and newer history.
  4. Volume. The "above the previous day" condition versus "above the previous day and above average" versus a version without volume. If volume adds nothing, the filter carries over to CFDs.
  5. Connecting to a strategy. The breakout strategy from qullamaggie-breakout with the moving average regime, with the follow-through day and with both. See how many trades the filter added in the first weeks after the low and how they ended.
  6. Which index. NASDAQ Composite versus S&P 500 versus a signal on either of the two. O'Neil speaks of one of the major indices, and the choice changes the number of signals.

Platform notes

TradingView (Pine Script)

  • If the strategy runs on intraday bars of a stock, read the index via request.security with a daily timeframe, a [1] offset and lookahead = barmerge.lookahead_on. On daily charts take the index's closed bar.
  • Check whether the index symbol has volume and where it comes from. If it has none, volume is taken from an ETF (QQQ, SPY) or a future, and that is already an approximation.
  • Store the attempt state in var variables. The day counter must count the index's trading days, not bars of a stock chart with a different schedule.
  • A strategy trades only the chart symbol. The filter for a basket of stocks is tested one stock at a time.

MultiCharts and TradeStation (EasyLanguage)

  • The index is added as a second data stream (Close of Data2, Volume of Data2). Update the day counter only on new Data2 bars.
  • Index symbol volume depends on the data provider. Check it against exchange volume for a few dates: if it is volume from a single venue or it is missing, the volume condition loses its meaning.
  • On intraday bars in TradeStation, total volume has historically been stored in Ticks. Calculate the filter on daily index bars.
  • Calculate the gain from the index's previous close, not from the open. On gaps the difference is large.

MetaTrader 5 (MQL5)

  • Index CFDs have only tick volume (iTickVolume). The "volume above the previous day" condition on it describes quote activity at the broker, not trading volume. Real volume (iRealVolume) exists only for exchange-traded instruments.
  • The NASDAQ Composite is almost never offered by CFD brokers. NAS100 is the NASDAQ-100, and US500 is close to the S&P 500. Signal dates on them will differ from the examples.
  • A CFD daily bar closes on the broker's server time, not at 16:00 ET. The daily gain of a CFD and of the cash index is measured from different closes.
  • Take index values from the closed bar (shift 1), otherwise in historical data the signal will see an unfinished day.

Where the idea can break

  • The video has no test, only successful follow-throughs from 1978 to 2022. Jack does not show the failed ones.
  • The author did not formalize the correction, day 1 or the attempt cancellation. These rules determine which days become signals, and our version may produce dates different from those of IBD.
  • The gain threshold has changed: according to Jack, O'Neil's threshold used to be lower, and in the updated version it is about 2%. A threshold fitted on history may not have existed at the time of the signal.
  • The signal is rare: corrections happen a few times per decade, so even the 30-40 years of history from test 1 yield on the order of dozens of follow-throughs per index, not hundreds. That is too few for conclusions.
  • Index volume has changed over the decades due to electronic trading and new venues. A comparison with the previous day survives this, a comparison with the average does worse.
  • The rule is described within a CANSLIM review and is meant for buying leaders out of bases, not for trading the index itself.

Sources

Author's claims

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

  • O'Neil's quote on Jack's slide: the strongest follow-throughs usually come on days 4-7 of a rally attempt, and volume on that day is above average in most cases and always above the previous day. The same slide: no new bull market has ever started without a strong follow-through in price and volume.
  • Jack's examples, chosen in hindsight: Dow on March 10, 1978 (eighth day), 1982 (seventh), S&P 500 in 1998 (sixth), 2003 (fourth), S&P 500 on April 6, 2020 (tenth day, a gain of more than 2% by eye), the 2022 bear market low (seventh day).

Related ideas

Updated: 2026-09-11