9.6 KiB
MQL4 Instruction Files - Creation Summary
Overview
Created comprehensive MQL4 instruction files based on real-world experience from developing the MultiTimeframeZone EA. These files mirror the existing MQL5 instruction structure and provide AI agents with proper context for MQL4 development.
Files Created
1. mql4-syntax-critical.instructions.md
Purpose: Critical syntax rules that prevent compilation errors
Location: .github/instructions/mql4-syntax-critical.instructions.md
Apply To: **/*.mq4,**/MQL4/**/*.mqh
Key Sections:
- Loop Variable Declaration (must declare before for-loop)
- Array Declarations and Sizing
- Order Functions and Trade Operations
- Price and Market Information Functions
- Object Properties and Chart Objects
- String Operations and Formatting
- Time and Date Functions
- Account and Trade Information
- Global Variables vs Input Parameters
- Common Pitfalls and Best Practices
- Compilation and Testing Checklists
- MQL4 vs MQL5 Comparison Table
Critical Rules Covered:
- ✅ Declare loop variables BEFORE for-loop:
int i; for(i=0; i<n; i++) - ✅ Use
OrderSend(),OrderClose(),OrderModify()for trading - ✅ Use
AccountBalance(),AccountEquity()(notAccountInfoDouble()) - ✅ Always call
OrderSelect()before accessing order properties - ✅ Normalize all prices with
NormalizeDouble(price, Digits) - ✅ Handle errors with
GetLastError()andErrorDescription()
2. mql4-experts.instructions.md
Purpose: Expert Advisor development guidelines
Location: .github/instructions/mql4-experts.instructions.md
Apply To: **/MQL4/Experts/_Thivyam/**/*.mq4
Key Sections:
- EA Structure and Organization
- Initialization (
OnInit()) best practices - Deinitialization (
OnDeinit()) cleanup - Main Trading Logic (
OnTick()) patterns - Multi-Timeframe Execution
- Trade Execution Templates
- Position Monitoring
- Risk Management (MANDATORY dynamic lot sizing)
- Pattern Detection (Engulfing patterns)
- Zone Management with Arrays
- Zone Drawing on Charts
- Error Handling
- Visual Display (Info Panels)
- Testing and Validation
- Demo/Trial Version Implementation
Real-World Examples:
- Complete once-per-bar execution pattern
- Multi-timeframe bar detection (H4, M30, M15)
- Pending order placement with full validation
- Position monitoring with trailing stops
- Dynamic lot calculation based on risk %
- Zone storage using fixed-size arrays
- Demo expiry logic
3. mql4-indicators.instructions.md
Purpose: Custom indicator development guidelines
Location: .github/instructions/mql4-indicators.instructions.md
Apply To: **/MQL4/Indicators/_Thivyam/**/*.mq4
Key Sections:
- Indicator Structure and Property Directives
- Buffer Declaration (Plot vs Calculation Buffers)
- OnCalculate() Function Signature and Patterns
- Efficient Calculation Pattern (using prev_calculated)
- Drawing Styles (Line, Histogram, Arrow, etc.)
- Multi-Buffer Indicators
- Arrow Drawing and Symbol Codes
- Multi-Timeframe Indicators
- Using Other Indicators (iMA, iRSI, iStochastic)
- Zone Detection Indicator Example
- Alerts and Notifications
- Performance Optimization
- Repaint vs Non-Repaint Logic
- Common Pitfalls
Complete Examples:
- Moving Average Indicator
- Multi-Buffer Signal Indicator
- Arrow-Based Signal Indicator
- Supply/Demand Zone Indicator
- Support/Resistance Detection
4. mql4-scripts.instructions.md
Purpose: Script development guidelines
Location: .github/instructions/mql4-scripts.instructions.md
Apply To: **/MQL4/Scripts/_Thivyam/**/*.mq4
Key Sections:
- Script Overview (OnStart vs OnTick)
- Script Structure
- Common Script Types:
- Close All Orders Script
- Delete All Objects Script
- Modify All Orders Script
- Account Information Script
- Draw Support/Resistance Lines Script
- Best Practices:
- User Confirmation
- Progress Reporting
- Error Handling
- File Operations
Complete Working Scripts: Each script type includes full, production-ready code with:
- Input parameter validation
- User confirmation dialogs
- Error handling
- Progress feedback
- Result reporting
Updated Files
copilot-instructions.md
Changes Made:
-
Added Section 5: Language-Specific Instructions
- Clear routing to MQL5 vs MQL4 instruction files
- Mandatory reading requirements before coding
- Key rules summary for each language
- Python and compilation verification guidance
-
Reorganized Section 6: Information Sourcing Protocol
- Priority 1: Language-specific instruction files
- Priority 2: Internal documentation
- Priority 3: Official MQL5/MQL4 channels
- Priority 4: General internet search
-
Added Section 7: Key Differences MQL4 vs MQL5
- Side-by-side comparison table
- Critical differences highlighted
- "Golden Rule" for language separation
-
Added Section 8: Workflow for Agentic AI Coders
- 9-step process from identification to commit
- Emphasis on reading instructions first
- Compilation and testing requirements
-
Added Section 9: Common Pitfalls to Avoid
- Universal pitfalls (both languages)
- MQL4-specific pitfalls
- MQL5-specific pitfalls
-
Added Section 10: Success Checklist
- Pre-completion verification checklist
- 11 critical items to verify before marking task complete
Key Learnings from MultiTimeframeZone EA
The instruction files incorporate these real-world lessons:
Syntax Issues Discovered
- Loop Variable Declaration: Must declare before for-loop in both MQL4 and MQL5
- Error Handling: All trade operations need GetLastError() checks
- Price Normalization: Critical for avoiding Error 130 (Invalid Stops)
- Margin Checking: Must verify before placing orders to avoid Error 134
Trade Execution Issues Fixed
- Order Type Error: Used OP_BUYSTOP instead of OP_BUYLIMIT (wrong order type)
- Stop Loss Logic: SL should be at zone boundary, not zone opposite end
- Price Validation: Entry price must respect MODE_STOPLEVEL distance
- Lot Normalization: Must use broker's MODE_LOTSTEP and limits
Zone Management Issues Resolved
- Zone Lifecycle: H4 zones need proper break and reversal tracking
- Zone Deletion: M15 zones must be deleted after order closes
- Visual Styling: Rectangle objects need proper OBJPROP_STYLE settings
- Zone Drawing: Use OBJPROP_BACK=false to avoid filled rectangles
Risk Management Issues Addressed
- No Hardcoded Lots: Always calculate based on risk %
- Dynamic SL Distance: Calculate from zone size or ATR
- Margin Validation: Check before every trade
- Demo Expiry: Implement time-limited trial logic
Instruction File Structure
All instruction files follow this structure:
---
applyTo: "file_pattern"
---
# Title
## CRITICAL: Syntax Compliance
[Reference to critical syntax file]
## Sections
[Organized by topic]
### Code Examples
✅ CORRECT - [Description]
❌ WRONG - [Description]
## Best Practices
[Bullet points]
## Common Pitfalls
[What to avoid]
## Summary
[Checklist format]
Usage by AI Agents
When an AI agent is asked to work with MQL code:
- File Type Detection: Check file extension (.mq4 vs .mq5)
- Read Critical Syntax: Read
mql4-syntax-critical.instructions.mdormql5-syntax-critical.instructions.md - Read Type-Specific: Read experts/indicators/scripts instructions based on code type
- Follow Patterns: Use the code examples as templates
- Verify Checklist: Check all items before marking complete
- Compile & Test: Use compilation-verification.instructions.md
Benefits
For AI Agents:
- Clear, unambiguous rules based on real-world experience
- Complete working examples to use as templates
- Common pitfalls explicitly documented
- Compilation verification process documented
For Human Developers:
- Comprehensive reference for MQL4 development
- Side-by-side MQL4 vs MQL5 comparisons
- Production-ready code examples
- Testing and validation checklists
For Project Quality:
- Consistent code style across all MQL4 projects
- Reduced compilation errors
- Fewer runtime errors
- Better error handling
Files Added to Repository
.github/
├── copilot-instructions.md (UPDATED)
└── instructions/
├── mql4-syntax-critical.instructions.md (NEW)
├── mql4-experts.instructions.md (NEW)
├── mql4-indicators.instructions.md (NEW)
└── mql4-scripts.instructions.md (NEW)
Total Lines Added: ~2,740 lines of comprehensive documentation
Next Steps for Users
- Review the Instructions: Familiarize yourself with the new instruction files
- Test with New Projects: Use these instructions when creating new MQL4 code
- Refine as Needed: Update instructions based on new learnings
- Share with Team: Ensure all developers follow these guidelines
Maintenance
These instruction files should be updated when:
- New syntax issues are discovered
- Better patterns are identified
- MQL4 language updates are released
- Team conventions change
Keep the instruction files synchronized with real-world development experience!
Conclusion
The MQL4 instruction files provide comprehensive, battle-tested guidance for AI agents developing trading systems. They incorporate real-world lessons from the MultiTimeframeZone EA project and ensure consistent, high-quality code across all _Thivyam projects.
Key Achievement: AI agents now have the same level of instruction quality for MQL4 as they had for MQL5, ensuring consistent development standards across both platforms.