Strategies we backtested FOMC day fade

Tested by BacktestingMax

FOMC day fade backtest on NQ, ES and gold futures

Does the FOMC day fade work on NQ, ES and gold futures?

No, not reliably. FOMC days are the 8 days a year when the US Federal Reserve announces its interest rate decision, at 14:00 New York time. To fade a move means to trade against it. The FOMC day fade marks the highest and the lowest price from 14:00 to 14:30: the range. When price first goes past the range after 14:30 and then closes back inside it, the fade trades the other way until 16:00. We ran 6 tests on all 63 FOMC days from 2018 to 2025: MNQ, MES and MGC, each on 5-minute and 15-minute charts. These are the micro contracts of NQ (Nasdaq 100 futures), ES (S&P 500 futures) and gold futures. After trading costs, 4 of the 6 tests made a small profit in 8 years, at most +11.9%. Adding up the 6 tests, all of the profit came from the 5 best FOMC days. Without them, the fade lost money. All 6 tests lost money in 2018–2021 and made money in 2022–2023, but the MNQ and MES tests lost again in 2024–2025. Each test had only 32 to 53 trades, too few to be sure. Our 'Where it worked' box and the versions table count only tests with at least 100 trades. So the box shows 0 under 'Made money', and every 'made money in both periods' count shows 0, for every version.

6 backtests 2018–2025 Trading costs included Tested 2 November 2026

Where it worked 6 backtests
Made money
0
of 6 tests, with the standard rules
Made money in both periods
0
2018–2021 and again 2022–2025
Best backtest
+12%
MGC (Micro Gold), 5-minute chart: account growth 2018–2025
Trade with the breakout instead of against it
0
tests made money in both periods, compared with 0 with the standard rules

The results

Results on every market

Each box shows one backtest of the FOMC day fade with the standard rules, from 2018 to 2025, after trading costs: the % result, and a small chart of the account balance. The solid line is the account balance and the dashed line is the starting balance. Green results made money; red results lost money. Under each result: whether it made money in both 2018–2021 and 2022–2025, or passed all four of our checks (see "How a test passes" further down).

Market 5-minute 15-minute
MNQ (Micro Nasdaq 100) +3% Too few trades −2% Too few trades
MES (Micro S&P 500) −4% Too few trades +5% Too few trades
MGC (Micro Gold) +12% Too few trades +0.9% Too few trades
All the numbers, test by test
Market Chart Trades Win rate Profit factor Result Max drawdown 2018–2021 2022–2025 Monte Carlo drawdown Trading costs
MNQ (Micro Nasdaq 100) 5-minute 51 35.3% 1.10 +3.1% −10.8% −7.2% +11.0% −14.1% $997
MNQ (Micro Nasdaq 100) 15-minute 38 36.8% 0.90 −1.8% −8.9% −7.7% +6.3% −11.0% $628
MES (Micro S&P 500) 5-minute 53 35.8% 0.88 −3.8% −14.7% −13.7% +11.4% −17.3% $1,905
MES (Micro S&P 500) 15-minute 38 42.1% 1.28 +4.9% −6.2% −1.1% +6.1% −9.5% $1,198
MGC (Micro Gold) 5-minute 41 39% 1.54 +11.9% −9.8% −4.8% +17.5% −10.3% $1,640
MGC (Micro Gold) 15-minute 32 34.4% 1.06 +0.9% −7.3% −6.3% +7.7% −8.8% $970

Profit factor is the money won divided by the money lost. Above 1 means the test made money. Max drawdown is the biggest fall from the highest balance. 2018–2021 and 2022–2025 show the result in each period on its own. Monte Carlo drawdown: we shuffled the trades into a random order 1,000 times; in 95% of those runs, the worst drawdown was this number or less. Result is the change in the account, with the risk of each trade set to 1% of the account at that time.

The account balance

The best test and the middle test

Best test MGC (Micro Gold), 5-minute chart +11.9% from 2018 to 2025
Middle test (median): half of the 6 did better, half did worse MNQ (Micro Nasdaq 100), 5-minute chart +3.1% from 2018 to 2025

What we found

