This repository has been archived on 2026-01-12. You can view files and clone it, but cannot push or open issues or pull requests.
Files
MAEA/plans/MAEA-summary.md
Kunthawat Greethong db575179ae feat(maea): migrate from MQL4 to MQL5 and simplify strategy
Migrate MAEA Expert Advisor from MetaTrader 4 to MetaTrader 5 platform with
significant strategy simplification and architectural improvements.

Key changes:
- Platform: MQL4 → MQL5
- Indicators: Reduced from 5 lines (3 EMAs + 2 borders) to 2 EMAs with zone fill
- Strategy: Removed pullback signals and dynamic lot sizing
- Lot sizing: Changed from dynamic (0.01/0.02) to fixed 0.01 lot
- Stop loss: Changed from Border Lines to opposite EMA (Buy: EMA Low, Sell: EMA High)
- Signal logic: Added opposite signal close for reversal protection
- New filter: Added minimum zone width filter (100 points)
- Documentation: Updated implementation plans and project summary
- New files: Added AGENTS.md, MAEA_Indicator.mq5, and opencode.jsonc

BREAKING CHANGE: Complete rewrite from MQL4 to MQL5 with simplified strategy.
Previous MAEA.mq4 and README.md deleted. New implementation requires MetaTrader 5.
2026-01-03 14:25:25 +07:00

7.7 KiB

MAEA Project Summary

Project Overview

MAEA (Moving Average Expert Advisor) - An advanced trend-following trading robot for MetaTrader 5 with sophisticated filtering and risk management features.

Repository: https://git.moreminimore.com/kunthawat/MAEA
Timezone: Thailand (UTC+7)

Core Strategy

Indicator System (2 EMA Lines + Zone)

  1. EMA High (Light Blue) - EMA of High prices, period 30
  2. EMA Low (Orange) - EMA of Low prices, period 30
  3. Zone Fill (Light Yellow, transparent) - Area between EMA High and EMA Low

Signal Types

1. Breakthrough Signal

  • Buy: Close price breaks above EMA High (must have previous close inside zone)
  • Sell: Close price breaks below EMA Low (must have previous close inside zone)
  • Purpose: Triggers position opening
  • Verification: Previous bar close must be inside zone between EMA High and EMA Low

2. Opposite Signal Close

  • Close Buy: When sell signal occurs (price breaks below EMA Low)
  • Close Sell: When buy signal occurs (price breaks above EMA High)
  • Immediate Action: Position closes before checking for new trade

Order Management

  • Single Position: Only one position open at a time (MT5 uses positions, not orders)
  • Fixed Lot Size: 0.01 lot for all trades
  • Stop Loss: At opposite EMA (Buy: EMA Low, Sell: EMA High)
  • Reverse Protection: Close position when opposite signal occurs
  • Min Zone Width: Zone must be at least 100 points to trade
  • Take Profit: Target in USD (default $5)
  • Breakeven: Move SL to entry at X points profit (default 100)
  • Trailing Stop: Trail by X points after breakeven (default 100)

Advanced Filters

1. Volume Filter

  • Calculate 20-bar volume average
    • Trade only when current volume > average
    • Ensures sufficient market activity
    • Note: MT5 uses tick volume by default (similar to MT4)

2. Spread Filter

  • Maximum allowed spread: 30 points
  • Prevents trading during high spread periods

3. Multiple Timeframe (MTF) Filter (Optional)

  • Trading Timeframe: H1
  • Filter Timeframe: D1
  • Logic:
    • D1 close > D1 EMA High: Only buy positions allowed (bullish)
    • D1 close < D1 EMA Low: Only sell positions allowed (bearish)
    • D1 close between: No positions allowed (no trend)
  • Can be enabled/disabled

4. News Filter (Optional)

  • Avoid specific hours (default: 14, 15, 20, 21)
  • Avoid specific days (default: 1, 5)
  • All times in Thailand timezone (UTC+7)
  • Can be enabled/disabled

5. Risk Management

  • Max Drawdown: Percentage-based protection (default 10%)
  • Stops trading if drawdown exceeds limit
  • Resumes trading when drawdown is below limit

6. Zone Width Filter

  • Min Zone Width: 100 points minimum before trading
  • Ensures meaningful trend setups
  • Prevents trading during tight consolidation

Implementation Phases

Phase 1: Project Setup & Git Configuration (3 tasks)

  • Create MQL5 project structure
  • Initialize Git repository
  • Configure remote to Gitea server

Phase 2: Core EA Structure (4 tasks)

  • Create MAEA.mq5 with basic framework
  • Define all input parameters
  • Set up indicator buffers
  • Initialize global variables

