MQL4 Programming for Traders: Build Robust Trading Robots!
4.5 (27 ratings)
Instead of using a simple lifetime average, Udemy calculates a course's star rating by considering a number of different factors such as the number of ratings, the age of ratings, and the likelihood of fraudulent ratings.
1,254 students enrolled
Wishlisted Wishlist

Please confirm that you want to add MQL4 Programming for Traders: Build Robust Trading Robots! to your Wishlist.

Add to Wishlist

MQL4 Programming for Traders: Build Robust Trading Robots!

The Ultimate Algo Trading Course - experience trading zen by learning how to code your own expert advisors and scripts.
4.5 (27 ratings)
Instead of using a simple lifetime average, Udemy calculates a course's star rating by considering a number of different factors such as the number of ratings, the age of ratings, and the likelihood of fraudulent ratings.
1,254 students enrolled
Created by Enrico Lambino
Last updated 2/2016
English
Price: $195
30-Day Money-Back Guarantee
Includes:
  • 6.5 hours on-demand video
  • 9 Articles
  • 66 Supplemental Resources
  • Full lifetime access
  • Access on mobile and TV
  • Certificate of Completion
Have a coupon?
What Will I Learn?
Learn more about the markets faster by learning how to develop and test trading systems based on your own ideas!
Create 60+ MQL4 scripts and 15+ expert advisors!
Code expert advisors and scripts for oneself and others!
Learn how to automate the various aspects of trading that may be hard to setup manually - from simple trading tasks to entire trading strategies!
Learn core concepts in programming that are also shared with other programming languages (C++, Java, Javascript, etc.)!
View Curriculum
Requirements
  • Basic computer skills
  • A computer with internet connection
  • Metatrader 4
  • Windows-based operating system, or a Linux-based system to run the trading platform via Wine (Linux/Mac) or CrossOver (Mac)
Description

Become an MQL4 Programmer!

If you are a trader looking for ways to make trading simpler and more efficient, you've come to the right place. Leverage technology to your advantage!

If you are a trader-programmer who would like to bring your programming and algorithmic trading skills to the next level, this course is for you. No need to reinvent the wheel!

If you are somebody just looking for a new hobby, try algorithmic trading through this course. There are only so many hobbies where you are compensated for doing something great!

This course is the most intensive, yet straightforward, course for the MQL4 programming language - based on years of experience of an MQL4 programmer.

Probably the fastest way to learn how to build complex trading robots and scripts using the MQL4 programming language, for beginners, non-programmers, and traders!

The course is designed, with the beginner in mind:

  • Low information diet - take only what you need to move on to the next lesson
  • Learn the rules of trading, which you may use as well to enhance your own manual trading
  • Develop MQL4 programming skills, and learn to apply to solve common problems in both manual and automated trading

By the end of this course, students would be able to independently develop robust and efficient trading robots and scripts based on their own ideas, and expand on their programming knowledge on their own, as an MQL4 programmer!

Who is the target audience?
  • Traders who have little or no experience in programming
  • Programmers who want to get started on trading
  • Beginning traders who would like to learn more about trading by developing trading robots and scripts
  • Novice MQL4 programmers (up to intermediate level) who want to hone their skills!
  • This course is probably not for you if you are looking for more advanced programming approaches (object-oriented programming, deep learning, etc.)
Students Who Viewed This Course Also Viewed
Curriculum For This Course
Expand All 74 Lectures Collapse All 74 Lectures 06:55:06
+
Introduction
4 Lectures 23:57

A short introduction on algorithmic trading and trading robots.

Preview 07:23

A quick guide on how to enable automated trading on MetaTrader.

Preview 1 page

Discover an alternative way of describing processes than simply writing down all the details in text. It is useful when describing complex processes that can be seen in scripts and trading robots.

Preview 08:06

This lesson discusses the basic structure of an expert advisor.

Preview 08:28

