Join our fan page
- Views:
- 58
- Rating:
- Published:
-
Need a robot or indicator based on this code? Order it on Freelance Go to Freelance
Introduction
MQL4TradeCompat is a compatibility framework that recreates the classic MQL4 order-centric trading model on top of the native MQL5 trading architecture.
The library allows legacy MQL4-style code to continue using familiar functions such as:
OrderSelect() OrderSend() OrderModify() OrderClose() OrderDelete() OrdersTotal() OrdersHistoryTotal()
while internally translating all operations into native MQL5 Position, Order, Deal, and History APIs.
Design Goal
MQL4 is based on a single order model:
Open Orders Pending Orders History Orders
MQL5 introduced a more complex structure:
Positions Orders Deals History Orders
The primary goal of this framework is to hide this complexity and expose a unified MQL4-compatible interface.
Core Components
1. CMQL4TradeCompat
Role
Public compatibility facade.
Responsibilities
OrderSelect() OrderSend() OrderModify() OrderClose() OrderDelete() OrdersTotal() OrdersHistoryTotal()
Purpose
Provides the same programming experience as MQL4 while internally dispatching requests to MQL5 APIs.
2. CLiveTradeInfo
Role
Live Trade Repository.
Responsibilities
Unifies:
Open Positions Pending Orders
into a single logical collection.
Key Features
- Position aggregation
- Pending order aggregation
- Unified ticket selection
- MQL4-style indexing
- Snapshot-based cache
- Chronological sorting
3. CHistoryTradeInfo
Role
History Reconstruction Engine.
Responsibilities
Builds logical historical trade records from:
Deals Closed Positions Historical Orders
Key Features
- Position reconstruction from deal chains
- Closed-trade aggregation
- Pending-order history support
- Profit/commission/swap calculation
- Weighted close-price calculation
- Historical ticket tracking
Architecture Flow
Legacy MQL4 EA | v +----------------------+ | CMQL4TradeCompat | +----------+-----------+ | +-------+-------+ | | v v +--------+ +---------+ | Live | | History | | Repository | Engine | +----+---+ +----+----+ | | +------+------+ | v +----------------------+ | Native MQL5 API | +----------------------+ | CTrade | | CPositionInfo | | COrderInfo | | CDealInfo | | CHistoryOrderInfo | +----------------------+
MQL4 Compatibility Mapping
| MQL4 Function | Internal MQL5 Layer |
|---|---|
| OrderSelect | Live/History Repository |
| OrderSend | CTrade |
| OrderClose | PositionClose / PartialClose |
| OrderModify | PositionModify / OrderModify |
| OrderDelete | OrderDelete |
| OrdersTotal | Live Repository |
| OrdersHistoryTotal | History Repository |
Repository Strategy
Instead of directly coupling every API call to MQL5 objects, the framework introduces a repository layer.
Live Repository
Positions
+
Pending Orders
↓
Unified Trade Pool History Repository
Deals
+
Historical Orders
↓
Unified Historical Pool This design makes MQL4 emulation significantly cleaner and easier to maintain.
Testing Strategy
The framework includes a dedicated integration test suite.
Validated Operations
✅ Market Buy
✅ Pending Order Placement
✅ Order Selection
✅ Order Modification
✅ Position Modification
✅ Position Close
✅ Pending Order Deletion
✅ Live Repository Refresh
✅ History Repository Validation
Test Environment
Demo Account Real Trading Server Native MT5 Engine
The framework was validated through actual trade execution rather than mock testing.
Risk: The demo test is for testing purposes, is not for live trading.
- Output:
========== MQL4TradeCompat test started ========== Symbol: EURUSD | volume: 0.01 | digits: 5 PASS: Symbol market data is valid PASS: OrderSend OP_BUY PASS: OrderSelect opened position by ticket PASS: Initial SL/TP are zero PASS: OrderModify open position PASS: Modified Stop Loss verified PASS: Modified Take Profit verified PASS: OrderClose full position PASS: Closed position is no longer in MODE_TRADES PASS: OrderSend OP_BUYLIMIT PASS: OrderSelect pending order by ticket PASS: OrderModify pending order PASS: OrderDelete pending order PASS: Deleted pending order is no longer in MODE_TRADES ========== MQL4TradeCompat test summary ========== PASS: 14 | FAIL: 0 | SKIP: 0 RESULT: PASS ========== MQL4TradeCompat test finished ==========
Technical Summary
MQL4TradeCompat is not merely a wrapper library. It is a lightweight MQL4 runtime emulation layer that reconstructs the classical MQL4 trading environment on top of the MQL5 execution model. Through dedicated live and historical repositories, the framework provides a unified order-centric view that simplifies migration of legacy Expert Advisors while preserving native MQL5 execution capabilities.

Gold MT5 Fractal Breakout EA
A MetaTrader 5 (MT5) Expert Advisor based on breakouts of prior swing highs and lows. The EA places pending orders around confirmed fractal structures and manages each trade with defined stop-loss, take-profit, and optional position-management rules.
Opening Range Breakout with NR4 / NR7 Contraction Filters
An opening range breakout Expert Advisor that places stop orders a set distance from the session open, with optional NR4, NR7, inside-day and 3-bar narrow-range filters and a no-filter control mode for testing.
A manual-trade manager for MetaTrader 5: completed Renko bricks, configurable break-even and trailing Stop Loss, plus an on-chart Renko dashboard. No automatic entries.
A manual-trade manager for MetaTrader 5: completed Renko bricks, configurable break-even and trailing Stop Loss, plus an on-chart Renko dashboard. No automatic entries.
MACD Signals
Indicator edition for new platform.