← All ideas
#048Regime filterSwing

Index regime: monthly EMA 10 and weekly EMA 10 and 20

New buys are allowed while the NASDAQ Composite closed last month above its monthly EMA 10, or while the index's weekly EMA 10 is above EMA 20. The filter goes on top of any long strategy on stocks or an index.

Jack Corsellis · Watch video

Markets

Indices, Stocks

Timeframe

MN, W1, D1

Data

OHLC

Rules

Partly formalised

Difficulty

Easy

Status

Untested

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

TradingView has pitfalls
EasyLanguage has pitfalls
MetaTrader 5 has pitfalls

Idea in brief

A regime filter answers one question: are new buys allowed right now. The strategy itself, its entries and exits stay the same. Here are two versions of such a filter. Both look at the index, not at the traded stock.

Jack Corsellis looks at the monthly chart of the NASDAQ Composite (ticker IXIC) and its monthly EMA 10. The month closed above the average: green zone, continuation breakouts can be traded. Below: red zone. Jack shows the same coloring on the Dow Jones over 120 years.

The author of the Financial Wisdom channel looks at the index's weekly chart. If the 10-week EMA crosses below the 20-week EMA, the market, in their words, enters a hostile phase. The opposite crossover means the uptrend is back. On a negative crossover or a break of recent lows, the author goes back to cash and trades cautiously.

Why it might work

A continuation breakout requires the stock to already be in a trend and to have built a base. In a rising market there are many such stocks, in a falling one few. Jack shows this with a self-built database of breakouts from 1986–2022: according to Jack's data, 91% of them fell in months when the NASDAQ Composite closed above the monthly EMA 10.

This figure is easy to misread. It says when breakouts happen, not how they end. The table on the slide has neither the average trade nor the win rate. Besides, 74% of months were green. If you recalculate the author's table per month, you get about 8.4 breakouts per green month versus 2.4 per red one. The difference in frequency is roughly 3.5 times, not ten. Whether breakouts in the red zone are worse cannot be seen from this data. That is the main question to test.

The Financial Wisdom logic is simpler. The market rises most of the time, and losses pile up when a trader keeps buying into a correction. The filter does not predict a correction, it switches off buying when one is already underway. The video has no test results, only examples on the chart.

Rules

How to read the month and the week without look-ahead (Finetiq)

Jack assigns a breakout to the month that closed above the average. On the day of the breakout, that month's close is not yet known. You cannot trade this way, so the filter takes the last closed month or week.

// the strategy runs on daily bars of the traded stock
// the index is read as a second symbol, the higher timeframe only from closed bars
M_Close[1] = the index's close for last month
M_EMA10[1] = EMA(monthly closes, 10) as of last month
// the new value appears on the first trading day of the following month

Variant A. NASDAQ Composite monthly EMA 10 (Jack Corsellis)

Index     = NASDAQ Composite (IXIC)          // author
GreenZone = M_Close[1] > M_EMA10[1]          // author: the month closed above the monthly EMA 10
RedZone   = NOT GreenZone

IF GreenZone THEN new strategy entries allowed      // author: continuation breakouts in the green zone
IF RedZone   THEN new entries forbidden             // Finetiq: a ban, not a size reduction
// Finetiq: open positions are managed by their own exit rules

// Finetiq, fast reading for testing: the current month, today's close as provisional
EMA_live  = M_EMA10[1] + 2 / 11 * (DailyClose - M_EMA10[1])
GreenLive = DailyClose > EMA_live            // uses only data known today

Variant B. Weekly EMA 10 and 20 (Financial Wisdom)

Index = S&P 500                              // author: the examples in the video are on the S&P 500
                                             // Finetiq: for NASDAQ stocks also test the NASDAQ Composite
W10 = EMA(weekly closes, 10) as of the last closed week
W20 = EMA(weekly closes, 20) as of the last closed week

Hostile = W10 < W20                          // author: after a downward crossover and until the opposite one
Uptrend = W10 > W20                          // author: the trend is back

// additional exit to cash (author): a break of the index's recent lows
IF W_Close[1] < Lowest(W_Low, 10)[2] THEN CashFlag = TRUE    // Finetiq: 10-week window, the author did not name it
IF W_Close[1] > W10                 THEN CashFlag = FALSE   // Finetiq: reset

EntryAllowed = Uptrend AND NOT CashFlag

What to do with open positions

Mode = BLOCK_NEW    // Finetiq, base reading: only a ban on new entries
Mode = GO_FLAT      // author (Financial Wisdom): go back to cash
                    // IF NOT EntryAllowed THEN EXIT long positions AT NEXT BAR OPEN

Plugging into cards in the base (Finetiq)

// example 1: qullamaggie-breakout. There the regime is based on the NASDAQ Composite daily EMA 10 and 20
EntryAllowed = RegimeOK AND GreenZone
// compare three runs: only RegimeOK, only GreenZone, both

// example 2: new-high-breakout-ma10-exit on NASDAQ-100 stocks
IF Close > Highest(High, 200)[1] AND Uptrend AND NOT CashFlag
    BUY AT NEXT BAR OPEN
// the exit on a close below MA10 does not change: the filter controls only entries

Parameters

