Discussion of article "Projects assist in creating profitable trading robots! Or at least, so it seems" - page 2
You are missing trading opportunities:
- Free trading apps
- Over 8,000 signals for copying
- Economic news for exploring financial markets
Registration
Log in
You agree to website policy and terms of use
If you do not have an account, please register
There can be only one main compiled file in a project. All other sources can serve as include files.
You can include EX5 files in the project as resources, for example, compiled indicators.
And how to include a custom indicator in the EA project? (not as a resource, but so that editable code is available).
How to include a custom indicator in the EA project? (not as a resource, but so that the editable code is available)
There is no such possibility. The indicator can lie outside the project folder, you need to correctly specify the path to it, as stated in the announcement of 2485 build.
There is no such possibility. Indicator can lie outside the project folder, you need to correctly specify the path to it, as stated in the announcement of 2485 build.
Clarify: "now there is no such possibility"? That is, the rules of project creation have become stricter?
Clarify: "now there is no such possibility"? So the rules for creating a project have become stricter?
That's the way it's always been
That's the way it's always been
My project was created a long time ago: it had both an indicator and an Expert Advisor - everything was working at the time of publication. Both the indicator and the Expert Advisor were in one folder Shared project.
In 2485 it stopped working.
Well, I moved the indicator to a separate folder - outside of Shared Projets: (of course, I compiled it in a new place).
[data folder]\MQL5\Indicators\AlligatorAndStochastic histogram\AlligatorAndStochastic histogram.mq5
I have written the path in the Expert Advisor.
I'm supposedly accessing the Indicators\AlligatorAndStochastic histogram\AlligatorAndStochastic histogram folder.
but I get an error:
But the file is definitely there:
What are these miracles?
Let me repeat: the variant (previously working) - there is an Expert Advisor and an indicator in the project together
Today on 2485 it started generating an error - file not found.
After many experiments I moved the indicator outside of Shared Projects to a separate folder. No result
I deleted the folder. Rolled back all the changes of the project (that is, now again both COUNTER and INDICATOR are in the same folder) - and oh wonder: debugging on history started:
Who wants to check the project 'AlligatorAndStochastic'?
The topic of the article is quite important, but the article itself is an empty promo that focuses on the ultimate goal of building profitable EAs, but does not consider at all the applied aspects of using the Projects functionality to organise interaction between participants while working on complex EAs.
In fact, the current functionality of MQL-projects is very poor and essentially unsuitable for organising projects. That's why many prominent forum members choose Github to host their public and private projects (e.g. Vasily Sokolov's PublicMqlProjects repository is quite famous).
Recently I placed an order on Freelance for separate graphical components for my expert(SixPanels), because I wanted to parallelise the work - to concentrate on the central functionality myself and outsource the gui creation, i.e. to organise the project interaction with one of the developers. However, in order to save my own knowledge-how it required from me and from the customer numerous unproductive labour inputs:
- I had to create a whole set of empty classes emulating the work of real classes,
- the customer in the course of implementation had to rewrite a part of these classes, which was done without synchronisation with my ongoing development of the central part of EA,
.- as a result of the order fulfilment I needed to perform reintegration of gui components with my code, making changes in the code of gui -components.
Moreover, in order to now move on to enabling the 2nd order, I will need to additionally make retrofits of void classes to the code of the integrated gui components.
So today, when I have a free day, I decided to cover the topic of MT5.Projects functionality shortcomings more fully, both in view of my recent experience in distributed development and my professional experience in managing IT projects.
The shortcomings of MQL-project functionality described below are conditionally divided into 2 parts:
A. Shortcomings of the current functionality in terms of organisation and maintenance of projects
B. Disadvantages of the current Functionality in terms of integration into the MQL5.com ecosystem
А. Disadvantages of the current functionality of MQL-projects in terms of project organisation and maintenance
Disadvantages, because of which participants now choose Github instead of MT5.Projects1.Incomplete role structure, without the ability to provide access of individual participants to individual project catalogues
Use case 1: Engaging a paid freelancer to perform part of the work in a larger project
Use case2: Distribution of work between developers for the purpose of protection
How to eliminate the drawback: create access distribution at the level of individual project catalogues and extend the current access structure to the following.Owner (full access at the level of the whole project + participant administration) , Participant (full access at the level of the whole project), Developer (full access at the level of the root directory and individual subdirectories) , Observer (view access at the level of the whole project); without assigning access rights, a participant with the role Developer does not have access to all subdirectories.
2.No task scheduling and allocation functionality
Use case 1: Requires fixing a list of tasks to be performed and allocating/assigning tasks to participants
Use case 2: Requires building an ordered structure of tasks to be completed during the project
Use case 2: Need to take into account holidays and periods of inactivity of participants
How to remedy the deficiency: in parallel with SVN cloud storage and file versioning system, launch the jira server system, integrating some of its components into MetaEditor, in particular components such as Tasks and Boards; i.e., essentially creating an MQL-project.i.e. in essence the creation of an MQL project in MetaEditor should result in both the allocation of file space in SVN and the automatic registration of the new project in the Jira system.
3.There is no functionality to run/compile several mq5 within one project
Use case 1: Parallel development in different classes is required; for the convenience of testing, each developer makes a copy of the primary class of the programme, changing the references to the nested classes he is refining; to speed up testing, everyone runs his own instance of the primary class of the programme.
Use case 2: In order to distribute threads on processor cores develop a distributed Expert Advisor, the individual parts of which communicate with each other through a system of events or common files;
e.g. I now have an Expert Advisor of 2 components: The back-end of the Telegram bot works as an independent expert on one chart, analyses commands and redirects them via events to the core running as an Expert Advisor on the other chart of the same symbol (+ I plan to add a 3x element that will work as a service and supply data from external sources), and both components rely on the same libraries and are essentially one project.
How to eliminate the disadvantage: within the project structure to make a pointer which .mq5 file is compiled, which can be set at the level of each project participant; if there are more than 2 .mq5 files nested inside the project, MetaEditor allows at the project level to change the file compiled by the participant.
4.There is no functionality of integrated development with addressing to indicators
Use case 1: External indicators are often the most important part of Expert Advisors, performing both calculation functions and visualisation on charts.
Use case 2: Indicators t allow parallelisation of calculations inside the indicator flow.
The functionality was previously working, but for some reason was removed in the latest version of MetaEditor.
Basically described in the posts above, and I believe that the topic does not need separate comments.
How to fix the defect: restore the functionality of the call in the Expert Advisor and work through iCustom indicators contained in the subdirectories of the project.
5.There is no functionality to support parallel work on different versions of the project (aka DevOps)
Use case 1: It is required to ensure that different participants work on the project at different stages in order to speed up releases.
Use case 2: In a situation when the Expert Advisor is already used by participants for trading on real accounts, it is required to provide releases with high quality testing
How to eliminate the drawback: to make a minimum structure of project editions: DEV, TEST, PROD; at first the project is created as DEV, then a participant with the role of Owner can create the TEST edition, then PROD; while working with the project each participant can switch the version by setting it in the project properties and go back to work on the previous edition; a participant with the role of Owner can update the TEST/PROD editions, while the system requires "consent" of all participants with the role of Owner.
В. Shortcomings of the current functionality of MQL-projects in terms of integration into the MQL5.com ecosystem
Shortcomings preventing wide use within the MQL5.com ecosystem.In fact, the current functionality of MQL-projects is not connected to the ecosystem at all, so it is a question of establishing the most important links.
The main goal in this case is both the development of the MQL5.com ecosystem and, in some cases, additional monetisation for the MQ company.
6.Connection with the Freelance section (1): there is no register of joint requests for finding participants
Use case 1: It is required to find potential project participants with the necessary skills, it is necessary to understand the experience of potential partners.
Use case 2: It is required to screen the list of potential projects in which it would be interesting to participate.
How to eliminate the shortcoming: to create a subsection "Project Board" within the Freelance section, in which to display requests from the organisers to search for participants (implied free participation in the implementation of projects), with the joint right to use the final result.
P.S.: now in a certain form of cooperation comes at the expense of discussions on the forum in the form of separate topics "I will write an advisor for free", etc., but in fact it is not organised in any way around the project functioon, and quite often the discussion turns into some kind of scrum and flooding. Organisation of the Project Board will allow to link this activity to the project functionality.
7Link to Freelance (2): there is no possibility to make a project as a joint order
Use case 1: Several participants need to pay for the creation of a new functionality with the involvement of an external developer from Freelance.
How to eliminate the disadvantage: create a tab "Freelance orders" in the project, on which to register requests with budget for Freelance; after selecting a developer, this participant gets access to the project with the role "Developer", contractual accesses of which are set by participants with the role Owner.
Monetisation (for MQ): increase in complexity of joint orders, potential increase in the average check of orders.
8Link to Market (1): there is no possibility to put the project results on sale, receiving automatic profit sharing
Use case 1: After the project is completed, participants decide to publish the Expert Advisor/utility on the Market, and need the functionality of profit sharing in the proportion fixed in the project.
How to eliminate the drawback: create a tab "Freelance orders" in the project, where you can register requests with a budget for Freelance; after selecting a developer, this participant gets access to the project with the role
9.Link to Articles section
Use case 1: After publication of a series of articles with some useful library, the author loses interest in the development of this library, the community has no tools for organised support/development of the products; MQ money paid to the authors of the series of articles goes into the sand (i.e. the effect is lost for 1-2 years after publication); examples include "Universal Trading Expert" (V. Sokolov), "Easy & Fast GUI Library" (A. Kazharsky), which were published by the authors of the series of articles. Kazharsky), which were abandoned/forgotten by their authors.
How to eliminate the drawback: for all authors who develop their library in a number of articles, set a mandatory requirement to publish the library in the form of a public project; in this case, starting from the 3rd article should be set an additional requirement to include in this project +1 member of the mql-community with the role of Owner before each subsequent article, or +3 members with the role of Owner before each subsequent article. Articles or +3 participants with the role of Participant.
P.S. I.e. in essence - if publications of authors do not find a response in the mql-community participants in the form of those who want to become co-owners of the project and further develop it, then this library is not interesting to the community and its development through Articles is not subject to funding. Let the authors publish it in Codebase and that's all.
10 .Link to MQ-Messaging functionality
Use case 1: After gathering participants, you need to organise a discussion, which is now most often held in Telegram or WhatsApp, i.e. outside the MQL5 ecosystem.com
How to eliminate this drawback: in the project settings, create a checkbox to open a closed channel in the MQ-Communications system associated with the project, to which project participants are automatically added.
Without eliminating the above-mentioned drawbacks, any agitation like this article is just empty slogans. They will lead neither to the popularity of the current functionality of the projects, nor to monetisation for MQ.
What is done now within the framework of MQL-projects - it can be considered only as a first, basic step.
Bringing the functionality of MQL-projects to a new level of integration into the MQL5.com ecosystem requires eliminating the above-mentioned shortcomings.