Page 1 of 2

News Spike Fade Scalping (Advanced, High Risk)

Posted: Fri Aug 21, 2026 10:19 pm
by Fairman
This strategy deserves a clear warning label before any explanation of the mechanics, because it genuinely is not suitable for beginners, small accounts, or anyone not fully prepared for the specific risks involved.

The underlying premise is that immediately following a major news release, price frequently overshoots its "true" reaction to the news in the initial seconds of chaotic, thin trading, and then partially retraces that overshoot within the first few minutes as liquidity normalizes and more rational participants re-enter the market.

In theory, this creates an opportunity to fade the initial spike — entering counter to the immediate post-news direction, betting on the partial retracement. In practice, this is an extremely difficult setup to execute well, for reasons directly tied to what we covered earlier about news spread widening.

During the exact window this strategy targets, spreads are often at their widest, slippage is at its most severe, and price can gap unpredictably in ways that make stop-loss placement genuinely unreliable — your intended risk and your actual realized risk can diverge significantly. This strategy requires extremely tight risk control, deep familiarity with how your specific broker handles execution during news events, and an accurate understanding that losses here can exceed what a calm read of the chart would suggest. If you're newer to scalping, this is one to study and understand conceptually long before attempting to trade it live.

Re: News Spike Fade Scalping (Advanced, High Risk)

Posted: Wed Sep 02, 2026 6:17 pm
by PTScalper
Fairman wrote: Fri Aug 21, 2026 10:19 pm This strategy deserves a clear warning label before any explanation of the mechanics, because it genuinely is not suitable for beginners, small accounts, or anyone not fully prepared for the specific risks involved.

The underlying premise is that immediately following a major news release, price frequently overshoots its "true" reaction to the news in the initial seconds of chaotic, thin trading, and then partially retraces that overshoot within the first few minutes as liquidity normalizes and more rational participants re-enter the market.

In theory, this creates an opportunity to fade the initial spike — entering counter to the immediate post-news direction, betting on the partial retracement. In practice, this is an extremely difficult setup to execute well, for reasons directly tied to what we covered earlier about news spread widening.

During the exact window this strategy targets, spreads are often at their widest, slippage is at its most severe, and price can gap unpredictably in ways that make stop-loss placement genuinely unreliable — your intended risk and your actual realized risk can diverge significantly. This strategy requires extremely tight risk control, deep familiarity with how your specific broker handles execution during news events, and an accurate understanding that losses here can exceed what a calm read of the chart would suggest. If you're newer to scalping, this is one to study and understand conceptually long before attempting to trade it live.
Post-Release Volatility Fading

Strict Risk Advisory

This trading framework carries an asymmetric risk profile. It is strictly unsuitable for novice traders, undercapitalized accounts, or individuals lacking advanced risk-management infrastructure and experience with acute market volatility.

Theoretical Framework
The core thesis of this strategy relies on market microstructure dynamics immediately following major macroeconomic data releases. During the initial seconds of a news event, the market often experiences an exaggerated directional overshoot. This is typically driven by algorithmic execution, order book depletion, and chaotic, thin liquidity. The strategy anticipates a mean-reverting retracement (a "fade") as institutional liquidity is replenished and price discovery normalizes within the opening minutes.

Execution Risks & Market Microstructure
While theoretically sound, executing counter-trend trades during acute volatility presents severe structural challenges. The specific execution window this strategy targets is characterized by extreme market conditions, including:

Liquidity Vacuums: Spreads widen to their maximum extremes as market makers pull liquidity.

Severe Slippage: The velocity of price movement makes filling orders at intended prices highly improbable.

Discontinuous Pricing (Gapping): Prices can gap unpredictably, rendering standard stop-loss orders unreliable.

Consequently, the realized risk on a trade can significantly exceed the intended theoretical risk, leading to outsized drawdowns.

Operational Prerequisites

Attempting this strategy requires exceptionally tight risk parameters and a deep understanding of how your specific broker and clearing firm handle order routing, slippage, and execution during high-impact news events. For traders who are not yet consistently profitable in standard conditions, this framework should be restricted entirely to conceptual study and simulated forward-testing.

Re: News Spike Fade Scalping (Advanced, High Risk)

