1013 Zeilen
34 KiB
Markdown
# 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.
|