Tariq Shahzad
Tariq Shahzad
3.3 (6)
  • Información
no
experiencia
8
productos
70
versiones demo
0
trabajos
2
señales
0
suscriptores
Manager en Pakistan
My trading philosophy is simple: Protect the capital first, and the profits will follow. I develop automated systems focused on Gold (XAUUSD) mean reversion and liquidity sweeps. Every strategy I share is strictly tested on real-tick data to ensure reliability in real market conditions. No Martingale. No Grid. Just pure, logical execution.
Tariq Shahzad
Tariq Shahzad
Why Most Standard EAs Fail at Scalping
Let’s be honest: manual scalping is mentally exhausting. Sitting in front of the charts, trying to catch 3 or 4 pips while managing your spread and execution speed, takes a massive psychological toll. That’s precisely why I eventually turned to algorithmic trading. But when I started coding Expert Advisors for scalping, I hit a massive wall: standard EAs almost always fail at it.

Why does this happen? It comes down to how we feed data to the bot. Traditional EAs rely on standard OHLCV (open, high, low, close, volume) bar data. They look at the market on a per-minute or per-hour basis. But in the scalping world, where you are fighting for micro-profits, a one-minute candle is an absolute eternity. By the time a standard EA waits for a candle to close to confirm a moving average crossover, the micro-trend has already reversed, and your entry is late.

Even worse, standard timeframe data hides the real enemies of a scalper: sudden spread widening and slippage. In this article, I want to share how I moved away from bar-based analysis. We are going to look at how to build a fully automated, low-latency MQL5 solution—similar to the architecture I use in my BrightDeal Gold Scalper Pro v 6.0—that analyzes the market tick-by-tick and actually survives real-world broker conditions.

Understanding the True Scalping Environment
Before we write any complex logic, we have to respect the micro-market environment. If you usually swing trade EURUSD for a 50-pip take profit, a spread of 1.5 pips is basically background noise. You don't even notice it. But if your target is 4 pips, that same 1.5-pip spread immediately eats up nearly 40% of your potential profit before the price has even moved a single point in your favor.

When developing aggressive, high-frequency systems, handling these micro-fluctuations has to be your main priority. Your EA must be hyper-aware of the bid and ask prices down to the millisecond. You simply cannot afford to wait for a candle to close; you have to react to the tape. This means we have to abandon the OnCalculate() or standard bar functions and move our programmatic logic entirely into the OnTick() event handler.

Tick Data Collection in MQL5
The absolute foundation of a scalping EA is the MqlTick structure. Instead of looking at historical bars, this built-in MQL5 structure lets us grab the freshest bid and ask prices every single time the market ticks.

If you don't validate this data properly, your EA will get destroyed during news events or market rollovers when brokers pull their liquidity and spreads jump to 30+ points. Here is the foundational code block I use to request real-time tick data and, more importantly, block trades if the spread is too high:

//+------------------------------------------------------------------+
//| Expert tick function |
//+------------------------------------------------------------------+
void OnTick()
{
// Declare the structure to hold our raw price data
MqlTick latest_tick;

// Grab the freshest tick. If it fails, bail out immediately.
if(!SymbolInfoTick(_Symbol, latest_tick))
{
Print("Data feed lag! Error code: ", GetLastError());
return;
}

// Calculate the real-time spread in points (not pips)
int current_spread = (int)((latest_tick.ask - latest_tick.bid) / _Point);

// Safety switch: Max spread allowed is 20 points (2 pips)
int max_allowed_spread = 20;

if(current_spread > max_allowed_spread)
{
Print("Spread too high for scalping: ", current_spread, " points. Holding fire...");
return; // Block the EA from taking terrible entries
}

// --- YOUR ENTRY LOGIC GOES HERE ---
// At this point, the EA knows the spread is safe and has the exact bid/ask.
}
By structuring your OnTick() function this way right out of the gate, you immediately protect your account from the kind of sudden spread expansions that wipe out amateur scalping bots.

Entry Logic Development: Catching the Micro-Trend
Now that we are safely inside the OnTick() environment and monitoring our spread, we need a trigger. For standard day trading, a 14-period RSI or an iMACD crossover works fine. But for a scalper, these indicators are lagging indicators—they tell you what happened, not what is happening right now.