Posted: Wed Sep 02, 2026 7:39 pm
by Fairman
PTScalper wrote: Wed Sep 02, 2026 6:17 pm
Fairman wrote: Fri Aug 21, 2026 10:19 pm This strategy deserves a clear warning label before any explanation of the mechanics, because it genuinely is not suitable for beginners, small accounts, or anyone not fully prepared for the specific risks involved.

The underlying premise is that immediately following a major news release, price frequently overshoots its "true" reaction to the news in the initial seconds of chaotic, thin trading, and then partially retraces that overshoot within the first few minutes as liquidity normalizes and more rational participants re-enter the market.

In theory, this creates an opportunity to fade the initial spike — entering counter to the immediate post-news direction, betting on the partial retracement. In practice, this is an extremely difficult setup to execute well, for reasons directly tied to what we covered earlier about news spread widening.

During the exact window this strategy targets, spreads are often at their widest, slippage is at its most severe, and price can gap unpredictably in ways that make stop-loss placement genuinely unreliable — your intended risk and your actual realized risk can diverge significantly. This strategy requires extremely tight risk control, deep familiarity with how your specific broker handles execution during news events, and an accurate understanding that losses here can exceed what a calm read of the chart would suggest. If you're newer to scalping, this is one to study and understand conceptually long before attempting to trade it live.
Post-Release Volatility Fading

Strict Risk Advisory

This trading framework carries an asymmetric risk profile. It is strictly unsuitable for novice traders, undercapitalized accounts, or individuals lacking advanced risk-management infrastructure and experience with acute market volatility.

Theoretical Framework
The core thesis of this strategy relies on market microstructure dynamics immediately following major macroeconomic data releases. During the initial seconds of a news event, the market often experiences an exaggerated directional overshoot. This is typically driven by algorithmic execution, order book depletion, and chaotic, thin liquidity. The strategy anticipates a mean-reverting retracement (a "fade") as institutional liquidity is replenished and price discovery normalizes within the opening minutes.

Execution Risks & Market Microstructure
While theoretically sound, executing counter-trend trades during acute volatility presents severe structural challenges. The specific execution window this strategy targets is characterized by extreme market conditions, including:

Liquidity Vacuums: Spreads widen to their maximum extremes as market makers pull liquidity.

Severe Slippage: The velocity of price movement makes filling orders at intended prices highly improbable.

Discontinuous Pricing (Gapping): Prices can gap unpredictably, rendering standard stop-loss orders unreliable.

Consequently, the realized risk on a trade can significantly exceed the intended theoretical risk, leading to outsized drawdowns.

Operational Prerequisites

Attempting this strategy requires exceptionally tight risk parameters and a deep understanding of how your specific broker and clearing firm handle order routing, slippage, and execution during high-impact news events. For traders who are not yet consistently profitable in standard conditions, this framework should be restricted entirely to conceptual study and simulated forward-testing.
Overall it’s a strategy I wouldn’t recommend to a new trader with little experience

Re: News Spike Fade Scalping (Advanced, High Risk)

Posted: Thu Sep 10, 2026 11:36 am
by LondonScalper
News fades are where execution risk goes nonlinear. The “edge” is secondary to spread normalization, first impulse exhaustion, and a size cap you obey even when the candle looks obvious.

I prefer a hard blackout into the print and only consider post-spike structure after the tape is readable again.

What’s your minimum confirmation before touching a fade — spread, seconds elapsed, or a new M1 structure?

Re: News Spike Fade Scalping (Advanced, High Risk)

Posted: Mon Sep 21, 2026 1:07 pm
by PropScalpDesk
Fairman wrote:This strategy deserves a clear warning label... fade the initial spike — entering counter to the immediate post-news direction.
Warning label earned. Spike fades look clever in hindsight and pay tuition in live spreads, slippage, and unreliable stops. During the exact window the idea targets, the book is often a mess. Intended risk and realized risk diverge.

From Frankfurt I do not fade the first vacuum. I stand aside, let liquidity return, then decide if a planned reclaim or continuation at a marked level still exists with normal costs. Prop blackouts usually remove the temptation; personal accounts should copy that constraint without needing a firm to enforce it.

If someone insists on the advanced version: micro size, hard time stop, pre-written max slippage abort, never on challenge paths. Most traders do not need this skill; they need the skill of not clicking.

Demo spike fades lie about live costs. If I ever retest the idea, it is micro size after spreads normalise — never inside the first vacuum, never on an evaluation path.

