![Timeseries in DoEasy library (part 35): Bar object and symbol timeseries list](https://c.mql5.com/2/38/MQL5-avatar-doeasy-library.png)
![Timeseries in DoEasy library (part 35): Bar object and symbol timeseries list](https://c.mql5.com/i/articles/overlay.png)
Timeseries in DoEasy library (part 35): Bar object and symbol timeseries list
This article starts a new series about the creation of the DoEasy library for easy and fast program development. In the current article, we will implement the library functionality for accessing and working with symbol timeseries data. We are going to create the Bar object storing the main and extended timeseries bar data, and place bar objects to the timeseries list for convenient search and sorting of the objects.
![Library for easy and quick development of MetaTrader programs (part XXXIV): Pending trading requests - removing and modifying orders and positions under certain conditions](https://c.mql5.com/2/38/MQL5-avatar-doeasy__2.png)
![Library for easy and quick development of MetaTrader programs (part XXXIV): Pending trading requests - removing and modifying orders and positions under certain conditions](https://c.mql5.com/i/articles/overlay.png)
Library for easy and quick development of MetaTrader programs (part XXXIV): Pending trading requests - removing and modifying orders and positions under certain conditions
In this article, we will complete the description of the pending request trading concept and create the functionality for removing pending orders, as well as modifying orders and positions under certain conditions. Thus, we are going to have the entire functionality enabling us to develop simple custom strategies, or rather EA behavior logic activated upon user-defined conditions.
![Library for easy and quick development of MetaTrader programs (part XXXIII): Pending trading requests - closing positions under certain conditions](https://c.mql5.com/2/38/MQL5-avatar-doeasy__1.png)
![Library for easy and quick development of MetaTrader programs (part XXXIII): Pending trading requests - closing positions under certain conditions](https://c.mql5.com/i/articles/overlay.png)
Library for easy and quick development of MetaTrader programs (part XXXIII): Pending trading requests - closing positions under certain conditions
We continue the development of the library functionality featuring trading using pending requests. We have already implemented sending conditional trading requests for opening positions and placing pending orders. In the current article, we will implement conditional position closure – full, partial and closing by an opposite position.
![Library for easy and quick development of MetaTrader programs (part XXXII): Pending trading requests - placing orders under certain conditions](https://c.mql5.com/2/38/MQL5-avatar-doeasy.png)
![Library for easy and quick development of MetaTrader programs (part XXXII): Pending trading requests - placing orders under certain conditions](https://c.mql5.com/i/articles/overlay.png)
Library for easy and quick development of MetaTrader programs (part XXXII): Pending trading requests - placing orders under certain conditions
We continue the development of the functionality allowing users to trade using pending requests. In this article, we are going to implement the ability to place pending orders under certain conditions.
![Library for easy and quick development of MetaTrader programs (part XXXI): Pending trading requests - opening positions under certain conditions](https://c.mql5.com/2/37/MQL5-avatar-doeasy__19.png)
![Library for easy and quick development of MetaTrader programs (part XXXI): Pending trading requests - opening positions under certain conditions](https://c.mql5.com/i/articles/overlay.png)
Library for easy and quick development of MetaTrader programs (part XXXI): Pending trading requests - opening positions under certain conditions
Starting with this article, we are going to develop a functionality allowing users to trade using pending requests under certain conditions, for example, when reaching a certain time limit, exceeding a specified profit or closing a position by stop loss.
![Continuous Walk-Forward Optimization (Part 3): Adapting a Robot to Auto Optimizer](https://c.mql5.com/2/49/Continuous-Walk-Forward-Optimization_003_600x314.jpg)
Continuous Walk-Forward Optimization (Part 3): Adapting a Robot to Auto Optimizer
The third part serves as a bridge between the previous two parts: it describes the mechanism of interaction with the DLL considered in the first article and the objects for report downloading, which were described in the second article. We will analyze the process of wrapper creation for a class which is imported from DLL and which forms an XML file with the trading history. We will also consider a method for interacting with this wrapper.
![Library for easy and quick development of MetaTrader programs (part XXX): Pending trading requests - managing request objects](https://c.mql5.com/2/37/MQL5-avatar-doeasy__18.png)
![Library for easy and quick development of MetaTrader programs (part XXX): Pending trading requests - managing request objects](https://c.mql5.com/i/articles/overlay.png)
Library for easy and quick development of MetaTrader programs (part XXX): Pending trading requests - managing request objects
In the previous article, we have created the classes of pending request objects corresponding to the general concept of library objects. This time, we are going to deal with the class allowing the management of pending request objects.
![Library for easy and quick development of MetaTrader programs (part XXIX): Pending trading requests - request object classes](https://c.mql5.com/2/37/MQL5-avatar-doeasy__17.png)
![Library for easy and quick development of MetaTrader programs (part XXIX): Pending trading requests - request object classes](https://c.mql5.com/i/articles/overlay.png)
Library for easy and quick development of MetaTrader programs (part XXIX): Pending trading requests - request object classes
In the previous articles, we checked the concept of pending trading requests. A pending request is, in fact, a common trading order executed by a certain condition. In this article, we are going to create full-fledged classes of pending request objects — a base request object and its descendants.
![Neural Networks Made Easy](https://c.mql5.com/2/49/Neural_Networks_Easy_002_600x314.jpg)
Neural Networks Made Easy
Artificial intelligence is often associated with something fantastically complex and incomprehensible. At the same time, artificial intelligence is increasingly mentioned in everyday life. News about achievements related to the use of neural networks often appear in different media. The purpose of this article is to show that anyone can easily create a neural network and use the AI achievements in trading.
![Library for easy and quick development of MetaTrader programs (part XXVIII): Closure, removal and modification of pending trading requests](https://c.mql5.com/2/37/MQL5-avatar-doeasy__16.png)
![Library for easy and quick development of MetaTrader programs (part XXVIII): Closure, removal and modification of pending trading requests](https://c.mql5.com/i/articles/overlay.png)
Library for easy and quick development of MetaTrader programs (part XXVIII): Closure, removal and modification of pending trading requests
This is the third article about the concept of pending requests. We are going to complete the tests of pending trading requests by creating the methods for closing positions, removing pending orders and modifying position and pending order parameters.
![Continuous Walk-Forward Optimization (Part 2): Mechanism for creating an optimization report for any robot](https://c.mql5.com/2/49/Continuous-Walk-Forward-Optimization_002_600x314.jpg)
Continuous Walk-Forward Optimization (Part 2): Mechanism for creating an optimization report for any robot
The first article within the Walk-Through Optimization series described the creation of a DLL to be used in our auto optimizer. This continuation is entirely devoted to the MQL5 language.
![Library for easy and quick development of MetaTrader programs (part XXVII): Working with trading requests - placing pending orders](https://c.mql5.com/2/37/MQL5-avatar-doeasy__15.png)
![Library for easy and quick development of MetaTrader programs (part XXVII): Working with trading requests - placing pending orders](https://c.mql5.com/i/articles/overlay.png)
Library for easy and quick development of MetaTrader programs (part XXVII): Working with trading requests - placing pending orders
In this article, we will continue the development of trading requests, implement placing pending orders and eliminate detected shortcomings of the trading class operation.
![Library for easy and quick development of MetaTrader programs (part XXVI): Working with pending trading requests - first implementation (opening positions)](https://c.mql5.com/2/37/MQL5-avatar-doeasy__14.png)
![Library for easy and quick development of MetaTrader programs (part XXVI): Working with pending trading requests - first implementation (opening positions)](https://c.mql5.com/i/articles/overlay.png)
Library for easy and quick development of MetaTrader programs (part XXVI): Working with pending trading requests - first implementation (opening positions)
In this article, we are going to store some data in the value of the orders and positions magic number and start the implementation of pending requests. To check the concept, let's create the first test pending request for opening market positions when receiving a server error requiring waiting and sending a repeated request.
![Library for easy and quick development of MetaTrader programs (part XXV): Handling errors returned by the trade server](https://c.mql5.com/2/37/MQL5-avatar-doeasy__12.png)
![Library for easy and quick development of MetaTrader programs (part XXV): Handling errors returned by the trade server](https://c.mql5.com/i/articles/overlay.png)
Library for easy and quick development of MetaTrader programs (part XXV): Handling errors returned by the trade server
After we send a trading order to the server, we need to check the error codes or the absence of errors. In this article, we will consider handling errors returned by the trade server and prepare for creating pending trading requests.
![Library for easy and quick development of MetaTrader programs (part XXIV): Base trading class - auto correction of invalid parameters](https://c.mql5.com/2/37/MQL5-avatar-doeasy__6.png)
![Library for easy and quick development of MetaTrader programs (part XXIV): Base trading class - auto correction of invalid parameters](https://c.mql5.com/i/articles/overlay.png)
Library for easy and quick development of MetaTrader programs (part XXIV): Base trading class - auto correction of invalid parameters
In this article, we will have a look at the handler of invalid trading order parameters and improve the trading event class. Now all trading events (both single ones and the ones occurred simultaneously within one tick) will be defined in programs correctly.
![Library for easy and quick development of MetaTrader programs (part XXIII): Base trading class - verification of valid parameters](https://c.mql5.com/2/37/MQL5-avatar-doeasy__5.png)
![Library for easy and quick development of MetaTrader programs (part XXIII): Base trading class - verification of valid parameters](https://c.mql5.com/i/articles/overlay.png)
Library for easy and quick development of MetaTrader programs (part XXIII): Base trading class - verification of valid parameters
In the article, we continue the development of the trading class by implementing the control over incorrect trading order parameter values and voicing trading events.
![Library for easy and quick development of MetaTrader programs (part XXII): Trading classes - Base trading class, verification of limitations](https://c.mql5.com/2/37/MQL5-avatar-doeasy__4.png)
![Library for easy and quick development of MetaTrader programs (part XXII): Trading classes - Base trading class, verification of limitations](https://c.mql5.com/i/articles/overlay.png)
Library for easy and quick development of MetaTrader programs (part XXII): Trading classes - Base trading class, verification of limitations
In this article, we will start the development of the library base trading class and add the initial verification of permissions to conduct trading operations to its first version. Besides, we will slightly expand the features and content of the base trading class.
![Library for easy and quick development of MetaTrader programs (part XXI): Trading classes - Base cross-platform trading object](https://c.mql5.com/2/37/MQL5-avatar-doeasy__3.png)
![Library for easy and quick development of MetaTrader programs (part XXI): Trading classes - Base cross-platform trading object](https://c.mql5.com/i/articles/overlay.png)
Library for easy and quick development of MetaTrader programs (part XXI): Trading classes - Base cross-platform trading object
In this article, we will start the development of the new library section - trading classes. Besides, we will consider the development of a unified base trading object for MetaTrader 5 and MetaTrader 4 platforms. When sending a request to the server, such a trading object implies that verified and correct trading request parameters are passed to it.
![Library for easy and quick development of MetaTrader programs (part XX): Creating and storing program resources](https://c.mql5.com/2/37/MQL5-avatar-doeasy__2.png)
![Library for easy and quick development of MetaTrader programs (part XX): Creating and storing program resources](https://c.mql5.com/i/articles/overlay.png)
Library for easy and quick development of MetaTrader programs (part XX): Creating and storing program resources
The article deals with storing data in the program's source code and creating audio and graphical files out of them. When developing an application, we often need audio and images. The MQL language features several methods of using such data.
![Library for easy and quick development of MetaTrader programs (part XIX): Class of library messages](https://c.mql5.com/2/37/MQL5-avatar-doeasy__1.png)
![Library for easy and quick development of MetaTrader programs (part XIX): Class of library messages](https://c.mql5.com/i/articles/overlay.png)
Library for easy and quick development of MetaTrader programs (part XIX): Class of library messages
In this article, we will consider the class of displaying text messages. Currently, we have a sufficient number of different text messages. It is time to re-arrange the methods of their storage, display and translation of Russian or English messages to other languages. Besides, it would be good to introduce convenient ways of adding new languages to the library and quickly switching between them.
![Library for easy and quick development of MetaTrader programs (part XVIII): Interactivity of account and any other library objects](https://c.mql5.com/2/37/MQL5-avatar-doeasy.png)
![Library for easy and quick development of MetaTrader programs (part XVIII): Interactivity of account and any other library objects](https://c.mql5.com/i/articles/overlay.png)
Library for easy and quick development of MetaTrader programs (part XVIII): Interactivity of account and any other library objects
The article arranges the work of an account object on a new base object of all library objects, improves the CBaseObj base object and tests setting tracked parameters, as well as receiving events for any library objects.
![Library for easy and quick development of MetaTrader programs (part XVII): Interactivity of library objects](https://c.mql5.com/2/36/MQL5-avatar-doeasy__12.png)
![Library for easy and quick development of MetaTrader programs (part XVII): Interactivity of library objects](https://c.mql5.com/i/articles/overlay.png)
Library for easy and quick development of MetaTrader programs (part XVII): Interactivity of library objects
In this article, we are going to finish the development of the base object of all library objects, so that any library object based on it is able to interact with a user. For example, users will be able to set the maximum acceptable size of a spread for opening a position and a price level, upon reaching which an event from a symbol object is sent to the program with the spread or price level-based signal.
![Library for easy and quick development of MetaTrader programs (part XVI): Symbol collection events](https://c.mql5.com/2/36/MQL5-avatar-doeasy__11.png)
![Library for easy and quick development of MetaTrader programs (part XVI): Symbol collection events](https://c.mql5.com/i/articles/overlay.png)
Library for easy and quick development of MetaTrader programs (part XVI): Symbol collection events
In this article, we will create a new base class of all library objects adding the event functionality to all its descendants and develop the class for tracking symbol collection events based on the new base class. We will also change account and account event classes for developing the new base object functionality.
![MQL5 Cookbook: Trading strategy stress testing using custom symbols](https://c.mql5.com/2/37/custom_stress_test.png)
![MQL5 Cookbook: Trading strategy stress testing using custom symbols](https://c.mql5.com/i/articles/overlay.png)
MQL5 Cookbook: Trading strategy stress testing using custom symbols
The article considers an approach to stress testing of a trading strategy using custom symbols. A custom symbol class is created for this purpose. This class is used to receive tick data from third-party sources, as well as to change symbol properties. Based on the results of the work done, we will consider several options for changing trading conditions, under which a trading strategy is being tested.
![Library for easy and quick development of MetaTrader programs (part XV): Collection of symbol objects](https://c.mql5.com/2/36/MQL5-avatar-doeasy__10.png)
![Library for easy and quick development of MetaTrader programs (part XV): Collection of symbol objects](https://c.mql5.com/i/articles/overlay.png)
Library for easy and quick development of MetaTrader programs (part XV): Collection of symbol objects
In this article, we will consider creation of a symbol collection based on the abstract symbol object developed in the previous article. The abstract symbol descendants are to clarify a symbol data and define the availability of the basic symbol object properties in a program. Such symbol objects are to be distinguished by their affiliation with groups.
![Library for easy and quick development of MetaTrader programs (part XIV): Symbol object](https://c.mql5.com/2/36/MQL5-avatar-doeasy__9.png)
![Library for easy and quick development of MetaTrader programs (part XIV): Symbol object](https://c.mql5.com/i/articles/overlay.png)
Library for easy and quick development of MetaTrader programs (part XIV): Symbol object
In this article, we will create the class of a symbol object that is to be the basic object for creating the symbol collection. The class will allow us to obtain data on the necessary symbols for their further analysis and comparison.
![Library for easy and quick development of MetaTrader programs (part XIII): Account object events](https://c.mql5.com/2/36/MQL5-avatar-doeasy__8.png)
![Library for easy and quick development of MetaTrader programs (part XIII): Account object events](https://c.mql5.com/i/articles/overlay.png)
Library for easy and quick development of MetaTrader programs (part XIII): Account object events
The article considers working with account events for tracking important changes in account properties affecting the automated trading. We have already implemented some functionality for tracking account events in the previous article when developing the account object collection.
![Library for easy and quick development of MetaTrader programs (part XII): Account object class and collection of account objects](https://c.mql5.com/2/36/MQL5-avatar-doeasy__7.png)
![Library for easy and quick development of MetaTrader programs (part XII): Account object class and collection of account objects](https://c.mql5.com/i/articles/overlay.png)
Library for easy and quick development of MetaTrader programs (part XII): Account object class and collection of account objects
In the previous article, we defined position closure events for MQL4 in the library and got rid of the unused order properties. Here we will consider the creation of the Account object, develop the collection of account objects and prepare the functionality for tracking account events.
![Library for easy and quick development of MetaTrader programs (part XI). Compatibility with MQL4 - Position closure events](https://c.mql5.com/2/36/MQL5-avatar-doeasy__6.png)
![Library for easy and quick development of MetaTrader programs (part XI). Compatibility with MQL4 - Position closure events](https://c.mql5.com/i/articles/overlay.png)
Library for easy and quick development of MetaTrader programs (part XI). Compatibility with MQL4 - Position closure events
We continue the development of a large cross-platform library simplifying the development of programs for MetaTrader 5 and MetaTrader 4 platforms. In the tenth part, we resumed our work on the library compatibility with MQL4 and defined the events of opening positions and activating pending orders. In this article, we will define the events of closing positions and get rid of the unused order properties.
![Library for easy and quick development of MetaTrader programs (part X): Compatibility with MQL4 - Events of opening a position and activating pending orders](https://c.mql5.com/2/36/MQL5-avatar-doeasy__5.png)
![Library for easy and quick development of MetaTrader programs (part X): Compatibility with MQL4 - Events of opening a position and activating pending orders](https://c.mql5.com/i/articles/overlay.png)
Library for easy and quick development of MetaTrader programs (part X): Compatibility with MQL4 - Events of opening a position and activating pending orders
In the previous articles, we started creating a large cross-platform library simplifying the development of programs for MetaTrader 5 and MetaTrader 4 platforms. In the ninth part, we started improving the library classes for working with MQL4. Here we will continue improving the library to ensure its full compatibility with MQL4.
![Library for easy and quick development of MetaTrader programs (part IX): Compatibility with MQL4 - Preparing data](https://c.mql5.com/2/36/MQL5-avatar-doeasy__4.png)
![Library for easy and quick development of MetaTrader programs (part IX): Compatibility with MQL4 - Preparing data](https://c.mql5.com/i/articles/overlay.png)
Library for easy and quick development of MetaTrader programs (part IX): Compatibility with MQL4 - Preparing data
In the previous articles, we started creating a large cross-platform library simplifying the development of programs for MetaTrader 5 and MetaTrader 4 platforms. In the eighth part, we implemented the class for tracking order and position modification events. Here, we will improve the library by making it fully compatible with MQL4.
![Library for easy and quick development of MetaTrader programs (part VIII): Order and position modification events](https://c.mql5.com/2/36/MQL5-avatar-doeasy__3.png)
![Library for easy and quick development of MetaTrader programs (part VIII): Order and position modification events](https://c.mql5.com/i/articles/overlay.png)
Library for easy and quick development of MetaTrader programs (part VIII): Order and position modification events
In the previous articles, we started creating a large cross-platform library simplifying the development of programs for MetaTrader 5 and MetaTrader 4 platforms. In the seventh part, we added tracking StopLimit orders activation and prepared the functionality for tracking other events involving orders and positions. In this article, we will develop the class for tracking order and position modification events.
![Price velocity measurement methods](https://c.mql5.com/2/36/Article_Logo__1.png)
![Price velocity measurement methods](https://c.mql5.com/i/articles/overlay.png)
Price velocity measurement methods
There are multiple different approaches to market research and analysis. The main ones are technical and fundamental. In technical analysis, traders collect, process and analyze numerical data and parameters related to the market, including prices, volumes, etc. In fundamental analysis, traders analyze events and news affecting the markets directly or indirectly. The article deals with price velocity measurement methods and studies trading strategies based on that methods.
![Library for easy and quick development of MetaTrader programs (part VII): StopLimit order activation events, preparing the functionality for order and position modification events](https://c.mql5.com/2/36/MQL5-avatar-doeasy__2.png)
![Library for easy and quick development of MetaTrader programs (part VII): StopLimit order activation events, preparing the functionality for order and position modification events](https://c.mql5.com/i/articles/overlay.png)
Library for easy and quick development of MetaTrader programs (part VII): StopLimit order activation events, preparing the functionality for order and position modification events
In the previous articles, we started creating a large cross-platform library simplifying the development of programs for MetaTrader 5 and MetaTrader 4 platforms. In the sixth part, we trained the library to work with positions on netting accounts. Here we will implement tracking StopLimit orders activation and prepare the functionality to track order and position modification events.
![Library for easy and quick development of MetaTrader programs (part VI): Netting account events](https://c.mql5.com/2/36/MQL5-avatar-doeasy__1.png)
![Library for easy and quick development of MetaTrader programs (part VI): Netting account events](https://c.mql5.com/i/articles/overlay.png)
Library for easy and quick development of MetaTrader programs (part VI): Netting account events
In the previous articles, we started creating a large cross-platform library simplifying the development of programs for MetaTrader 5 and MetaTrader 4 platforms. In the fifth part of the article series, we created trading event classes and the event collection, from which the events are sent to the base object of the Engine library and the control program chart. In this part, we will let the library to work on netting accounts.
![Developing graphical interfaces based on .Net Framework and C# (part 2): Additional graphical elements](https://c.mql5.com/2/36/icon.png)
![Developing graphical interfaces based on .Net Framework and C# (part 2): Additional graphical elements](https://c.mql5.com/i/articles/overlay.png)
Developing graphical interfaces based on .Net Framework and C# (part 2): Additional graphical elements
The article is a follow-up of the previous publication "Developing graphical interfaces for Expert Advisors and indicators based on .Net Framework and C#". It introduces new graphical elements for creating graphical interfaces.
![Library for easy and quick development of MetaTrader programs (part V): Classes and collection of trading events, sending events to the program](https://c.mql5.com/2/35/MQL5-avatar-doeasy__4.png)
![Library for easy and quick development of MetaTrader programs (part V): Classes and collection of trading events, sending events to the program](https://c.mql5.com/i/articles/overlay.png)
Library for easy and quick development of MetaTrader programs (part V): Classes and collection of trading events, sending events to the program
In the previous articles, we started creating a large cross-platform library simplifying the development of programs for MetaTrader 5 and MetaTrader 4 platforms. In the fourth part, we tested tracking trading events on the account. In this article, we will develop trading event classes and place them to the event collections. From there, they will be sent to the base object of the Engine library and the control program chart.
![Library for easy and quick development of MetaTrader programs (part IV): Trading events](https://c.mql5.com/2/35/MQL5-avatar-doeasy__3.png)
![Library for easy and quick development of MetaTrader programs (part IV): Trading events](https://c.mql5.com/i/articles/overlay.png)
Library for easy and quick development of MetaTrader programs (part IV): Trading events
In the previous articles, we started creating a large cross-platform library simplifying the development of programs for MetaTrader 5 and MetaTrader 4 platforms. We already have collections of historical orders and deals, market orders and positions, as well as the class for convenient selection and sorting of orders. In this part, we will continue the development of the base object and teach the Engine Library to track trading events on the account.
![Using MATLAB 2018 computational capabilities in MetaTrader 5](https://c.mql5.com/2/35/ext_infin2.png)
![Using MATLAB 2018 computational capabilities in MetaTrader 5](https://c.mql5.com/i/articles/overlay.png)
Using MATLAB 2018 computational capabilities in MetaTrader 5
After the upgrade of the MATLAB package in 2015, it is necessary to consider a modern way of creating DLL libraries. The article uses a sample predictive indicator to illustrate the peculiarities of linking MetaTrader 5 and MATLAB using modern 64-bit versions of the platforms, which are utilized nowadays. With the entire sequence of connecting MATLAB considered, MQL5 developers will be able to create applications with advanced computational capabilities much faster, avoiding «pitfalls».
![Library for easy and quick development of MetaTrader programs (part III). Collection of market orders and positions, search and sorting](https://c.mql5.com/2/35/MQL5-avatar-doeasy__2.png)
![Library for easy and quick development of MetaTrader programs (part III). Collection of market orders and positions, search and sorting](https://c.mql5.com/i/articles/overlay.png)
Library for easy and quick development of MetaTrader programs (part III). Collection of market orders and positions, search and sorting
In the first part, we started creating a large cross-platform library simplifying the development of programs for MetaTrader 5 and MetaTrader 4 platforms. Further on, we implemented the collection of history orders and deals. Our next step is creating a class for a convenient selection and sorting of orders, deals and positions in collection lists. We are going to implement the base library object called Engine and add collection of market orders and positions to the library.