Files
dbasket-EA/[agent]docs/QUICK_START.md
T

351 lines
7.9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# D-Basket EA - Quick Start Guide
## Installation
### 1. Copy Files to MT5
Copy the entire `MQL5` folder structure to your MetaTrader 5 data directory:
**Windows**: `C:\Users\[YourName]\AppData\Roaming\MetaQuotes\Terminal\[Instance]\MQL5\`
**File Structure**:
```
MQL5/
├── Experts/
│ └── DBasketEA.mq5
└── Include/
└── DBasket/
├── DBasket_Defines.mqh
├── DBasket_Structures.mqh
├── DBasket_Logger.mqh
├── DBasket_CorrelationEngine.mqh
├── DBasket_SignalEngine.mqh
├── DBasket_TradeWrapper.mqh
├── DBasket_PositionManager.mqh
└── DBasket_RiskManager.mqh
```
### 2. Compile in MetaEditor
1. Open MetaEditor (F4 in MT5)
2. Navigate to `Experts/DBasketEA.mq5`
3. Click Compile (F7)
4. Verify: **0 errors, 0 warnings**
### 3. Attach to Chart
1. Open AUDCAD chart (any timeframe, M15 or H1 recommended)
2. Drag `DBasketEA` from Navigator onto chart
3. Configure parameters (see below)
4. Enable AutoTrading (Ctrl+E)
---
## Essential Parameters
### Minimum Configuration
```
Symbol Suffix: [leave blank or enter broker suffix like ".m"]
Entry Z-Score: 2.5
Exit Z-Score: 0.5
Min Correlation: 0.75
Fixed Lot Size: 0.01
Max Drawdown: 15.0
Daily Loss Limit: 100.0
```
### Critical Settings
> ⚠️ **MUST CONFIGURE**
>
> - **Symbol Suffix**: If your broker uses suffixes (e.g., AUDCAD.m), enter it here
> - **Magic Number**: Change if running multiple EAs
> - **Max Drawdown**: Set according to your risk tolerance
---
## Pre-Flight Checklist
Before running the EA, verify:
- [ ]**Hedging account** (not netting) - EA will fail on netting accounts
- [ ] ✅ All 3 symbols available: AUDCAD, NZDCAD, AUDNZD
- [ ] ✅ AutoTrading enabled in MT5 (Ctrl+E)
- [ ] ✅ EA allowed to trade (Tools → Options → Expert Advisors)
- [ ] ✅ Sufficient margin for 3 positions
- [ ] ✅ Spreads reasonable (< 3 pips per symbol)
---
## First Backtest
### Strategy Tester Setup
1. **Symbol**: AUDCAD
2. **Timeframe**: M15 or H1
3. **Period**: 2023.01.01 - 2025.01.01 (1 year minimum)
4. **Model**: Every tick based on real ticks
5. **Deposit**: 10,000 (or your account size)
6. **Leverage**: 1:100 (or your broker's leverage)
### Expected Results
- **Trade Count**: 50-200 baskets per year (depends on parameters)
- **Win Rate**: Target > 65%
- **Profit Factor**: Target > 1.3
- **Max Drawdown**: Should stay below configured limit
### Visual Mode
Enable visual mode to see:
- When baskets open/close
- Z-score values in real-time
- Circuit breaker status
- Performance metrics on chart
---
## Understanding the Display
The EA shows real-time metrics on the chart:
```
=== D-Basket EA Risk Monitor ===
Status: NORMAL
Net P/L: $125.50 (1.3%)
Daily P/L: $45.20
Drawdown: 3.2% (Max: 5.8%)
Baskets: 12 | Win Rate: 75.0%
Consecutive Losses: 0
```
### Status Indicators
- **NORMAL**: Trading allowed, all systems operational
- **WARNING**: Risk levels elevated, warnings logged
- **HALTED**: Circuit breaker tripped, trading stopped
---
## Common Scenarios
### Scenario 1: EA Opens a Basket
**What happens**:
1. Z-score exceeds entry threshold (e.g., -2.7)
2. All 8 filters pass
3. EA opens 3 positions simultaneously:
- AUDNZD: BUY 0.01 lots
- AUDCAD: SELL 0.01 lots
- NZDCAD: BUY 0.01 lots
**What to check**:
- All 3 positions opened successfully
- Magic number matches on all positions
- Comment shows basket ID (e.g., "DBasket_1")
### Scenario 2: EA Closes a Basket
**What happens**:
1. Z-score returns to exit threshold (e.g., -0.3)
2. EA closes all 3 positions
3. P&L is recorded and metrics updated
**What to check**:
- All 3 positions closed
- Win/loss recorded correctly
- Metrics updated on chart
### Scenario 3: Circuit Breaker Trips
**What happens**:
1. Drawdown reaches 15% (or configured limit)
2. EA status changes to "HALTED"
3. No new baskets will open
4. Existing basket may be closed (emergency exit)
**What to do**:
- Review what caused the drawdown
- Check if parameters need adjustment
- Manually reset circuit breaker if appropriate
- Consider reducing risk parameters
---
## Troubleshooting
### EA Not Opening Trades
**Check**:
1. Circuit breaker status (should be NORMAL)
2. Current z-score (use visual mode to see)
3. Correlation level (must be > min threshold)
4. Spreads (must be < max threshold)
5. Trading hours (must be within configured window)
6. Logs for filter rejection reasons
### Partial Basket Opened
**What happened**:
- One or two legs opened, but not all three
- EA automatically rolled back (closed opened positions)
**Check**:
- Logs for error messages
- Broker execution quality
- Margin availability
- Symbol tradability
### High Drawdown
**Actions**:
1. Stop EA immediately
2. Review recent trades
3. Check if correlation broke down
4. Consider more conservative parameters:
- Increase entry z-score (e.g., 3.0)
- Increase min correlation (e.g., 0.80)
- Reduce lot size
- Lower max drawdown limit
---
## Parameter Optimization
### Optimization Ranges
Use Strategy Tester's optimization feature:
| Parameter | Min | Max | Step |
|-----------|-----|-----|------|
| Entry Z-Score | 2.0 | 3.5 | 0.25 |
| Exit Z-Score | 0.3 | 1.0 | 0.1 |
| Min Correlation | 0.70 | 0.85 | 0.05 |
| Lookback Period | 150 | 350 | 50 |
### Optimization Criterion
The EA's `OnTester()` function returns a custom score:
```
score = (profit / drawdown) × profit_factor × win_rate
```
This prioritizes:
- Risk-adjusted returns
- Consistent profitability
- High win rate
---
## Risk Management
### Circuit Breaker Triggers
| Condition | Warning | Trip |
|-----------|---------|------|
| Drawdown | 8% | 15% |
| Daily Loss | - | $100 or 5% |
| Margin Level | 500% | 200% |
| Consecutive Losses | - | 6 |
### Manual Intervention
**When to intervene**:
- Circuit breaker trips repeatedly
- Win rate drops below 50%
- Correlation between pairs breaks down
- Broker execution quality degrades
**How to intervene**:
1. Stop EA
2. Close any open baskets manually
3. Review parameters
4. Restart with adjusted settings
---
## Best Practices
### 1. Start Small
- Begin with minimum lot size (0.01)
- Test on demo account for 1+ month
- Gradually increase lot size after validation
### 2. Monitor Daily
- Check circuit breaker status
- Review daily P&L
- Verify correlation remains stable
- Check for error logs
### 3. Regular Optimization
- Reoptimize parameters quarterly
- Use walk-forward analysis
- Compare live results to backtest
### 4. Broker Selection
- Choose broker with tight spreads
- Ensure hedging is allowed
- Verify fast execution (< 500ms)
- Check commission structure
---
## Support
### Log Files
Enable file logging for detailed records:
```
Log Level: INFO (or DEBUG for troubleshooting)
Log to File: true
```
Logs saved to: `MQL5/Files/DBasket_[date].log`
### Documentation
- **README.md** - User guide and installation
- **TECHNICAL_DOCUMENTATION.md** - Architecture and diagrams
- **DEVELOPMENT_SUMMARY.md** - Project overview
### Common Questions
**Q: Can I run this on a netting account?**
A: No, hedging account is mandatory. The EA will fail initialization on netting accounts.
**Q: How many trades per week?**
A: Typically 2-10 signals per week at default parameters. Depends on market volatility.
**Q: What's the minimum account size?**
A: Recommended minimum $1,000 for 0.01 lot size with proper risk management.
**Q: Can I run multiple instances?**
A: Yes, but use different magic numbers for each instance.
---
## Next Steps
1. ✅ Install and compile EA
2. ⏳ Run backtest on 1 year of data
3. ⏳ Optimize parameters
4. ⏳ Deploy to demo account
5. ⏳ Monitor for 1+ month
6. ⏳ Consider live deployment
---
## 📄 License & Copyright
**Copyright © 2025 Dineth Pramodya**
**Website**: [www.dineth.lk](https://www.dineth.lk)
**All rights reserved.**
---
*Last Updated: December 28, 2025*
*Developed by: Dineth Pramodya*
*For detailed technical information, see TECHNICAL_DOCUMENTATION.md*