- Added comprehensive MQ4/MQ5 comparison documentation (60+ pages) - Added MT4 EA implementation plan and tracking documents (60+ pages) - Phase 1: Core infrastructure with input parameters and data structures - Phase 2: Bar detection system for H4, M30, M15 timeframes - Phase 3: Pattern detection logic (Regular/Irregular Buy/Sell patterns) - Reference files: FINAL_H4_ZONES.mq4, MultiTimeframeZoneEA.mq5, Strategy.md
7.2 KiB
MT4 EA Implementation - Quick Summary
Full Plan: mt4-ea-implementation-plan.md
Date: November 4, 2025
Overview
Creating a Multi-Timeframe Zone Expert Advisor for MT4 that implements the Strategy.md requirements:
- H4 zone detection (4 pattern types)
- M30 confirmation zones
- M15 entry zones
- Automated trade execution
Architecture Decision: Monolithic with Parallel Arrays
Why not OOP?
- MT4 has unreliable support for dynamic arrays of structs
- Proven approach from
FINAL_H4_ZONES.mq4uses parallel arrays - Simpler debugging and maintenance for single-file EA
Data Structure:
// H4 Zone Storage (50 max)
double h4_ZoneHighs[50];
double h4_ZoneLows[50];
datetime h4_ZoneTimes[50];
bool h4_ZoneIsReversed[50];
string h4_ZoneTypes[50];
bool h4_ZoneMonitoringM30[50];
int h4_M30ChildIndex[50];
int h4_ZoneCount = 0;
// M30 Zone Storage (100 max) - similar structure
// M15 Zone Storage (200 max) - similar structure + order tickets
10 Implementation Phases
| Phase | Focus | Deliverable | Hours |
|---|---|---|---|
| 1 | Infrastructure | Working skeleton EA | 2 |
| 2 | Bar Detection | New bar detection all TFs | 1 |
| 3 | Pattern Logic | Port from MQ4 indicator | 3 |
| 4 | H4 Zones | Create, reverse, delete | 4 |
| 5 | M30 Zones | Monitoring & confirmation | 4 |
| 6 | M15 Zones | Entry detection & orders | 6 |
| 7 | Order Management | Monitor & lifecycle | 3 |
| 8 | Visual Display | Zones + info panel | 3 |
| 9 | Error Handling | Validation & logging | 2 |
| 10 | Testing | Strategy tester validation | 4-10 |
Total Estimate: 20-30 hours
Critical Corrections to Strategy
Order Type Correction
Strategy states: "Place Buy Limit at zone High"
Problem: Limit orders are BELOW current price for buys
Solution: Use Buy Stop at High and Sell Stop at Low
Stop Loss Placement
Strategy: "SL at zone boundary"
Implementation: SL = zone boundary ± StopLossPips buffer
Example: Buy Stop at High, SL at (Low - StopLossPips×Point)
Key Features
H4 Level
✅ 4 pattern types (Regular/Irregular Buy/Sell)
✅ Zone lifecycle: Create → Break → Reverse → Break → Delete
✅ Dashed rectangles → Solid on reversal
✅ Visible on all timeframes
M30 Level
✅ Monitors only when price enters H4 zone
✅ Checks only NEW bars after entry
✅ One-break deletion (no reversal)
✅ Links to parent H4 zone
M15 Level
✅ Monitors only when price enters M30 zone
✅ Places pending order immediately
✅ One trade per M15 zone
✅ Links to parent M30 zone
Order Management
✅ Buy Stop at M15 High, SL at M15 Low
✅ Sell Stop at M15 Low, SL at M15 High
✅ TP calculated from input pips
✅ Cancels orders when parent zones break
MT4 Compatibility Notes
What we CAN'T use (MQL5 only):
- ❌ Classes and objects
- ❌
CTradelibrary - ❌
MqlRates[]structures - ❌
CopyRates()function - ❌ Position concept
What we WILL use:
- ✅ Parallel arrays
- ✅ Global functions
- ✅
iOpen/iClose/iHigh/iLow - ✅
OrderSend()directly - ✅ Order ticket tracking
- ✅ Simple structs (for data passing only)
Testing Strategy
Per-Phase Testing
Each phase must pass before moving to next:
- Phase 3: Compare pattern detection with original indicator
- Phase 4: Test H4 zone lifecycle manually
- Phase 5: Verify M30 monitoring triggers correctly
- Phase 6: Verify order placement with correct parameters
Integration Testing
- Full cascade: H4 → M30 → M15 → Order
- Multiple concurrent zones
- Zone break cascades
- Reversal handling
Strategy Tester
- 3+ months historical data
- Visual mode verification
- Multiple scenario testing
- Edge case validation
Input Parameters
input double LotSize = 0.01; // Fixed lot size
input int StopLossPips = 30; // Additional SL buffer
input int TakeProfitPips = 60; // TP distance
input int MagicNumber = 123456; // EA identifier
input int Slippage = 3; // Max slippage
input int RecentBarsToCheck = 10; // Pattern scan depth
input bool EnableDebugLogs = false; // Console logging
Function Organization
Main Flow
OnTick()
├─► CheckNewBars() → ProcessH4/M30/M15
├─► CheckH4ZoneEntries() → Start M30 monitoring
├─► CheckM30ZoneEntries() → Start M15 monitoring
├─► MonitorPendingOrders() → Track execution
└─► UpdateDisplay() → Refresh visuals
Pattern Detection (Reusable)
IsRegularBuy(ENUM_TIMEFRAMES tf, int index)
IsIrregularBuy(ENUM_TIMEFRAMES tf, int index)
IsRegularSell(ENUM_TIMEFRAMES tf, int index)
IsIrregularSell(ENUM_TIMEFRAMES tf, int index)
Zone Management (Per Timeframe)
H4: Create, Reverse, Delete, Draw
M30: Create, Delete, Draw
M15: Create, Draw, PlaceOrder
Risk Considerations
Limitations
- Fixed lot size (no dynamic risk management)
- Array size limits (50/100/200 per TF)
- No trade management (trailing, breakeven)
- No session filters
Safety Features
- Magic number isolation
- One trade per M15 zone
- Input validation
- Comprehensive error logging
- Order cancellation on parent breaks
Success Criteria
Must Have:
- ✅ All 4 patterns detected correctly
- ✅ Full H4 → M30 → M15 cascade works
- ✅ Orders placed with correct parameters
- ✅ Zone lifecycle managed properly
- ✅ Visual display accurate
- ✅ No runtime errors in tester
Nice to Have:
- Code comments and documentation
- Debug logging system
- Info panel with stats
- Clean code organization
Next Steps
- Review Plan: Approve implementation approach
- Start Phase 1: Create EA skeleton (2 hours)
- Incremental Development: Complete phases 2-10 sequentially
- Continuous Testing: Validate each phase before proceeding
- Final Testing: Full strategy tester validation
- Demo Deployment: Live testing on demo account
File Location
MQL4/
└── Experts/
└── _Thivyam/
└── MultiTimeframeZone/
└── MultiTimeframeZoneEA_MT4.mq4 (single file)
Development Timeline
Week 1: Phases 1-4 (Infrastructure + H4 zones)
Week 2: Phases 5-6 (M30/M15 zones + orders)
Week 3: Phases 7-8 (Management + display)
Week 4: Phases 9-10 (Testing + refinement)
Minimum Viable Product: End of Week 2
Production Ready: End of Week 4
Support Documentation
- Full Implementation Plan: mt4-ea-implementation-plan.md (50+ pages)
- Reference Code: FINAL_H4_ZONES.mq4 (pattern detection)
- Strategy Rules: Strategy.md (requirements)
- MQ4 vs MQ5 Analysis: COMPARISON_MQ4_vs_MQ5.md (architecture insights)
Status: Ready for Development
Risk: Medium (complex multi-TF logic)
Confidence: High (proven pattern logic + clear plan)
Quick Reference During Development:
Phase 1-2: Focus on bar detection infrastructure
Phase 3: Port pattern detection from indicator
Phase 4: Build H4 zone lifecycle
Phase 5-6: Add M30/M15 cascade
Phase 7: Add order execution
Phase 8-10: Polish and test
Remember: Test each phase thoroughly before moving forward!
End of Quick Summary