Discussion of article "Universal Expert Advisor: CUnIndicator and Use of Pending Orders (Part 9)" - page 2

 

Hello!

I just started learning UnExpert. Everything was fine until today and suddenly I got errors in various library files Message, Dictionary, Sessioninfo and others. What could happen? And in general, is this library supported?

 
Titika:

I just started learning UnExpert. Everything was fine until today and suddenly I got errors in various library files Message, Dictionary, Sessioninfo and others. What could have happened?

It's a change in the language that no longer allows some liberties. It's easy to fix.

 
fxsaber:

It's a change in language that no longer allows some liberties. It's easy to fix.

I looked at my code and was amazed. Some methods did not have a return type specified. Strange that it compiled before.

 
Vasiliy Sokolov:

I looked at my code and was amazed. Some methods did not have a return type specified. It was strange that it compiled before.

Somehow, even in a recent article it turned out to be like that.

In the ZIP library, if memory serves, the same case was and worked before.

 

Today I wrote my first Expert Advisor based on the Universal Engine. I would like to say Hi and express my gratitude to the author for his work.

I managed to write the Expert Advisor in just one day, while practically understanding the main classes and functions. Now I applied for its placement in CodeBase, but I am not sure that it will be allowed, because without the main library of the Universal Engine it does not pass the last test for compilability. I wrote to moderatotram, maybe they will let it through.

It reminds me very much of S#.Shell library from StockSharp platform, but the project is much more efficient and optimal.

Some small remarks

1. The CTrailingMoving class should be switched to using CUnIndicator too, since it has already been introduced.

2. The Modify() method of the CTrailingClassic class really works incorrectly, it was noticed in the discussion of the article "Universal Trading Expert Advisor: Working with Custom Trailing Stops (Part 6) ( link), but it was not fixed.

Proper method termination should include a check for exceeding the m_step_modify value:

   if(m_position.Direction()==POSITION_TYPE_BUY)
      {
         n_sl=extremum-m_diff_extremum;
         if(n_sl-m_position.StopLossValue()>m_step_modify) return m_position.StopLossValue(n_sl);
      }
   else
      {
         n_sl=extremum+m_diff_extremum;
         if(m_position.StopLossValue()-n_sl>m_step_modify) return m_position.StopLossValue(n_sl);
      }

3. Stop loss should be placed immediately, not in SupportBuy/SupportSell, e.g. if the Expert Advisor is scheduled to work on M15, the position will be 15 min without SL, it is not good.

In the current version of the Universal Engine this can be achieved in two ways:

a) make the RebuildPositions method of the CStrategy class public,

c) make M1 TF as a working one, and all TFs of all used indicators should be unlinked from the TF of the Expert Advisor.

But these are all small things.

Globally

I wish the author to continue working on the development of the Universal engine, especially since there are requests from the community.

There has not been a single update for a year already. Some Artyom Trishkin has already written articles on the topic of an alternative universal library, but still even now it has not reached the level of the Universal Engine - it is a pathetic analogue that does not cover even 1/3 of the functions implemented in the latest version of the UD (I do not consider the full compatibility of its library with MT4 a plus - nobody really needs it anymore).

 
Sergey Lebedev:
...

There hasn't been a single update for a year. Some Artyom Trishkin has already written articles on the topic of an alternative universal library, but still even now it has not reached the level of the Universal Engine - it is just a pathetic analogue that does not cover even 1/3 of the functions implemented in the latest version of UD (I do not consider the full compatibility of its library with MT4 a plus at all - nobody really needs it anymore).

This "someone" has a somewhat different task than "right away and now" to give everyone a tool for easy writing programmes. The project is developing, and this is only a tenth part of it. So don't judge the object by its embryo - it's too early - it hasn't been born yet.

 
I can quite believe that in +80 articles your project will significantly overtake the Universal Engine project, but this weekend when I compared both projects I made a choice in favour of UD, yours is still in the phase that it will take a long time to catch up.
The presence of competitive universal platforms is good when they are simultaneously developed by the community, and not frozen after the author loses interest in the project. After all, you make 100+ articles will also stop supporting your project???? Interest cannot be maintained all the time! And after you there will be another universaliser with his own unique vision of a universal library and with a plan for 200+ articles?????
Accordingly, I would suggest to think about why these analogues are needed by end users, and for what cardinal reasons you needed to write everything from scratch, instead of developing the Universal Engine created by the time you started your work and creating 19-20 of its new improvements/classes?
 
Sergey Lebedev:
I can quite believe that in +80 articles your project will significantly overtake the Universal Engine project, but this weekend when I compared both projects I made a choice in favour of UD, yours is still in the phase that it will take a long time to catch up.
The presence of competitive universal platforms is good when they are simultaneously developed by the community, and not frozen after the author loses interest in the project. After all, you make 100+ articles will also stop supporting your project???? Interest cannot be maintained all the time! And after you there will be another universaliser with his own unique vision of universal library and with a plan for 200+ articles?????
Accordingly, I would suggest to think about why these analogues are needed by end users, and for what cardinal reasons you needed to write everything from scratch, instead of developing the Universal Engine created by the time you started your work and creating 19-20 of its new improvements/classes?

Are you in favour of everyone driving one brand of car, flying one airline on a single brand of plane, etc., etc., etc.? ?

And, yes, I'm not trying to "catch up and overtake", and plant everything in corn.... I'm doing my own project.

Of course, and naturally, I'm not surprised that the choice is in favour of Vasily's work - it has a finished look, while my library is just being created. You misunderstand a bit the meaning and essence of my articles - they describe the process of creating a library, not the process of using an already finished one. Those who want to dive into the development and understand the principles - they do it, and ask questions, clarify and learn. Someone immediately understood what is written there and follows the development. But this is not the place to discuss it - this is the place to discuss Vasily's work.

And what makes you think that I, having started a huge work, would just abandon it overnight? Of course not. And there is a lot of potential for development.

 
Sergey Lebedev:

...

Globally

I would like to wish the author to continue working on the development of the Universal engine, especially since there are requests from the community.

There hasn't been a single update for a year already. Somebody Artyom Trishkin has already written articles on the topic of an alternative universal library, but still even now it has not reached the level of the Universal Engine - it is a pathetic analogue that does not cover even 1/3 of the functions implemented in the latest version of the UD (I do not consider full compatibility of its library with MT4 a plus at all - nobody really needs it anymore).

Good day. Thank you for your feedback. It seems optimal to place UTE codes in a public version control system (Git or MT's). In this case, users will be able to fix errors and make additional changes/improvements in the code after my code review. I think such a system of project development is optimal for open source, because no one can carry everything alone.

As for the UTE itself, I think that its main functionality is formed. It covers most of the most common trading functions. Therefore, the development of UTE in the same direction will not give fundamentally new things. However, a functional framework for working with data can give a global impetus to the development of UTE. The idea is to operate with system structures in object style and work with collections (including system ones) in functional style. In this case, the clear distinction between system and user data types will be erased, and queries on their processing will be created "on the fly" by users themselves (something like LINQ in C#). Unfortunately, language restrictions do not allow to write this framework on a one-two basis, so this is still just an idea.

 

Stopped by today to see the update and first of all I want to say thank you. 2 years ago I corrected a couple of inaccuracies, I have been using the same EA structure all this time without thinking about the binding. Sometimes I forget that this is your development and not MT standard.

If it will be possible to develop and place the library, I vote with all my limbs FOR (I have screwed in my own needs, often not optimally, I have also screwed in solutions of other authors). as a platform for development or even the right message in the development. If you decide, please, please, write the address of the site in this discussion.

Thanks in advance...