Strategy library · Popular combos
EMA 20/50 cross with a MACD filter backtest on NQ and ES futures
EMA 20 / 50 cross with MACD above zero
Also called: EMA 20 50 and MACD strategy, moving average cross with MACD filter, EMA crossover MACD above zero, buy when the 20 EMA crosses above the 50 EMA while MACD is above zero, short when the 20 EMA crosses below the 50 EMA while MACD is below zero
What happens if you buy NQ every time the 20 EMA crosses above the 50 EMA while MACD is above zero?
What it is
This is the EMA 20/50 cross with a MACD filter: longs only while the MACD is above 0 and shorts only while it is below 0. It exits on the opposite cross.
What it did
On NQ futures from 2024-10-08 to 2026-10-07, the EMA 20/50 cross with a MACD filter strategy took 292 trades on the 15-minute chart, won 46.2% of them and finished 2,657.00 points ($53,140 on one NQ contract), before commission and slippage. From 2024-10-08 to 2026-10-07 on NQ, the 135 long trades on the 15-minute chart won 49.6% and made 1,350.75 points ($27,015 on one NQ contract), before commission and slippage. On ES futures from 2024-08-28 to 2026-08-27, the EMA 20/50 cross with a MACD filter strategy took 288 trades on the 15-minute chart, won 46.5% of them and finished 332.00 points ($16,600 on one ES contract), before commission and slippage. The 5-minute, 1-hour and daily results for both markets are in the table on this page.
How it was tested
CE Market Solutions tested the EMA 20/50 cross with a MACD filter strategy on NQ (2024-10-08 to 2026-10-07) and ES (2024-08-28 to 2026-08-27) futures, before commission and slippage, with each signal filled at the next bar's open, intraday positions flat at 15:59 ET and textbook default indicator settings; the NQ trades are listed on this page and the ES trades under the ES tab.
See it tested with one change · $19
Tested by CE Market Solutions on 2026-10-26. The trades are listed below, one market at a time. Gross, no commission or slippage. Last 2 years.
Results
Rule as tested: MA06 longs only while MACD is above 0; shorts only below 0. Exit: Opposite cross.
| Timeframe | NQ · 2024-10-08 to 2026-10-07 | ES · 2024-08-28 to 2026-08-27 | ||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Trades | Win % | Avg pts | Profit factor | Net pts | Net $ (1 NQ) | Max DD pts | Trades | Win % | Avg pts | Profit factor | Net pts | Net $ (1 ES) | Max DD pts | |
| 5 minute | 629 | 40.4% | −4.27 | 0.903 | −2,688.50 | −$53,770 | 4,544.25 | 681 | 40.2% | −0.16 | 0.983 | −111.00 | −$5,550 | 719.75 |
| 5 minute · longs only | 326 | 41.7% | — | — | −2,734.75 | −$54,695 | 3,663.00 | 341 | 40.2% | — | — | −140.00 | −$7,000 | 445.00 |
| 5 minute · shorts only | 303 | 38.9% | — | — | 46.25 | $925 | 1,751.00 | 340 | 40.3% | — | — | 29.00 | $1,450 | 453.50 |
| 15 minute | 292 | 46.2% | 9.10 | 1.193 | 2,657.00 | $53,140 | 1,999.00 | 288 | 46.5% | 1.15 | 1.108 | 332.00 | $16,600 | 414.25 |
| 15 minute · longs only | 135 | 49.6% | — | — | 1,350.75 | $27,015 | 1,949.00 | 119 | 50.4% | — | — | 249.25 | $12,463 | 237.75 |
| 15 minute · shorts only | 157 | 43.3% | — | — | 1,306.25 | $26,125 | 1,377.50 | 169 | 43.8% | — | — | 82.75 | $4,138 | 315.50 |
| 1 hour | 79 | 44.3% | −11.19 | 0.814 | −884.25 | −$17,685 | 1,676.50 | 84 | 42.9% | −0.39 | 0.967 | −33.00 | −$1,650 | 366.25 |
| 1 hour · longs only | 44 | 54.6% | — | — | −664.50 | −$13,290 | 1,079.50 | 42 | 42.9% | — | — | −24.25 | −$1,212 | 140.50 |
| 1 hour · shorts only | 35 | 31.4% | — | — | −219.75 | −$4,395 | 936.50 | 42 | 42.9% | — | — | −8.75 | −$437 | 287.00 |
| Daily | 7 | 28.6% | −110.18 | 0.835 | −771.25 | −$15,425 | 3,182.00 | 7 | 42.9% | 109.39 | 2.179 | 765.75 | $38,288 | 408.00 |
| Daily · longs only | 3 | 66.7% | — | — | 3,208.50 | $64,170 | 681.50 | 3 | 66.7% | — | — | 1,179.25 | $58,963 | 152.50 |
| Daily · shorts only | 4 | 0.0% | — | — | −3,979.75 | −$79,595 | 3,979.75 | 4 | 25.0% | — | — | −413.50 | −$20,675 | 413.50 |
NQ Daily: small sample (7 trades). ES Daily: small sample (7 trades).
Free to use with credit to CE Market Solutions (CC BY 4.0).
NQ 5 minute: the equity line
Long and short
| Side | Trades | Net pts |
|---|---|---|
| Long | 326 | −2,734.75 |
| Short | 303 | 46.25 |
By month
| Month | Trades | Net pts |
|---|---|---|
| 2024-10 | 20 | 465.75 |
| 2024-11 | 23 | −100.75 |
| 2024-12 | 20 | −38.75 |
| 2025-01 | 30 | −481.00 |
| 2025-02 | 21 | 854.75 |
| 2025-03 | 22 | 443.50 |
| 2025-04 | 25 | −361.00 |
| 2025-05 | 31 | −947.00 |
| 2025-06 | 24 | −271.50 |
| 2025-07 | 33 | −363.25 |
| 2025-08 | 24 | −161.00 |
| 2025-09 | 28 | −188.50 |
| 2025-10 | 21 | 831.75 |
| 2025-11 | 21 | 724.75 |
| 2025-12 | 36 | −294.75 |
| 2026-01 | 25 | −42.25 |
| 2026-02 | 27 | −365.25 |
| 2026-03 | 25 | −577.75 |
| 2026-04 | 29 | −707.75 |
| 2026-05 | 24 | 108.50 |
| 2026-06 | 31 | 229.00 |
| 2026-07 | 24 | −1,164.00 |
| 2026-08 | 32 | −349.00 |
| 2026-09 | 27 | −103.00 |
| 2026-10 | 6 | 170.00 |
Every trade, NQ 5 minute629 trades
Pick any of the 629 charted trades with Previous, Next or a date, or click a row in the trades table below, to see it drawn on the real 1-minute bars. Drag the chart sideways to move through the sessions around it.
Chart unavailable. The trades are in the table below.
All trades (629), newest first
Times are New York time; points are gross. Click a row to draw that trade in the chart above.
| Session date | Side | Entry (ET) | Entry price | Exit (ET) | Exit price | Exit reason | Points |
|---|---|---|---|---|---|---|---|
| 2026-02-27 | long | 10:45 | 24999.25 | 13:15 | 24912.50 | opposite cross | −86.75 |
| 2026-02-26 | long | 15:40 | 25069.50 | 15:59 | 25083.25 | end of day 15:59 | 13.75 |
| 2026-02-26 | short | 09:35 | 25272.25 | 15:40 | 25069.50 | opposite cross | 202.75 |
| 2026-02-24 | short | 09:35 | 24739.00 | 09:45 | 24911.25 | opposite cross | −172.25 |
| 2026-02-23 | short | 10:05 | 24866.50 | 15:59 | 24768.00 | end of day 15:59 | 98.50 |
| 2026-02-20 | long | 10:10 | 24981.50 | 15:59 | 25074.75 | end of day 15:59 | 93.25 |
| 2026-02-19 | short | 12:05 | 24823.00 | 15:59 | 24863.50 | end of day 15:59 | −40.50 |
| 2026-02-19 | long | 10:35 | 24938.75 | 12:05 | 24823.00 | opposite cross | −115.75 |
| 2026-02-18 | short | 14:35 | 24964.75 | 15:59 | 24957.50 | end of day 15:59 | 7.25 |
| 2026-02-18 | long | 10:10 | 25020.25 | 14:35 | 24964.75 | opposite cross | −55.50 |
| 2026-02-17 | long | 11:15 | 24773.25 | 15:59 | 24777.00 | end of day 15:59 | 3.75 |
| 2026-02-17 | short | 10:05 | 24554.00 | 11:15 | 24773.25 | opposite cross | −219.25 |
| 2026-02-13 | short | 15:30 | 24766.00 | 15:59 | 24802.00 | end of day 15:59 | −36.00 |
| 2026-02-12 | short | 09:50 | 25251.25 | 15:59 | 24763.50 | end of day 15:59 | 487.75 |
| 2026-02-11 | long | 13:35 | 25261.25 | 15:59 | 25278.50 | end of day 15:59 | 17.25 |
| 2026-02-11 | long | 12:55 | 25305.75 | 13:15 | 25210.50 | opposite cross | −95.25 |
| 2026-02-11 | short | 10:25 | 25075.50 | 12:55 | 25305.75 | opposite cross | −230.25 |
| 2026-02-10 | short | 13:20 | 25325.25 | 15:59 | 25219.75 | end of day 15:59 | 105.50 |
| 2026-02-10 | long | 12:55 | 25389.25 | 13:20 | 25325.25 | opposite cross | −64.00 |
| 2026-02-10 | short | 11:40 | 25337.25 | 12:55 | 25389.25 | opposite cross | −52.00 |
| 2026-02-10 | long | 10:05 | 25401.50 | 11:40 | 25337.25 | opposite cross | −64.25 |
| 2026-02-10 | short | 09:45 | 25310.00 | 10:05 | 25401.50 | opposite cross | −91.50 |
| 2026-02-09 | long | 09:50 | 25172.50 | 15:59 | 25337.75 | end of day 15:59 | 165.25 |
| 2026-02-05 | long | 12:45 | 24850.00 | 13:25 | 24730.50 | opposite cross | −119.50 |
| 2026-02-04 | long | 15:35 | 25065.75 | 15:59 | 24994.50 | end of day 15:59 | −71.25 |
| 2026-01-30 | short | 11:25 | 25765.50 | 15:59 | 25675.50 | end of day 15:59 | 90.00 |
| 2026-01-29 | long | 14:30 | 25878.50 | 15:59 | 25991.50 | end of day 15:59 | 113.00 |
| 2026-01-28 | long | 15:25 | 26203.25 | 15:35 | 26153.00 | opposite cross | −50.25 |
| 2026-01-27 | long | 10:05 | 26056.75 | 15:59 | 26076.00 | end of day 15:59 | 19.25 |
| 2026-01-23 | short | 15:25 | 25719.00 | 15:59 | 25735.50 | end of day 15:59 | −16.50 |
| 2026-01-23 | long | 10:05 | 25711.75 | 15:25 | 25719.00 | opposite cross | 7.25 |
| 2026-01-22 | short | 15:05 | 25644.00 | 15:59 | 25662.00 | end of day 15:59 | −18.00 |
| 2026-01-22 | long | 11:55 | 25691.75 | 15:05 | 25644.00 | opposite cross | −47.75 |
| 2026-01-22 | short | 09:55 | 25621.75 | 11:55 | 25691.75 | opposite cross | −70.00 |
| 2026-01-21 | long | 14:30 | 25430.25 | 15:59 | 25471.50 | end of day 15:59 | 41.25 |
| 2026-01-21 | short | 12:40 | 25200.25 | 14:30 | 25430.25 | opposite cross | −230.00 |
| 2026-01-20 | short | 13:20 | 25276.75 | 15:59 | 25142.25 | end of day 15:59 | 134.50 |
| 2026-01-19 | long | 10:50 | 25326.00 | 12:59 | 25398.25 | early close | 72.25 |
| 2026-01-16 | short | 09:55 | 25785.50 | 15:59 | 25684.50 | end of day 15:59 | 101.00 |
| 2026-01-15 | short | 14:10 | 25853.00 | 15:59 | 25719.25 | end of day 15:59 | 133.75 |
| 2026-01-14 | long | 15:35 | 25608.00 | 15:59 | 25636.50 | end of day 15:59 | 28.50 |
| 2026-01-13 | short | 13:10 | 25874.25 | 15:59 | 25903.75 | end of day 15:59 | −29.50 |
| 2026-01-13 | long | 11:50 | 25995.50 | 13:10 | 25874.25 | opposite cross | −121.25 |
| 2026-01-13 | short | 10:30 | 25841.75 | 11:50 | 25995.50 | opposite cross | −153.75 |
| 2026-01-09 | short | 10:10 | 25643.25 | 10:25 | 25800.00 | opposite cross | −156.75 |
| 2026-01-08 | short | 09:40 | 25679.00 | 15:59 | 25682.50 | end of day 15:59 | −3.50 |
| 2026-01-07 | short | 15:15 | 25869.75 | 15:59 | 25835.00 | end of day 15:59 | 34.75 |
| 2026-01-05 | short | 13:20 | 25578.00 | 15:59 | 25586.75 | end of day 15:59 | −8.75 |
| 2026-01-02 | short | 10:15 | 25603.75 | 15:59 | 25385.50 | end of day 15:59 | 218.25 |
| 2026-01-02 | long | 10:00 | 25733.75 | 10:15 | 25603.75 | opposite cross | −130.00 |
Questions and answers
What happens if you buy NQ every time the 20 EMA crosses above the 50 EMA while MACD is above zero?
From 2024-10-08 to 2026-10-07 on the NQ 15-minute chart, the EMA 20/50 cross with a MACD filter strategy took 135 long trades, won 49.6% of them and made 1,350.75 points ($27,015 on one NQ contract), before commission and slippage. From 2024-10-08 to 2026-10-07 on NQ, its long trades also made -2,734.75 points on 326 trades on the 5-minute chart, -664.50 points on 44 trades on the 1-hour chart and 3,208.50 points on 3 trades on the daily chart, before commission and slippage.
What happens if you short ES every time the 20 EMA crosses below the 50 EMA while MACD is below zero?
From 2024-08-28 to 2026-08-27 on the ES 15-minute chart, the EMA 20/50 cross with a MACD filter strategy took 169 short trades, won 43.8% of them and made 82.75 points ($4,138 on one ES contract), before commission and slippage. From 2024-08-28 to 2026-08-27 on ES, its short trades also made 29.00 points on 340 trades on the 5-minute chart, -8.75 points on 42 trades on the 1-hour chart and -413.50 points on 4 trades on the daily chart, before commission and slippage.
Does the EMA 20/50 cross with a MACD filter strategy work on Nasdaq futures?
On NQ futures from 2024-10-08 to 2026-10-07, the EMA 20/50 cross with a MACD filter strategy on the 15-minute chart took 292 trades, won 46.2% of them and finished 2,657.00 points ($53,140 on one NQ contract), before commission and slippage.
What is the win rate of EMA 20 / 50 cross with MACD above zero on ES futures?
The EMA 20/50 cross with a MACD filter strategy won 46.5% of its 288 trades on the ES 15-minute chart from 2024-08-28 to 2026-08-27, before commission and slippage. On ES from 2024-08-28 to 2026-08-27 it also won 40.2% of 681 trades on the 5-minute chart, 42.9% of 84 trades on the 1-hour chart and 42.9% of 7 trades on the daily chart, before commission and slippage.
Is the EMA 20/50 cross with a MACD filter strategy better on the 5-minute, 15-minute, 1-hour or daily chart for NQ?
On NQ from 2024-10-08 to 2026-10-07, the EMA 20/50 cross with a MACD filter strategy made -2,688.50 points on 629 trades on the 5-minute chart, 2,657.00 points on 292 trades on the 15-minute chart, -884.25 points on 79 trades on the 1-hour chart and -771.25 points on 7 trades on the daily chart, before commission and slippage.
Is it better to only buy or only sell EMA 20/50 cross with a MACD filter signals on NQ?
On the NQ 15-minute chart from 2024-10-08 to 2026-10-07, the long trades made 1,350.75 points on 135 trades (49.6% won) and the short trades made 1,306.25 points on 157 trades (43.3% won), before commission and slippage.
How many trades does the EMA 20/50 cross with a MACD filter strategy take on NQ in two years?
The EMA 20/50 cross with a MACD filter strategy took 292 trades on the NQ 15-minute chart from 2024-10-08 to 2026-10-07, before commission and slippage. On NQ from 2024-10-08 to 2026-10-07 it also took 629 on the 5-minute chart, 79 on the 1-hour chart and 7 on the daily chart, before commission and slippage.
What is the max drawdown of the EMA 20/50 cross with a MACD filter strategy on NQ?
The EMA 20/50 cross with a MACD filter strategy had a max drawdown of 1,999.00 points ($39,980 on one NQ contract) on the NQ 15-minute chart from 2024-10-08 to 2026-10-07, before commission and slippage. On NQ from 2024-10-08 to 2026-10-07 its max drawdown was also 4,544.25 points on the 5-minute chart, 1,676.50 points on the 1-hour chart and 3,182.00 points on the daily chart, before commission and slippage.
How does the EMA 20/50 cross with a MACD filter strategy do on ES compared with NQ?
On the ES 15-minute chart from 2024-08-28 to 2026-08-27, the EMA 20/50 cross with a MACD filter strategy took 288 trades, won 46.5% of them and made 332.00 points ($16,600 on one ES contract), before commission and slippage. On the NQ 15-minute chart from 2024-10-08 to 2026-10-07, the EMA 20/50 cross with a MACD filter strategy took 292 trades, won 46.2% of them and made 2,657.00 points ($53,140 on one NQ contract), before commission and slippage.
How these were run
- Gross: no commission and no slippage.
- The last 2 years of each market, from the first to the last session of its window.
- A signal on a closed bar fills at the next bar’s open.
- A stop and a target touched in the same minute count as the stop.
- Intraday positions are flat at 15:59 ET.
- Textbook TradingView default settings for every indicator; nothing is tuned.
Want your own rules tested the same way?