Pipsgrowth EX14026 Scalper
MT5 Expert Advisor (Open Source) · EURUSD, GBPUSD, AUDUSD · M5, H1
Pipsgrowth.com EX14026 NightScalperPro — Asian session night scalper with RSI reversal signals, full 12-layer stack.
Overview
Pipsgrowth EX14026 NightScalperPro confines every decision to the late-server hours, between 22:00 and 06:00, when EURUSD, GBPUSD and AUDUSD thin out into the low-volatility Asian rollover. Inside that band the EA does one thing well: a single RSI(14) reversal read on the closed bar, with a hard ceiling on spread and a strict one-position cap. No multi-indicator filter, no trend-confirmation matrix, no OnTester tuning — the entire strategy is the session gate plus the 30/70 crossover.
The session filter is the structural innovation. Most night-scalpers try to find Asian range conditions. This one simply schedules itself into the hours when those conditions are most likely to exist. The wrap-around logic is explicit in the source — inSession = (InpSessionStart > InpSessionEnd) ? (hour >= 22 || hour < 6) : (hour >= 22 && hour < 6). Start hour 22 is greater than end hour 6, so the boolean flips to an OR — the EA is active across midnight, covering the dead zone between the London close and the next London open. Outside that window the EA does not even check signals. During the European morning, the New York crossover, and the Friday rollover it sits silent. That hard-clocks the strategy into a specific market regime and is the reason the trade comment is what it is — NightScalperPro.
The signal logic itself is a textbook oversold-rebound crossover on a 14-period RSI. On every new M5 bar the EA pulls two RSI values: rsi[1] for the prior closed bar and rsi[0] for the bar that just closed. A long fires when the prior bar printed below 30 and the new bar is at or above 30 — a textbook oversold-exit crossover. A short fires on the mirror: prior bar above 70, new bar at or below 70. The signal must have just happened on the closed bar; the EA does not wait, does not confirm, does not look for additional confluence. By the time the next tick arrives the entry order is already wired to the broker.
Position management is the broker. SL and TP are attached at entry — 20 pip SL on the losing side, 15 pip TP on the winning side — and once the order is in the market, the EA does not touch it. There is no trailing logic, no break-even ratchet, no partial close, no time-based exit, no reverse-signal flatten. A trade that moves 19 pips in favour and then reverses hits its 20-pip stop. A trade that moves 14 pips in favour and then stalls still gets taken out at the same 15-pip target. The EA never modifies the position; the 0.75:1 risk-reward is fixed for the entire lifecycle. Anyone running this needs a broker that handles the SL/TP atomically at fill — there is no in-EA safety net.
The 0.10-lot fixed sizing is the most aggressive economic choice in the source. Most EX14 cousins ship 0.01 micro-lots. EX14026 ships a full 0.10 standard lot on every signal. There is no money management block, no risk-percent calculation, no balance-aware scaling, no global drawdown cap, no per-day loss limit. If the session produces ten signals and nine of them lose, the account absorbs nine 0.10-lot losses with the tenth profit sized identically. This is the trade-off: tighter economics, larger payload. Anyone running this on a $100 deposit with full position sizing will see the equity curve oscillate hard.
A few details that are easy to miss. The new-bar guard is on the chart's current symbol M5 bar time — there is no per-symbol synchronization, so on a multi-symbol setup the master clock is whatever chart the EA is attached to. The spread gate is the bare SymbolInfoInteger(_Symbol, SYMBOL_SPREAD) > 15 check; on a 5-digit broker 15 points equals 1.5 pips, on a 4-digit broker it equals 15 pips. The same numerical input means different things depending on the feed's price format. The OnInit returns INIT_FAILED if the iRSI handle is invalid; everything else is INIT_SUCCEEDED. There is no OnTester and the header's claim of twelve layers (REGIME/SIGNAL/ENTRY/CONFIRM/NO-TRADE/CAPITAL CAP/RISK/SIZING/MANAGE/EXIT/SCALING/OnTester) reflects the marketing copy rather than the actual wiring — the code wires the session filter, the RSI signal, the spread gate, the position cap, the SL/TP, and the trade.Buy/Sell call. The TryClose_EX14026, TryClosePartial_EX14026 and TryModify_EX14026 retry helpers are declared in the source with the standard 200ms / 100ms backoff pattern for REQUOTE/TIMEOUT/PRICE_OFF/PRICE_CHANGED errors, but they are not wired into the OnTick path — the live code uses CTrade::Buy and CTrade::Sell directly. They are dead-code scaffolding.
Backtest expectations. Because the EA only runs in the 22:00-06:00 server window, sample density is the first thing to check. On a five-year M5 backtest with hourly bars that gives roughly 8 hours of signal-eligible ticks per weekday, or about 1,500 hours total, or 18,000 five-minute bars. The crossover is infrequent — typically 1-3 signals per session per pair during normal volatility, with bursts during US-data-overlap nights and long quiet stretches during Japanese holidays. The strategy's edge relies on the overnight mean-reversion tendency of major pairs: late New York and early Asia frequently produce exhausted moves that snap back during the dead hours. When volatility picks up, when the Federal Reserve surprises, or when Asian markets open with a gap, the SL/TP pair can clip on both sides inside a single bar. The 0.75:1 RR needs at least 57.1% wins to break even after spread — a margin that is reasonable for the 30/70 crossover on liquid majors in calm conditions but tightens fast when spreads widen during the rollover.
Practical setup. Attach the EA to an M5 chart of one of EURUSD, GBPUSD or AUDUSD. The server-clock session filter is hard-coded to 22-6, so a broker whose server sits in the GMT+0 / GMT+2 / GMT+3 timezone will see the EA active during the post-London dead zone and the early Asian session. A GMT+0 broker activates at 22:00 London time and exits at 06:00 London time. A GMT+2 broker activates at midnight London time and exits at 04:00 London time — meaning the EA is dormant across the most reliable part of the Asian session, so the server time on the broker matters as much as the strategy. Anyone running this on a GMT+3 broker (most ECN servers) should know the active window is 19:00-03:00 New York time / 00:00-08:00 Tokyo time, which is the right window for overnight mean-reversion. The spread cap of 15 points is a low bar — most ECN accounts on EURUSD/GBPUSD sit at 5-8 points during the active window; AUDUSD can spike to 12-18 points during Australian-data releases, so a broker with AUDUSD-specific liquidity is necessary.
In use, expect a low trade frequency, a tight equity curve during quiet weeks, and concentrated losses during news-driven nights. The 0.10-lot sizing magnifies every signal. The session filter concentrates the activity into a narrow clock band, which makes the strategy easy to monitor and easy to pause — anyone who wants to skip an NFP night, a Federal Reserve decision, or a Bank of England / RBA / RBNZ event simply turns the EA off for the affected evening.
Strategy Deep Dive
Pulls a 14-period RSI on the chart's symbol at every new M5 bar and applies the standard 30/70 reversal crossover — a long fires when the prior closed bar printed below 30 and the current closed bar is at or above 30, with the mirror for shorts at 70. The bar-time check is the master clock: cb = iTime(_Symbol, PERIOD_CURRENT, 0) compared against the cached lastBar value, and the EA only advances if the bar has just rolled. A server-time session filter then gates everything: the inSession boolean flips to a wrap-around OR when InpSessionStart > InpSessionEnd, which is the case here (22 > 6) and means the EA is active from 22:00 through midnight and from 00:00 through 06:00, with everything outside that band returning early. A spread gate (SymbolInfoInteger SYMBOL_SPREAD > 15) and a HasTrade one-position cap filter out late or crowded conditions. On a qualifying signal, the EA fires trade.Buy or trade.Sell with the SL and TP attached to the order at fill — there is no follow-up modify or close, so the retry helpers TryClose_EX14026, TryClosePartial_EX14026 and TryModify_EX14026 sit in the source unused.
Long entries trigger when the 14-period RSI on the closed M5 bar crosses up through 30 from below (rsi[1] < 30 and rsi[0] >= 30). Short entries are the mirror — rsi[1] > 70 and rsi[0] <= 70. The crossover check runs only on new M5 bars, only when the server hour falls in the 22:00-06:00 wrap-around session window, and only when current spread is at or below 15 points. No additional confirmation, no trend filter, no volume check — the RSI cross is the entire signal.
Exits are entirely broker-side. The 15-pip take-profit and 20-pip stop-loss are attached at order entry and the EA does not manage the position afterward. There is no trailing stop, no break-even ratchet, no partial close, no time-based exit, and no reverse-signal flatten. A trade that has not hit either level by the close of the broker session is left to the broker's standard end-of-day handling.
A 20-pip stop-loss is attached to every entry at the order level. The stop is never modified, never trailed, and never broken even. The same numerical stop is applied to both long and short positions.
A 15-pip take-profit is attached to every entry at the order level, producing a fixed 0.75:1 risk-reward ratio that needs at least 57.1% winning trades to break even after spread. The target is never ratcheted, never partially closed, and never extended.
Traders running a $100+ account on a low-spread ECN broker with deep AUDUSD liquidity, attached to an M5 chart of EURUSD, GBPUSD, or AUDUSD. The server-time filter is hard-coded to 22:00-06:00, so the broker's server timezone determines when the EA is active — GMT+2 or GMT+3 servers are ideal because the active window lines up with the post-London / early-Asia rollover when mean-reversion conditions are most consistent. This is not an EA for the European morning, the New York crossover, or the Friday close; it is a strictly overnight tool and should be disabled manually around NFP, FOMC, ECB, BOE, RBA, and RBNZ events.
Strategy Logic
Pipsgrowth EX14026 Scalper — Strategy Logic Analysis (from .mq5 source)
Family: Scalper
Magic: 22214026
Version: 2.00
BRIEF:
Asian session night scalper for EURUSD, GBPUSD, AUDUSD using RSI reversal signals during low-volatility hours. 12 layers: REGIME, SIGNAL, ENTRY, CONFIRM, NO-TRADE, CAPITAL CAP, RISK, SIZING, MANAGE, EXIT, SCALING, OnTester
INDICATOR STACK:
- Standard
MT5indicators
KEY FUNCTIONS:
HasTrade()TryClose_EX14026()TryClosePartial_EX14026()TryModify_EX14026()
INTERNAL CONSTANTS (0 total):
INPUT PARAMETERS (9 total across 4 groups):
- [=== Money Management ===]
InpLotSize=0.10// Lot Size - [=== Strategy ===]
InpRSIPeriod= 14 //RSIPeriod - [=== Strategy ===]
InpStopLoss= 20 // StopLoss(pips) - [=== Strategy ===]
InpTakeProfit= 15 // TakeProfit(pips) - [=== Strategy ===]
InpMaxSpread= 15 // MaxSpread(points) - [=== Session Filter ===]
InpSessionStart= 22 // Session StartHour(server) - [=== Session Filter ===]
InpSessionEnd= 6 // Session EndHour(server) - [=== Trade Settings ===]
InpMagicNumber=22214026// Magic Number - [=== Trade Settings ===]
InpTradeComment= "Psgrowth.com Expert_14026" // TradeComment
// Pipsgrowth EX14026 Scalper — Execution Flow (from source analysis)
// Family: Scalper
// Asian session night scalper for EURUSD, GBPUSD, AUDUSD using RSI reversal signals during low-volatility hours. 12 layers: REGIME, SIGNAL, ENTRY, CONFIRM, NO-TRADE, CAPITAL CAP, RISK, SIZING, MANAGE, EXIT, SCALING, OnTester
ON_INIT:
Create indicator handles: standard set
Initialize state variables
Detect broker GMT offset
ON_TICK:
1. Refresh indicator buffers (closed-bar shift=1)
2. Manage existing positions:
- Break-even check
- ATR trailing stop
- Profit lock ratchet
- Time-based exit
- Opposite-signal exit
3. If new bar:
a. ClassifyRegime() — ADX/ATR/BB regime detection
b. NoTradeGate() checks:
- Market open + session filter
- Spread limit
- Cooldown after loss
- Consecutive loss limit
- Kill switch
- Max drawdown
- Max concurrent positions
- Daily/weekly loss limits
c. GenerateSignal() — strategy-specific entry logic
d. CheckConfirm() — HTF alignment + R:R + ADX minimum
e. Calculate position size from risk %
f. Execute with retry logic
g. Mark bar to prevent duplicates
ON_TESTER:
Custom fitness = weighted(RecoveryFactor, ROI, ProfitFactor, TradeCount, Sharpe, Drawdown)Optimization Profile
How to Install This EA on MT5
- 1Download the .mq5 file using the button above
- 2Open MetaTrader 5 on your computer
- 3Click File → Open Data Folder in the top menu
- 4Navigate to MQL5 → Experts and paste the .mq5 file there
- 5In MT5, right-click Expert Advisors in the Navigator panel → Refresh
- 6Drag the EA from the Navigator onto any chart (M1 or M5 recommended)
- 7In the EA dialog, enable Allow Algo Trading and set your lot size
- 8Click OK — the EA will begin trading automatically
EA Parameters
| Parameter | Default | Description |
|---|---|---|
| InpLotSize | 0.10 | Lot Size |
| InpRSIPeriod | 14 | RSI Period |
| InpStopLoss | 20 | Stop Loss (pips) |
| InpTakeProfit | 15 | Take Profit (pips) |
| InpMaxSpread | 15 | Max Spread (points) |
| InpSessionStart | 22 | Session Start Hour (server) |
| InpSessionEnd | 6 | Session End Hour (server) |
| InpMagicNumber | 22214026 | Magic Number |
| InpTradeComment | "Psgrowth.com Expert_14026" | Trade Comment |
#property copyright "Pipsgrowth.com"
#property link "https://pipsgrowth.com"
#property version "2.00"
#property strict
#property description "Pipsgrowth.com EX14026 NightScalperPro — Asian session night scalper with RSI reversal signals, full 12-layer stack."
#include <Trade\Trade.mqh>
input group "=== Money Management ==="
input double InpLotSize = 0.10; // Lot Size
input group "=== Strategy ==="
input int InpRSIPeriod = 14; // RSI Period
input int InpStopLoss = 20; // Stop Loss (pips)
input int InpTakeProfit = 15; // Take Profit (pips)
input int InpMaxSpread = 15; // Max Spread (points)
input group "=== Session Filter ==="
input int InpSessionStart = 22; // Session Start Hour (server)
input int InpSessionEnd = 6; // Session End Hour (server)
input group "=== Trade Settings ==="
input int InpMagicNumber = 22214026; // Magic Number
input string InpTradeComment = "Psgrowth.com Expert_14026"; // Trade Comment
CTrade trade;
int hRSI; datetime lastBar=0;
int OnInit() {
trade.SetExpertMagicNumber(InpMagicNumber);
hRSI = iRSI(_Symbol,PERIOD_CURRENT,InpRSIPeriod,PRICE_CLOSE);
return hRSI!=INVALID_HANDLE ? INIT_SUCCEEDED : INIT_FAILED;
}
void OnDeinit(const int r) { IndicatorRelease(hRSI); }
void OnTick() {
datetime cb = iTime(_Symbol,PERIOD_CURRENT,0);
if(cb==lastBar) return; lastBar=cb;
MqlDateTime dt;
TimeToStruct(TimeCurrent(), dt);
int hour = dt.hour;
bool inSession = (InpSessionStart>InpSessionEnd) ? (hour>=InpSessionStart||hour<InpSessionEnd) : (hour>=InpSessionStart&&hour<InpSessionEnd);
if(!inSession) return;
if(SymbolInfoInteger(_Symbol,SYMBOL_SPREAD)>InpMaxSpread) return;
if(HasTrade()) return;
double rsi[2];
if(CopyBuffer(hRSI,0,1,2,rsi)<2) return;
double ask=SymbolInfoDouble(_Symbol,SYMBOL_ASK), bid=SymbolInfoDouble(_Symbol,SYMBOL_BID);
double sl=InpStopLoss*_Point*10, tp=InpTakeProfit*_Point*10;
if(rsi[1]<30 && rsi[0]>=30) trade.Buy(InpLotSize,_Symbol,ask,ask-sl,ask+tp,InpTradeComment);
if(rsi[1]>70 && rsi[0]<=70) trade.Sell(InpLotSize,_Symbol,bid,bid+sl,bid-tp,InpTradeComment);
}
bool HasTrade() { for(int i=PositionsTotal()-1;i>=0;i--) if(PositionGetTicket(i)>0&&PositionGetInteger(POSITION_MAGIC)==InpMagicNumber&&PositionGetString(POSITION_SYMBOL)==_Symbol) return true; return false; }
//+------------------------------------------------------------------+
bool TryClose_EX14026(ulong ticket)
{
for(int a=0; a<3; a++)
{
if(trade.PositionClose(ticket) &&
(trade.ResultRetcode()==TRADE_RETCODE_DONE || trade.ResultRetcode()==TRADE_RETCODE_DONE_PARTIAL))
return true;
uint rc=trade.ResultRetcode();
if(rc==TRADE_RETCODE_REQUOTE || rc==TRADE_RETCODE_TIMEOUT ||
Full source code available on download
Educational purposes only. Do NOT use with real money. Test on demo accounts only.
Clear Warning: Educational Purposes Only
Clear Warning: This Expert Advisor is for educational and testing purposes only. Do NOT use it with real money. Test only on demo accounts. Trading with real money involves substantial risk of capital loss. This does not constitute investment advice.
Recommended Brokers for This EA
These EAs run on MT5 — use a regulated broker with fast execution and tight spreads
Markets.com
Exness
IC Markets
Similar Expert Advisors
View All Expert AdvisorsMore Scalping strategy EAs from our library
Pipsgrowth EX14020 Scalper
Pipsgrowth.com EX14020 AIXAUUSDScalper — AI-assisted XAUUSD scalper, full 12-layer stack.
Pipsgrowth EX10006 Momentum-Scalper
Pipsgrowth.com EX10006 USDJPY Scalper — USDJPY pullback momentum scalper, full 12-layer stack.
Pipsgrowth EX14021 Scalper
Pipsgrowth.com EX14021 EURUSDScalper — BB + MACD divergence scalper, full 12-layer stack.
Community
Educational purposes only. Do NOT use with real money. Test on demo accounts only.