Test your knowledge about expert advisors, scripts, and algorithmic trading (in general).

Introductory Quiz
3 questions
+
Phase One: Knowing the Rules
26 Lectures 01:55:09

In this phase, we will learn some of the basics of programming and trading, and how to develop simple trading robots and scripts, based on them.

Welcome to Phase One!
00:11

Logging Data
6 pages

Here, we will learn one of the most simple expert advisors we can create using MQL4 - a hello world application.

Walkthrough: Your First Expert Advisor, Hello World!
04:25

Learn how to code the script version of the hello world expert advisor.

Walkthrough: Script Version of "Hello World"
02:14

Quiz: Expert Advisors and Scripts
5 questions

Learn about the basic data types in MQL4 that are used to store information.

Data Structures Part 1
09:30

Learn about the scope of variables and code blocks in MQL4 programs.

Code Blocks and Variable Scope
06:39

Quiz: Variables and Code Blocks
4 questions

Learn about functions and how they are defined and used in MQL4 programs.

Functions Part 1
11:50

Quiz: Functions
3 questions

Learn about the various types of orders that can be entered, as well as some of their characteristics.

Order Characteristics
08:19

A short quiz on order characteristics.

Quiz: Order Characteristics
3 questions

Learn about predefined variables and how to use them in MQL4 programs.

Data Structures Part 2
3 pages

Learn the different types of trade operations in Metatrader and MQL4.

Types of Trade Operations
2 pages

Learn how trading robots and scripts enter trades on the market using the OrderSend function.

Working with Orders Part 1
07:38

This video demonstrates the use of the OrderSend function in a script in order to enter a buy market order.

Walkthrough: "Buy Order Entry" Script
03:02

Learn how trading robots and scripts closes orders on the market using the OrderClose function.

Working with Orders Part 2
03:15

This video demonstrates the use of the OrderClose function in order to close a specific order on the market, given the ticket ID of that order.

Walkthrough: "Close Order" Script
02:30

Quiz: Sending and Closing Orders
3 questions

Learn about arrays in MQL4, and how they are declared and used in MQL4 programs.

Data Structures Part 3
04:55

Learn about time series, a special type of array, which are used in almost any trading robot.

Data Structures Part 4
02:12

Learn how to access basic information on the chart (open, high, low, close, and open time of a chart bar).

Accessing Basic Chart Information
06:16

Learn about the various types of indicators that are used in Metatrader.

Working with Indicators Part 1
4 pages

Learn about some of the indicator parameters that can often be seen in indicators.

Working with Indicators Part 2
06:04

Learn about line indicators, and how expert advisors and scripts can access their output.

Working with Indicators Part 3
02:06

Learn about the if-statement, which is the simplest type of condition statement.

Condition Statements Part 1
07:00

Learn how to group multiple conditions in a single if-statement.

Condition Statements Part 2
03:48

Learn about the if-else statement.

Condition Statements Part 3
05:33

Quiz: Condition Statements
3 questions

Learn about the three types of variables in MQL4 that have global scope - the global variables, the external parameters, and the input parameters.

Data Structures Part 5
07:37

In this video, we will develop a simple trading robot based on what we learned so far about MQL4 programming.

Walkthrough: Creating a Simple Trading Robot
09:39

Congratulations to completing phase one of the course!

Here, we have learned the basics of programming and trading. Our next phases will deal mostly in making our programming easier and more effective, as well as expanding on our knowledge little by little.

Conclusion to Phase One
00:25
+
Phase Two: Defying the Rules
32 Lectures 03:20:49
Introduction to Phase Two
00:23

Accessing the Documentation
01:15

This video gives an overview about errors, and how trading robots and scripts can learn about them. It also discusses the most common errors found in trading robots and scripts.

Error Handling
13:31

Learn about loops and how they are used in trading robots and scripts.

Working with Loops
10:16

