Page 1 of 1

🏆 Master XAU/USD: The "Liquidity Sweep" Scalping Strategy (Expert Level)

Posted: Sun Jul 26, 2026 1:01 pm
by PTScalper
Gold is not a typical forex pair. It is a beast of volatility, and most scalpers fail because they treat it like EUR/USD. To master XAU/USD scalping, you must stop looking for simple crossovers and start identifying where the "Big Fish" are trapping retail traders.

Today, we’re diving into a high-probability setup I call: The Liquidity Sweep & Retest.

The Theory
Large institutions need liquidity to fill their massive orders. In Gold, this usually happens at obvious levels: previous day highs (PDH), previous day lows (PDL), and "equal highs/lows." Retail traders see a break of these levels and jump in for a "breakout," only to be stopped out when the price snaps back.

Our goal is to wait for them to get trapped first.

The Setup
Timeframes: 5-Minute (Entry), 15-Minute (Context).
Indicators: VWAP (Volume Weighted Average Price) and a 20-period EMA.
Target Pairs: XAU/USD (Primary focus).
The "Secret" Execution Rules:
To enter a trade, three components must align perfectly:

The Liquidity Grab: Look for a clear peak or valley on the M15 chart (e.g., yesterday's high). You are looking for a sudden "spike" that pierces that level but fails to stay above/below it immediately.
The Displacement: After the grab, look for an aggressive move in the opposite direction. This is institutional "rejection." We want to see a large candle (displacement) that moves away from the high/low and closes back inside the previous range.
The VWAP Confirmation: Only take the trade if the price is on the correct side of the VWAP.
Long: Price grabs a low, rejects it with volume, and sits above the VWAP.
Short: Price grabs a high, rejects it with volume, and sits below the VWAP.
Entry & Exit Protocol
Entry: Enter on the first 1-minute candle that closes in your direction following the "Rejection" of the liquidity zone.
Stop Loss (SL): Place your SL just above/below the "wick" of the Liquidity Grab.
Take Profit (TP): Target the next logical liquidity zone or a minimum 1:2 Risk-to-Reward ratio.
Why this works for Gold
Gold thrives on volatility. By waiting for the "Sweep," you are essentially letting the market "wash out" the weak hands before you enter your trade. You aren't trading the noise; you are trading the reaction to the noise.

Post a screenshot of your XAU/USD charts below—let’s analyze some liquidity zones together! 👇

#GoldTrading #XAUUSD #ForexScalping #PriceAction #LiquiditySweep #SmartMoneyConcepts #ForexStrategy

Re: 🏆 Master XAU/USD: The "Liquidity Sweep" Scalping Strategy (Expert Level)

Posted: Sun Jul 26, 2026 1:03 pm
by PTScalper
How to install:
1) Open your MT4 platform.
2) Go to File > Open Data Folder.
3) Navigate to MQL4 > Indicators.
4) Create a new file named Gold_Liquidity_Sweep.mq4 and paste the code below.
5) Compile it in the MetaEditor and attach it to your XAU/USD chart (M1 or M5).
//+------------------------------------------------------------------+
//| Gold_Liquidity_Sweep.mq4|
//| Copyright 2023, Your Forum Name|
//| Specialized for XAU/USD |
//+------------------------------------------------------------------+
#property copyright "YourForumName"
#property link "http://yourforumlink.com"
#property version "1.00"
#property strict

#property indicator_chart_window
#property indicator_buffers 2
#property indicator_plots 2

// Plot Settings
#property indicator_type1 DRAW_ARROW
#property indicator_color1 clrLime
#property indicator_width1 2
#property indicator_label1 "Buy Sweep (Bullish)"

#property indicator_type2 DRAW_ARROW
#property indicator_color2 clrRed
#property indicator_width2 2
#property indicator_label2 "Sell Sweep (Bearish)"

//--- Inputs
input int EMA_Period = 20; // Filter EMA Period
input bool Alert_Enabled = true; // Enable Sound/Popup Alerts
input int LookbackDays = 1; // Look back days to find High/Low

//--- Buffers
double BuyBuffer[];
double SellBuffer[];

// Global Variables
double pdh, pdl; // Previous Day High and Low