What the 6 backtests show

  1. With the standard rules (the rules under 'The rules we tested', with no changes), 4 of the 6 tests made money from 2018 to 2025, after trading costs. The $50,000 account grew by 11.9% on the MGC 5-minute chart, the best test, and fell by 3.8% on the MES 5-minute chart, the worst. FOMC days come only 8 times a year, so each test traded on just 32 to 53 of the 63 FOMC days. No test reached 100 trades, the minimum we ask for before we trust a result. With fewer trades, a small profit or loss can be luck. How the trades ended, adding up the 6 tests: 119 out of 253 trades hit the stop-loss, 98 of them within 30 minutes of opening. The other 134 were still open at 16:00, and 70.1% of those made money. So the stop-loss was usually hit soon after the entry, and a trade that lasted until 16:00 usually made money.

  2. All of the profit came from 5 days. We measure results in R: 1R is 1% of the account at the time of the trade, about what a trade loses at its stop-loss. Adding up all 6 tests, the trades made +17.3R from 2018 to 2025. The 5 best FOMC days made +67.2R, and the other 56 FOMC days with a trade lost 50.0R. So without those 5 days, the fade lost money. The best day was 20 September 2023. On all three markets, price went above the range just after 14:30, closed back inside it, and then fell until 16:00. That day alone made +24.2R in the 6 tests. By period, all 6 tests lost money in 2018–2021 and made money in 2022–2023. In 2024–2025, the 4 MNQ and MES tests lost money, and the 2 MGC tests made money (see 'All of the profit came in 2022 and 2023' below).

  3. Fading the same range on ordinary days lost money. As a check, we ran the same rules on every trading day from 2018 to 2025, about 2,000 days, FOMC days included. All 6 tests lost money: the account fell by 62.2% to 96.9%. Before trading costs, the trades were close to break-even: from about −$6 to +$3 per trade on average. The costs, $28,113 to $49,213 per test, made them lose. On ordinary days the range is smaller, so costs take a bigger share of each trade's risk. Per trade, FOMC days lost less or made more than the other days in all 6 tests. The table 'The same rules on every trading day lost money in all 6 tests' below shows each one.

  4. We call the move from 14:00 to 14:30 the first move. Many traders say it usually reverses. In our data, it reversed about as often as on any other day: about half the time. On FOMC days, price went the other way from 14:30 to 16:00 on 44.4% to 54.0% of the days, depending on the market. On ordinary days, it went the other way on 46.5% to 49.4% of the days. The fade's signal was not special to FOMC days either. After the first breakout of the range, a 5-minute candle closed back inside it on 68.3% to 84.1% of FOMC days. On ordinary days, it did so on 82.0% to 86.7% of the days. The table 'The first move after the statement turned around about as often as on any other day' below shows each market.

  5. Fade trades that opened before 15:00 did better than later ones in all 6 tests. Adding up the 6 tests, the 143 trades that opened before 15:00 made +0.31R each on average. The 110 trades that opened at 15:00 or later lost 0.24R each. One possible reason: a later trade has less time to move before 16:00, but its stop-loss can still be hit. We found this by looking at all the years, and we did not test a rule that stops trading at 15:00. So we can't say whether that rule would help.

Year by year

All of the profit came in 2022 and 2023

Each bar adds up the results of all the trades that opened in two calendar years, in all 6 tests with the standard rules, after trading costs. The results are in R, as in the findings: 1R is 1% of the account at the time of the trade. Don't read +61.4R as +61.4%: each bar adds up 6 separate accounts. Green bars made money in total; red bars lost money. Each bar covers two years, because some single years had fewer than 30 trades.

  • 2018–201965 trades −28.9R
  • 2020–202162 trades −13.0R
  • 2022–202360 trades +61.4R
  • 2024–202566 trades −2.3R

In 2022 and 2023, the Fed raised interest rates at 11 of its 16 meetings, by up to 0.75 percentage points at a time. On those 11 days, the trades made +43.8R. In 2018, the Fed raised rates at 4 of its 8 meetings, and on those 4 days the trades lost 7.8R. So a rate rise alone did not make the fade work. The 2022–2023 total also includes 20 September 2023, a meeting with no change in rates, when the trades made +24.2R.

FOMC days or every day

The same rules on every trading day lost money in all 6 tests

As a check, we ran the standard rules on every trading day from 2018 to 2025, not only on FOMC days. 'Every trading day' shows the % change in the account after trading costs, with the number of trades in brackets, and the trades' result in dollars before costs. The last two columns compare the average result per trade on FOMC days and on the other days, with the number of trades in brackets. They are in R, as in the findings: 1R is 1% of the account at the time of the trade.

Market Chart Every trading day: result after costs Every trading day: result before costs FOMC days: average per trade Other days: average per trade
MNQ 5-minute −84.6% (1,629) −$2,961 +0.074R (51) −0.096R (1,592)
MNQ 15-minute −62.2% (1,383) −$2,975 −0.041R (38) −0.054R (1,357)
MES 5-minute −94.3% (1,567) +$1,148 −0.060R (53) −0.167R (1,532)
MES 15-minute −85.6% (1,336) −$8,046 +0.138R (38) −0.136R (1,310)
MGC (micro gold) 5-minute −96.9% (1,392) −$5,944 +0.290R (41) −0.241R (1,371)
MGC (micro gold) 15-minute −89.9% (1,263) +$4,273 +0.034R (32) −0.173R (1,237)

