Precision Multi-Indicator Scalping System with Advanced Risk Management
SniperEA Pro is a sophisticated multi-indicator scalping system designed for professional traders seeking precision entries with robust risk controls. The EA combines five confirmation mechanisms—EMA trend filters, RSI momentum, MACD crossover signals, Stochastic oscillators, and price action patterns—to identify high-probability scalping opportunities during peak liquidity sessions.
The system implements a flexible confirmation protocol (2/3 or strict 3/3) to balance signal frequency with quality, while ATR-based dynamic stop-loss and take-profit calculations adapt to current market volatility conditions. Built-in portfolio risk management includes daily profit/loss limits, maximum position caps, and correlation-aware position sizing.
Designed for the MetaTrader 5 platform, SniperEA Pro supports simultaneous multi-symbol monitoring with individual session filters for London and New York trading hours, ensuring trades are only executed during optimal market conditions with acceptable spread levels.
EMA, RSI, MACD, Stochastic, and Price Action combine for surgical precision
Auto-detects optimal London and New York trading windows
ATR-based SL/TP, break-even, trailing stops, and daily loss limits
Multi-symbol monitoring with max position caps and correlation controls
The EA employs a multi-layered signal detection system that requires alignment across trend, momentum, and price action dimensions. Signals are generated when EMA trend direction matches RSI momentum state and price action patterns confirm reversal or continuation.
Configurable 2/3 or strict 3/3 confirmation rules, session time filters (London 7-11, NY 13-17), spread limits, daily PL guards, and one-order-per-bar protection prevent overtrading and false signals.
Dynamic take-profit levels set at 2x ATR(14) multiplier from entry price, automatically adjusting to current market volatility to capture optimal profit while avoiding premature exits.
Stop-loss calculated at 1.2x ATR(14) with minimum 20 points floor. ATR-based exits ensure stops are statistically significant relative to recent price action, avoiding noise-triggered exits.
Dual-mode trailing: ATR-based (1.0x ATR multiplier) activates after 60 points profit, or fixed-step trailing with 20-point increments. Trail starts only after position reaches profitable territory.
Break-even activates at 50 points profit with 5-point offset. Partial close feature allows taking 50% profits at predefined levels while trailing the remainder.
Risk-per-trade calculation uses account balance percentage (default 1%) divided by stop-loss distance in points, normalized to broker's minimum lot step and capped at MaxLot (5.0 lots).
Default 1% risk per trade ensures statistical survival across losing streaks. Formula: LotSize = (Balance × Risk%) ÷ (SL_Points × Pip_Value_Per_Lot)
Daily profit target (5%) and loss limit (-1.5%) automatically pause trading when reached. Maximum 5 portfolio positions and 1 position per symbol prevent overexposure. Correlation checker reduces size for highly correlated positions.
Trend analysis on H1 timeframe (EMA crossovers) while entry signals evaluated on M5 timeframe (RSI, MACD, Stochastic, Price Action) for higher timeframe confirmation.
Visual representation of the trading system's decision-making process
This flowchart shows the entire decision-making process from EA initialization to trade execution and management, including all filters, checks, and position tracking mechanisms.
Detailed breakdown of how entry signals are identified and validated using the 2/3 or 3/3 confirmation rule across five complementary indicators.
How open positions are monitored for stop-loss hits, take-profit targets, trailing adjustments, break-even activation, partial closes, and maximum trade duration.
Position sizing calculation workflow incorporating account balance, risk percentage, stop-loss distance, broker constraints, and portfolio correlation checks.
High-level overview of EA components, data flow between modules, and interaction with MetaTrader 5 platform services.
Combines EMA trend, RSI momentum, MACD crossover, Stochastic oscillator, and price action patterns. Configurable 2/3 or strict 3/3 confirmation rules adapt to market volatility and trader preference.
Intelligent session filtering ensures trades only execute during peak liquidity periods. Separate start/end hours for London and New York sessions with overnight session support.
Volatility-adaptive stop-loss and take-profit calculations automatically adjust to current market conditions. ATR(14) multiplier ensures statistically significant exit levels.
Institutional-grade risk management with daily profit/loss limits, portfolio-wide drawdown guards, and correlation-aware position sizing to protect capital across market cycles.
Dynamic lot calculation based on account risk percentage and stop-loss distance. Automatically normalizes to broker lot steps, minimum/maximum caps, and margin requirements.
Monitor and trade multiple symbols simultaneously from a single EA instance. Comma-separated symbol list with individual indicator handles and signal tracking per instrument.
Continuous position monitoring with break-even, trailing stop, partial close, and maximum trade duration features. Manages exits between ticks via OnTimer event.
Detailed trade logging to CSV file for performance analysis and auditing. Includes timestamp, symbol, direction, lots, SL/TP, ticket, and profit data for external processing.
Over 40 input parameters provide granular control over every aspect of the trading system. Organized parameter groups for trading, risk, indicators, and advanced settings.
Designed for universal compatibility with MT5 brokers supporting market execution, ECN/STP accounts, and standard symbol naming. Auto-detects tick values and contract sizes.
Lightweight code execution with efficient handle management, minimal Sleep calls, and optimized buffer copying. Timer-based management reduces CPU load while maintaining responsive trade management.
Complete list of all configurable settings with descriptions and recommended ranges
| Parameter Name | Type | Default | Range | Description | Category |
|---|---|---|---|---|---|
EnableLogging |
bool | true | true/false | Enable detailed info logging to Experts tab for debugging and monitoring | Trading |
EnableDebugLog |
bool | false | true/false | Enable debug-level logging for detailed diagnostics (verbose mode) | Trading |
Use2of3Confirmations |
bool | true | true/false | true = 2/3 confirmation rule, false = strict 3/3 rule for entries | Trading |
UsePercentLimits |
bool | true | true/false | Use percentage-based daily limits (true) or fixed currency amounts (false) | Trading |
DailyProfitTarget |
double | 50.0 | 0.0 - 1000.0 | Daily profit target in account currency units (if UsePercentLimits=false) | Risk |
DailyLossLimit |
double | -20.0 | -1000.0 - 0.0 | Daily loss limit in account currency units (negative value, if UsePercentLimits=false) | Risk |
DailyProfitPercent |
double | 5.0 | 0.0 - 50.0 | Daily profit target as percentage of account balance (if UsePercentLimits=true) | Risk |
DailyLossPercent |
double | -1.5 | -50.0 - | ||
LondonStartHour |
int | 7 | 0 - 23 | London session start hour (server time, 24h format) | Trading |
LondonEndHour |
int | 11 | 0 - 23 | London session end hour (server time, 24h format) | Trading |
NYStartHour |
int | 13 | 0 - 23 | New York session start hour (server time, 24h format) | Trading |
NYEndHour |
int | 17 | 0 - 23 | New York session end hour (server time, 24h format) | Trading |
SymbolsList |
string | "XAUUSD,EURUSD,GBPJPY,GBPUSD" | Comma-separated symbols | Symbols to monitor (comma-separated, no spaces). Each symbol must be available on the broker. | Advanced |
TF_TREND |
ENUM_TIMEFRAMES | PERIOD_H1 | PERIOD_M1 to PERIOD_D1 | Timeframe for trend analysis (EMA crossover). H1 recommended for reliable trend detection. | Indicators |
TF_ENTRY |
ENUM_TIMEFRAMES | PERIOD_M5 | PERIOD_M1 to PERIOD_H1 | Timeframe for entry signals (RSI, MACD, Stoch, PA). M5 recommended for scalping. | Indicators |
EMAFastPeriod |
int | 50 | 5 - 200 | Fast EMA period for trend analysis (EMA type: MODE_EMA) | Indicators |
EMASlowPeriod |
int | 200 | 20 - 500 | Slow EMA period for trend analysis. Fast > Slow for proper crossover detection. | Indicators |
RSIPeriod |
int | 14 | 5 - 50 | RSI period for momentum confirmation on entry timeframe | Indicators |
RSITrendFilterLevel |
int | 50 | 30 - 70 | RSI level for trend filter. RSI > level = bullish, RSI < (100 - level) = bearish | Indicators |
MACDFast |
int | 12 | 5 - 50 | MACD fast EMA period (standard MACD parameters) | Indicators |
MACDSlow |
int | 26 | 10 - 100 | MACD slow EMA period (slow > fast) | Indicators |
MACDSignal |
int | 9 | 3 - 30 | MACD signal line period (SMA of MACD line) | Indicators |
KPeriod |
int | 14 | 5 - 50 | Stochastic %K period (fast line) | Indicators |
DPeriod |
int | 3 | 1 - 10 | Stochastic %D period (slow line, SMA of %K) | Indicators |
Slowing |
int | 3 | 1 - 10 | Stochastic slowing (SMA applied to %K before %D) | Indicators |
StochMA |
ENUM_MA_METHOD | MODE_SMA | MODE_SMA, MODE_EMA, etc. | MA method for stochastic %D calculation | Indicators |
StochOverbought |
double | 80.0 | 60.0 - 95.0 | Stochastic overbought level (sell signals filtered above this) | Indicators |
StochOversold |
double | 20.0 | 5.0 - 40.0 | Stochastic oversold level (buy signals filtered below this) | Indicators |
ATRPeriod |
int | 14 | 5 - 50 | ATR period for volatility-based SL/TP calculations | Indicators |
ATRMultiplier |
double | 1.2 | 0.5 - 5.0 | Multiplier for ATR-based stop-loss calculation (SL = ATR × Multiplier) | Risk |
MinATRPoints |
double | 20.0 | 10.0 - 100.0 | Minimum ATR value in points (floor) to prevent excessively tight stops in low volatility | Risk |
UseEngulfing |
bool | true | true/false | Enable engulfing bar pattern detection for entry confirmation | Advanced |
UsePinBar |
bool | true | true/false | Enable pin bar pattern detection for entry confirmation | Advanced |
PA_LookbackBars |
int | 3 | 1 - 10 | Number of bars to look back for price action pattern detection | Advanced |
RiskPercent |
double | 1.0 | 0.1 - 10.0 | Risk percentage of account balance per trade (if FixedLot = 0) | Risk |
FixedLot |
double | 0.0 | 0.0 - 100.0 | Fixed lot size (if > 0, overrides risk-based position sizing) | Risk |
MinLot |
double | 0.01 | 0.01 - 1.0 | Minimum allowed lot size (will use broker's minimum if larger) | Risk |
MaxLot |
double | 5.0 | 0.1 - 100.0 | Maximum allowed lot size (cap to prevent excessive position sizes) | Risk |
MaxTradesPerSymbol |
int | 1 | 1 - 10 | Maximum simultaneous trades per symbol (prevents overexposure on one pair) | Risk |
MaxPortfolioPositions |
int | 5 | 1 - 20 | Maximum total open positions across all symbols (portfolio risk control) | Risk |
UseBreakEven |
bool | true | true/false | Enable break-even functionality to protect positions once profitable | Risk |
BreakEvenTriggerPoints |
int | 50 | 10 - 200 | Points in profit required to activate break-even move | Risk |
BreakEvenOffsetPoints |
int | 5 | 1 - 20 | Points beyond break-even to set SL (small profit lock) | Risk |
UseTrailing |
bool | true | true/false | Enable trailing stop functionality for dynamic profit protection | Risk |
TrailATRBased |
bool | true | true/false | Use ATR-based trailing distance (true) or fixed points (false) | Risk |
TrailATRMult |
double | 1.0 | 0.5 - 3.0 | ATR multiplier for trailing stop distance (if TrailATRBased=true) | Risk |
TrailStartPoints |
int | 60 | 20 - 200 | Points in profit required to start trailing (if TrailATRBased=false) | Risk |
TrailStepPoints |
int | 20 | 5 - 50 | Step size for trailing stop adjustments (points) | Risk |
UsePartialClose |
bool | true | true/false | Enable partial close functionality to take profits early | Risk |
PartialClosePercent |
double | 50.0 | 10.0 - 90.0 | Percentage of position to close when partial close triggers | Risk |
MaxBarsInTrade |
int | 0 | 0 - 1000 | Maximum bars to hold position (0 = no limit, exit by time) | Advanced |
MaxSpreadPoints |
double | 50.0 | 10.0 - 200.0 | Maximum allowed spread in points. Trades skipped if spread exceeds this. | Trading |
Slippage |
int | 6 | 0 - 50 | Maximum allowable slippage in points for order execution | Trading |
UseCSVLogging |
bool | true | true/false | Enable CSV file logging of all trades for performance analysis | Advanced |
CSVFileName |
string | "SniperEA_Trades.csv" | Valid filename | Name of CSV log file (created in MQL5/Files directory) | Advanced |
EA_Magic |
int | 987654 | 0 - 999999 | Unique magic number to identify EA's positions. Change for multiple EA instances. | Advanced |
OnlyOneOrderPerBar |
bool | true | true/false | Prevent multiple entries on same bar per symbol (avoid overtrading) | Advanced |
AllowReverseOnOppositeSignal |
bool | false | true/false | Allow automatic position reversal when opposite signal appears (dangerous) | Advanced |
Core trading parameters including logging, confirmation rules, session filters, and execution settings.
Risk management parameters including daily limits, position sizing, break-even, trailing stops, and partial closes.
Technical indicator settings for EMA, RSI, MACD, Stochastic, and ATR periods and thresholds.
Advanced features including symbol lists, CSV logging, magic numbers, and special behavior flags.
Comprehensive backtesting and live trading results for SniperEA Pro
High-Precision Sniper Strategy Performance (Jan 2023 - Dec 2025)
| Performance Metric | Value |
|---|---|
| 📊 Overall Performance | |
| Total Trades | 486 |
| Winning Trades | 359 |
| Losing Trades | 127 |
| Win Rate | 73.9% |
| Break-Even Trades | 0 |
| 💰 Profitability | |
| Net Profit | $78,420 |
| Gross Profit | $125,472 |
| Gross Loss | -$47,052 |
| Profit Factor | 2.67 |
| Expected Payoff | $161.36 |
| Return on Account | 78.4% |
| ⚠️ Risk Metrics | |
| Max Drawdown | -$6,840 |
| Max Drawdown % | -6.8% |
| Recovery Factor | 11.46 |
| Sharpe Ratio | 2.56 |
| Sortino Ratio | 3.18 |
| Calmar Ratio | 11.46 |
| Risk of Ruin | 0.00% |
| 📈 Trade Analysis | |
| Average Win | $349.50 |
| Average Loss | -$370.49 |
| Largest Win | $1,420 |
| Largest Loss | -$680 |
| Average Trade Duration | 2.1 hours |
| Max Consecutive Wins | 16 |
| Max Consecutive Losses | 4 |
| Average Consecutive Wins | 5.4 |
| Average Consecutive Losses | 1.6 |
| 🎯 Signal Quality Analysis | |
| Total Signals Generated | 892 |
| Signals Accepted (High Quality) | 486 (54.5%) |
| Signals Rejected (Low Quality) | 406 (45.5%) |
| Signal Quality Score | 8.4 / 10 |
| Rejection Rate | 45.5% |
| Confirmation Accuracy | 81.2% |
| 📅 Monthly Performance (2025) | |
| Best Month | +$9,840 (March) |
| Worst Month | -$980 (August) |
| Average Monthly Profit | $2,912 |
| Profitable Months | 11 / 12 |
| Month Win Rate | 91.7% |
⚠️ Backtesting Disclaimer: Past performance is not indicative of future results. These results are based on historical backtesting and may not reflect actual trading outcomes. Live trading involves real market conditions, slippage, and execution delays that cannot be fully simulated in backtests. Always use proper risk management and demo trade before using real capital.
Backtesting is essential. Always test on demo accounts first with your broker's specific conditions.
Copy the EA file to your MetaTrader 5 installation directory:
C:\Users\[YourUsername]\AppData\Roaming\MetaQuotes\Terminal\[BrokerID]\MQL5\Experts\
Right-click in the Navigator window and select "Refresh" or restart MT5 to see the EA appear in the Expert Advisors list.
Click the "Algo Trading" button in the toolbar (or press Ctrl+E) to enable automated trading. The button should turn green. Without this, the EA will not open trades.
A smiley face 😊 in the top-right corner indicates the EA is running. If you see a sad face ☹️, check the Expert logs for errors. Also ensure "Allow live trading" is checked in EA properties.
When attaching the EA, the properties dialog appears. You can also double-click the EA name in the top-left corner of the chart to reopen it.
| Parameter | Conservative | Moderate | Aggressive |
|---|---|---|---|
RiskPercent |
0.5% | 1.0% | 2.0% |
ATRMultiplier |
1.5 | 1.2 | 1.0 |
TrailStartPoints |
80 | 60 | 40 |
MaxPortfolioPositions |
3 | 5 | 8 |
Use2of3Confirmations |
false | true | true |
DailyLossPercent |
-1.0% | -1.5% | -2.5% |
MaxSpreadPoints to 80-100. May have wider spreads.ATRMultiplier down to 0.8-1.0. Indices are more volatile.Slippage to 10-15 points. Commodities can have slippage during news.MinATRPoints to 30-40. JPY pairs have different pip values.For first-time setup, use a demo account with RiskPercent = 0.1 and FixedLot = 0.01 to observe behavior without significant risk.
After optimization, enable "Forward" checkbox and set last 3 months as forward period. This tests if parameters work on unseen data, validating robustness.
Start with minimum risk (0.5% or 0.01 lots) for first week. If performance matches backtest, gradually increase to target risk (1-2%) over 2-3 weeks.
| Platform | MetaTrader 5 |
| MQL Version | 5.00 |
| Build Required | Build 2600+ |
| Type | Expert Advisor |
| Timeframes | M1, M5, M15, M30, H1, H4, D1 |
| Best Entry TF | PERIOD_M5 |
| Best Trend TF | PERIOD_H1 |
| Process Events | OnTick, OnTimer |
| Min Balance | $500 USD |
| Account Type | Standard/ECN/STP |
| Leverage | 1:30 - 1:500 |
| Execution | Market Execution |
| Lines of Code | ~1,200 |
| Custom Functions | 25+ |
| Indicator Handles | 6 per symbol |
| Complexity | Advanced |
Fully compatible with market execution brokers. ECN and STP models supported.
Auto-detects and adapts to 4 or 5 digit broker quote formats seamlessly.
Works with standard lots, mini lots, and micro lots. ECN commission accounts supported.
For 24/7 operation, especially with multiple symbols, VPS hosting is strongly recommended to avoid internet disconnections.
Supports USD, EUR, GBP, JPY, and other base currencies. Auto-converts risk calculations.
Compatible with both hedging and netting account modes. Magic number ensures proper trade identification.
Trading involves substantial risk of loss and may not be suitable for all investors.
Trading foreign exchange, stocks, futures, options, and cryptocurrencies on margin carries a high level of risk and may not be suitable for all investors. The high degree of leverage can work against you as well as for you. Before deciding to trade, you should carefully consider your investment objectives, level of experience, and risk appetite. There is a possibility that you could sustain a loss of some or all of your initial investment. Therefore, you should not invest money that you cannot afford to lose.
SniperEA Pro is a software tool designed to assist in analyzing market conditions and executing trades based on predefined algorithms and technical indicators. It does not guarantee profits or success. Past performance results, whether from backtesting, demo trading, or live trading, do not guarantee future results. Market conditions, broker execution quality, slippage, spread variations, and other factors can significantly affect live performance compared to historical tests.
You are fully responsible for all trading decisions made using this EA, including:
KeyAlgos provides SniperEA Pro "as is" without any warranties, express or implied, including but not limited to warranties of merchantability, fitness for a particular purpose, or non-infringement. We do not guarantee that the EA will be error-free, uninterrupted, or that it will meet your specific trading requirements or profit expectations.
In no event shall KeyAlgos be liable for any direct, indirect, incidental, special, consequential, or exemplary damages, including but not limited to damages for loss of profits, goodwill, use, data, or other intangible losses, arising out of or in connection with the use or performance of SniperEA Pro. This includes losses resulting from software errors, broker issues, market anomalies, or any other circumstances beyond our control.