When I designed the logic for my own systems, like the BrightDeal Gold Scalper Pro, I realized that relying purely on M1 candle closes was a death sentence. Instead, we need to track micro-momentum. One effective approach is to monitor the velocity of ticks in a single direction. If we get a sudden burst of bullish ticks accompanied by an expansion in tick volume, it indicates immediate buying pressure.

However, to keep things accessible for this article, let's look at a hybrid approach: calculating a highly sensitive fast-moving average (like a 3-period EMA) but recalculating it on every single tick rather than waiting for the candle to close. This gives us the smoothness of an MA but the reaction time of a scalper.

//+------------------------------------------------------------------+
//| Example: Checking for micro-momentum on tick |
//+------------------------------------------------------------------+
bool CheckForScalpEntry(int signal_type)
{
// Array to hold our fast EMA values
double fast_ema[];
ArraySetAsSeries(fast_ema, true);

// Get the EMA handle (assuming declared globally: int ma_handle = iMA(_Symbol, PERIOD_M1, 3, 0, MODE_EMA, PRICE_CLOSE); )
if(CopyBuffer(ma_handle, 0, 0, 3, fast_ema) <= 0)
return false; // Failed to copy data

// Get current Ask/Bid from our earlier OnTick logic
double current_price = SymbolInfoDouble(_Symbol, SYMBOL_ASK);

// Micro-Buy Logic: Price suddenly surges above the fast EMA by a specific threshold
if(signal_type == ORDER_TYPE_BUY)
{
if(current_price > (fast_ema[0] + (3 * _Point))) // Price pushed 3 points above EMA
{
return true; // We have a micro-breakout
}
}

return false;
}
Writing the EA Core: Precision Execution and Slippage Control
Having a great entry signal is only 10% of the battle. The other 90% is trade execution. This is where most amateur bots bleed out their accounts.

When your EA fires off an OrderSend(), that data packet has to travel to the broker, and a lot can go wrong. The market is moving fast. The price you saw a millisecond ago might not be the price available now. If you do not strictly control your slippage (the difference between the expected price and the actual execution price), your 4-pip take profit will be instantly wiped out by a 3-pip slippage fill.

To survive, you must hardcode a strict slippage tolerance and use virtual/hidden stop losses if your broker employs stop-hunting tactics. Here is how I structure a highly defensive execution function:

//+------------------------------------------------------------------+
//| Secure Order Execution for Scalping |
//+------------------------------------------------------------------+
void ExecuteScalpTrade(ENUM_ORDER_TYPE type, double lot_size)
{
MqlTradeRequest request;
MqlTradeResult result;
ZeroMemory(request);
ZeroMemory(result);

request.action = TRADE_ACTION_DEAL;
request.symbol = _Symbol;
request.volume = lot_size;
request.type = type;
request.deviation= 10; // STRICT: Maximum 1 pip of slippage allowed
request.magic = 123456; // Your EA Magic Number

double current_price;

if(type == ORDER_TYPE_BUY)
{
current_price = SymbolInfoDouble(_Symbol, SYMBOL_ASK);
request.price = current_price;
request.sl = current_price - (50 * _Point); // Tight 5 pip stop loss
request.tp = current_price + (40 * _Point); // 4 pip take profit
}
else // Sell order
{
current_price = SymbolInfoDouble(_Symbol, SYMBOL_BID);
request.price = current_price;
request.sl = current_price + (50 * _Point);
request.tp = current_price - (40 * _Point);
}

// Send the order to the market
if(!OrderSend(request, result))
{
Print("Execution failed! Error: ", GetLastError(), " - Retcode: ", result.retcode);
// Here you would add logic to retry the order or log the exact reason for rejection
}
else
{
Print("Scalp Executed Successfully! Ticket: ", result.deal);
}
}
Notice that we set the deviation parameter to 10. This instructs the broker to cancel the order entirely if the requested price cannot be met within a one-pip margin. In scalping, a missed trade is infinitely better than a poorly executed one.

Spread and Slippage Protection: Surviving High-Impact News
If you scalp long enough, you will eventually get caught in a high-impact news event like NFP (Non-Farm Payrolls) or a sudden central bank announcement. During these events, liquidity vanishes, and your broker might widen a standard 1-pip spread to 20 pips or more. If your EA is blindly firing off market orders based on technical indicators during these times, your account will be drained in seconds.