Is this still in your playbook at all, or demoted to research-only after cost analysis?

Re: News Spike Fade Scalping (Advanced, High Risk)

Posted: Tue Sep 22, 2026 6:21 pm
by PTScalper
Fairman wrote: Fri Aug 21, 2026 10:19 pm This strategy deserves a clear warning label before any explanation of the mechanics, because it genuinely is not suitable for beginners, small accounts, or anyone not fully prepared for the specific risks involved.

The underlying premise is that immediately following a major news release, price frequently overshoots its "true" reaction to the news in the initial seconds of chaotic, thin trading, and then partially retraces that overshoot within the first few minutes as liquidity normalizes and more rational participants re-enter the market.

In theory, this creates an opportunity to fade the initial spike — entering counter to the immediate post-news direction, betting on the partial retracement. In practice, this is an extremely difficult setup to execute well, for reasons directly tied to what we covered earlier about news spread widening.

During the exact window this strategy targets, spreads are often at their widest, slippage is at its most severe, and price can gap unpredictably in ways that make stop-loss placement genuinely unreliable — your intended risk and your actual realized risk can diverge significantly. This strategy requires extremely tight risk control, deep familiarity with how your specific broker handles execution during news events, and an accurate understanding that losses here can exceed what a calm read of the chart would suggest. If you're newer to scalping, this is one to study and understand conceptually long before attempting to trade it live.
Hi Fairman again,

i prepared some scripts for this strategy, so you and other traders/scalpers can test it.

You are absolutely right to preface this strategy with a massive warning. Trading the immediate aftermath of a macroeconomic news release is one of the most hostile environments for retail traders. Spreads widen aggressively, slippage is practically guaranteed, and liquidity vacuums can blow right past a hard stop-loss.

Because Pine Script cannot directly read an external economic calendar to trigger trades exactly at a news release (like 08:30 AM EST), the most effective way to code this is by detecting the anomalous volatility spike itself.

Here is a Pine Script (v5) that identifies these massive, sudden overshoots and automatically fades them, strictly capping the time in the trade to capture that initial retracement.

Re: News Spike Fade Scalping (Advanced, High Risk)

Posted: Tue Sep 22, 2026 6:21 pm
by PTScalper
Pine script version 1.0

Code: Select all

//@version=5
strategy("News Fade Spike Reversal", overlay=true, margin_long=100, margin_short=100, process_orders_on_close=true)

// =========================================================================
// ⚠️ WARNING: This strategy fades massive volatility spikes. 
// It is highly risky in live markets due to slippage, widened spreads, 
// and execution delays that TradingView backtesting CANNOT simulate accurately.
// =========================================================================

// --- Inputs ---
grp_logic = "Spike Detection"
atrLength = input.int(14, title="ATR Length", group=grp_logic)
spikeMultiplier = input.float(3.5, title="Spike Multiplier (x ATR)", tooltip="How much larger than average the candle body must be to trigger.", group=grp_logic)

grp_risk = "Risk & Trade Management"
sl_ticks = input.int(100, title="Stop Loss (Ticks/Points)", group=grp_risk)
tp_ticks = input.int(150, title="Take Profit (Ticks/Points)", group=grp_risk)
barsToHold = input.int(3, title="Max Bars to Hold", tooltip="Force exit after this many bars if TP/SL aren't hit (Retracement Window).", group=grp_risk)

// --- Spike Detection Logic ---
// Calculate average volatility
currentAtr = ta.atr(atrLength)

// Measure the current candle's body size
bodySize = math.abs(close - open)

// Define the "Overshoot" (A candle body significantly larger than the ATR)
isBullSpike = (close > open) and (bodySize > (currentAtr * spikeMultiplier))
isBearSpike = (close < open) and (bodySize > (currentAtr * spikeMultiplier))

// --- Entry Logic (Fading the Move) ---
// We only enter if we are not already in a trade
if strategy.position_size == 0
    if isBullSpike
        strategy.entry("Fade Short", strategy.short, comment="News Spike Up -> Short")
    if isBearSpike
        strategy.entry("Fade Long", strategy.long, comment="News Spike Down -> Long")

// --- Exit & Risk Management Logic ---
// 1. Hard Stops and Profit Targets
strategy.exit("Exit Short", "Fade Short", loss=sl_ticks, profit=tp_ticks)
strategy.exit("Exit Long", "Fade Long", loss=sl_ticks, profit=tp_ticks)

