Strategy library · Mean reversion and bands
Z-score reversion backtest on NQ and ES futures
Z-score (20) at -2
Also called: z-score strategy, z-score -2 strategy, statistical mean reversion, buy when the 20-bar z-score drops below -2, short when the 20-bar z-score rises above +2
What happens if you buy NQ every time the 20-bar z-score drops below -2?
What it is
The 20-bar z-score measures how many standard deviations the close is from its 20-bar average. This strategy goes long when the z-score drops below -2 and short when it rises above +2, and exits when the z-score returns to 0.
What it did
On NQ futures from 2024-10-08 to 2026-10-07, the z-score reversion strategy took 648 trades on the 15-minute chart, won 57.6% of them and finished -952.75 points (-$19,055 on one NQ contract), before commission and slippage. From 2024-10-08 to 2026-10-07 on NQ, the 325 long trades on the 15-minute chart won 61.9% and made 239.75 points ($4,795 on one NQ contract), before commission and slippage. On ES futures from 2024-08-28 to 2026-08-27, the z-score reversion strategy took 670 trades on the 15-minute chart, won 56.7% of them and finished -130.75 points (-$6,537 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 z-score reversion 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: Long when the 20-bar z-score drops below -2; short above +2. Exit: Z-score back to 0.
| 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 | 1533 | 61.1% | −2.26 | 0.933 | −3,466.25 | −$69,325 | 5,320.00 | 1516 | 61.4% | −0.26 | 0.960 | −389.00 | −$19,450 | 802.75 |
| 5 minute · longs only | 780 | 63.0% | — | — | −2,359.25 | −$47,185 | 4,008.25 | 784 | 63.5% | — | — | 2.75 | $138 | 432.25 |
| 5 minute · shorts only | 753 | 59.1% | — | — | −1,107.00 | −$22,140 | 2,384.75 | 732 | 59.0% | — | — | −391.75 | −$19,587 | 577.25 |
| 15 minute | 648 | 57.6% | −1.47 | 0.973 | −952.75 | −$19,055 | 5,085.75 | 670 | 56.7% | −0.20 | 0.981 | −130.75 | −$6,537 | 798.00 |
| 15 minute · longs only | 325 | 61.9% | — | — | 239.75 | $4,795 | 3,592.25 | 341 | 59.5% | — | — | 164.75 | $8,238 | 473.50 |
| 15 minute · shorts only | 323 | 53.3% | — | — | −1,192.50 | −$23,850 | 3,025.25 | 329 | 53.8% | — | — | −295.50 | −$14,775 | 648.25 |
| 1 hour | 379 | 48.3% | −5.27 | 0.911 | −1,998.00 | −$39,960 | 3,198.50 | 420 | 52.4% | 0.88 | 1.080 | 370.75 | $18,538 | 569.00 |
| 1 hour · longs only | 177 | 55.4% | — | — | −1,190.50 | −$23,810 | 2,704.75 | 192 | 56.8% | — | — | −74.00 | −$3,700 | 516.75 |
| 1 hour · shorts only | 202 | 42.1% | — | — | −807.50 | −$16,150 | 1,423.25 | 228 | 48.7% | — | — | 444.75 | $22,238 | 237.00 |
| Daily | 21 | 71.4% | 107.18 | 1.412 | 2,250.75 | $45,015 | 2,858.75 | 18 | 66.7% | 56.07 | 2.181 | 1,009.25 | $50,463 | 441.50 |
| Daily · longs only | 9 | 88.9% | — | — | 2,961.25 | $59,225 | 1,085.50 | 10 | 70.0% | — | — | 1,082.00 | $54,100 | 258.75 |
| Daily · shorts only | 12 | 58.3% | — | — | −710.50 | −$14,210 | 3,482.50 | 8 | 62.5% | — | — | −72.75 | −$3,637 | 375.00 |
ES Daily: small sample (18 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 | 780 | −2,359.25 |
| Short | 753 | −1,107.00 |
By month
| Month | Trades | Net pts |
|---|---|---|
| 2024-10 | 47 | −343.00 |
| 2024-11 | 56 | −168.50 |
| 2024-12 | 71 | −756.00 |
| 2025-01 | 65 | 741.75 |
| 2025-02 | 65 | −875.50 |
| 2025-03 | 63 | 148.25 |
| 2025-04 | 64 | −439.75 |
| 2025-05 | 65 | −427.75 |
| 2025-06 | 63 | 541.00 |
| 2025-07 | 73 | 437.00 |
| 2025-08 | 69 | 103.25 |
| 2025-09 | 64 | 118.75 |
| 2025-10 | 68 | −714.75 |
| 2025-11 | 63 | −1,057.00 |
| 2025-12 | 53 | −8.25 |
| 2026-01 | 62 | −1,126.00 |
| 2026-02 | 59 | −667.00 |
| 2026-03 | 71 | 789.75 |
| 2026-04 | 65 | 152.50 |
| 2026-05 | 64 | 466.75 |
| 2026-06 | 66 | 386.50 |
| 2026-07 | 64 | −782.25 |
| 2026-08 | 59 | 93.75 |
| 2026-09 | 59 | −119.50 |
| 2026-10 | 15 | 39.75 |
Every trade, NQ 5 minute1533 trades
Pick any of the 1533 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 (1533), 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-05-13 | short | 14:15 | 29522.00 | 15:00 | 29472.50 | z back to 0 | 49.50 |
| 2026-05-13 | short | 12:25 | 29430.75 | 14:00 | 29445.25 | z back to 0 | −14.50 |
| 2026-05-13 | long | 09:50 | 29135.75 | 10:25 | 29239.00 | z back to 0 | 103.25 |
| 2026-05-12 | short | 15:15 | 29040.25 | 15:59 | 29174.25 | end of day 15:59 | −134.00 |
| 2026-05-12 | long | 10:30 | 29085.75 | 13:20 | 28873.75 | z back to 0 | −212.00 |
| 2026-05-12 | long | 10:05 | 29111.25 | 10:20 | 29218.75 | z back to 0 | 107.50 |
| 2026-05-12 | short | 09:45 | 29285.25 | 10:00 | 29129.00 | z back to 0 | 156.25 |
| 2026-05-11 | long | 15:00 | 29388.75 | 15:59 | 29429.25 | end of day 15:59 | 40.50 |
| 2026-05-11 | short | 09:35 | 29426.00 | 10:00 | 29311.25 | z back to 0 | 114.75 |
| 2026-05-08 | long | 15:00 | 29240.50 | 15:10 | 29294.00 | z back to 0 | 53.50 |
| 2026-05-08 | short | 09:35 | 28963.50 | 14:00 | 29264.25 | z back to 0 | −300.75 |
| 2026-05-07 | long | 12:00 | 28785.50 | 14:00 | 28696.75 | z back to 0 | −88.75 |
| 2026-05-07 | short | 09:55 | 28787.50 | 11:30 | 28854.50 | z back to 0 | −67.00 |
| 2026-05-07 | short | 09:40 | 28773.25 | 09:45 | 28741.50 | z back to 0 | 31.75 |
| 2026-05-06 | short | 14:40 | 28656.75 | 15:59 | 28710.25 | end of day 15:59 | −53.50 |
| 2026-05-06 | long | 12:55 | 28527.50 | 13:15 | 28579.00 | z back to 0 | 51.50 |
| 2026-05-05 | short | 13:55 | 28161.75 | 14:55 | 28161.00 | z back to 0 | 0.75 |
| 2026-05-05 | long | 12:40 | 28098.50 | 13:05 | 28128.50 | z back to 0 | 30.00 |
| 2026-05-05 | short | 09:35 | 28025.50 | 12:30 | 28115.75 | z back to 0 | −90.25 |
| 2026-05-04 | long | 14:45 | 27728.25 | 15:10 | 27770.75 | z back to 0 | 42.50 |
| 2026-05-04 | short | 13:20 | 27788.50 | 14:25 | 27763.50 | z back to 0 | 25.00 |
| 2026-05-04 | long | 11:20 | 27782.25 | 13:05 | 27736.00 | z back to 0 | −46.25 |
| 2026-05-04 | short | 10:15 | 27892.75 | 11:10 | 27882.50 | z back to 0 | 10.25 |
| 2026-05-04 | short | 10:00 | 27895.25 | 10:10 | 27856.50 | z back to 0 | 38.75 |
| 2026-05-04 | long | 09:35 | 27827.75 | 09:45 | 27855.25 | z back to 0 | 27.50 |
| 2026-05-01 | long | 14:40 | 27832.25 | 15:15 | 27869.00 | z back to 0 | 36.75 |
| 2026-05-01 | short | 09:35 | 27736.50 | 11:05 | 27795.75 | z back to 0 | −59.25 |
| 2026-04-30 | short | 13:15 | 27448.00 | 15:59 | 27577.50 | end of day 15:59 | −129.50 |
| 2026-04-30 | long | 09:35 | 27345.00 | 10:55 | 27338.75 | z back to 0 | −6.25 |
| 2026-04-29 | short | 15:00 | 27295.50 | 15:59 | 27337.25 | end of day 15:59 | −41.75 |
| 2026-04-29 | short | 14:00 | 27249.50 | 14:05 | 27202.25 | z back to 0 | 47.25 |
| 2026-04-29 | long | 11:55 | 27219.50 | 13:30 | 27214.00 | z back to 0 | −5.50 |
| 2026-04-29 | short | 10:35 | 27286.25 | 11:15 | 27230.50 | z back to 0 | 55.75 |
| 2026-04-29 | long | 09:35 | 27147.25 | 09:55 | 27226.25 | z back to 0 | 79.00 |
| 2026-04-28 | short | 13:35 | 27103.25 | 15:59 | 27169.25 | end of day 15:59 | −66.00 |
| 2026-04-28 | long | 10:40 | 27073.50 | 12:10 | 27070.00 | z back to 0 | −3.50 |
| 2026-04-28 | short | 09:45 | 27214.00 | 10:25 | 27167.00 | z back to 0 | 47.00 |
| 2026-04-27 | long | 14:55 | 27393.00 | 15:20 | 27424.50 | z back to 0 | 31.50 |
| 2026-04-27 | short | 13:35 | 27438.00 | 14:40 | 27421.50 | z back to 0 | 16.50 |
| 2026-04-27 | long | 09:35 | 27369.00 | 11:40 | 27360.75 | z back to 0 | −8.25 |
| 2026-04-24 | short | 15:20 | 27450.75 | 15:40 | 27412.25 | z back to 0 | 38.50 |
| 2026-04-24 | short | 13:55 | 27435.25 | 14:20 | 27398.00 | z back to 0 | 37.25 |
| 2026-04-24 | short | 11:00 | 27290.50 | 13:20 | 27394.50 | z back to 0 | −104.00 |
| 2026-04-24 | long | 09:55 | 27173.00 | 10:10 | 27228.50 | z back to 0 | 55.50 |
| 2026-04-23 | long | 13:05 | 27013.50 | 14:25 | 26928.50 | z back to 0 | −85.00 |
| 2026-04-23 | short | 11:00 | 27094.50 | 11:55 | 27063.50 | z back to 0 | 31.00 |
| 2026-04-23 | short | 09:50 | 27081.00 | 10:00 | 27017.25 | z back to 0 | 63.75 |
| 2026-04-22 | long | 15:05 | 26995.75 | 15:10 | 27024.50 | z back to 0 | 28.75 |
| 2026-04-22 | short | 13:15 | 27018.00 | 14:20 | 27015.75 | z back to 0 | 2.25 |
| 2026-04-22 | short | 10:15 | 26923.00 | 12:20 | 26973.50 | z back to 0 | −50.50 |
Questions and answers
What happens if you buy NQ every time the 20-bar z-score drops below -2?
From 2024-10-08 to 2026-10-07 on the NQ 15-minute chart, the z-score reversion strategy took 325 long trades, won 61.9% of them and made 239.75 points ($4,795 on one NQ contract), before commission and slippage. From 2024-10-08 to 2026-10-07 on NQ, its long trades also made -2,359.25 points on 780 trades on the 5-minute chart, -1,190.50 points on 177 trades on the 1-hour chart and 2,961.25 points on 9 trades on the daily chart, before commission and slippage.
What happens if you short ES every time the 20-bar z-score rises above +2?
From 2024-08-28 to 2026-08-27 on the ES 15-minute chart, the z-score reversion strategy took 329 short trades, won 53.8% of them and made -295.50 points (-$14,775 on one ES contract), before commission and slippage. From 2024-08-28 to 2026-08-27 on ES, its short trades also made -391.75 points on 732 trades on the 5-minute chart, 444.75 points on 228 trades on the 1-hour chart and -72.75 points on 8 trades on the daily chart, before commission and slippage.
Does the z-score reversion strategy work on Nasdaq futures?
On NQ futures from 2024-10-08 to 2026-10-07, the z-score reversion strategy on the 15-minute chart took 648 trades, won 57.6% of them and finished -952.75 points (-$19,055 on one NQ contract), before commission and slippage.
What is the win rate of Z-score (20) at -2 on ES futures?
The z-score reversion strategy won 56.7% of its 670 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 61.4% of 1,516 trades on the 5-minute chart, 52.4% of 420 trades on the 1-hour chart and 66.7% of 18 trades on the daily chart, before commission and slippage.
Is the z-score reversion 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 z-score reversion strategy made -3,466.25 points on 1,533 trades on the 5-minute chart, -952.75 points on 648 trades on the 15-minute chart, -1,998.00 points on 379 trades on the 1-hour chart and 2,250.75 points on 21 trades on the daily chart, before commission and slippage.
Is it better to only buy or only sell z-score reversion signals on NQ?
On the NQ 15-minute chart from 2024-10-08 to 2026-10-07, the long trades made 239.75 points on 325 trades (61.9% won) and the short trades made -1,192.50 points on 323 trades (53.3% won), before commission and slippage.
How many trades does the z-score reversion strategy take on NQ in two years?
The z-score reversion strategy took 648 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 1,533 on the 5-minute chart, 379 on the 1-hour chart and 21 on the daily chart, before commission and slippage.
What is the max drawdown of the z-score reversion strategy on NQ?
The z-score reversion strategy had a max drawdown of 5,085.75 points ($101,715 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 5,320.00 points on the 5-minute chart, 3,198.50 points on the 1-hour chart and 2,858.75 points on the daily chart, before commission and slippage.
How does the z-score reversion strategy do on ES compared with NQ?
On the ES 15-minute chart from 2024-08-28 to 2026-08-27, the z-score reversion strategy took 670 trades, won 56.7% of them and made -130.75 points (-$6,537 on one ES contract), before commission and slippage. On the NQ 15-minute chart from 2024-10-08 to 2026-10-07, the z-score reversion strategy took 648 trades, won 57.6% of them and made -952.75 points (-$19,055 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?