To make an EA truly robust, it needs a "circuit breaker." In the BrightDeal Gold Scalper Pro architecture, I implement a dual-layer defense system: a hard spread filter (which we covered in our OnTick() function) and a time-based trading window.

Scalping algorithms perform best during specific periods of high liquidity and low volatility—typically the Asian session or the overlap between the London and New York sessions, depending on the asset. We can code a simple time filter to ensure the EA only trades during our specified safe hours, completely avoiding the erratic spikes of the daily rollover.

//+------------------------------------------------------------------+
//| Time Filter: Checking if the current time is safe to trade |
//+------------------------------------------------------------------+
bool IsTradingAllowedByTime()
{
// Get current server time
MqlDateTime current_time;
TimeToStruct(TimeCurrent(), current_time);

int current_hour = current_time.hour;

// Example: Only allow trading between 02:00 and 10:00 server time (Asian/Early London)
int start_hour = 2;
int end_hour = 10;

if(current_hour >= start_hour && current_hour < end_hour)
{
return true; // Time is safe, allow trading
}

return false; // Outside safe hours, block all trades
}
By combining this time filter with the real-time spread check, you create a system that simply refuses to participate in unfavorable market conditions. It takes the emotion out of taking a step back when the market is acting crazy.

Backtesting for Scalpers: The "Every Tick" Rule
One of the biggest mistakes I see novice developers make is posting "Holy Grail" backtests for scalping EAs that show a straight upward equity curve, only to watch the bot fail entirely in a live environment. This happens because they backtest using "open prices only" or "1-minute OHLC" data.

When you are backtesting a scalper that targets micro-profits, interpolating data between the open and close of a 1-minute candle creates massive false positives. The Strategy Tester will assume you got filled at prices that never actually existed in the order book.

If you want to know if your logic actually works, you must use the MQL5 Strategy Tester in "Every tick based on real ticks" mode. This forces the tester to download massive amounts of historical tick data from your broker (not just bar data) and simulates the exact bid/ask spread at every single millisecond of the test.

It takes much longer to run, but it is the only way to accurately test your slippage controls and tick-based entry logic. When you run an optimization on your parameters (like your stop-loss distance or fast EMA period) using real ticks, the results you get will be highly correlated to live forward-testing performance.

Dynamic Risk Management: Calculating Lots on the Fly
Many traders think scalping is entirely about finding the perfect entry signal. But I learned the hard way that you can have a 70% win rate and still blow your account if your position sizing is static. When you are scalping, the volatility of the market changes tick by tick.

If you just hardcode 0.10 lots for every trade, you are taking on drastically different monetary risks depending on whether your dynamic stop loss is 4 pips away or 8 pips away. To build a system like the BrightDeal Gold Scalper Pro, you need to calculate your lot size dynamically based on a strict percentage of your current free margin and the exact pip distance of your stop loss.

Here is the exact function I use to calculate my lot sizes. It ensures that no matter what the market is doing, I never risk more than 1% of my account equity on a single scalp:

//+------------------------------------------------------------------+
//| Dynamic Lot Size Calculator based on Risk Percentage |
//+------------------------------------------------------------------+
double CalculateDynamicLot(double risk_percentage, double stop_loss_points)
{
// Get account free margin
double free_margin = AccountInfoDouble(ACCOUNT_MARGIN_FREE);

// Calculate the monetary value of our risk (e.g., 1% of $1000 = $10)
double risk_amount = free_margin * (risk_percentage / 100.0);

// Get tick value (how much 1 point of movement is worth for 1 lot)
double tick_value = SymbolInfoDouble(_Symbol, SYMBOL_TRADE_TICK_VALUE);
double tick_size = SymbolInfoDouble(_Symbol, SYMBOL_TRADE_TICK_SIZE);

// If the broker has a weird tick setup, normalize it
if(tick_size == 0 || tick_value == 0) return 0.01; // Fallback to minimum lot

// Calculate lot size
double point_value = tick_value * (_Point / tick_size);
double calculated_lot = risk_amount / (stop_loss_points * point_value);

// Normalize lot size to broker's allowed steps (e.g., rounding to 0.01)
double lot_step = SymbolInfoDouble(_Symbol, SYMBOL_VOLUME_STEP);
double min_lot = SymbolInfoDouble(_Symbol, SYMBOL_VOLUME_MIN);
double max_lot = SymbolInfoDouble(_Symbol, SYMBOL_VOLUME_MAX);

calculated_lot = MathFloor(calculated_lot / lot_step) * lot_step;

// Ensure it falls within broker limits
if(calculated_lot < min_lot) calculated_lot = min_lot;
if(calculated_lot > max_lot) calculated_lot = max_lot;

return calculated_lot;
}
By calling CalculateDynamicLot(1.0, 50) right before your OrderSend(), you guarantee that a 50-point (5 pip) stop loss will cost precisely 1% of your account. This is the secret to surviving losing streaks.