// 2. Time-Based Exit (The "First Few Minutes" rule)
// Count how many bars we have been in the current trade
var int barsInTrade = 0
if strategy.position_size != 0
    barsInTrade += 1
else
    barsInTrade := 0

// If the trade stalls and doesn't retrace quickly, cut it.
if barsInTrade >= barsToHold
    strategy.close("Fade Short", comment="Time Exit")
    strategy.close("Fade Long", comment="Time Exit")

// --- Chart Visuals ---
// Highlight the massive spikes on the chart for visual backtesting
bgcolor(isBullSpike ? color.new(color.green, 80) : na, title="Bull Spike Background")
bgcolor(isBearSpike ? color.new(color.red, 80) : na, title="Bear Spike Background")

Re: News Spike Fade Scalping (Advanced, High Risk)

Posted: Tue Sep 22, 2026 6:22 pm
by PTScalper
How the Mechanics Work

The ATR Spike Multiplier: The script uses the Average True Range (ATR) to establish baseline volatility. If a 1-minute candle's body is suddenly 3.5x larger than the ATR, the script identifies it as the "news overshoot."

The Fade: On the close of a massive green spike, it immediately enters a Short. On a massive red spike, it enters a Long.

The Retracement Window (barsToHold): The core thesis is that the retracement happens quickly as liquidity normalizes. If the trade hasn't hit its target within 3 bars (e.g., 3 minutes on a 1m chart), the script forces a market close. You don't want to be stuck holding a counter-trend position if the news actually established a new sustained trend.

Hard Risk: Uses strict tick-based stop losses.

Re: News Spike Fade Scalping (Advanced, High Risk)

Posted: Tue Sep 22, 2026 6:22 pm
by PTScalper
A Critical Note on Backtesting This

TradingView's backtester fills orders based on historical data prints. It does not know that during the CPI release last month, the spread on EURUSD blew out to 15 pips, or that your stop loss would have suffered 20 ticks of slippage.

This means this script will likely look incredibly profitable in a TradingView backtest, because the backtester assumes you got filled perfectly at the top/bottom of the spike. If you plan to trade this, forward-test it on a demo account specifically during NFP, CPI, or FOMC events to see how severely your broker's actual news-time execution degrades the theoretical edge.

Re: News Spike Fade Scalping (Advanced, High Risk)

Posted: Tue Sep 22, 2026 6:23 pm
by PTScalper
Here are the implementations for both MetaTrader 5 (MQL5) and MetaTrader 4 (MQL4).

Both versions include an essential real-world addition: a Max Spread Filter. Because spreads expand dramatically during news events, entering without a spread cap can result in instant double-digit pip losses before the market even moves.

MetaTrader 5 (MQL5)
Save this as NewsFadeSpike.mq5 in your MQL5/Experts directory. It uses the native CTrade execution library and handles indicator handles correctly.

Code: Select all

//+------------------------------------------------------------------+
//|                                            NewsFadeSpike_MT5.mq5 |
//|                                  Copyright 2026, Quant Dev Lab   |
//+------------------------------------------------------------------+
#property copyright "Copyright 2026"
#property link      "https://www.mql5.com"
#property version   "1.00"
#property strict

#include <Trade\Trade.mqh>
CTrade trade;

//--- Input Parameters
input group "=== Strategy Parameters ==="
input int      InpAtrPeriod        = 14;     // ATR Period
input double   InpSpikeMultiplier  = 3.5;    // Spike Multiplier (x ATR)
input int      InpMaxBarsToHold    = 3;      // Max Bars to Hold Position

input group "=== Risk Management ==="
input double   InpLotSize          = 0.10;   // Lot Size
input int      InpStopLossPoints   = 1000;   // Stop Loss (Points)
input int      InpTakeProfitPoints = 1500;   // Take Profit (Points)
input int      InpMaxSpreadPoints  = 500;    // Max Allowed Spread (Points)
input ulong    InpMagicNumber      = 102030; // EA Magic Number

//--- Global Variables
int      atrHandle;
datetime lastBarTime = 0;

