Algorithmic Trading In MQL5 Intermediate Course

MQL5 intermediate course where you will learn how to code from an object-oriented programming approach and fully work with pending orders

Algorithmic Trading in MQL5: OOP & PO

This course will teach you how to code from an object-oriented programming approach and fully work with pending orders.

Trading robots (expert advisors) will be rebuild with an OOP framework and provided with the course.

You will learn:

How to code from an object-oriented programming approach
How to code classes and objects and implement them in an expert advisor

How to send, modify, set expiration and cancel pending orders


How to connect your trading to a VPS

This course includes:


4.5 hours


1 article


6 downloadable resources


Full lifetime access


Access on mobile and TV


Certificate of completion

MQL5 Intermediate Course Description

In this course you will learn how to code with object-oriented programming, how to adapt our simple expert advisor to this new framework and how to work with pending orders.

Introduction To Object-Oriented Programming (OOP)

In the first part we will focus on how to code object-oriented programming in MQL5. We will cover the theory while maintaining a practical approach.

First, we will introduce you to object-oriented programming, covering classes and objects, and then we will explain most OOP basic concepts, such as encapsulation, inheritance or polymorphism, both in theory and code and with examples.


Rebuild Of The Expert Advisor With OOP

In the second part we will take the expert advisor that we built in the previous course, β€œAlgorithmic Trading In MQL5: Code Robots & Free Up Your Time” and we will rebuild that robot with classes and objects of our own.

In case that you did not complete the previous course, you will have available for download a copy of that expert advisor in this course, so you can follow along with the lectures.

Pending Orders

We will cover everything about pending orders and we will create a version of our robot that trades with them.

Here you will learn what type of pending orders we can use in MT5, how to place them, how to modify and delete them and how to set their expiration time.

The concepts learnt in this part apply to all types of pending orders that exist in the MT5 platform, namely: buy limit, sell limit, buy stop, sell stop, buy stop limit and sell stop limit orders.



  • Basic knowledge of the MQL5 programming language

Who is this course for:

  • Algorithmic traders that completed the course β€œAlgorithmic Trading In MQL5: Code Robots & Free Up Your Time” and are willing to keep learning and improve their expert advisor
  • Any algorithmic trader that desires to expand their knowledge of MQL5 and have a better working framework
  • Any algo-trader interested in working with pending orders

This is an intermediate level course. It is not appropriate for beginners as we will not cover the basics of the MQL5 language. Beginners should take instead β€œAlgorithmic Trading In MQL5: Code Robots & Free Up Your Time”.

However, if you took the time to complete the previous course, or you have basic knowledge of MQL5, then you are ready to take this MQL5 intermediate course.

MQL5 Intermediate Course Content

Section 1: Introduction

1- Disclaimer

2- Welcome

3- Starting Point (i): Review at the Simple Moving Average Expert Advisor Strategy

4- Starting Point (ii): Review at the Simple Moving Average Expert Advisor Code

5- Starting Point (iii): How the Expert Advisor works in backtest

Section 2: Introduction to OOP, Classes & Objects

6- Part 1: OOP Fundamentals

7- Classes & Objects

8- Classes & Objects in MQL5: Car Class

9- Classes & Objects in MQL5: Car Object

10- Classes & Objects in MQL5: Indicator Examples

11- Class Methods

12- Constructors and Destructors

13- Encapsulation and Access Modifiers

14- Inheritance and Derived Classes (i)

15- Inheritance and Derived Classes (ii)

16- Polymorphism and Overloading

17- Polymorphism and Virtual Functions

Section 3: Rebuilding the EA - CTrade Class

18- Part 2: Rebuilding The EA With OOP

19- CTrade Class Declaration

20- Class Constructor

21- Request Variable Setters

22- A Single EA for Hedging and Netting Accounts

23- SelectPosition Method

24- Order Placement

25- Modification of Positions

26- Closing Trades

27- Implementation of CTrade Class to our Expert Advisor

Section 4: Rebuilding the EA - CPM Position Management Class

28- CPM Class

29- AdjustStops, SL & TP

30- Trailing Stop Loss

31- Break Even

32- Implementation of CPM Class to our EA

Section 5: Rebuilding the EA - CBar Class

33- CBar Class: Declaration and Methods

34- CBar Class: Bar Information Methods

35- Implementation of CBar to our EA

Section 6: Rebuilding the EA - CIndicator Class

36- CIndicator Class

37- CIndicator Methods

38- CiMA Class

39- MA Signals

40- CiBands Class

41- CiBands Upper and Lower Bands

42- Implementation of CiMA to our EA

43- Testing the EA v2.0

44- MQL5 Library Classes

Section 7: Pending Orders

45- Part 3: Pending Orders

46- Types of Pending Orders

47- Placement Of Pending Orders i

48- Placement Of Pending Orders ii

49- Modification Of Pending Orders

50- Expiration Time

51- Delete Pending Order

52- Get Tickets Of Pending Orders

53- Coding the Pending Order EA Version

54- Testing the Pending Order EA Version

Section 8: Additional & Final Section

55- Additional & Final Section

56- Market Closed Tester Error

57- Market Closed Tester Error Solution

58- About VPS (i)

59- About VPS (ii)

60- Course Conclusion