Watch how to download trading robots for free
Find us on Twitter!
Join our fan page
Interesting script?
So post a link to it -
let others appraise it
You liked the script? Try it in the MetaTrader 5 terminal
Libraries

CLiveTradeInfo - CHistoryTradeInfo - library for MetaTrader 5

Hans Alexander Nolawon Djurberg
Hans Alexander Nolawon Djurberg
I've over 15 years experience in C#-Java-Python-C++-MQL4/5 programming and
worked hard over and over on Forex's strategies...I can
say it strongly that I'm professional in MQL4/5 programming...
Views:
58
Rating:
(2)
Published:
MQL5 Freelance 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.

mql4TradeComp diagram

Gold  MT5 Fractal Breakout EA 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 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.

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 MACD Signals

Indicator edition for new platform.