The Scalper's Black Box: Diagnostic Logging
When an EA is trading on an H1 timeframe, you can visually look at the chart and see why a trade lost. When an EA is scalping on the M1 timeframe, taking multiple trades a minute, human eyes cannot track what happened. Was the spread too high? Did the broker slip you by 3 pips? Was there a sudden requote?

If you do not build a "black box" logging system into your EA, you will never be able to debug its failures. Every time my EA executes or fails to execute a trade, it prints a highly detailed diagnostic string to the Experts log.

//+------------------------------------------------------------------+
//| Diagnostic Execution Logging |
//+------------------------------------------------------------------+
void LogTradeExecution(MqlTradeRequest &req, MqlTradeResult &res, string context)
{
// Get real-time spread during the exact millisecond of the trade
int current_spread = (int)((SymbolInfoDouble(_Symbol, SYMBOL_ASK) - SymbolInfoDouble(_Symbol, SYMBOL_BID)) / _Point);

if(res.retcode == TRADE_RETCODE_DONE)
{
PrintFormat(">> SUCCESS [%s]: Ticket %d | Price: %.5f | Spread at Execution: %d points | Slippage Allowed: %d",
context, res.deal, res.price, current_spread, req.deviation);
}
else
{
PrintFormat(">> FAILED [%s]: Retcode %d | Attempted Price: %.5f | Spread: %d points",
context, res.retcode, req.price, current_spread);
}
}
By passing your trade request and result into a function like this, you create a perfect audit trail. If you see a string of FAILED logs with a spread of 45 points, you know your spread filter needs adjusting. If you see successful trades but you are still losing money, you can look at the execution price versus your requested price to calculate your average broker slippage.

The Silent Killer: Network Latency and VPS Infrastructure
You can write the most beautifully optimized MQL5 code in the world. Your OnTick() function can process market data in microseconds. But if you are running your MetaTrader 5 terminal on a home laptop over a Wi-Fi connection, you are bringing a knife to a gunfight.

In the scalping arena, ping is everything. When your EA detects a micro-trend and fires an OrderSend(), that data packet has to travel from your computer to the broker's trade server. If your ping is 80 milliseconds, an institutional algorithm running on a co-located server with a 1-millisecond ping has already bought the asset, pushed the price up, and is ready to sell it back to you at a worse price. This latency is the primary cause of the severe slippage that ruins scalping strategies.

To run a high-frequency system like the BrightDeal Gold Scalper Pro, a virtual private server (VPS) is not an optional luxury; it is a mandatory requirement. You need a VPS that is physically located in the same data center (or as close as possible) to your broker's main server. Your absolute goal should be an execution latency of under 5 milliseconds. The MetaTrader 5 platform even offers built-in virtual hosting that cross-connects directly to your broker's access point, which I highly recommend utilizing when moving your bot from a demo environment to live capital.

Broker Selection: ECN vs. Standard Accounts
Another trap many algorithmic developers fall into is optimizing their scalper for the wrong account type. Most retail brokers offer two main tiers: "standard" accounts with zero commissions but wider, artificially marked-up spreads, and "ECN" (or raw spread) accounts with zero or near-zero spreads but a fixed commission per lot traded.

For a scalper, the ECN account is the only mathematical choice. If you are targeting a 4-pip take profit, a 1.5-pip spread on a standard account represents an immediate, insurmountable hurdle on every single trade. You want your trade to open at exactly the raw interbank market price, even if you have to pay a $3 commission to get it.