Phase 3: Indicator Calculations (4 tasks)

  • Implement EMA calculations (High and Low only)
  • Implement zone fill between EMA High and EMA Low
  • Add visual indicators with colors (Light Blue, Orange, Light Yellow fill)
  • Implement Volume average calculation

Phase 4: Signal Detection (3 tasks)

  • Implement breakthrough signal detection
    • Check if previous close inside zone
    • Check if current close broke above EMA High or below EMA Low
  • Implement opposite signal detection and position closing
    • Close buy position when sell signal occurs
    • Close sell position when buy signal occurs
  • Implement minimum zone width check (100 points)

Phase 5: Multiple Timeframe Filter (3 tasks)

  • Implement D1 EMA calculations
  • Implement MTF filter logic
  • Add enable/disable toggle

Phase 6: Additional Filters (4 tasks)

  • Implement volume filter
  • Implement spread filter
  • Implement news filter (Thailand timezone)
  • Add enable/disable toggle for news filter

Phase 7: Order Management (7 tasks)

  • Implement position opening with all filters
  • Implement fixed lot sizing (0.01 lot)
  • Implement Stop Loss placement at opposite EMA
  • Implement Take Profit calculation
  • Implement Breakeven logic
  • Implement Trailing Stop logic
  • Implement single position restriction

Phase 8: Risk Management (3 tasks)

  • Implement max drawdown calculation
  • Implement drawdown protection
  • Implement trading resume logic

Phase 9: Order Monitoring & Management (6 tasks)

  • Implement opposite signal checking on each tick
  • Close position when opposite signal detected
  • Implement Take Profit checking
  • Implement Breakeven checking and SL modification
  • Implement Trailing Stop checking and SL modification
  • Implement Stop Loss checking
  • Implement position closure logic

Phase 10: Testing & Validation (8 tasks)

  • Test EMA High and Low calculations
  • Test zone fill visualization
  • Test zone width calculation
  • Test minimum zone width filter (100 points)
  • Test breakthrough signal detection (with zone check)
  • Test opposite signal detection and position closing
  • Test all filters
  • Test position opening with fixed 0.01 lot
  • Test TP, SL, breakeven, and trailing stop
  • Test drawdown protection
  • Test visual indicators display

Phase 11: Documentation & Deployment (5 tasks)

  • Create comprehensive README.md
  • Add parameter descriptions and usage instructions
  • Add troubleshooting guide
  • Commit initial code to Git
  • Push to Gitea repository and verify

Total Tasks: 51

Key Features Summary

Simple Trend Following: EMA-based with visual zone fill
Clear Breakthrough Signals: Zone breakout with previous bar confirmation
Reverse Protection: Positions close when opposite signal occurs
Minimum Zone Width: 100 points requirement for meaningful setups
Fixed Lot Size: Consistent 0.01 lot position sizing
Comprehensive Filters: Volume, spread, MTF, news, and drawdown protection
Risk Management: TP in USD, SL at opposite EMA, breakeven, trailing stop
Visual Indicators: 2 EMAs with light yellow zone fill
Flexible Configuration: All features can be enabled/disabled
Single Position Management: Prevents over-trading
Timezone Aware: Thailand timezone (UTC+7) for all time-based features

Default Parameters

Parameter Value Description
EMA Period 30 Period for EMA High and EMA Low
Lot Size 0.01 Fixed lot size for all trades
Take Profit $5 Target profit in USD
Breakeven Points 100 Points to trigger breakeven
Trailing Stop Points 100 Trail distance after breakeven
Max Spread 30 points Maximum allowed spread
Volume Period 20 Bars for volume average
Min Zone Width 100 points Minimum zone width to trade
Max Drawdown 10% Maximum drawdown percentage
MTF Filter true Enable/disable MTF filter
News Filter true Enable/disable news filter

Technical Specifications

  • Platform: MetaTrader 5
  • Language: MQL5
  • Trading Timeframe: H1 (recommended)
  • Filter Timeframe: D1 (for MTF)
  • Currency Pairs: All pairs (user-selectable)
  • Account Types: Any MT5 account
  • Server Timezone: Thailand (UTC+7)

Next Steps

The implementation plan is complete and ready for execution. All 50 tasks have been clearly defined and organized into 11 logical phases. The plan includes:

  1. Detailed strategy documentation
  2. Visual flow diagram
  3. Complete implementation steps
  4. Input parameters table
  5. Testing checklist
  6. Technical specifications

Ready to proceed with implementation in Code mode.