An in-depth lesson about the management of the entry of orders on the end of a trading robot or script. At the end of the lesson, students would be able to learn about the common pitfalls and preconditions when it comes to sending orders, and how to avoid them.

Entry Management Part 1
17:26

A short quiz about the recent entry management lesson

Quiz: Entry Management
3 questions

Learn about data conversion and typecasting. At the end of this lesson, students would be able to learn how to convert data from one type to another.

Data Structures Part 6
04:05

This video demonstrates the use of the entry and send_order functions defined in the recent entry management lesson to upgrade the buy order script that was developed earlier in the course.

Walkthrough: "Buy Order Entry" Script (Updated)
03:48

Learn about order selection, and how trading robots and scripts can be configured to get the information regarding a specific order.

Working with Orders Part 3
09:25

A short quiz about selecting orders.

Quiz: Selecting Orders
2 questions

This video demonstrates the use of loops and order selection to close all active market orders on the platform.

Walkthrough: "Close All" Script
04:05

An in-depth lesson about the various preconditions involved when closing an order. At the end of this lesson, students would be able to learn the most common errors that can occur when closing an order, and how to avoid those errors from occurring.

Exit Management Part 1
08:44

This video demonstrates the knowledge gained from the recent exit management lesson to develop a script that closes all active orders on the trading platform.

Walkthrough: "Close All" Script (Update 1)
02:43

A short quiz on the recent exit management lesson.

Quiz: Exit Management Part 1
2 questions

Learn about pass-by-reference, an alternative way of passing arguments to functions. At the end of this lesson, students would be able to know how to pass huge data more efficiently, or simply allow a local variable to be modified in a function beyond their scope.

Functions Part 2
04:50

A short quiz on the concept of pass-by-reference.

Quiz: Passing by Reference
1 question

Learn about the methods used in comparing data of double type. At the end of this lesson, students will learn a more efficient way to compare numbers with fractional components.

Comparing Doubles
03:02

Learn about order modification. At the end of this lesson, students will learn how trading robots and scripts modify one or more properties of an existing order.

Working with Orders Part 4
12:16

A short quiz about modifying orders.

Quiz: Modifying Orders
2 questions

Learn about constants and enumerations. At the end of this lesson, students will learn alternative ways to store data as encoded on an MQL4 program source code.

Data Structures Part 7
08:16

Learn about switch statements. At the end of this lesson, students will learn a more efficient alternative to if-else statements (certain limitations apply).

Condition Statements Part 4
04:14

An extension of the first exit management lesson. In this lesson, students will learn a more efficient exit function that would be able to close a greater variety of orders.

Exit Management Part 2
03:35

In this video, we will apply what we have learned in the recent exit management method to update our previous "close all" script.

Walkthrough: "Close All" Script (Update 2)
02:31

Learn an alternative way of counting orders. In this lesson, students will learn how to count the number of orders based on certain criteria.

Working with Orders Part 5
04:18

An in-depth lesson on money management. At the end of this lesson, students will discover the most common money management strategies, and how to implement them in trading robots and scripts.

Money Management
15:24

An extension to the first entry management lesson. At the end of the lesson, students will learn how market execution works and how to code trading robots and scripts that would be able to work seamlessly with brokers that implement market execution.

Entry Management Part 2
05:20

An in-depth lesson about signal management. At the end of this lesson, students will learn an efficient way to handle entry and exit signals in a trading robot.

Signal Management Part 1
11:38

An in-depth lesson about the break even level. At the end of this lesson, students will learn how breaking even an order works and how to implement them in trading robots and scripts.

Break Even Level
10:42

An in-depth lesson about trailing stops. At the end of this lesson, students will learn the various pitfalls and preconditions of implementing a trailing stop loss on orders, and how to deal with them.

Trailing Stop Levels
08:49

Learn about static variables. At the end of this lesson, students would be able to learn how to make a local variable retain its value from one function call to another.