Commissions are a fixed, predictable cost that you can programmatically calculate into your EA's risk management. Spread widening, on the other hand, is highly variable, unpredictable, and deadly to micro-margins. Always ensure you are building, backtesting, and running your MQL5 scalper exclusively on raw pricing feeds.

Conclusion
Scalping is an incredibly unforgiving environment. If you try to force a traditional, bar-based Expert Advisor into a high-frequency scalping role, you will be destroyed by latency, spread widening, and poor execution logic.

However, as we have seen in this article, MQL5 provides us with all the raw tools necessary to compete. By transitioning our mindset—and our code—away from OnCalculate() and directly into the OnTick() handler, we gain millisecond-level control over our trading environment.

We started at Point A: facing the reality that standard EAs fail at scalping because they are blind to micro-market conditions. We have now reached Point B: a complete architectural blueprint for a resilient scalper. By utilizing the MqlTick structure, enforcing strict spread filters, hardcoding maximum slippage parameters, calculating dynamic lot sizes, and backtesting strictly on "Every Tick" data, you transform a high-risk gamble into a systematic, automated machine.

I highly encourage you to take the code blocks provided in this article, combine them in your MetaEditor, and start experimenting on a demo account. The transition from a manual scalper to an algorithmic developer is challenging, but the freedom and precision it offers are entirely worth the effort.
Tariq Shahzad
Tariq Shahzad
Consistent XAUUSD Growth with ZERO Martingale 📈

Sharing the latest backtest results for Golden Pulse Scalper Pro!

As you can see from the equity curve, this isn't a risky grid system. It’s a fully automated M15 breakout strategy for Gold that relies on single-entry precision and strict risk management.

Key Highlights:

100% Safe: Zero Grid & Zero Martingale. Every trade has a hard Stop Loss.

Fast Protection: Smart Break-Even & Trailing Stops secure your capital instantly when momentum shifts.

Smart Scaling: Pyramiding only adds trades when previous positions are locked in profit.

Plug & Play: Auto-GMT, built-in News Filter, and Friday Kill-Switch. No set files needed!

Optimized for low-spread ECN brokers. Let me know what you think of the curve! 👇
compartir producto
Golden Pulse Scalper Pro ​Golden Pulse Scalper Pro is a fully automated breakout trading system specifically engineered for the high-volatility environment of Gold (XAUUSD). ​Unlike grid or martingale systems that expose accounts to heavy drawdowns, this Expert Advisor utilizes a precise, single-entry approach. It relies on a fusion of RSI Momentum, ATR Volatility, and EMA Trend Filtering to pinpoint high-probability breakout candles. Once in a trade, it acts aggressively to secure capital using

Golden Pulse Scalper V4.0 Golden Pulse Scalper V4.0 es un sistema de negociación de ruptura totalmente automatizado diseñado específicamente para el entorno de alta volatilidad del Oro (XAUUSD). A diferencia de los sistemas de rejilla o martingala que exponen las cuentas a fuertes detracciones, este Asesor Experto utiliza un enfoque preciso, de una sola entrada. Se basa en una fusión de RSI Momentum, ATR Volatility y EMA Trend Filtering para identificar velas de ruptura de alta probabilidad. Una

Tariq Shahzad Ha publicado MetaTrader 5 señal
"Golden Pulse Scalper V4" no está disponible
Tariq Shahzad Ha publicado el producto

Golden Pulse Scalper V4.0 Golden Pulse Scalper V4.0 es un sistema de negociación de ruptura totalmente automatizado diseñado específicamente para el entorno de alta volatilidad del Oro (XAUUSD). A diferencia de los sistemas de rejilla o martingala que exponen las cuentas a fuertes detracciones, este Asesor Experto utiliza un enfoque preciso, de una sola entrada. Se basa en una fusión de RSI Momentum, ATR Volatility y EMA Trend Filtering para identificar velas de ruptura de alta probabilidad. Una

Tariq Shahzad Ha publicado el producto

BrightDeal Golden Empire X Un sistema de scalping de oro (XAUUSD) diseñado con precisión y centrado en una estricta preservación del capital, una gestión inteligente del riesgo y un rendimiento de baja caída. Bienvenido al Golden Empire. Este Asesor Experto está construido específicamente para conquistar la naturaleza volátil del Oro. En lugar de sobre-negociar, opera como un "Francotirador Quirúrgico", esperando pacientemente la alineación perfecta de Tendencia, Volatilidad y Momento antes de

