Files
2025-12-28 03:37:48 +05:30

7.9 KiB
Raw Permalink Blame History

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

Copyright © 2025 Dineth Pramodya
Website: www.dineth.lk
All rights reserved.


Last Updated: December 28, 2025
Developed by: Dineth Pramodya
For detailed technical information, see TECHNICAL_DOCUMENTATION.md