//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
{
   trade.SetExpertMagicNumber(InpMagicNumber);
   
   // Initialize ATR handle
   atrHandle = iATR(_Symbol, _Period, InpAtrPeriod);
   if(atrHandle == INVALID_HANDLE)
   {
      Print("Failed to create ATR indicator handle.");
      return INIT_FAILED;
   }

   return INIT_SUCCEEDED;
}

//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
{
   IndicatorRelease(atrHandle);
}

//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
{
   // Check for time-based exit on every tick
   ManageTimeExits();

   // Only evaluate new setups once per bar close
   datetime currentBarTime = iTime(_Symbol, _Period, 0);
   if(currentBarTime == lastBarTime)
      return;

   lastBarTime = currentBarTime;

   // 1. Check if we already have an open position for this symbol/magic
   if(HasOpenPosition())
      return;

   // 2. Spread Check
   long currentSpread = SymbolInfoInteger(_Symbol, SYMBOL_SPREAD);
   if(currentSpread > InpMaxSpreadPoints)
   {
      Print("Spread too wide (", currentSpread, " pts). Entry skipped.");
      return;
   }

   // 3. Retrieve ATR of the completed candle (Bar 1)
   double atrValues[];
   ArraySetAsSeries(atrValues, true);
   if(CopyBuffer(atrHandle, 0, 1, 1, atrValues) <= 0)
      return;
   double barAtr = atrValues[0];

   // 4. Retrieve Price Data for Bar 1
   MqlRates rates[];
   ArraySetAsSeries(rates, true);
   if(CopyRates(_Symbol, _Period, 1, 1, rates) <= 0)
      return;

   double barOpen  = rates[0].open;
   double barClose = rates[0].close;
   double bodySize = MathAbs(barClose - barOpen);
   double threshold = barAtr * InpSpikeMultiplier;

   // 5. Detect Spike and Fade
   double point = SymbolInfoDouble(_Symbol, SYMBOL_POINT);
   int digits   = (int)SymbolInfoInteger(_Symbol, SYMBOL_DIGITS);

   // Bullish Spike -> Fade with a SELL
   if(barClose > barOpen && bodySize > threshold)
   {
      double bid = SymbolInfoDouble(_Symbol, SYMBOL_BID);
      double sl  = (InpStopLossPoints > 0)   ? NormalizeDouble(bid + InpStopLossPoints * point, digits) : 0;
      double tp  = (InpTakeProfitPoints > 0) ? NormalizeDouble(bid - InpTakeProfitPoints * point, digits) : 0;
      
      trade.Sell(InpLotSize, _Symbol, bid, sl, tp, "News Spike Fade Short");
   }
   // Bearish Spike -> Fade with a BUY
   else if(barClose < barOpen && bodySize > threshold)
   {
      double ask = SymbolInfoDouble(_Symbol, SYMBOL_ASK);
      double sl  = (InpStopLossPoints > 0)   ? NormalizeDouble(ask - InpStopLossPoints * point, digits) : 0;
      double tp  = (InpTakeProfitPoints > 0) ? NormalizeDouble(ask + InpTakeProfitPoints * point, digits) : 0;
      
      trade.Buy(InpLotSize, _Symbol, ask, sl, tp, "News Spike Fade Long");
   }
}

//+------------------------------------------------------------------+
//| Check if position is open                                        |
//+------------------------------------------------------------------+
bool HasOpenPosition()
{
   for(int i = PositionsTotal() - 1; i >= 0; i--)
   {
      if(PositionGetSymbol(i) == _Symbol && PositionGetInteger(POSITION_MAGIC) == InpMagicNumber)
         return true;
   }
   return false;
}

//+------------------------------------------------------------------+
//| Manage Exits Based on Bar Duration                               |
//+------------------------------------------------------------------+
void ManageTimeExits()
{
   for(int i = PositionsTotal() - 1; i >= 0; i--)
   {
      if(PositionGetSymbol(i) == _Symbol && PositionGetInteger(POSITION_MAGIC) == InpMagicNumber)
      {
         ulong ticket = PositionGetTicket(i);
         datetime openTime = (datetime)PositionGetInteger(POSITION_TIME);
         
         int barsHeld = iBarShift(_Symbol, _Period, openTime);
         if(barsHeld >= InpMaxBarsToHold)
         {
            trade.PositionClose(ticket);
            Print("Position closed by time exit (Held for ", barsHeld, " bars).");
         }
      }
   }
}