![Graphical Interfaces IV: Informational Interface Elements (Chapter 1)](https://c.mql5.com/2/22/iv-avatar.png)
![Graphical Interfaces IV: Informational Interface Elements (Chapter 1)](https://c.mql5.com/i/articles/overlay.png)
Graphical Interfaces IV: Informational Interface Elements (Chapter 1)
At the current stage of development, the library for creating graphical interfaces contains a form and several controls that can be attached to it. It was mentioned before that one of the future articles would be dedicated to the multi-window mode. Now, we have everything ready for that and we will deal with it in the following chapter. In this chapter, we will write classes for creating the status bar and tooltip informational interface elements.
![MQL5 Cookbook - Programming moving channels](https://c.mql5.com/2/22/ava.png)
![MQL5 Cookbook - Programming moving channels](https://c.mql5.com/i/articles/overlay.png)
MQL5 Cookbook - Programming moving channels
This article presents a method of programming the equidistant channel system. Certain details of building such channels are being considered here. Channel typification is provided, and a universal type of moving channels' method is suggested. Object-oriented programming (OOP) is used for code implementation.
![Graphical Interfaces III: Groups of Simple and Multi-Functional Buttons (Chapter 2)](https://c.mql5.com/2/22/Graphic-interface_3.png)
![Graphical Interfaces III: Groups of Simple and Multi-Functional Buttons (Chapter 2)](https://c.mql5.com/i/articles/overlay.png)
Graphical Interfaces III: Groups of Simple and Multi-Functional Buttons (Chapter 2)
The first chapter of the series was about simple and multi-functional buttons. The second article will be dedicated to groups of interconnected buttons that will allow the creation of elements in an application when a user can select one of the option out of a set (group).
![Graphical Interfaces III: Simple and Multi-Functional Buttons (Chapter 1)](https://c.mql5.com/2/22/Graphic-interface_3__1.png)
![Graphical Interfaces III: Simple and Multi-Functional Buttons (Chapter 1)](https://c.mql5.com/i/articles/overlay.png)
Graphical Interfaces III: Simple and Multi-Functional Buttons (Chapter 1)
Let us consider the button control. We will discuss examples of several classes for creating a simple button, buttons with extended functionality (icon button and split button) and interconnected buttons (button groups and radio button). Added to that, we will introduce some additions to existing classes for controls to broaden their capability.
![Graphical Interfaces II: The Main Menu Element (Chapter 4)](https://c.mql5.com/2/22/Graphic-interface-part2__3.png)
![Graphical Interfaces II: The Main Menu Element (Chapter 4)](https://c.mql5.com/i/articles/overlay.png)
Graphical Interfaces II: The Main Menu Element (Chapter 4)
This is the final chapter of the second part of the series about graphical interfaces. Here, we are going to consider the creation of the main menu. The development of this control and setting up handlers of the library classes for correct reaction to the user's actions will be demonstrated here. We will also discuss how to attach context menus to the items of the main menu. Adding to that, we will mention blocking currently inactive elements.
![Universal Expert Advisor: Custom Strategies and Auxiliary Trade Classes (Part 3)](https://c.mql5.com/2/21/02fe0hhenus_a0y2.png)
![Universal Expert Advisor: Custom Strategies and Auxiliary Trade Classes (Part 3)](https://c.mql5.com/i/articles/overlay.png)
Universal Expert Advisor: Custom Strategies and Auxiliary Trade Classes (Part 3)
In this article, we will continue analyzing the algorithms of the CStrategy trading engine. The third part of the series contains the detailed analysis of examples of how to develop specific trading strategies using this approach. Special attention is paid to auxiliary algorithms — Expert Advisor logging system and data access using a conventional indexer (Close[1], Open[0] etc.)
![Graphical Interfaces II: Setting Up the Event Handlers of the Library (Chapter 3)](https://c.mql5.com/2/22/Graphic-interface-part2__2.png)
![Graphical Interfaces II: Setting Up the Event Handlers of the Library (Chapter 3)](https://c.mql5.com/i/articles/overlay.png)
Graphical Interfaces II: Setting Up the Event Handlers of the Library (Chapter 3)
The previous articles contain the implementation of the classes for creating constituent parts of the main menu. Now, it is time to take a close look at the event handlers in the principle base classes and in the classes of the created controls. We will also pay special attention to managing the state of the chart depending on the location of the mouse cursor.
![Universal Expert Advisor: the Event Model and Trading Strategy Prototype (Part 2)](https://c.mql5.com/2/21/smyf67hqftm_kaz2.png)
![Universal Expert Advisor: the Event Model and Trading Strategy Prototype (Part 2)](https://c.mql5.com/i/articles/overlay.png)
Universal Expert Advisor: the Event Model and Trading Strategy Prototype (Part 2)
This article continues the series of publications on a universal Expert Advisor model. This part describes in detail the original event model based on centralized data processing, and considers the structure of the CStrategy base class of the engine.
![Universal Expert Advisor: Trading Modes of Strategies (Part 1)](https://c.mql5.com/2/21/gu84ttj7g7r_klt2.png)
![Universal Expert Advisor: Trading Modes of Strategies (Part 1)](https://c.mql5.com/i/articles/overlay.png)
Universal Expert Advisor: Trading Modes of Strategies (Part 1)
Any Expert Advisor developer, regardless of programming skills, is daily confronted with the same trading tasks and algorithmic problems, which should be solved to organize a reliable trading process. The article describes the possibilities of the CStrategy trading engine that can undertake the solution of these tasks and provide a user with convenient mechanism for describing a custom trading idea.
![Graphical Interfaces II: the Separation Line and Context Menu Elements (Chapter 2)](https://c.mql5.com/2/22/Graphic-interface-part2__1.png)
![Graphical Interfaces II: the Separation Line and Context Menu Elements (Chapter 2)](https://c.mql5.com/i/articles/overlay.png)
Graphical Interfaces II: the Separation Line and Context Menu Elements (Chapter 2)
In this article we will create the separation line element. It will be possible to use it not only as an independent interface element but also as a part of many other elements. After that, we will have everything required for the development of the context menu class, which will be also considered in this article in detail. Added to that, we will introduce all necessary additions to the class, which is the base for storing pointers to all the elements of the graphical interface of the application.
![Graphical Interfaces II: the Menu Item Element (Chapter 1)](https://c.mql5.com/2/22/Graphic-interface-part2.png)
![Graphical Interfaces II: the Menu Item Element (Chapter 1)](https://c.mql5.com/i/articles/overlay.png)
Graphical Interfaces II: the Menu Item Element (Chapter 1)
In the second part of the series, we will show in detail the development of such interface elements as main menu and context menu. We will also mention drawing elements and create a special class for it. We will discuss in depth such question as managing program events including custom ones.
![Adding a control panel to an indicator or an Expert Advisor in no time](https://c.mql5.com/2/22/avatar.png)
![Adding a control panel to an indicator or an Expert Advisor in no time](https://c.mql5.com/i/articles/overlay.png)
Adding a control panel to an indicator or an Expert Advisor in no time
Have you ever felt the need to add a graphical panel to your indicator or Expert Advisor for greater speed and convenience? In this article, you will find out how to implement the dialog panel with the input parameters into your MQL4/MQL5 program step by step.
![Graphical Interfaces I: Testing Library in Programs of Different Types and in the MetaTrader 4 Terminal (Chapter 5)](https://c.mql5.com/2/21/Graphic-interface__4.png)
![Graphical Interfaces I: Testing Library in Programs of Different Types and in the MetaTrader 4 Terminal (Chapter 5)](https://c.mql5.com/i/articles/overlay.png)
Graphical Interfaces I: Testing Library in Programs of Different Types and in the MetaTrader 4 Terminal (Chapter 5)
In the previous chapter of the first part of the series about graphical interfaces, the form class was enriched by methods which allowed managing the form by pressing its controls. In this article, we will test our work in different types of MQL program such as indicators and scripts. As the library was designed to be cross-platform so it could be used in all MetaTrader platforms, we will also test it in MetaTrader 4.
![Trading signals module using the system by Bill Williams](https://c.mql5.com/2/20/MQL5_wizard_ru.png)
![Trading signals module using the system by Bill Williams](https://c.mql5.com/i/articles/overlay.png)
Trading signals module using the system by Bill Williams
The article describes the rules of the trading system by Bill Williams, the procedure of application for a developed MQL5 module to search and mark patterns of this system on the chart, automated trading with found patterns, and also presents the results of testing on various trading instruments.
![Graphical Interfaces I: Functions for the Form Buttons and Deleting Interface Elements (Chapter 4)](https://c.mql5.com/2/21/Graphic-interface__3.png)
![Graphical Interfaces I: Functions for the Form Buttons and Deleting Interface Elements (Chapter 4)](https://c.mql5.com/i/articles/overlay.png)
Graphical Interfaces I: Functions for the Form Buttons and Deleting Interface Elements (Chapter 4)
In this article, we are going to continue developing the CWindow class by adding methods, which will allow managing the form by clicking on its controls. We will enable the program to be closed by a form button as well as implement a minimizing and maximizing feature for the form.
![Graphical Interfaces I: Animating the Graphical Interface (Chapter 3)](https://c.mql5.com/2/21/Graphic-interface__2.png)
![Graphical Interfaces I: Animating the Graphical Interface (Chapter 3)](https://c.mql5.com/i/articles/overlay.png)
Graphical Interfaces I: Animating the Graphical Interface (Chapter 3)
In the previous article, we started developing a form class for controls. In this article, we are going to continue doing that by filling this class with methods for moving a form over the chart area. We will then integrate this interface component into the core of the library. Also, we will ensure that the color of a form control changes when the mouse cursor is hovering over it.
![Graphical Interfaces I: Form for Controls (Chapter 2)](https://c.mql5.com/2/21/Graphic-interface__1.png)
![Graphical Interfaces I: Form for Controls (Chapter 2)](https://c.mql5.com/i/articles/overlay.png)
Graphical Interfaces I: Form for Controls (Chapter 2)
In this article we will create the first and main element of the graphical interface - a form for controls. Multiple controls can be attached to this form anywhere and in any combination.
![Graphical Interfaces I: Preparation of the Library Structure (Chapter 1)](https://c.mql5.com/2/21/Graphic-interface.png)
![Graphical Interfaces I: Preparation of the Library Structure (Chapter 1)](https://c.mql5.com/i/articles/overlay.png)
Graphical Interfaces I: Preparation of the Library Structure (Chapter 1)
This article is the beginning of another series concerning development of graphical interfaces. Currently, there is not a single code library that would allow quick and easy creation of high quality graphical interfaces within MQL applications. By that, I mean the graphical interfaces that we are used to in familiar operating systems.
![MQL5 for beginners: Anti-vandal protection of graphic objects](https://c.mql5.com/2/20/ava.png)
![MQL5 for beginners: Anti-vandal protection of graphic objects](https://c.mql5.com/i/articles/overlay.png)
MQL5 for beginners: Anti-vandal protection of graphic objects
What should your program do, if graphic control panels have been removed or modified by someone else? In this article we will show you how not to have "ownerless" objects on the chart, and how not to lose control over them in cases of renaming or deleting programmatically created objects after the application is deleted.
![Indicator for Spindles Charting](https://c.mql5.com/2/19/LOGO__2.png)
![Indicator for Spindles Charting](https://c.mql5.com/i/articles/overlay.png)
Indicator for Spindles Charting
The article regards spindle chart plotting and its usage in trading strategies and experts. First let's discuss the chart's appearance, plotting and connection with japanese candlestick chart. Next we analyze the indicator's implementation in the source code in the MQL5 language. Let's test the expert based on indicator and formulate the trading strategy.
![Using Layouts and Containers for GUI Controls: The CBox Class](https://c.mql5.com/2/19/avatar__2.png)
![Using Layouts and Containers for GUI Controls: The CBox Class](https://c.mql5.com/i/articles/overlay.png)
Using Layouts and Containers for GUI Controls: The CBox Class
This article presents an alternative method of GUI creation based on layouts and containers, using one layout manager — the CBox class. The CBox class is an auxiliary control that acts as a container for essential controls in a GUI panel. It can make designing graphical panels easier, and in some cases, reduce coding time.
![Plotting trend lines based on fractals using MQL4 and MQL5](https://c.mql5.com/2/18/TrendLines_Fractals_Based.png)
![Plotting trend lines based on fractals using MQL4 and MQL5](https://c.mql5.com/i/articles/overlay.png)
Plotting trend lines based on fractals using MQL4 and MQL5
The article describes the automation of trend lines plotting based on the Fractals indicator using MQL4 and MQL5. The article structure provides a comparative view of the solution for two languages. Trend lines are plotted using two last known fractals.
![Optimization. A Few Simple Ideas](https://c.mql5.com/2/10/DSCI2306_p28-640-480.png)
![Optimization. A Few Simple Ideas](https://c.mql5.com/i/articles/overlay.png)
Optimization. A Few Simple Ideas
The optimization process can require significant resources of your computer or even of the MQL5 Cloud Network test agents. This article comprises some simple ideas that I use for work facilitation and improvement of the MetaTrader 5 Strategy Tester. I got these ideas from the documentation, forum and articles.
![MQL5 Cookbook: ОСО Orders](https://c.mql5.com/2/17/OCO-Orders-MetaTrader5.png)
![MQL5 Cookbook: ОСО Orders](https://c.mql5.com/i/articles/overlay.png)
MQL5 Cookbook: ОСО Orders
Any trader's trading activity involves various mechanisms and interrelationships including relations among orders. This article suggests a solution of OCO orders processing. Standard library classes are extensively involved, as well as new data types are created herein.
![Building an Interactive Application to Display RSS Feeds in MetaTrader 5](https://c.mql5.com/2/17/RSS_Feed_MetaTrader5__1.png)
![Building an Interactive Application to Display RSS Feeds in MetaTrader 5](https://c.mql5.com/i/articles/overlay.png)
Building an Interactive Application to Display RSS Feeds in MetaTrader 5
In this article we look at the possibility of creating an application for the display of RSS feeds. The article will show how aspects of the Standard Library can be used to create interactive programs for MetaTrader 5.
![Programming EA's Modes Using Object-Oriented Approach](https://c.mql5.com/2/12/Expert_Advisor_modes_programming_img.png)
![Programming EA's Modes Using Object-Oriented Approach](https://c.mql5.com/i/articles/overlay.png)
Programming EA's Modes Using Object-Oriented Approach
This article explains the idea of multi-mode trading robot programming in MQL5. Every mode is implemented with the object-oriented approach. Instances of both mode classes hierarchy and classes for testing are provided. Multi-mode programming of trading robots is supposed to take into account all peculiarities of every operational mode of an EA written in MQL5. Functions and enumeration are created for identifying the mode.
![MQL5 Wizard: Placing Orders, Stop-Losses and Take Profits on Calculated Prices. Standard Library Extension](https://c.mql5.com/2/10/ava.png)
![MQL5 Wizard: Placing Orders, Stop-Losses and Take Profits on Calculated Prices. Standard Library Extension](https://c.mql5.com/i/articles/overlay.png)
MQL5 Wizard: Placing Orders, Stop-Losses and Take Profits on Calculated Prices. Standard Library Extension
This article describes the MQL5 Standard Library extension, which allows to create Expert Advisors, place orders, Stop Losses and Take Profits using the MQL5 Wizard by the prices received from included modules. This approach does not apply any additional restrictions on the number of modules and does not cause conflicts in their joint work.
![Liquid Chart](https://c.mql5.com/2/11/800px-Wiki.png)
![Liquid Chart](https://c.mql5.com/i/articles/overlay.png)
Liquid Chart
Would you like to see an hourly chart with bars opening from the second and the fifth minute of the hour? What does a redrawn chart look like when the opening time of bars is changing every minute? What advantages does trading on such charts have? You will find answers to these questions in this article.
![MQL5 Cookbook: Handling Custom Chart Events](https://c.mql5.com/2/11/avatar.png)
![MQL5 Cookbook: Handling Custom Chart Events](https://c.mql5.com/i/articles/overlay.png)
MQL5 Cookbook: Handling Custom Chart Events
This article considers aspects of design and development of custom chart events system in the MQL5 environment. An example of an approach to the events classification can also be found here, as well as a program code for a class of events and a class of custom events handler.
![MQL5 Cookbook - Multi-Currency Expert Advisor and Working with Pending Orders in MQL5](https://c.mql5.com/2/0/Pending-Orders.png)
![MQL5 Cookbook - Multi-Currency Expert Advisor and Working with Pending Orders in MQL5](https://c.mql5.com/i/articles/overlay.png)
MQL5 Cookbook - Multi-Currency Expert Advisor and Working with Pending Orders in MQL5
This time we are going to create a multi-currency Expert Advisor with a trading algorithm based on work with the pending orders Buy Stop and Sell Stop. This article considers the following matters: trading in a specified time range, placing/modifying/deleting pending orders, checking if the last position was closed at Take Profit or Stop Loss and control of the deals history for each symbol.
![Building a Social Technology Startup, Part I: Tweet Your MetaTrader 5 Signals](https://c.mql5.com/2/0/Devices-network-wireless-connected-100-icon.png)
![Building a Social Technology Startup, Part I: Tweet Your MetaTrader 5 Signals](https://c.mql5.com/i/articles/overlay.png)
Building a Social Technology Startup, Part I: Tweet Your MetaTrader 5 Signals
Today we will learn how to link an MetaTrader 5 terminal with Twitter so that you can tweet your EAs' trading signals. We are developing a Social Decision Support System in PHP based on a RESTful web service. This idea comes from a particular conception of automatic trading called computer-assisted trading. We want the cognitive abilities of human traders to filter those trading signals which otherwise would be automatically placed on the market by the Expert Advisors.
![Working with GSM Modem from an MQL5 Expert Advisor](https://c.mql5.com/2/0/P2090169__.png)
![Working with GSM Modem from an MQL5 Expert Advisor](https://c.mql5.com/i/articles/overlay.png)
Working with GSM Modem from an MQL5 Expert Advisor
There is currently a fair number of means for a comfortable remote monitoring of a trading account: mobile terminals, push notifications, working with ICQ. But it all requires Internet connection. This article describes the process of creating an Expert Advisor that will allow you to stay in touch with your trading terminal even when mobile Internet is not available, through calls and text messaging.
![Creating a Multi-Currency Multi-System Expert Advisor](https://c.mql5.com/2/0/MultiCurrency_Expert_Advisor_MQL5.png)
![Creating a Multi-Currency Multi-System Expert Advisor](https://c.mql5.com/i/articles/overlay.png)
Creating a Multi-Currency Multi-System Expert Advisor
The article introduces a structure for an Expert Advisor that trades multiple symbols and uses several trading systems simultaneously. If you already identified the optimal input parameters for all your EAs and got good backtesting results for each of them separately, ask yourself what results you would get if testing all EAs simultaneously, with all your strategies put together.
![Raise Your Linear Trading Systems to the Power](https://c.mql5.com/2/0/superman.png)
![Raise Your Linear Trading Systems to the Power](https://c.mql5.com/i/articles/overlay.png)
Raise Your Linear Trading Systems to the Power
Today's article shows intermediate MQL5 programmers how they can get more profit from their linear trading systems (Fixed Lot) by easily implementing the so-called technique of exponentiation. This is because the resulting equity curve growth is then geometric, or exponential, taking the form of a parabola. Specifically, we will implement a practical MQL5 variant of the Fixed Fractional position sizing developed by Ralph Vince.
![MQL5 Cookbook: Sound Notifications for MetaTrader 5 Trade Events](https://c.mql5.com/2/0/avatar__8.png)
![MQL5 Cookbook: Sound Notifications for MetaTrader 5 Trade Events](https://c.mql5.com/i/articles/overlay.png)
MQL5 Cookbook: Sound Notifications for MetaTrader 5 Trade Events
In this article, we will consider such issues as including sound files in the file of the Expert Advisor, and thus adding sound notifications to trade events. The fact that the files will be included means that the sound files will be located inside the Expert Advisor. So when giving the compiled version of the Expert Advisor (*.ex5) to another user, you will not have to also provide the sound files and explain where they need to be saved.
![Marvel Your MQL5 Customers with a Usable Cocktail of Technologies!](https://c.mql5.com/2/0/cocktails.png)
![Marvel Your MQL5 Customers with a Usable Cocktail of Technologies!](https://c.mql5.com/i/articles/overlay.png)
Marvel Your MQL5 Customers with a Usable Cocktail of Technologies!
MQL5 provides programmers with a very complete set of functions and object-oriented API thanks to which they can do everything they want within the MetaTrader environment. However, Web Technology is an extremely versatile tool nowadays that may come to the rescue in some situations when you need to do something very specific, want to marvel your customers with something different or simply you do not have enough time to master a specific part of MT5 Standard Library. Today's exercise walks you through a practical example about how you can manage your development time at the same time as you also create an amazing tech cocktail.
![MQL5 Wizard: How to Teach an EA to Open Pending Orders at Any Price](https://c.mql5.com/2/0/Pending_Orders_Trading_MQ5_Wizard_signals.png)
![MQL5 Wizard: How to Teach an EA to Open Pending Orders at Any Price](https://c.mql5.com/i/articles/overlay.png)
MQL5 Wizard: How to Teach an EA to Open Pending Orders at Any Price
The article describes a method of modifying the code of a trading signal module for the implementation of the functionality allowing you to set pending orders at any distance from the current price: it may be the Close or Open price of the previous bar or the value of the moving average. There are plenty of options. Important is that you can set any opening price for a pending order. This article will be useful to traders who trade with pending orders.
![MQL5 Cookbook: Reducing the Effect of Overfitting and Handling the Lack of Quotes](https://c.mql5.com/2/0/Reduce_Overfitting_avatar.png)
![MQL5 Cookbook: Reducing the Effect of Overfitting and Handling the Lack of Quotes](https://c.mql5.com/i/articles/overlay.png)
MQL5 Cookbook: Reducing the Effect of Overfitting and Handling the Lack of Quotes
Whatever trading strategy you use, there will always be a question of what parameters to choose to ensure future profits. This article gives an example of an Expert Advisor with a possibility to optimize multiple symbol parameters at the same time. This method is intended to reduce the effect of overfitting parameters and handle situations where data from a single symbol are not enough for the study.
![Trading Signal Generator Based on a Custom Indicator](https://c.mql5.com/2/0/icustom_ava.png)
![Trading Signal Generator Based on a Custom Indicator](https://c.mql5.com/i/articles/overlay.png)
Trading Signal Generator Based on a Custom Indicator
How to create a trading signal generator based on a custom indicator? How to create a custom indicator? How to get access to custom indicator data? Why do we need the IS_PATTERN_USAGE(0) structure and model 0?
![Building an Automatic News Trader](https://c.mql5.com/2/0/cover.png)
![Building an Automatic News Trader](https://c.mql5.com/i/articles/overlay.png)
Building an Automatic News Trader
This is the continuation of Another MQL5 OOP class article which showed you how to build a simple OO EA from scratch and gave you some tips on object-oriented programming. Today I am showing you the technical basics needed to develop an EA able to trade the news. My goal is to keep on giving you ideas about OOP and also cover a new topic in this series of articles, working with the file system.