Tariq Shahzad Ha publicado el producto

BrightDeal Ruptura de la volatilidad BrightDeal Volatility Breakout es un Asesor Experto avanzado, estrictamente basado en reglas, diseñado para la reventa de momentum. En lugar de basarse en modelos de riesgo peligrosos como la cuadrícula o la martingala, este algoritmo se centra puramente en la acción del precio, la volatilidad local y la alineación de la tendencia institucional para asegurar entradas únicas de alta probabilidad. El sistema funciona permitiendo estrictamente sólo una posición

Tariq Shahzad Ha publicado el producto
Comentarios: 6
50.00 USD

BrightDeal Gold Scalper Pro V6.0 BrightDeal Gold Scalper Pro V6.0 es un Asesor Experto diseñado específicamente para operar con XAUUSD. En lugar de basarse en indicadores estándar, utiliza un motor de acción del precio combinado con el seguimiento de la volatilidad en vivo para identificar las rupturas del mercado. El sistema está diseñado con estrictos parámetros de riesgo. No utiliza técnicas de cobertura, cuadrícula o martingala. Cada posición está protegida por un Stop Loss estándar y

Tariq Shahzad Ha publicado el producto

Gold Pulse Pro: Scalper Institucional de Momento M1 Gold Pulse Pro es un motor de scalping de alta frecuencia y precisión diseñado específicamente para el marco temporal M1 del XAUUSD (Oro). A diferencia de los algoritmos genéricos, Gold Pulse Pro utiliza filtros de impulso de grado institucional para entrar en el mercado sólo cuando se confirma una volatilidad de alta probabilidad. Diseñado para los operadores que dan prioridad a la estabilidad y el crecimiento constante de la equidad, este

Tariq Shahzad Ha publicado el producto

Cazador de Oro Pro Gold Hunter Pro es un Asesor Experto especializado en XAUUSD diseñado para el marco temporal M15. A diferencia de los peligrosos robots de cuadrícula, este algoritmo utiliza un Stop Loss fijo en cada operación y un sistema inteligente de cierre parcial para asegurar los beneficios antes de tiempo. Está optimizado específicamente para ayudar en el crecimiento constante de las cuentas con saldos más pequeños. Características principales Alto factor de ganancia: Validado con

Tariq Shahzad Ha publicado el producto

Gold Guardian Scalper MT5 Gold Guardian es un sistema de scalping de alta precisión diseñado específicamente para el mercado del Oro (XAUUSD). A diferencia de los algoritmos comunes de alto riesgo, este Asesor Experto está construido sobre una base de seguridad y preservación del capital. Utiliza un sofisticado algoritmo de reversión a la media para capturar reversiones de precios de alta probabilidad dentro de una tendencia confirmada. Rendimiento de Backtest Verificado El sistema ha sido

Tariq Shahzad Ha publicado el producto

Gold Leader Pro Gold Leader Pro es un scalper de volatilidad diseñado para la composición inteligente y la protección del capital. A diferencia de los sistemas de rejilla de riesgo, este Asesor Experto utiliza un Stop Loss duro en cada operación y un mecanismo único de Profit Shield para gestionar el riesgo. Está diseñado para los operadores que quieren construir sus cuentas de manera constante sin exponer su capital a reducciones peligrosas. Rendimiento verificado La estrategia se ha probado

Tariq Shahzad
Tariq Shahzad
🔥 Ultra-Consistent Gold Scalper EA 🔥

Discover a powerful scalping Expert Advisor designed for precision and consistency on XAUUSD (Gold). With a 98.33% win rate, 7.65 profit factor, and over 990 USD net profit in a month — this EA blends smart risk management with aggressive profit-taking.

✅ Key Highlights:

98.33% trade win ratio

Profit Factor: 7.65

Max Drawdown: 6.97% only

High Sharpe Ratio: 10.85 (very low-risk per trade)

Average Holding Time: ~1.3 hours

Low Risk-to-Reward with Fast Scalping

100% Modeling Quality Backtest

Perfect for traders seeking steady, low-risk profits with a reliable Gold scalping strategy.

🚀 Plug it in, set your lot size, and let it trade with precision.
Tariq Shahzad
Se ha registrado en MQL5.community