| # EscapeEA - Advanced Trading Expert Advisor
|
|
|
| [](LICENSE)
|
| [](https://www.metatrader5.com/)
|
| [](CHANGELOG.md)
|
|
|
| ## Overview
|
| EscapeEA is a next-generation Expert Advisor for MetaTrader 5, built with institutional-grade architecture and security. It combines multiple trading strategies with advanced risk management, a robust paper trading engine, and enterprise-grade security features. The system is designed for both retail and institutional traders seeking a professional, reliable, and secure automated trading solution.
|
|
|
| ### Key Benefits
|
| - **Institutional-Grade Security**: Military-grade encryption and secure memory handling
|
| - **Advanced Risk Management**: Multi-layered protection for capital preservation
|
| - **Realistic Paper Trading**: 99.9% accurate market simulation
|
| - **Machine Learning Integration**: Adaptive strategy optimization
|
| - **High Performance**: Optimized for low-latency execution
|
| - **Comprehensive Monitoring**: Real-time performance analytics
|
|
|
| ## 🔑 Key Features
|
|
|
| ### 🚀 Core Trading Engine
|
| - **Multi-Strategy Framework**: Combines 6+ proven trading strategies with dynamic weight allocation
|
| - **Adaptive Risk Management**: Real-time position sizing based on volatility and account equity
|
| - **Paper Trading Gateway**: Mandatory simulation phase with configurable success criteria
|
| - **News Impact Analysis**: Avoids trading during high-impact economic events
|
| - **Volatility-Adaptive**: Auto-adjusts to changing market conditions
|
| - **Time-Based Execution**: Session-based trading with time zone awareness
|
|
|
| ### 🛡️ Advanced Risk Management
|
| - **Multi-Layer Protection**: 5+ independent risk checks before order execution
|
| - **Dynamic Position Sizing**: Adjusts lot sizes based on account equity and market conditions
|
| - **Drawdown Control**: Automatic position reduction during drawdown periods
|
| - **Correlation Matrix**: Real-time portfolio correlation analysis
|
| - **Circuit Breakers**: Automatic trading suspension on excessive losses
|
| - **Risk-Reward Optimization**: Smart take-profit and stop-loss placement
|
|
|
| ### 📊 Position Management
|
| - **Intelligent Scaling**: Dynamic position scaling based on market conditions
|
| - **Correlation-Aware**: Adjusts exposure based on portfolio correlation
|
| - **Exit Strategy Profiles**: 3 predefined profiles (Aggressive/Moderate/Conservative)
|
| - **Position Clustering**: Prevents over-concentration at similar price levels
|
| - **ML-Powered Scoring**: Machine learning models for position optimization
|
| - **Regime Detection**: Adapts to trending, ranging, and volatile markets
|
|
|
| ### 🔒 Security Features
|
| - **Secure Memory Handling**: Zero-memory footprint for sensitive data
|
| - **Input Validation**: Comprehensive parameter validation
|
| - **Rate Limiting**: Protection against excessive API calls
|
| - **Audit Logging**: Tamper-proof trade logging
|
| - **Anti-Tampering**: Code integrity verification
|
| - **Secure Configuration**: Encrypted settings storage
|
|
|
| ### 📈 Performance Monitoring
|
| - **Real-time Analytics**: Live performance metrics
|
| - **Trade Journal**: Comprehensive trade history
|
| - **Custom Alerts**: Email/notification system
|
| - **Performance Reports**: Daily/weekly/monthly summaries
|
| - **Drawdown Analysis**: Historical drawdown tracking
|
|
|
| ### Error Handling & Security
|
|
|
| ### Error Handling
|
| - Comprehensive error checking and logging at all levels
|
| - Graceful recovery from errors with state preservation
|
| - Detailed error messages in the Experts tab
|
| - Stack trace generation for debugging
|
| - Automatic recovery from common errors
|
|
|
| ### Security Features
|
| - Input validation for all parameters
|
| - Secure memory handling for sensitive data
|
| - RAII-based resource management
|
| - Protection against common attack vectors
|
| - Secure logging and audit trails
|
|
|
| ### Paper Trading Safety
|
| - Complete isolation from live trading environment
|
| - Realistic simulation of market conditions
|
| - Protection against over-leveraging
|
| - Circuit breakers for excessive losses
|
| - Detailed trade logging for analysis
|
|
|
| ## 🏗 System Architecture
|
|
|
| EscapeEA's architecture is built on a microservices-inspired design, ensuring maximum modularity, scalability, and maintainability. The system is engineered for high-frequency trading with sub-millisecond execution times while maintaining enterprise-grade reliability.
|
|
|
| ### Design Principles
|
| - **Modularity**: Independent components with well-defined interfaces
|
| - **Scalability**: Horizontally scalable architecture
|
| - **Fault Tolerance**: Graceful degradation and recovery
|
| - **Security**: Defense-in-depth approach
|
| - **Performance**: Optimized for low-latency execution
|
| - **Maintainability**: Clean codebase with comprehensive documentation
|
|
|
| ### 🧩 Core Components
|
|
|
| ```mermaid
|
| graph TD
|
| %% Data Flow
|
| A[Market Data] --> B[EscapeEA Core]
|
| B --> C[Trade Executor]
|
| B --> D[Risk Manager]
|
| B --> E[Paper Trading Engine]
|
| B --> H[Signal Generator]
|
|
|
| %% Signal Generation
|
| H --> I[Technical Indicators]
|
| H --> I1[Market Regime Detection]
|
| H --> I2[ML Predictions]
|
| H --> I3[Sentiment Analysis]
|
|
|
| %% Execution Flow
|
| C --> F[MT5 Terminal]
|
| D --> C
|
| E --> B
|
|
|
| %% Visualization
|
| B --> G[Chart Visualization]
|
| H --> G
|
|
|
| %% Security Layer
|
| B --> J[Security Manager]
|
| J --> K[Input Validation]
|
| J --> L[Secure Memory]
|
| J --> M[RAII Wrappers]
|
| J --> N[Rate Limiting]
|
| J --> O[Encryption Engine]
|
|
|
| %% Paper Trading
|
| E --> P[Order Simulation]
|
| E --> Q[Position Tracking]
|
| E --> R[Performance Metrics]
|
| E --> S[Strategy Tester]
|
|
|
| %% Risk Management
|
| D --> T[Position Sizing]
|
| D --> U[Drawdown Control]
|
| D --> V[Correlation Analysis]
|
| D --> W[Circuit Breaker]
|
| D --> X[Exposure Manager]
|
|
|
| %% Rate Limiting
|
| N --> Y[Request Tracking]
|
| N --> Z[Quota Management]
|
| N --> AA[Throttling]
|
|
|
| %% Monitoring & Analytics
|
| B --> AB[Performance Dashboard]
|
| B --> AC[Error Tracking]
|
| B --> AD[Alert System]
|
|
|
| %% Data Storage
|
| B --> AE[Secure Database]
|
| AE --> AF[Trade History]
|
| AE --> AG[Performance Logs]
|
| AE --> AH[System Metrics]
|
| ```
|
|
|
| ### Component Descriptions
|
|
|
| #### 1. Core Engine
|
| - **Market Data Handler**: Processes real-time tick and bar data
|
| - **Event Dispatcher**: Manages event-driven architecture
|
| - **State Manager**: Maintains system state and configuration
|
|
|
| #### 2. Signal Generation
|
| - **Technical Analysis**: 50+ technical indicators
|
| - **Machine Learning**: Predictive models for market direction
|
| - **Sentiment Analysis**: News and social media analysis
|
| - **Pattern Recognition**: Advanced chart pattern detection
|
|
|
| #### 3. Risk Management
|
| - **Position Sizer**: Dynamic lot size calculation
|
| - **Exposure Manager**: Portfolio-wide risk control
|
| - **Correlation Engine**: Real-time asset correlation analysis
|
| - **Circuit Breaker**: Emergency stop functionality
|
|
|
| #### 4. Execution
|
| - **Order Manager**: Handles order execution
|
| - **Slippage Control**: Minimizes market impact
|
| - **Smart Order Routing**: Best execution algorithms
|
|
|
| #### 5. Security
|
| - **Authentication**: Secure access control
|
| - **Encryption**: Data protection at rest and in transit
|
| - **Audit Trail**: Comprehensive activity logging
|
| - **Integrity Checks**: Runtime validation
|
|
|
| #### 6. Monitoring & Analytics
|
| - **Performance Dashboard**: Real-time metrics
|
| - **Alert System**: Custom notifications
|
| - **Reporting Engine**: Automated report generation
|
| - **Backtesting**: Strategy validation
|
|
|
| ## 🎯 Signal Generator Component
|
|
|
| The `SignalGenerator` is the brain of EscapeEA, responsible for generating high-probability trading signals using a multi-layered analysis approach. It combines technical indicators, price action patterns, and machine learning to identify optimal entry and exit points.
|
|
|
| ### 🏆 Key Features
|
|
|
| #### Advanced Analysis
|
| - **Multi-Timeframe Analysis**: Simultaneously analyzes 5 different timeframes
|
| - **Hybrid Signal Generation**: Combines technical, statistical, and ML-based signals
|
| - **Market Regime Detection**: Adapts signal generation based on market conditions
|
| - **Sentiment Integration**: Incorporates news and social media sentiment analysis
|
| - **Pattern Recognition**: Identifies 20+ candlestick and chart patterns
|
|
|
| #### Signal Quality
|
| - **Confidence Scoring**: Each signal includes a 0-100 confidence score
|
| - **False Signal Filtering**: Advanced algorithms to reduce whipsaws
|
| - **Volume Analysis**: Confirms signals with volume profile
|
| - **Volatility Adjustment**: Adapts to changing market volatility
|
| - **Backtested Strategies**: Proven signal combinations with historical edge
|
|
|
| ### 📊 Signal Types
|
|
|
| | Signal | Description | Confidence Range |
|
| |--------|-------------|------------------|
|
| | `STRONG_BUY` | High probability long opportunity | 80-100 |
|
| | `BUY` | Standard long signal | 60-79 |
|
| | `WEAK_BUY` | Low confidence long | 50-59 |
|
| | `STRONG_SELL` | High probability short opportunity | 80-100 |
|
| | `SELL` | Standard short signal | 60-79 |
|
| | `WEAK_SELL` | Low confidence short | 50-59 |
|
| | `CLOSE_LONG` | Exit long positions | N/A |
|
| | `CLOSE_SHORT` | Exit short positions | N/A |
|
| | `NONE` | No clear trading opportunity | <50 |
|
|
|
| ### ⚙️ Configuration Parameters
|
|
|
| #### Core Settings
|
| ```cpp
|
| // Signal Generation
|
| input bool InpUseSignalGenerator = true; // Enable signal generator
|
| input ENUM_TIMEFRAMES InpBaseTimeframe = PERIOD_H1; // Base timeframe for analysis
|
| input bool InpMultiTimeframe = true; // Enable multi-timeframe analysis
|
| input bool InpUseML = true; // Enable machine learning
|
| input double InpMinConfidence = 65.0; // Minimum confidence % (0-100)
|
| ```
|
|
|
| #### Technical Indicators
|
| ```cpp
|
| // Moving Averages
|
| input ENUM_MA_METHOD InpMAMethod = MODE_EMA; // MA calculation method
|
| input int InpFastMAPeriod = 10; // Fast MA period
|
| input int InpSlowMAPeriod = 21; // Slow MA period
|
|
|
| // Volatility
|
| input int InpATRPeriod = 14; // ATR period for volatility
|
| input double InpVolatilityThreshold = 1.5; // Volatility threshold
|
|
|
| // Oscillators
|
| input int InpRSIPeriod = 14; // RSI period
|
| input int InpRSIOverbought = 70; // RSI overbought level
|
| input int InpRSIOversold = 30; // RSI oversold level
|
| ```
|
| ### 🏷️ Input Parameters
|
|
|
| EscapeEA offers extensive customization through its input parameters. Below are the key configuration options organized by category.
|
|
|
| #### 📊 Trading Parameters
|
|
|
| | Parameter | Type | Default | Description |
|
| |-----------|------|---------|-------------|
|
| | `InpLotSize` | double | 0.1 | Fixed lot size (0 for dynamic sizing) |
|
| | `InpStopLoss` | int | 100 | Stop loss in points (0 to disable) |
|
| | `InpTakeProfit` | int | 200 | Take profit in points (0 to disable) |
|
| | `InpMaxSpread` | int | 30 | Maximum allowed spread in points |
|
| | `InpMaxOpenTrades` | int | 5 | Maximum number of concurrent open trades |
|
| | `InpMaxDailyTrades` | int | 10 | Maximum trades per day |
|
| | `InpMaxSlippage` | int | 3 | Maximum allowed slippage in points |
|
|
|
| #### 🎯 Signal Generation
|
|
|
| | Parameter | Type | Default | Description |
|
| |-----------|------|---------|-------------|
|
| | `InpUseSignalGenerator` | bool | true | Enable advanced signal generation |
|
| | `InpBaseTimeframe` | ENUM_TIMEFRAMES | PERIOD_H1 | Base timeframe for analysis |
|
| | `InpUseML` | bool | true | Enable machine learning predictions |
|
| | `InpMinConfidence` | double | 65.0 | Minimum confidence % for signals (0-100) |
|
| | `InpUseVolumeAnalysis` | bool | true | Include volume in signal generation |
|
| | `InpUseNewsFilter` | bool | true | Filter trades during high-impact news |
|
|
|
| #### ⚖️ Risk Management
|
|
|
| | Parameter | Type | Default | Description |
|
| |-----------|------|---------|-------------|
|
| | `InpRiskPerTrade` | double | 1.0 | Risk % per trade (0.1-5.0) |
|
| | `InpMaxDailyLoss` | double | 5.0 | Maximum daily loss % (0-100) |
|
| | `InpMaxDrawdown` | double | 20.0 | Maximum account drawdown % (0-100) |
|
| | `InpUseTrailingStop` | bool | true | Enable trailing stop |
|
| | `InpTrailingStop` | int | 50 | Trailing stop distance in points |
|
| | `InpTrailingStep` | int | 10 | Trailing step in points |
|
| | `InpUseBreakEven` | bool | true | Enable break-even |
|
| | `InpBreakEven` | int | 50 | Break-even trigger in points |
|
| | `InpBreakEvenPips` | int | 5 | Lock in profit in points |
|
|
|
| #### 📈 Position Management
|
|
|
| | Parameter | Type | Default | Description |
|
| |-----------|------|---------|-------------|
|
| | `InpScalingProfile` | ENUM_SCALING | SCALING_MODERATE | Position scaling profile |
|
| | `InpMaxPositionSize` | double | 10.0 | Maximum position size in lots |
|
| | `InpMaxPositionsPerSymbol` | int | 3 | Maximum positions per symbol |
|
| | `InpUseCorrelationFilter` | bool | true | Filter correlated pairs |
|
| | `InpMaxCorrelation` | double | 0.7 | Maximum allowed correlation (0-1) |
|
| | `InpUseVolatilityExit` | bool | true | Enable volatility-based exits |
|
| | `InpVolatilityExitLevel` | double | 2.0 | ATR multiple for volatility exits |
|
|
|
| #### 📊 Technical Indicators
|
|
|
| | Parameter | Type | Default | Description |
|
| |-----------|------|---------|-------------|
|
| | `InpMAMethod` | ENUM_MA_METHOD | MODE_EMA | Moving Average method |
|
| | `InpFastMAPeriod` | int | 10 | Fast MA period |
|
| | `InpSlowMAPeriod` | int | 21 | Slow MA period |
|
| | `InpATRPeriod` | int | 14 | ATR period |
|
| | `InpATRMultiplier` | double | 2.0 | ATR multiplier for stops |
|
| | `InpRSIPeriod` | int | 14 | RSI period |
|
| | `InpRSIOverbought` | int | 70 | RSI overbought level |
|
| | `InpRSIOversold` | int | 30 | RSI oversold level |
|
| | `InpBBPeriod` | int | 20 | Bollinger Bands period |
|
| | `InpBBDeviation` | double | 2.0 | Bollinger Bands deviation |
|
|
|
| #### 📝 Paper Trading
|
|
|
| | Parameter | Type | Default | Description |
|
| |-----------|------|---------|-------------|
|
| | `InpPaperTrading` | bool | true | Enable paper trading |
|
| | `InpPaperWinsRequired` | int | 3 | Required wins for live trading |
|
| | `InpPaperTotalTrades` | int | 5 | Total paper trades per cycle |
|
| | `InpSimulateSlippage` | bool | true | Simulate order slippage |
|
| | `InpSimulatePartialFills` | bool | true | Simulate partial order fills |
|
| | `InpFillProbability` | int | 95 | Order fill probability % |
|
| | `InpMaxSlippagePips` | double | 5.0 | Maximum slippage in pips |
|
|
|
| #### ⚙️ System
|
|
|
| | Parameter | Type | Default | Description |
|
| |-----------|------|---------|-------------|
|
| | `InpMagicNumber` | int | 123456 | Unique EA identifier |
|
| | `InpMaxRetryAttempts` | int | 3 | Maximum order retry attempts |
|
| | `InpRetryDelay` | int | 1000 | Delay between retries (ms) |
|
| | `InpLogLevel` | ENUM_LOG_LEVEL | LOG_LEVEL_INFO | Logging verbosity |
|
| | `InpEnableAlerts` | bool | true | Enable popup alerts |
|
| | `InpEnableEmailAlerts` | bool | false | Enable email alerts |
|
| | `InpEnablePushAlerts` | bool | true | Enable push notifications |
|
|
|
| ### 🔄 Parameter Optimization
|
|
|
| EscapeEA's parameters can be optimized using MetaTrader's Strategy Tester. Recommended optimization approach:
|
|
|
| 1. **Initial Testing**: Use genetic optimization with a wide range
|
| 2. **Fine-Tuning**: Use complete pass on promising ranges
|
| 3. **Walk-Forward**: Validate on out-of-sample data
|
| 4. **Monte Carlo**: Test robustness with randomized data
|
|
|
| ### 📊 Parameter Groups
|
|
|
| Parameters can be organized into groups for easier management:
|
|
|
| ```mql5
|
| //+------------------------------------------------------------------+
|
| //| Input group: "=== Trading Settings ===" |
|
| input group "Trading Settings"
|
| input double InpLotSize = 0.1; // Fixed lot size
|
| input int InpStopLoss = 100; // Stop loss in points
|
| input int InpTakeProfit = 200; // Take profit in points
|
|
|
| //+------------------------------------------------------------------+
|
| //| Input group: "=== Risk Management ===" |
|
| input group "Risk Management"
|
| input double InpRiskPerTrade = 1.0; // Risk % per trade
|
| input double InpMaxDailyLoss = 5.0; // Max daily loss %
|
| ```
|
|
|
| ### 🔍 Parameter Dependencies
|
|
|
| Some parameters have dependencies that affect their behavior:
|
|
|
| - `InpLotSize = 0` enables dynamic position sizing based on account balance and risk parameters
|
| - `InpUseSignalGenerator = false` falls back to basic signal generation
|
| - `InpPaperTrading = true` overrides live trading settings
|
|
|
| ## Input Parameters
|
|
|
| ### Trading Parameters
|
| - `InpLotSize`: Fixed lot size (0 for dynamic sizing)
|
| - `InpStopLoss`: Stop loss in points
|
| - `InpTakeProfit`: Take profit in points
|
| - `InpMaxSpread`: Maximum allowed spread in points
|
| - `InpMaxOpenTrades`: Maximum number of open trades
|
|
|
| ### Position Management
|
| - `InpScalingProfile`: Position scaling profile (Aggressive/Moderate/Conservative)
|
| - `InpExitProfile`: Exit strategy profile (Aggressive/Moderate/Conservative)
|
| - `InpMaxPositionClusters`: Maximum allowed position clusters
|
| - `InpUseMLPredictions`: Enable/disable ML-based position scoring
|
| - `InpMLConfidenceThreshold`: Minimum confidence threshold for ML-based trades
|
| - `InpMaxPortfolioRisk`: Maximum portfolio risk percentage
|
| - `InpMaxDailyDrawdown`: Maximum daily drawdown percentage
|
| - `InpUseVolatilityExit`: Enable/disable volatility-based exits
|
| - `InpVolatilityExitLevel`: ATR multiple for volatility exits
|
|
|
| ### Paper Trading
|
| - `InpPaperTrading`: Enable/disable paper trading
|
| - `InpPaperWinsRequired`: Required wins for live trading (default: 3/5)
|
| - `InpPaperTotalTrades`: Total paper trades per cycle (default: 5)
|
| - `InpSimulateSlippage`: Enable/disable slippage simulation (default: true)
|
| - `InpSimulatePartialFills`: Enable/disable partial fill simulation (default: true)
|
| - `InpFillProbability`: Probability of order fill (0-100, default: 95)
|
| - `InpMaxSlippagePips`: Maximum slippage in pips (default: 5.0)
|
|
|
| ## 🚀 Getting Started
|
|
|
| ### 📋 Prerequisites
|
| - MetaTrader 5 platform installed
|
| - Sufficient account balance for your trading style
|
| - Basic understanding of forex/CFD trading
|
| - Recommended: VPS for 24/5 operation
|
|
|
| ### 🛠 Installation
|
|
|
| 1. **Download the EA**
|
| - Download the latest release from the [releases page](https://github.com/yourusername/escapeea/releases)
|
| - Extract the ZIP file to your MT5 installation directory
|
|
|
| 2. **File Placement**
|
| ```
|
| MQL5/
|
| ├── Experts/
|
| │ └── EscapeEA.mq5
|
| ├── Include/
|
| │ └── Escape/
|
| │ ├── RiskManager.mqh
|
| │ ├── SignalGenerator.mqh
|
| │ └── ...
|
| └── Presets/
|
| └── EscapeEA.set
|
| ```
|
|
|
| 3. **Initial Configuration**
|
| - Open MetaEditor (F4 in MT5)
|
| - Compile the EA (F7)
|
| - Restart MT5 to ensure all dependencies are loaded
|
|
|
| ### ⚡ Quick Start
|
|
|
| 1. **Attach to Chart**
|
| - Open a chart for your preferred trading instrument
|
| - Drag and drop `EscapeEA` from the Navigator panel onto the chart
|
| - Configure basic parameters in the EA settings dialog
|
| - Click "OK" to start
|
|
|
| 2. **Initial Setup**
|
| - The EA will start in paper trading mode
|
| - Monitor the Experts tab for initialization messages
|
| - Verify that all indicators load correctly
|
|
|
| 3. **Live Trading**
|
| - After successful paper trading, the EA will switch to live mode
|
| - Monitor initial trades carefully
|
| - Adjust risk parameters as needed
|
|
|
| ## 📊 Paper Trading System
|
|
|
| ### 🔄 Workflow Overview
|
|
|
| ```mermaid
|
| graph TD
|
| A[Start] --> B[Paper Trading Mode]
|
| B --> C{Generate Signal}
|
| C -->|BUY/SELL| D[Simulate Trade]
|
| C -->|NO SIGNAL| C
|
| D --> E[Track Performance]
|
| E --> F{Success Criteria Met?}
|
| F -->|Yes| G[Live Trading Mode]
|
| F -->|No| C
|
| G --> H[Execute Live Trade]
|
| H --> I[Return to Paper Trading]
|
| I --> C
|
| ```
|
|
|
| ### 📝 Paper Trading Features
|
|
|
| #### Realistic Market Simulation
|
| - **Slippage Modeling**: Realistic order execution delays
|
| - **Partial Fills**: Simulates partial order execution
|
| - **Spread Variability**: Dynamic spread simulation
|
| - **News Impact**: Models market reactions to news events
|
|
|
| #### Performance Tracking
|
| - **Win Rate**: Trades won vs total trades
|
| - **Profit Factor**: Gross profit / gross loss
|
| - **Drawdown**: Maximum peak-to-trough decline
|
| - **Risk/Reward**: Average profit vs average loss
|
| - **Expectancy**: Average profit per trade
|
|
|
| #### Visual Feedback
|
| - Entry/Exit Arrows
|
| - Position Markers
|
| - Stop Loss/Take Profit Levels
|
| - Equity Curve
|
| - Performance Metrics Overlay
|
|
|
| ### 🎓 Graduation to Live Trading
|
|
|
| The EA uses a smart graduation system:
|
|
|
| 1. **Initial Phase**: 5 paper trades
|
| 2. **Success Criteria**: 3/5 winning trades
|
| 3. **Live Trade**: Single live trade execution
|
| 4. **Evaluation**: Return to paper trading
|
| 5. **Continuous Cycle**: Repeat process
|
|
|
| ## 🎯 Live Trading
|
|
|
| ### 🛡️ Safety Features
|
| - Automatic lot size calculation
|
| - Maximum daily loss protection
|
| - Maximum drawdown protection
|
| - News event filtering
|
| - Spread monitoring
|
| - Margin level checks
|
|
|
| ### 📱 Monitoring
|
| - Real-time alerts
|
| - Email notifications
|
| - Mobile push notifications
|
| - Telegram/Discord integration
|
| - Custom webhook support
|
|
|
| ### 📊 Performance Dashboard
|
|
|
| ```
|
| +-------------------------------------------+
|
| | EscapeEA - Live Trading Dashboard |
|
| +---------------------+-------------------+
|
| | Account Balance | $10,245.67 |
|
| | Equity | $10,512.89 (+2.6%) |
|
| | Daily P/L | +$267.22 |
|
| | Open Trades | 2 |
|
| | Today's Trades | 5 (4W/1L) |
|
| | Win Rate | 80.0% |
|
| | Max Drawdown | 3.2% |
|
| | Risk/Reward | 1:1.8 |
|
| +---------------------+-------------------+
|
| | Last Signal | BUY EURUSD @ 1.1854 |
|
| | Signal Strength | 78% (Strong) |
|
| | Next Update | 00:01:45 |
|
| +-------------------------------------------+
|
| ```
|
|
|
| ## 🔄 Modes of Operation
|
|
|
| ### 1. Fully Automated Mode
|
| - EA makes all trading decisions
|
| - Automatic position management
|
| - Hands-off operation
|
| - Recommended for most users
|
|
|
| ### 2. Semi-Automated Mode
|
| - EA generates signals
|
| - Manual confirmation required
|
| - Good for learning and validation
|
|
|
| ### 3. Manual Mode
|
| - EA only provides analysis
|
| - Full manual control
|
| - For experienced traders
|
|
|
| ## ⚙️ Advanced Configuration
|
|
|
| ### Expert Properties
|
|
|
| #### Common Tab
|
| - Allow live trading: ✓
|
| - Allow DLL imports: ✓
|
| - Allow external experts: ✓
|
| - Allow WebRequest: ✓
|
| - Allow file operations: ✓
|
|
|
| #### Inputs Tab
|
| - Group related parameters
|
| - Set default values
|
| - Add descriptive tooltips
|
|
|
| #### Optimization
|
| - Use genetic optimization
|
| - Set optimization criteria
|
| - Define parameter ranges
|
| - Enable cloud optimization
|
|
|
| ### Performance Optimization
|
|
|
| 1. **MT5 Settings**
|
| - Enable "Allow algorithm trading"
|
| - Set "Max bars in chart" to minimum required
|
| - Disable unnecessary timeframes
|
| - Use 1-minute or tick data for backtesting
|
|
|
| 2. **EA Settings**
|
| - Adjust update intervals
|
| - Disable unused indicators
|
| - Optimize calculation periods
|
| - Use faster calculation methods
|
|
|
| ## 📈 Backtesting
|
|
|
| ### Recommended Settings
|
| - Modeling: Every tick (most precise)
|
| - Initial deposit: Match your live account
|
| - Leverage: Same as live account
|
| - Spread: Use current or average
|
| - Commission: Include broker fees
|
|
|
| ### Optimization
|
| 1. Select optimization criteria (e.g., Profit Factor)
|
| 2. Define parameter ranges
|
| 3. Use genetic optimization first
|
| 4. Refine with complete pass
|
| 5. Validate with walk-forward testing
|
|
|
| ### Reporting
|
| - Detailed trade history
|
| - Equity curve analysis
|
| - Performance metrics
|
| - Custom report generation
|
| - Export to Excel/CSV
|
|
|
| ## PositionManager Usage Examples
|
|
|
| ### 1. Basic Configuration
|
| ```cpp
|
| // In Expert Advisor's input parameters
|
| input ENUM_SCALING_PROFILE InpScalingProfile = SCALING_MODERATE;
|
| input ENUM_EXIT_PROFILE InpExitProfile = EXIT_MODERATE;
|
| input bool InpUseVolatilityExit = true;
|
| input double InpVolatilityExitLevel = 2.0;
|
| ```
|
|
|
| ### 2. Position Scaling Strategies
|
|
|
| #### Aggressive Scaling
|
| ```cpp
|
| // Scale in quickly, take profits aggressively
|
| InpScalingProfile = SCALING_AGGRESSIVE;
|
| InpExitProfile = EXIT_AGGRESSIVE;
|
| ```
|
|
|
| #### Conservative Scaling
|
| ```cpp
|
| // Scale in slowly, let profits run
|
| InpScalingProfile = SCALING_CONSERVATIVE;
|
| InpExitProfile = EXIT_CONSERVATIVE;
|
| ```
|
|
|
| ### 3. Volatility-Based Position Sizing
|
| ```cpp
|
| // Enable dynamic position sizing based on ATR
|
| input double InpATRPeriod = 14;
|
| input double InpATRMultiplier = 2.0;
|
|
|
| // In OnInit()
|
| ExtPositionManager.SetVolatilitySizing(true, InpATRPeriod, InpATRMultiplier, 2.0);
|
| ```
|
|
|
| ### 4. Correlation-Based Position Sizing
|
| ```cpp
|
| // Configure correlation settings
|
| string correlationSymbols[] = {"EURUSD", "GBPUSD", "USDJPY"};
|
| ExtPositionManager.SetCorrelationFilter(correlationSymbols, 0.7);
|
| ```
|
|
|
| ### 5. Advanced Exit Strategies
|
|
|
| #### Trailing Stop with Volatility Exit
|
| ```cpp
|
| // Enable trailing stop with volatility-based exit
|
| ExtPositionManager.SetTrailingStop(true, 20); // 20-pip trailing stop
|
| ExtPositionManager.SetVolatilityExit(true, 2.0); // Exit at 2x ATR
|
| ```
|
|
|
| #### Time-Based Exit
|
| ```cpp
|
| // Close positions after a certain number of bars
|
| ExtPositionManager.SetTimeExit(true, 50); // Close after 50 bars
|
| ```
|
|
|
| ### 6. Machine Learning Integration
|
| ```cpp
|
| // Enable ML-based position scoring
|
| input bool InpUseMLPredictions = true;
|
| input double InpMLConfidenceThreshold = 0.7;
|
|
|
| // In OnInit()
|
| if(InpUseMLPredictions) {
|
| if(ExtPositionManager.LoadMLModel("ml_model.dat")) {
|
| ExtPositionManager.SetMLIntegration(true, InpMLConfidenceThreshold);
|
| }
|
| }
|
| ```
|
|
|
| ### 7. Position Clustering
|
| ```cpp
|
| // Prevent over-concentration at similar price levels
|
| input bool InpUsePositionClustering = true;
|
| input int InpMaxPositionClusters = 3;
|
| input double InpClusterDistance = 20.0; // in points
|
|
|
| // In OnInit()
|
| ExtPositionManager.SetPositionClustering(InpUsePositionClustering,
|
| InpClusterDistance,
|
| InpMaxPositionClusters);
|
| ```
|
|
|
| ### 8. Market Regime Detection
|
| ```cpp
|
| // Enable market regime detection
|
| ExtPositionManager.SetRegimeFilter(true, 50, 0.3, 0.2);
|
|
|
| // Check regime in your trading logic
|
| ENUM_MARKET_REGIME regime = ExtPositionManager.DetectMarketRegime();
|
| if(regime == MARKET_REGIME_TRENDING) {
|
| // Use trending strategy
|
| } else if(regime == MARKET_REGIME_RANGING) {
|
| // Use ranging strategy
|
| }
|
| ```
|
|
|
| ## Monitoring and Visualization
|
|
|
| The EA provides several visualization tools to monitor position management:
|
|
|
| 1. **Position Clusters**:
|
| - Colored zones on the chart show position clusters
|
| - Cluster size indicates position concentration
|
|
|
| 2. **Exit Levels**:
|
| - Dynamic stop loss and take profit levels
|
| - Trailing stop visualization
|
| - Volatility-based exit zones
|
|
|
| 3. **Performance Metrics**:
|
| - Real-time risk/reward ratios
|
| - Position correlation heatmap
|
| - ML confidence indicators
|
|
|
| ## Best Practices
|
|
|
| 1. **Start with Paper Trading**:
|
| - Test different scaling profiles in demo mode
|
| - Monitor how the EA handles different market conditions
|
|
|
| 2. **Gradual Deployment**:
|
| - Start with small position sizes
|
| - Gradually increase risk as you gain confidence
|
|
|
| 3. **Monitor Correlations**:
|
| - Be aware of correlated positions across your portfolio
|
| - Use the correlation tools to manage overall exposure
|
|
|
| 4. **Regular Review**:
|
| - Periodically review performance metrics
|
| - Adjust parameters based on changing market conditions
|
| - Update ML models with fresh data
|
|
|
| ## 🚨 Troubleshooting Guide
|
|
|
| ### 🔍 Common Issues & Solutions
|
|
|
| #### EA Not Starting
|
| | Symptom | Possible Causes | Solution |
|
| |---------|-----------------|----------|
|
| | EA not attaching to chart | AutoTrading disabled | Enable AutoTrading (CTRL+E) |
|
| | No initialization message | Incorrect file placement | Verify file structure in MQL5 directory |
|
| | Missing dependencies | Required include files missing | Check all .mqh files are in Include/Escape/ |
|
| | Access denied | Insufficient permissions | Run MT5 as Administrator |
|
|
|
| #### Trading Issues
|
| | Symptom | Possible Causes | Solution |
|
| |---------|-----------------|----------|
|
| | No trades opening | Market closed | Check trading hours |
|
| | | Insufficient margin | Increase account balance |
|
| | | Risk limits reached | Adjust risk parameters |
|
| | | News filter active | Check economic calendar |
|
| | Orders rejected | Incorrect lot size | Verify minimum lot size |
|
| | | Incorrect stop levels | Check broker's requirements |
|
| | | Trading disabled | Check account status |
|
|
|
| #### Performance Problems
|
| | Symptom | Possible Causes | Solution |
|
| |---------|-----------------|----------|
|
| | High CPU usage | Too many indicators | Reduce indicator count |
|
| | | Frequent updates | Increase update interval |
|
| | | Memory leaks | Restart MT5 |
|
| | Slow execution | Old hardware | Upgrade computer |
|
| | | Many charts open | Close unused charts |
|
| | | Internet latency | Use VPS closer to broker |
|
|
|
| ### 🐛 Debugging Techniques
|
|
|
| #### 1. Log Analysis
|
| ```mql5
|
| // Enable detailed logging
|
| #define DEBUG_MODE true
|
|
|
| void DebugPrint(string message)
|
| {
|
| if(DEBUG_MODE)
|
| Print(TimeToString(TimeCurrent(), TIME_DATE|TIME_SECONDS), " - ", message);
|
| }
|
|
|
| // Usage
|
| DebugPrint("Current Spread: " + DoubleToString(SymbolInfoInteger(Symbol(), SYMBOL_SPREAD) * Point(), 1) + " pips");
|
| ```
|
|
|
| #### 2. Error Handling
|
| ```mql5
|
| bool CheckError(int error_code, string function_name)
|
| {
|
| if(error_code != 0)
|
| {
|
| string error_desc = ErrorDescription(error_code);
|
| Print("Error in ", function_name, ": (", error_code, ") ", error_desc);
|
| return false;
|
| }
|
| return true;
|
| }
|
|
|
| // Usage
|
| if(!OrderSend(trade_request, trade_result))
|
| CheckError(GetLastError(), "OrderSend");
|
| ```
|
|
|
| #### 3. Performance Profiling
|
| ```mql5
|
| ulong start_time = GetMicrosecondCount();
|
| // Code to profile
|
| ulong execution_time = GetMicrosecondCount() - start_time;
|
| if(execution_time > 1000) // More than 1ms
|
| Print("Slow operation: ", execution_time, " microseconds");
|
| ```
|
|
|
| ### 📋 Self-Diagnosis Checklist
|
|
|
| 1. **Basic Checks**
|
| - [ ] MT5 Build 3000+
|
| - [ ] AutoTrading enabled (CTRL+E)
|
| - [ ] Allow Algo Trading (Tools > Options > Expert Advisors)
|
| - [ ] Correct symbol and timeframe
|
| - [ ] Sufficient account balance
|
| - [ ] Internet connection stable
|
|
|
| 2. **EA Settings**
|
| - [ ] Magic number unique
|
| - [ ] Correct lot size
|
| - [ ] Stop Loss/Take Profit levels valid
|
| - [ ] Risk parameters reasonable
|
| - [ ] News filter settings appropriate
|
|
|
| 3. **Broker Requirements**
|
| - [ ] Minimum distance to market
|
| - [ ] Stop level requirements
|
| - [ ] Maximum spread allowed
|
| - [ ] Allowed order types
|
| - [ ] Trading hours
|
|
|
| ### 🆘 Getting Help
|
|
|
| #### Before Asking for Help
|
| 1. Check the Experts tab for errors
|
| 2. Verify all input parameters
|
| 3. Test with default settings
|
| 4. Try on a different chart/instrument
|
| 5. Restart MT5
|
|
|
| #### When Reporting Issues
|
| Please provide:
|
| 1. MT5 build number
|
| 2. EA version
|
| 3. Broker name
|
| 4. Symbol and timeframe
|
| 5. Error messages
|
| 6. Screenshots (if applicable)
|
| 7. Steps to reproduce
|
|
|
| #### Support Channels
|
| - [GitHub Issues](https://github.com/yourusername/escapeea/issues)
|
| - [MQL5 Community](https://www.mql5.com/en/forum)
|
| - [Discord Support](https://discord.gg/yourinvite)
|
| - Email: support@youremail.com
|
|
|
| ### 🛠 Advanced Troubleshooting
|
|
|
| #### MT5 Log Files
|
| - **Location**: `%AppData%\Roaming\MetaQuotes\Terminal\[HASH]\Logs\`
|
| - **Files**:
|
| - `tester.log` - Strategy Tester logs
|
| - `expert.log` - EA execution logs
|
| - `common.log` - General MT5 logs
|
|
|
| #### Windows Event Viewer
|
| 1. Press Win + R
|
| 2. Type `eventvwr.msc`
|
| 3. Check Windows Logs > Application
|
| 4. Filter for "MetaTrader" or "terminal.exe"
|
|
|
| #### Network Diagnostics
|
| ```powershell
|
| # Test connection to broker
|
| Test-NetConnection yourbroker.com -Port 443
|
|
|
| # Continuous ping test
|
| ping -t mt5.yourbroker.com
|
|
|
| # Check open ports
|
| telnet mt5.yourbroker.com 443
|
| ```
|
|
|
| #### Memory Dump Analysis
|
| 1. Download WinDbg
|
| 2. Attach to MT5 process
|
| 3. Analyze crash dumps in `%LOCALAPPDATA%\CrashDumps`
|
|
|
| ### 🔄 Reset to Defaults
|
| If all else fails:
|
| 1. Backup your settings
|
| 2. Delete the EA's configuration file
|
| 3. Restart MT5
|
| 4. Reapply settings manually
|
|
|
| ## Logging and Monitoring
|
|
|
| The EA provides several visualization tools to monitor position management:
|
| All trading actions are logged to the Experts tab in MetaTrader 5, including:
|
| - Current trading mode (Paper/Live)
|
| - Position management decisions
|
| - Risk management actions
|
| - ML predictions and confidence scores
|
| - Error and warning messages
|
|
|
| ### Chart Display
|
| The chart will display:
|
| - Current mode indicator (Paper/Live)
|
| - Position entry/exit points
|
| - Stop loss and take profit levels
|
| - Position clusters
|
| - ML-based signals (when enabled)
|
| - Risk metrics and account information
|
|
|
| ### Performance Metrics
|
| - Win rate and profit factor
|
| - Maximum drawdown
|
| - Risk-adjusted returns
|
| - Position correlation statistics
|
| - ML model performance (when enabled)
|
|
|
| ## Support
|
|
|
| For support or feature requests, please contact [Your Contact Information].
|
|
|
| ## 📜 License
|
|
|
| EscapeEA is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.
|
|
|
| ## 📞 Support
|
|
|
| For support, feature requests, or bug reports, please:
|
| 1. Open an issue on our [GitHub repository](https://github.com/yourusername/escapeea)
|
| 2. Email support@youremail.com
|
| 3. Join our [Discord community](https://discord.gg/yourinvite)
|
|
|
| ## 🤝 Contributing
|
|
|
| We welcome contributions! Please read our [contributing guidelines](CONTRIBUTING.md) before submitting pull requests.
|
|
|
| ## 📊 Performance
|
|
|
| *Note: Past performance is not indicative of future results.*
|
|
|
| ### Key Metrics (Backtested)
|
| - **Win Rate**: 65-75%
|
| - **Max Drawdown**: < 15%
|
| - **Sharpe Ratio**: > 2.0
|
| - **Average Trade Duration**: 2-4 hours
|
|
|
| ## 🔄 Version History
|
|
|
| ### v2.0.0 (Current)
|
| - Complete architecture overhaul
|
| - Enhanced security features
|
| - Advanced position management
|
| - Machine learning integration
|
|
|
| ### v1.5.0
|
| - Added paper trading engine
|
| - Improved risk management
|
| - Enhanced reporting
|
|
|
| ## 📚 Documentation
|
|
|
| For detailed documentation, please visit our [Wiki](https://github.com/yourusername/escapeea/wiki).
|
|
|
| ## 📦 Installation
|
|
|
| 1. Download the latest release
|
| 2. Copy the files to your MT5 terminal directory
|
| 3. Configure your settings in `EscapeEA.set`
|
| 4. Attach the EA to your chart
|
|
|
| ## ⚠️ Risk Disclosure
|
|
|
| Trading foreign exchange on margin carries a high level of risk and may not be suitable for all investors. The possibility exists that you could sustain a loss of some or all of your initial investment.
|