The FOMC-day averages come from the standard test, which trades only on FOMC days. The other-day averages come from the every-day test. In the every-day test the account shrank, so many trades used only a few contracts. Sizes are rounded down to whole contracts, so those trades often risked less than 1R. That moves the other-day averages closer to zero, so the gap between FOMC days and other days may be bigger than the table shows.

The first move

The first move after the statement turned around about as often as on any other day

Each row is one market, from 2018 to 2025. The first move is the change in price from 14:00 to 14:30 New York time. It turned around when price moved the other way from 14:30 to 16:00. The breakout columns count the days when price went past one side of the 14:00 to 14:30 range after 14:30. They show how often a 5-minute candle then closed back inside the range before 16:00, which is the fade's signal. The ranges are medians: on half of the days, the range was smaller.

Market Range 14:00 to 14:30, FOMC days Range 14:00 to 14:30, other days First move turned around, FOMC days First move turned around, other days Breakout closed back inside, FOMC days Breakout closed back inside, other days
MNQ 90.00 points 36.25 points 50.8% 48.8% 83.9% 86.7%
MES 20.75 points 8.50 points 54.0% 46.5% 84.1% 86.0%
MGC (micro gold) $11.60 $2.30 44.4% 49.4% 68.3% 82.0%

There were 63 FOMC days and 1,930 other trading days with full prices from 14:00 to 16:00. After 14:30, price went past one side of the range on 62 FOMC days on MNQ, 63 on MES and 60 on MGC. On 1 more MGC day, the first breakout candle went past both sides of the range at once, so that day is left out. By 16:00, price was still past the side of that first breakout on 58.1% of those days on MNQ, 49.2% on MES and 65.0% on MGC. On the other days, it was 48.7% to 51.4%. So on MNQ and gold, the first breakout was still in place at 16:00 more often on FOMC days than on other days. These numbers come from the price data, not from the trades, so they include the days the strategy did not trade.

The strategy

What the FOMC day fade is

FOMC is the Federal Open Market Committee: the group in the US Federal Reserve (the Fed, the US central bank) that sets US interest rates. It meets 8 times a year on a fixed schedule. On the last day of each meeting, it publishes a statement with its decision at 14:00 New York time. Traders call that day FOMC day. At 14:30, the Fed chair (the head of the Fed) starts a press conference: a live question and answer session with reporters. Since 2019, there has been a press conference after every meeting. In 2018, there was one after only 4 of the 8 meetings. On FOMC days, stock index futures and gold often move much more than usual after 14:00. Many traders say the first move after the statement often reverses. To fade a move means to trade against it. This page tests one popular way to trade that idea. It marks the range of the first 30 minutes after the statement: the highest and the lowest price from 14:00 to 14:30. From 14:30, it waits for the first breakout of that range, and trades against it once a candle closes back inside the range. It does not fade the 14:00 move itself, so a trade can go in the same direction as that move. The stop-loss goes just past the furthest price the breakout reached, and the trade closes at 16:00. So every trade opens after 14:30, the time the press conference starts. 'The rules we tested' lists the exact rules. We tested it on MNQ (Micro Nasdaq 100) and MES (Micro S&P 500), which follow the same prices as NQ and ES. We also tested MGC (Micro Gold), which follows gold futures (GC). A micro contract makes or loses one tenth as much money per point as the full-size contract.