Parameter Value Source
Index, variant A NASDAQ Composite author
Monthly average EMA 10 author (the line on Jack's chart is a simple average)
Which month to use the last closed one Finetiq
Index, variant B S&P 500 author (examples in the video)
Weekly averages EMA 10 and EMA 20 author
Recent lows window 10 weeks Finetiq
Action in a bad regime ban on new entries Finetiq
"To cash" variant close long positions author (Financial Wisdom)
Average warm-up 30–40 months, 60–80 weeks Finetiq

What to test

  1. Frequency or outcome. Take your breakout strategy and label each trade with the zone on the entry date. Compare the average trade, win rate and profit factor in the green and red zones. Jack's statistics answer only the question of how many breakouts happened where.
  2. Look-ahead in the original figure. Label the same trades in two ways: by the close of the month in which the entry occurred (as in the author's table) and by the close of the previous month. If the share in the green zone drops noticeably, part of the 91% is explained by a strong month generating breakouts itself.
  3. EMA versus SMA. The table on the slide is labeled EMA, the line on the chart is a simple average, and in the second video Jack says outright that the Excel chart uses an SMA. Run the filter with both and count the months where the zones differ.
  4. Parameter neighborhood. Monthly average 8, 10, 12. Weekly pairs 8/17, 10/20, 12/26. If the result holds only at 10 and 10/20, the filter is fitted to the examples.
  5. Blocking entries or going to cash. Compare BLOCK_NEW and GO_FLAT by maximum drawdown, return and number of extra trades. Going to cash pays costs on every false switch.
  6. Speed and errors. Count regime changes per year and the lag in weeks relative to the tops of 2000, 2007 and 2021 and the bottoms of 2009 and 2022. The monthly filter reacts more slowly, the weekly one switches in vain more often.
  7. Which index. For NASDAQ stocks compare IXIC, NASDAQ-100 and S&P 500. A filter on someone else's index can block entries while your group of stocks is rising.

Platform notes

TradingView (Pine Script)

  • The index month on a stock's daily chart: request.security(idx, "M", close[1] > ta.ema(close, 10)[1], lookahead = barmerge.lookahead_on), where idx is the index symbol. Without [1] under lookahead_on the backtest will see the current month's close, which is exactly the error sitting in the original statistics.
  • Calculate the EMA inside request.security, on the monthly series. An EMA 10 of monthly values stretched across daily bars will give different numbers.
  • The weekly variant works the same way: timeframe "W" and a [1] shift on both averages.
  • A strategy trades only the chart symbol. The filter reads the index without problems, but a basket of stocks with it cannot be tested in Pine, only one stock at a time.

MultiCharts and TradeStation (EasyLanguage)

  • The index is added as a second data stream with a monthly or weekly interval (Close of Data2).
  • Recalculate the EMA on Data2 only when a new Data2 bar appears. If XAverage is called on every daily bar of Data1, you get an average over daily bars with a repeated monthly value.
  • Plot the filter value on the chart and check the zone change dates against the index's monthly chart. In the middle of a month the filter should see last month, not the current one.
  • XAverage starts from the first value on the first bars. A monthly EMA 10 needs 30–40 months of history, otherwise the zones at the start of the test will be wrong.

MetaTrader 5 (MQL5)

  • The NASDAQ Composite is almost never offered by CFD brokers. Usually there is the Nasdaq-100 (USTEC, NAS100) or the S&P 500. These are different indices: the zones must be recalculated, not carried over from the author's dates.
  • Take the average iMA(symbol, PERIOD_MN1, 10, 0, MODE_EMA, PRICE_CLOSE) and the month's close from the bar with index 1. Bar 0 is not closed yet, and on history the signal will see an unfinished month.
  • Weekly and monthly bars are built on the broker's server time. Check the zone change dates against TradingView, at least for 2008 and 2020.
  • Monthly CFD history is often shorter than 15 years. Three years will go to EMA warm-up, and the test will include only one or two bear markets.

Where the idea can break

  • Jack's statistics describe breakout frequency. The video has no trade results by zone, so an improvement of the strategy from the filter is not proven.
  • The table assigns a breakout to a month whose close is not yet known on the day of the breakout. A filter based on the previous month lags by a month, and its share of breakouts in the green zone is most likely below 91%.
  • The breakout database was compiled by the author from book examples. How the charts were selected is not explained, and there is no open data.
  • On the slide the table is labeled EMA, while the line on the chart is an SMA. Which average is behind the figures is unclear.
  • The Financial Wisdom variant is shown on selected episodes: the dot-com era, 2008, 2022, March 2025. The "recent lows" window is not named. The video ends with an ad for the author's scanner and community.
  • The monthly filter switches rarely. By the time a month closes below the average, the index may already have fallen 10–15%, and after a V-shaped bottom the permission to buy arrives a month or two late.
  • An index filter knows nothing about your group of stocks. Individual sectors rise even in the red zone.

Sources

Author's claims

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

  • Jack Corsellis's database: about 3000 breakouts following examples from the books of Minervini, O'Neil, Weinstein and Darvas, January 1986 – August 2022. The author's table counts 442 months, although the period contains 440. Of these, the NASDAQ Composite closed above the monthly EMA 10 in 326 (74%) and below in 116 (26%).
  • Months above the average accounted for 2723 breakouts (90.77%), months below for 277 (9.23%). In the second video the author rounds the share to 90%.
  • The author of the Financial Wisdom channel: over the last 100 years there were five declines deeper than 50%, and corrections of 15–30% happen roughly once every two years.
  • The same author says that crossovers of the weekly EMA 10 and 20 worked well in the financial crisis, after the dot-com bubble, in 2022 and in March 2025. The video gives no return figures.

Related ideas

Updated: 2026-09-10