//+------------------------------------------------------------------+
//| Custom indicator initialization function |
//+------------------------------------------------------------------+
int OnInit()
{
SetIndexBuffer(0, BuyBuffer);
SetIndexArrow(0, 233); // Up Arrow

SetIndexBuffer(1, SellBuffer);
SetIndexArrow(1, 234); // Down Arrow

// Set up levels on chart (optional visual)
ObjectCreate(0, "PDH_Line", OBJ_HLINE, 0, 0, 0);
ObjectSetInteger(0, "PDH_Line", OBJPROP_COLOR, clrGray);
ObjectSetInteger(0, "PDH_Line", OBJPROP_STYLE, STYLE_DOT);

ObjectCreate(0, "PDL_Line", OBJ_HLINE, 0, 0, 0);
ObjectSetInteger(0, "PDL_Line", OBJPROP_COLOR, clrGray);
ObjectSetInteger(0, "PDL_Line", OBJPROP_STYLE, STYLE_DOT);

return(INIT_SUCCEEDED);
}

//+------------------------------------------------------------------+
//| Custom indicator iteration |
//+------------------------------------------------------------------+
int OnCalculate(const int &rates_total,
const int &prev_calculated,
const datetime &time[],
const double &open[],
const double &high[],
const double &low[],
const double &close[],
const long &tick_volume[],
const long &volume[],
const int &spread[])
{
int limit = rates_total - prev_calculated;
if(limit > 1) limit = rates_total - 1;

// Update Previous Day High/Low automatically
pdh = iHigh(Symbol(), PERIOD_D1, 0); // Current day high (changes as it happens) or previous.
// To be precise for "Yesterday", we use index 1:
pdh = iHigh(_Symbol, PERIOD_D1, 1);
pdl = iLow(_Symbol, PERIOD_D1, 1);

// Update Hlines on chart visually
ObjectMove(0, "PDH_Line", 0, 0, pdh);
ObjectMove(0, "PDL_Line", 0, 0, pdl);

for(int i = limit; i >= 0; i--)
{
BuyBuffer = 0;
SellBuffer = 0;

double currentEMA = iMA(_Symbol, 0, EMA_Period, 0, MODE_EMA, PRICE_CLOSE, i);

//--- BULLISH LIQUIDITY SWEEP ---
// Logic: Price dipped below yesterday's low (Liquidity Grab)
// but closed above it or higher than the previous candle.
if(low < pdl && close > pdl && close > close[i+1])
{
if(close > currentEMA) // Confirmation of momentum
{
BuyBuffer = low - (20 * _Point);
if(i == 0 && prev_calculated != 0) TriggerAlert("BULLISH SWEEP: XAU/USD");
}
}

//--- BEARISH LIQUIDITY SWEEP ---
// Logic: Price spiked above yesterday's high (Liquidity Grab)
// but closed below it.
if(high > pdh && close < pdh && close[i] < close[i+1])
{
if(close[i] < currentEMA) // Confirmation of momentum
{
SellBuffer[i] = high[i] + (20 * _Point);
if(i == 0 && prev_calculated != 0) TriggerAlert("BEARISH SWEEP: XAU/USD");
}
}
}

return(rates_total);
}

//+------------------------------------------------------------------+
//| Alert System |
//+------------------------------------------------------------------+
void TriggerAlert(string msg)
{
static datetime lastAlert = 0;
if(Time[0] != lastAlert)
{
Alert(msg);
SendNotification(msg); // Sends to mobile if configured in MT4 options
lastAlert = Time[0];
}
}


1) Automatic Level Detection: Instead of the user manually drawing lines, the indicator automatically finds yesterday's High and Low (the core of the strategy).
2) The "Rejection" Logic: It doesn't just signal a touch of a line; it checks if the price poked through the line but closed back inside. This is exactly what "Liquidity Sweep" means in pro trading.
3) Multi-Layer Filtering: It incorporates the EMA 20 check to ensure you aren't buying during a massive crash or selling into a moon mission—it only signals when the trend aligns with the sweep.
4) Visual & Audio Alerts: It places arrows on the chart and sends mobile notifications, making it highly valuable for your community members.

The indicator highlights the Liquidity Zone automatically. When you see a green arrow under a 'wick' that pierced the gray dashed line, that is your signal that institutional players have just washed out the retail traders.