FOMC days
The 63 scheduled FOMC statements from 2018 to 2025: 8 a year, and 7 in 2020. All came out at 14:00 New York time. We checked each date and time in the BacktestingMax economic calendar. We left out the two emergency statements of March 2020 (see the questions at the end)
Range
14:00 to 14:30 New York time, the 30 minutes after the statement. In UK time, the statement comes out at 19:00 for most of the year
Breakout
The first candle from 14:30 whose high goes above the range high, or whose low goes below the range low
Entry
Against the breakout, at the next candle's open, after a candle closes back inside the range before 16:00. On 2 of the 254 signals in the 6 tests, that candle closed even past the other side of the range. Those trades still opened
Stop-loss
1 tick (the smallest price step) past the furthest price of the breakout: above its highest price for a sell, below its lowest price for a buy
Take-profit
None. A trade still open at 16:00 New York time closes then
Trades per day
1 at most, on FOMC days only
Account and risk
$50,000 at the start, a common size for a prop firm evaluation (the trading test a firm sets before it lets you trade its money). Each trade risks about 1% of the account balance at that time, rounded down to whole contracts. A typical (median) trade used 6 MNQ, 8 or 9 MES, or 10 to 12 MGC contracts
Days without a trade
On 10 to 28 FOMC days per test, there was no signal: price did not break out of the range, or did not close back inside it before 16:00. On 3 to 6 FOMC days on the 15-minute charts, and on 1 day on the MGC 5-minute chart, the first breakout candle went past both sides of the range. Those days were skipped. The MNQ 5-minute test also skipped 1 May 2024, because 1 contract would have risked more than 1%
Contracts
MNQ, MES and MGC are the micro contracts of NQ, ES and GC (gold futures): the same prices at one tenth of the size. So a trade can risk close to 1% in whole contracts. We also tested YM (Dow) and RTY (Russell 2000), which have no micro contracts in our data. There, 1 contract often risked more than 1% of the account. On the 5-minute chart, YM skipped 16 of its 49 signals, and RTY 12 of 36. They traded on only 11 to 33 FOMC days, too few to judge, so they are not in the results. Our RTY data starts in 2020
Fills
A trade opens at the next candle's open after the signal. The stop-loss fills at its price, or at a candle's open if price opens past it. A trade still open at 16:00 closes at the open of the 16:00 candle. After the statement, price can jump past a stop-loss: 27 of the 119 stop-loss exits lost more than 1.1R. In the take-profit version (under 'Can the FOMC day fade be improved?'), the take-profit fills at its exact price. When price reaches the stop-loss and the take-profit in the same candle, the backtest looks at the 1-minute candles inside it to see which came first. If both are in the same 1-minute candle, the backtest counts the stop-loss
Price data
BacktestingMax's futures data. It is built from CFD prices (a broker's price that follows the same market). It is adjusted to match the real contracts: their price, trading hours, tick and roll (the switch from one contract month to the next). It is not exchange data. The stop-loss sits just 1 tick past the breakout's furthest price, so small differences between our prices and exchange prices can change whether a stop is hit. Before mid-2018, our index prices can stop updating outside US stock market hours. Every trade here was between 14:35 and 16:00 New York time, and we checked that prices moved normally then on the 2018 FOMC days
Trading costs
The spread is the gap between the buy and the sell price. We used a spread of 1 tick: $0.50 per contract on MNQ, $1.25 on MES and $1 on MGC. A trade pays half the spread when it opens and half when it closes. There is also a commission (the broker's fee) of $0.62 per contract when a trade opens and again when it closes. In the take-profit version, a trade that closes at the take-profit pays no spread when it closes. We added no slippage (a fill at a worse price than the order) beyond the spread. On FOMC days, real stop-loss fills are often worse, so real results could be lower than this backtest. With the standard rules, the costs were $628 to $1,905 per test from 2018 to 2025

The rules we tested

  1. All times are New York time. Trade only on FOMC days: the 8 days a year with a scheduled FOMC statement at 14:00. We took the dates from the BacktestingMax economic calendar: 63 days from 2018 to 2025.
  2. Mark the range: the highest and the lowest price from 14:00 to 14:30. On the 5-minute chart, that is the 6 candles from 14:00 to 14:30. On the 15-minute chart, it is 2 candles.
  3. From 14:30, wait for the first breakout: the first candle that goes above the range high or below the range low. A wick past the range is enough: the candle's high or low only has to go past the range, and the candle does not have to close there. If that first breakout candle goes past both sides of the range, skip the day.
  4. After a breakout above the range, sell (go short: sell first, to profit if price falls) when a candle closes back below the range high. After a breakout below the range, buy when a candle closes back above the range low. This signal candle can be the breakout candle itself. The trade opens at the next candle's open.
  5. Put the stop-loss 1 tick past the furthest price the breakout reached, from the breakout candle to the signal candle. For a sell, that is 1 tick above the highest price. For a buy, it is 1 tick below the lowest price. A tick is the smallest price step: 0.25 points on MNQ and MES, and $0.10 on MGC.
  6. There is no take-profit. If the trade is still open at 16:00, close it then.
  7. Trade once a day at most. If price does not close back inside the range before 16:00, there is no trade that day.
  8. Size every trade so that a loss at the stop-loss costs 1% of the account balance at that time. Round down to whole contracts. If even 1 contract would risk more than 1%, skip the day.

The method

How we tested it

The test

Markets
MNQ (Micro Nasdaq 100), MES (Micro S&P 500) and MGC (Micro Gold)
Charts
5-minute and 15-minute candles
Dates
January 2018 to December 2025
Account
$50,000, risking 1% of the account on each trade
Trading costs
Included. Every trade pays that market's normal trading cost: the spread, which is the gap between the buy price and the sell price.

How a test passes

We call a test passed only if it meets all four checks. A strategy can make money in one backtest and still fail one of these checks.

  • At least 100 trades. With fewer trades, a good result could be luck.
  • It made money from 2018 to 2021 and again from 2022 to 2025. This shows whether the strategy kept working in the newer years, not only in the older ones.
  • A profit factor (the money won divided by the money lost) of at least 1.2 from 2022 to 2025, after trading costs.
  • In 95% of 1,000 random shuffles of the trades, the account must not fall more than 30% from its highest point.

Improvements

Can the FOMC day fade be improved?

We tried three changes that FOMC day traders often make, one at a time, on the same 6 tests. The first adds a take-profit at the other side of the range. The second counts a breakout only when a candle closes past the range, not when only a wick goes past it. The third trades with the first breakout instead of against it. The table below explains each one. If you pick the best change and judge it on the same years you used to pick it, it almost always looks better than it really is. So we picked the best change using 2018–2021 only: the change that made money in the most tests. In a tie, we picked the one with the better middle test (the median: half of the tests did better, half did worse). Then we checked it on 2022–2025, the years we did not use to pick it.

Version Made money 2018–2021years used to pick the best version Made money 2022–2025years not used to pick it Made money in both periods Passed all four checks
Standard rules The rules under 'The rules we tested': trade against the first breakout of the 14:00 to 14:30 range once a candle closes back inside it. The stop-loss is 1 tick past the breakout's furthest price, and the trade closes at 16:00. 0 of 6middle test −6.8% 6 of 6middle test +9.3% 0 0
With a take-profit at the other side of the range Close the trade when price reaches the other side of the 14:00 to 14:30 range: the range low for a sell, the range high for a buy. A trade that doesn't get there still ends at the stop-loss or at 16:00. If the signal candle (the candle that closed back inside the range) has already closed past that level, there is no trade that day. 0 of 6middle test −6.5% 4 of 6middle test +2.3% 0 0
Breakout only on a candle close past the range A breakout counts only when a candle closes past the range. A wick past it is not enough. After that, wait for a later candle to close back inside the range, then trade against the breakout as in the standard rules. 3 of 6middle test +0.6% 3 of 6middle test +1.6% 0 0
Trade with the breakout instead of against itBest on 2018–2021 From 14:30, buy when a candle first closes above the range, and sell when one first closes below it. The trade opens at the next candle's open. The stop-loss is 1 tick past the other side of the range: below the range low for a buy, above the range high for a sell. The trade closes at 16:00. 4 of 6middle test +0.8% 3 of 6middle test +0.5% 0 0

In the table, and in the card at the top of the page, 'Made money in both periods' shows 0 for every version. That is because it counts only tests with at least 100 trades. No change clearly did better, and every version had too few trades to judge. On 2018–2021, the years we used to pick, trading with the breakout did best. It made money in 4 of 6 tests, compared with 0 of 6 with the standard rules. On 2022–2025, the years we kept for the check, it made money in 3 of 6 tests, compared with 6 of 6 with the standard rules. The middle test was +0.5% with the change and +9.3% with the standard rules. From 2018 to 2025, the tests that trade with the breakout ended between −2.9% and +7.1%. Their stop-loss is past the other side of the range, far from the entry. So the stop-loss was hit on only 51 out of 329 trades, and most trades ended at 16:00 with a small gain or loss. Counting all tests, trading with the breakout made money in both periods in 2: MNQ on the 15-minute chart and MGC on the 5-minute chart. With the standard rules, none did. Counting a breakout only on a candle close made money in 4 of 6 tests from 2018 to 2025. It made money in both periods in 2 tests: MNQ and MES on the 5-minute chart. But on the 15-minute charts, it traded on only 13 to 24 FOMC days. The take-profit at the other side of the range made money in 2 of 6 tests. It took profit long before the biggest moves ended. On 20 September 2023, it made +8.2R in the 6 tests, compared with +24.2R with the standard rules.

Questions

Questions traders ask

Does the FOMC day fade strategy work?

Not reliably, in our backtest. FOMC days are the 8 days a year when the US Federal Reserve announces its interest rate decision, at 14:00 New York time. On those days, the fade marks the range from 14:00 to 14:30. It trades against the first breakout of that range once a candle closes back inside it. The stop-loss is just past the breakout's furthest price, and the trade closes at 16:00. We tested it on MNQ, MES and MGC (micro Nasdaq 100, S&P 500 and gold futures), each on 5-minute and 15-minute charts. The tests covered all 63 scheduled FOMC days from 2018 to 2025. After trading costs, 4 of the 6 tests made money, from +0.9% to +11.9% on a $50,000 account, and 2 lost money. Each test had only 32 to 53 trades. Adding up the 6 tests, all of the profit came from the 5 best FOMC days. All 6 tests lost money in 2018–2021, and the MNQ and MES tests lost money again in 2024–2025.

How does NQ move on FOMC day?

Much more than usual from 14:00, when the statement comes out. Traders call this volatility: how far price moves. We used MNQ, which follows the same prices as NQ at one tenth of the size. From 2018 to 2025, the range from 14:00 to 14:30 was 90.00 points on a typical (median) FOMC day. That is about 2.5 times the 36.25 points on other days. In the 30 minutes before the statement, the range was a little smaller than usual: 30.75 points, compared with 34.00. After 14:30, price went past the 14:00 to 14:30 range on 62 of the 63 FOMC days. From 14:30 to 16:00, price went the other way from the first 30 minutes on 50.8% of FOMC days. So the first move was no guide to the rest of the afternoon. In our backtest from 2018 to 2025, after trading costs, fading the first breakout made +3.1% on the MNQ 5-minute chart and lost 1.8% on the 15-minute chart.

Should you fade or follow the FOMC breakout?

Neither did clearly better in our backtest. Fading means trading against the first breakout of the 14:00 to 14:30 range, once a candle closes back inside the range. Following means trading with it: buy when a candle first closes above the range, or sell when a candle first closes below it. The stop-loss goes past the other side of the range. From 2018 to 2025, after trading costs, following made money in 4 of 6 tests (−2.9% to +7.1%), and fading in 4 of 6 (−3.8% to +11.9%). In 2018–2021, following made money in 4 of 6 tests and fading in none. In 2022–2025, fading made money in all 6 and following in 3. So which one did better depended on the years, and both had too few trades to judge.

What time is the FOMC announcement?

The FOMC statement comes out at 14:00 New York time on the last day of each scheduled meeting. In UK time, that is 19:00 for most of the year. The Fed chair's press conference starts at 14:30. There are 8 scheduled meetings a year, and the Fed publishes their dates in advance. In 2020 there were 7, because the Fed held its March meeting early, as an emergency meeting. We took the dates from the BacktestingMax economic calendar: 63 scheduled statements from 2018 to 2025, all at 14:00. In March 2020, the Fed made two emergency statements outside the schedule. One came on Tuesday 3 March at 10:00, and one on Sunday 15 March at 17:00, before the futures market opened. We left both out, because the strategy needs a scheduled 14:00 statement: it marks the range from 14:00 to 14:30 and trades after that. The FOMC minutes, a written record of each meeting, also come out at 14:00, three weeks later. Those are not decision days, and we did not trade them.

Keep exploring

Related strategies we tested

Seasonal & calendar NFP day breakout backtest on NQ, ES and gold futures Made money in 0 of 6 tests, 0 of them in both periods. Best: MES (Micro S&P 500), 5-minute, +3%
The strategy code we ran

This is the exact code from the BacktestingMax strategy engine. Paste it into the strategy editor in the app to run it on any market.

class FomcDayFade(Strategy):
    """FOMC day fade on US futures: on the days the Federal Reserve announces its interest
    rate decision, trade against the first break of the 30 minutes after the statement.
    All times are New York time (daylight saving included). The FOMC (the Federal Open
    Market Committee, the Fed's rate-setting committee) meets 8 times a year on a fixed
    schedule. It publishes its statement at 14:00 on the last day of each meeting, and the
    Fed chair's press conference starts at 14:30.
    FOMC days: the scheduled statements in the BacktestingMax economic calendar, all at
    14:00 New York. The two unscheduled (emergency) statements of 2020 are left out: Tuesday
    3 March at 10:00 and Sunday 15 March at 17:00, when the futures market was closed.
    Standard (all switches off):
      1. Trade only on FOMC days.
      2. The range: the highest and the lowest price of the candles from 14:00 to 14:30
         (6 candles on the 5-minute chart, 2 on the 15-minute chart).
      3. From 14:30, the first break is the first candle that trades above the range high
         or below the range low. If that candle trades past both sides, skip the day.
      4. After a break above, sell when a candle closes back below the range high. After a
         break below, buy when a candle closes back above the range low. The break candle
         itself can be that candle. The trade opens at the next candle's open.
      5. Stop-loss 1 tick beyond the break extreme: the highest price since the break for a
         sell, the lowest price since the break for a buy.
      6. No take-profit. A trade still open at 16:00 closes then.
      7. One trade a day at most. If price does not close back inside the range before
         16:00, there is no trade that day.
      8. Size every trade so that the stop-loss costs 1% of the account, in whole
         contracts. If one contract would risk more, skip the day.
    The changes, one at a time:
      target      = 1   take profit at the other side of the range (the range low for a
                        sell, the range high for a buy); if the signal candle has already
                        closed past it, no trade that day
      close_break = 1   a break counts only when a candle closes past the range (a wick
                        past it is not enough); then wait for a close back inside
      follow      = 1   trade with the first break instead of against it: buy when a candle
                        first closes above the range, sell when one first closes below it;
                        stop-loss 1 tick beyond the other side of the range
      every_day   = 1   a check, not a change: the same rules on every trading day, to
                        compare FOMC days with ordinary days
    """
    params = {"range_minutes": Param(type=int, default=30, min=5, max=90),
              "target": Param(type=int, default=0, min=0, max=1),
              "close_break": Param(type=int, default=0, min=0, max=1),
              "follow": Param(type=int, default=0, min=0, max=1),
              "every_day": Param(type=int, default=0, min=0, max=1)}
    lookback = 2
    statement = 840       # 14:00 New York, in minutes after midnight
    exit_time = 960       # 16:00 New York
    # FOMC statement days (14:00 New York), from the BacktestingMax economic calendar.
    fomc_days = (
        "2018-01-31 2018-03-21 2018-05-02 2018-06-13 2018-08-01 2018-09-26 2018-11-08 2018-12-19 "
        "2019-01-30 2019-03-20 2019-05-01 2019-06-19 2019-07-31 2019-09-18 2019-10-30 2019-12-11 "
        "2020-01-29 2020-04-29 2020-06-10 2020-07-29 2020-09-16 2020-11-05 2020-12-16 "
        "2021-01-27 2021-03-17 2021-04-28 2021-06-16 2021-07-28 2021-09-22 2021-11-03 2021-12-15 "
        "2022-01-26 2022-03-16 2022-05-04 2022-06-15 2022-07-27 2022-09-21 2022-11-02 2022-12-14 "
        "2023-02-01 2023-03-22 2023-05-03 2023-06-14 2023-07-26 2023-09-20 2023-11-01 2023-12-13 "
        "2024-01-31 2024-03-20 2024-05-01 2024-06-12 2024-07-31 2024-09-18 2024-11-07 2024-12-18 "
        "2025-01-29 2025-03-19 2025-05-07 2025-06-18 2025-07-30 2025-09-17 2025-10-29 2025-12-10 "
        "2026-01-28 2026-03-18 2026-04-29 2026-06-17 2026-07-29 2026-09-16 2026-10-28")
    # every_day only: days the New York Stock Exchange is closed or closes early (13:00).
    closed_days = (
        "2018-01-01 2018-01-15 2018-02-19 2018-03-30 2018-05-28 2018-07-03 2018-07-04 2018-09-03 "
        "2018-11-22 2018-11-23 2018-12-05 2018-12-24 2018-12-25 "
        "2019-01-01 2019-01-21 2019-02-18 2019-04-19 2019-05-27 2019-07-03 2019-07-04 2019-09-02 "
        "2019-11-28 2019-11-29 2019-12-24 2019-12-25 "
        "2020-01-01 2020-01-20 2020-02-17 2020-04-10 2020-05-25 2020-07-03 2020-09-07 2020-11-26 "
        "2020-11-27 2020-12-24 2020-12-25 "
        "2021-01-01 2021-01-18 2021-02-15 2021-04-02 2021-05-31 2021-07-05 2021-09-06 2021-11-25 "
        "2021-11-26 2021-12-24 "
        "2022-01-17 2022-02-21 2022-04-15 2022-05-30 2022-06-20 2022-07-04 2022-09-05 2022-11-24 "
        "2022-11-25 2022-12-26 "
        "2023-01-02 2023-01-16 2023-02-20 2023-04-07 2023-05-29 2023-06-19 2023-07-03 2023-07-04 "
        "2023-09-04 2023-11-23 2023-11-24 2023-12-25 "
        "2024-01-01 2024-01-15 2024-02-19 2024-03-29 2024-05-27 2024-06-19 2024-07-03 2024-07-04 "
        "2024-09-02 2024-11-28 2024-11-29 2024-12-24 2024-12-25 "
        "2025-01-01 2025-01-09 2025-01-20 2025-02-17 2025-04-18 2025-05-26 2025-06-19 2025-07-03 "
        "2025-07-04 2025-09-01 2025-11-27 2025-11-28 2025-12-24 2025-12-25")
    def init(self, ctx):
        self.ny = ctx.clock("America/New_York")
        self.fomc = set(self.fomc_days.split())
        self.no_trading = set(self.closed_days.split())
        self.day = None
        self.high = None          # the range high (14:00 to 14:30)
        self.low = None           # the range low
        self.count = 0            # candles in the range so far
        self.side = 0             # the first break: 1 above the range, -1 below it
        self.extreme = None       # the highest (or lowest) price since the break
        self.done = True          # True once today's trade is placed, or the day can't trade
        self.trade_day = None     # the date the open trade was placed on
    def on_bar(self, ctx):
        start = self.ny.minute_of_day              # this candle's open, New York time
        end = start + ctx.timeframe_minutes        # this candle's close
        range_end = self.statement + ctx.params.range_minutes
        if self.ny.date != self.day:               # a new day: forget yesterday's range
            self.day = self.ny.date
            self.high = self.low = None
            self.count = 0
            self.side = 0
            self.extreme = None
            if ctx.params.every_day == 1:
                self.done = self.ny.weekday >= 5 or self.day in self.no_trading
            else:
                self.done = self.day not in self.fomc
        if ctx.position is not None:
            if end >= self.exit_time or self.ny.date != self.trade_day:
                ctx.close_position()               # fills at the 16:00 candle's open
            return
        if self.done:
            return
        # The range: the candles that open from 14:00 to 14:30.
        if self.statement <= start < range_end:
            self.high = ctx.high[0] if self.high is None else max(self.high, ctx.high[0])
            self.low = ctx.low[0] if self.low is None else min(self.low, ctx.low[0])
            self.count += 1
            return
        if start < range_end:
            return
        if end >= self.exit_time:                  # no signal from the candle that ends at 16:00
            self.done = True
            return
        full = self.count * ctx.timeframe_minutes == ctx.params.range_minutes
        if not ctx.gate("full_range", full and self.high is not None and self.high > self.low):
            self.done = True
            return
        close = ctx.close[0]
        tick = ctx.pip_size
        if ctx.params.follow == 1:
            # Trade with the break: the first close past the range.
            up, down = close > self.high, close < self.low
            if not ctx.gate("close_past_range", up or down):
                return
            self.done = True
            stop = self.low - tick if up else self.high + tick
            self.enter(ctx, 1 if up else -1, stop, None)
            return
        # The first break of the range.
        if self.side == 0:
            if ctx.params.close_break == 1:
                up, down = close > self.high, close < self.low
            else:
                up, down = ctx.high[0] > self.high, ctx.low[0] < self.low
            if not ctx.gate("range_broken", up or down):
                return
            if not ctx.gate("one_side_broken", not (up and down)):
                self.done = True                   # one candle went past both sides
                return
            self.side = 1 if up else -1
            self.extreme = ctx.high[0] if up else ctx.low[0]
        elif self.side > 0:
            self.extreme = max(self.extreme, ctx.high[0])
        else:
            self.extreme = min(self.extreme, ctx.low[0])
        # Fade the break once a candle closes back inside the range.
        back = close < self.high if self.side > 0 else close > self.low
        if not ctx.gate("closed_back_inside", back):
            return
        self.done = True                           # one trade a day: this is it
        if self.side > 0:
            stop = self.extreme + tick
            target = self.low if ctx.params.target == 1 else None
            if target is not None and not ctx.gate("target_still_ahead", close > target):
                return
            self.enter(ctx, -1, stop, target)
        else:
            stop = self.extreme - tick
            target = self.high if ctx.params.target == 1 else None
            if target is not None and not ctx.gate("target_still_ahead", close < target):
                return
            self.enter(ctx, 1, stop, target)
    def enter(self, ctx, direction, stop, target):
        size = ctx.size_by_risk_pct(0.01, stop=stop, entry=ctx.close[0])
        if not ctx.gate("one_contract_fits_1pct_risk", size > 0):
            return                                 # one contract would risk more than 1%
        self.trade_day = self.day
        if direction > 0:
            ctx.buy(size=size, sl=stop, tp=target, tag="fomc_long")
        else:
            ctx.sell(size=size, sl=stop, tp=target, tag="fomc_short")

Your turn

Test the FOMC day fade yourself

Change the settings, the market or the stop-loss and see the result in seconds. Ask the BacktestingMax AI: Backtest the FOMC day fade on MGC 5-minute charts: on FOMC days, mark the 14:00 to 14:30 New York range, trade against the first breakout once a candle closes back inside it, stop-loss 1 tick past the breakout's extreme, close at 16:00, risk 1% per trade.

Try it free in BacktestingMax

Free account. No credit card needed.

See every strategy we tested Browse strategies shared by traders

Backtest on historical data with trading costs, run by BacktestingMax. Past results do not guarantee future results, and nothing here is financial advice. Updated 2 November 2026.