MQL5 Weekly: New EAs & Indicators - December Week 1, 2025
This Week's Highlights
1. Revolutionary Volatility-Based Position Sizer Breaks New Ground in Risk Management
The trading community is buzzing about the release of "VoluSize Pro," an innovative Expert Advisor that dynamically adjusts position sizes based on real-time market volatility. Early adopters report a 23% improvement in risk-adjusted returns compared to fixed position sizing strategies during the initial beta testing phase.
2. Multi-Timeframe RSI Divergence Detector Achieves 78% Signal Accuracy
A sophisticated divergence detection system has launched, combining RSI analysis across multiple timeframes with machine learning confirmation. The system's backtesting on major currency pairs shows promising results, with particularly strong performance during ranging market conditions.
3. Market Structure Breakout Scanner Reduces False Breakouts by 65%
Technical traders are embracing a new market structure scanner that identifies high-probability breakout patterns using fractal analysis and volume confirmation. The tool's unique algorithm filters out noise and focuses on structurally significant price levels.
Expert Advisors
Volatility-Based Position Sizer (VoluSize Pro)
Overview
VoluSize Pro represents a paradigm shift in automated position sizing, moving beyond traditional fixed lot or percentage-based methods to incorporate real-time market volatility metrics. The EA utilizes a proprietary volatility calculation that combines Average True Range (ATR) with standard deviation measurements, creating a dynamic sizing model that adapts to changing market conditions.
Technical Implementation
The core algorithm operates on three key components:
- Real-time volatility assessment using a 14-period ATR with exponential smoothing
- Risk-per-trade calculation based on account equity and user-defined risk percentage
- Position size adjustment factor that inversely correlates with volatility levels
// Simplified pseudo-code for position sizing calculation
double CalculateVolatilityAdjustedPosition() {
double atr = iATR(Symbol(), PERIOD_CURRENT, 14, 1);
double volatilityRatio = atr / SymbolInfoDouble(Symbol(), SYMBOL_ASK);
double baseRisk = AccountInfoDouble(ACCOUNT_EQUITY) * riskPercentage;
double adjustedPosition = baseRisk / (stopLossPoints * volatilityRatio);
return NormalizeDouble(adjustedPosition, 2);
}
Performance Metrics
Based on 12-month backtesting on EUR/USD, GBP/USD, and USD/JPY:
- Sharpe Ratio: 1.45 (compared to 0.98 for fixed position sizing)
- Maximum Drawdown: 12.3% (vs 18.7% fixed)
- Win Rate: 64.2% (vs 58.1% fixed)
- Profit Factor: 1.82 (vs 1.41 fixed)
Practical Insights
VoluSize Pro excels in environments characterized by sudden volatility spikes, particularly during major news releases. The EA's ability to reduce exposure during high-volatility periods while maintaining consistent risk parameters provides a significant edge over traditional sizing methods.
Recommended Settings
- Risk per trade: 1-2% of account equity
- Volatility multiplier: 1.0 (standard) to 1.5 (aggressive)
- Minimum position size: 0.01 lots
- Maximum position size: 5% of account equity
Multi-Timeframe RSI Divergence Detector (RSI-Div Pro)
Overview
RSI-Div Pro employs advanced pattern recognition algorithms to identify RSI divergences across multiple timeframes simultaneously. The system combines traditional divergence detection with machine learning confirmation, significantly reducing false signals and improving trade timing precision.
Technical Architecture
The EA analyzes four timeframes concurrently (M15, H1, H4, D1) using a weighted scoring system:
- Primary timeframe weight: 40%
- Secondary timeframe weight: 30%
- Tertiary timeframe weight: 20%
- Confirmation timeframe weight: 10%
Key Features
- Advanced Divergence Types: Regular, hidden, and extended divergences
- Momentum Confirmation: MACD and Stochastic cross-verification
- Volume Analysis: Volume-weighted price action confirmation
- Adaptive Thresholds: Dynamic RSI levels based on recent price action
Performance Analysis
Backtesting results from January 2024 to November 2024 across major forex pairs:
| Metric | Bullish Divergence | Bearish Divergence | Combined |
|--------|-------------------|-------------------|----------|
| Signal Accuracy | 76.3% | 79.8% | 78.1% |
| Average Return | 142 pips | 138 pips | 140 pips |
| Holding Period | 3.2 days | 2.8 days | 3.0 days |
| Success Rate | 71.2% | 73.6% | 72.4% |
Strategic Applications
RSI-Div Pro proves particularly effective in:
- Trend continuation scenarios (hidden divergences)
- Market reversal points (regular divergences)
- Range-bound markets with clear support/resistance levels
- Multi-timeframe confluence zones
Optimization Recommendations
- Primary timeframe: H1 for intraday, H4 for swing trading
- RSI periods: 14 (standard), 21 (smoother signals)
- Minimum swing points: 3 for reliability
- Confirmation period: 2-4 bars for signal validation
Indicators
Market Structure Breakout Scanner (MS-Scanner)
Overview
The Market Structure Breakout Scanner represents a breakthrough in structural analysis, employing fractal geometry and volume profiling to identify high-probability breakout setups. The indicator automatically detects market structure highs and lows, then applies a sophisticated filtering mechanism to distinguish between meaningful breakouts and false signals.
Core Algorithm
The scanner operates through a multi-stage process:
- Structure Identification: Locates swing highs/lows using fractal analysis
- Volume Confirmation: Validates breakouts with volume spike detection
- Momentum Assessment: Measures price acceleration using custom momentum oscillator
- Risk Evaluation: Calculates potential reward-to-risk ratios for identified setups
Technical Specifications
- Timeframe compatibility: M5 to D1
- Minimum swing points: 3 for valid structure
- Volume threshold: 150% of average volume
- Momentum filter: Custom oscillator with period 14
- Risk calculation: Based on ATR (14 periods)
Performance Statistics
Testing on EUR/USD (H1 timeframe) from June to November 2024:
| Metric | Value |
|--------|-------|
| True Breakouts | 68.4% |
| False Breakouts | 31.6% |
| Average Move | 127 pips |
| Maximum Drawdown | 8.2% |
| Signal Frequency | 3.7 per day |
Practical Implementation
MS-Scanner excels in:
- London and New York session overlaps
- Key economic news releases
- Trend continuation patterns
- Consolidation breakouts after extended ranges
Configuration Guidelines
- Structure depth: 3-5 swing points for reliable patterns
- Volume multiplier: 1.5x average volume
- Momentum threshold: 70 for bullish, 30 for bearish
- Minimum breakout distance: 0.5x ATR
Dynamic Support/Resistance Zone Indicator (DSR-Zone)
Overview
DSR-Zone revolutionizes support and resistance analysis by creating dynamic zones that adapt to market volatility and price action. Unlike static horizontal lines, these zones expand and contract based on market conditions, providing more realistic price levels for trade execution.
Zone Calculation Methodology
The indicator employs a three-layered approach:
- Base Level Calculation: Uses pivot points and previous period extremes
- Volatility Adjustment: Incorporates ATR-based expansion factors
- Price Action Confirmation: Validates zones with recent price reaction
Advanced Features
- Multi-timeframe zone synchronization
- Zone strength scoring (1-10)
- Historical zone effectiveness tracking
- Automatic zone expiration based on price distance
- Customizable zone colors and alerts
Effectiveness Analysis
Backtesting across multiple currency pairs (H4 timeframe):
| Currency Pair | Zone Hit Rate | Average Bounce | Zone Accuracy |
|---------------|---------------|----------------|---------------|
| EUR/USD | 72.3% | 45 pips | 78.1% |
| GBP/USD | 68.9% | 52 pips | 75.4% |
| USD/JPY | 71.2% | 38 pips | 76.8% |
| AUD/USD | 66.7% | 41 pips | 73.2% |
Strategic Advantages
DSR-Zone provides traders with:
- More realistic entry/exit levels compared to static lines
- Adaptive risk management based on zone width
- Clear visual representation of price acceptance areas
- Reduced false signals through zone confirmation requirements
Optimization Settings
- Zone width multiplier: 1.0x ATR (tight) to 2.5x ATR (wide)
- Minimum zone strength: 6/10 for reliable zones
- Zone lifetime: 50-200 bars depending on timeframe
- Confirmation bars: 2-3 for zone validation
Code Spotlight
Deep Dive: Volatility-Based Position Sizer Core Algorithm
Let's examine the heart of VoluSize Pro's position sizing mechanism. The following code demonstrates the sophisticated volatility calculation that sets this EA apart:
// Core volatility-based position sizing function
double CalculateOptimalPositionSize(string symbol, double riskPercent, int stopLossPoints) {
// 1. Calculate real-time volatility using multiple methods
double atr14 = iATR(symbol, PERIOD_CURRENT, 14, 1);
double atr50 = iATR(symbol, PERIOD_CURRENT, 50, 1);
double atr200 = iATR(symbol, PERIOD_CURRENT, 200, 1);
// Weighted volatility calculation
double weightedATR = (atr14 * 0.5) + (atr50 * 0.3) + (atr200 * 0.2);
// 2. Calculate volatility ratio for normalization
double currentPrice = SymbolInfoDouble(symbol, SYMBOL_ASK);
double volatilityRatio = weightedATR / currentPrice;
// 3. Apply volatility adjustment factor
double volatilityAdjustment = 1.0 / (1.0 + (volatilityRatio * volatilityMultiplier));
// 4. Calculate base position size
double accountEquity = AccountInfoDouble(ACCOUNT_EQUITY);
double riskAmount = accountEquity * (riskPercent / 100.0);
double tickValue = SymbolInfoDouble(symbol, SYMBOL_TRADE_TICK_VALUE);
double pointValue = SymbolInfoDouble(symbol, SYMBOL_POINT);
// 5. Adjust position size based on volatility
double basePosition = riskAmount / (stopLossPoints * pointValue * tickValue);
double adjustedPosition = basePosition * volatilityAdjustment;
// 6. Apply position size limits
double minLot = SymbolInfoDouble(symbol, SYMBOL_VOLUME_MIN);
double maxLot = SymbolInfoDouble(symbol, SYMBOL_VOLUME_MAX);
double lotStep = SymbolInfoDouble(symbol, SYMBOL_VOLUME_STEP);
adjustedPosition = MathMax(adjustedPosition, minLot);
adjustedPosition = MathMin(adjustedPosition, maxLot);
// Normalize to step size
adjustedPosition = MathRound(adjustedPosition / lotStep) * lotStep;
return adjustedPosition;
}
// Volatility spike detection function
bool DetectVolatilitySpike(string symbol) {
double currentATR = iATR(symbol, PERIOD_CURRENT, 14, 1);
double avgATR = iMA(symbol, PERIOD_CURRENT, 50, 0, MODE_SMA, PRICE_TYPICAL, 1);
double spikeThreshold = avgATR * spikeMultiplier;
return (currentATR > spikeThreshold);
}
Algorithm Analysis
- Multi-Timeframe ATR Integration: The code uses three ATR periods (14, 50, 200) with weighted averaging to capture both short-term volatility and longer-term volatility trends. This approach prevents over-reaction to temporary volatility spikes while maintaining responsiveness to genuine market condition changes.
- Volatility Normalization: By dividing the weighted ATR by current price, the algorithm creates a dimensionless volatility ratio that can be compared across different instruments and price levels.
- Inverse Volatility Adjustment: The core insight is that position size should decrease as volatility increases. The formula
1.0 / (1.0 + (volatilityRatio * volatilityMultiplier))achieves this while ensuring the adjustment factor remains between 0 and 1.
- Risk Management Integration: The algorithm maintains the user's specified risk percentage while dynamically adjusting position size, ensuring consistent risk exposure regardless of market conditions.
Performance Optimization Tips
For optimal performance, consider these parameter adjustments:
- volatilityMultiplier: 1.0-2.0 (higher values reduce positions more aggressively)
- spikeMultiplier: 1.5-2.5 (detects significant volatility increases)
- ATR weights: Adjust based on trading style (short-term traders may favor shorter ATR periods)
Quick Mentions
News Impact Analyzer EA
A specialized EA that quantifies the impact of economic news releases on price action, using historical data to predict likely market reactions. Features include pre-news position sizing and post-news momentum capture.
Currency Correlation Matrix Pro
An advanced correlation dashboard that tracks real-time correlations between 28 currency pairs across multiple timeframes, with heat map visualization and divergence alerts.
Smart Grid System with Machine Learning
An intelligent grid trading system that adapts grid spacing and take-profit levels based on market regime classification using a lightweight neural network.
Volume Profile Suite
A comprehensive volume analysis toolkit that includes market profile, volume-weighted average price (VWAP), and custom volume distribution analysis with automatic zone identification.
Risk Disclaimer
Trading foreign exchange, contracts for differences, or other financial instruments carries a high level of risk to your capital, and you should only trade with money you can afford to lose. The performance metrics and backtesting results presented in this article are based on historical data and do not guarantee future performance. Past results are not indicative of future returns.
The Expert Advisors and indicators discussed involve complex algorithms that may behave differently under various market conditions. Market volatility, liquidity issues, technical failures, and other unforeseen circumstances can significantly impact trading results.
Before implementing any automated trading system:
- Conduct thorough backtesting on historical data
- Perform extensive forward testing on demo accounts
- Understand the risks and limitations of each system
- Implement proper risk management strategies
- Monitor systems regularly and be prepared to intervene
The developers and publishers of these tools are not responsible for any trading losses incurred. Always consult with a qualified financial advisor before making investment decisions. Trading involves substantial risk of loss and is not suitable for all investors.
This publication is for informational purposes only and does not constitute investment advice or a recommendation to trade.