Data Structures Part 8
02:52

An in-depth lesson about detecting the presence of a new bar on the chart.

New Bar Detection
09:33

An in-depth lesson about implementing a time filter. At the end of this lesson, students would be able to learn a method of determining whether or not a certain time is within a given time range.

Time Filters
08:57

An extension of the first signal management lesson. At the end of this lesson, students will learn one method of resolving conflicts that may arise from entry and exit signals.

Signal Management Part 2
03:27

Learn about virtual stop levels. At the end of this lesson, students will learn about a method of hiding the stop loss and take profit of an order from the broker.

Virtual Stop Levels
04:34

The trading robot template that was used in the simple trading robot upgrade. This template will also be used all throughout the third phase of the course.

Trading Robot Template
00:24

This video demonstrates the use concepts learned in this phase of the course, in order to upgrade the first trading robot developed in this course.

Simple Trading Robot Upgrade
00:06

Congratulations to completing the second phase of the course!

We have now successfully generated a trading robot template that takes care of up to 99% of the source code when developing trading robots. From now on, most trading robots that we will make will take about around 20 additional lines of code or even less (using the trading robot template). With sufficient experience, you may reach a point where it is already possible to build a trading robot in 5 minutes or even less!

The lessons in this part of the course are pretty intense. Feel free to revisit any lesson within this phase. It is not expected for students to fully understand every lesson within this phase within a very short time frame.

With the trading robot template, you can now develop your own trading robots using mostly the knowledge gained under the first phase of the course. Learning programming takes time and experience, but with our trading robot template, doing so will not slow us down in developing robust trading robots and scripts.

Conclusion to Phase Two
00:19
+
Phase Three: Making the Rules Work for You
12 Lectures 47:11

Welcome to the third phase of the course!

If you reached this far, most of difficult lessons in this course are probably over for you! This phase will focus more on the very reason why you took this course - developing trading robots. Here, we will apply what we have learned on all the previous lessons in order to build robust trading robots, along with some finishing touches.

Introduction to Phase Three
00:16

Learn how a trading robot (or script) can be configured to detect a crossover between two chart outputs.

Detecting Crossovers
03:22

This video is a demonstration of crossover detection in order develop a trading robot that trades based on moving average crossovers.

Walkthrough: Moving Average Crossover Trading Robot
05:20

Learn about histogram indicators.

Working with Indicators Part 4
02:32

This video is a demonstration of developing a trading robot based on the output of the awesome oscillator, a histogram indicator.

Walkthrough: Awesome Oscillator Trading Robot
04:59

Learn about indicators with multiple chart outputs, and how to configure a trading robot or script to access their values.

Working with Indicators Part 5
02:49

This video is a demonstration of developing a trading robot based on the output of the MACD oscillator, an example of an indicator that give multiple outputs on the chart.
Walkthrough: MACD Trading Robot
06:58

Learn about arrow indicators, and how trading robots and scripts can be configured to access their values.

Working with Indicators Part 6
03:15

This video is a demonstration of developing a trading robot based on the output of the fractals indicator, an arrow indicator.
Walkthrough: Fractals Trading Robot
06:27

Learn about custom indicators, and how trading robots and scripts can be configured to access their values through the use of the iCustom function.

Working with Indicators Part 7
04:18

This video is a demonstration of developing a trading robot based on the output of the zigzag indicator, a custom indicator.
Walkthrough: ZigZag Trading Robot
06:44

Conclusion to Phase Three
00:10
About the Instructor
Enrico Lambino
4.5 Average rating
27 Reviews
1,254 Students
1 Course
Trader, Programmer, Technical Writer

Enrico Lambino is self-directed learning enthusiast, programmer and technical writer. He has over 6 years experience in developing expert advisors, scripts, and custom indicators, mostly for the Metatrader 4 trading platform. He believes in the potential of programming in enhancing the performance of traders, making their tasks simpler and more efficient.