Time to convert libraries to MQL5 - page 5

 

By the way, couldn't the storage commands be in a human language? - You know, like:

"Send to repository."

"Download from repository."

"Synchronize with repository."

"Synchronize with ME."

And the commands that are now - well, it's not clear. And in this I am in solidarity with Urain. And if something someone does not understand intuitively, then this person is unlikely to want to spend time studying the commands to use the new functionality, especially if before did without it (functionality).

 

This thread is turning into a wishlist, I'll put mine heretoo .

As for numerical libraries, these are:

  • interpolation, smoothing and approximation
  • matrix handling
  • Optimization (search for an extremum), methods:

Univariate: Golden Ratio Method, Dichotomy, Parabola Method, Mesh Search, Fibonacci Method, Trinary Search
Direct methods: Gauss Method, Nelder-Meade Method, Hook-Jeeves Method, Configuration Method, Rosenbrock Method
First order: Gradient descent, Zeutendijk method, Coordinate descent, Conjugate gradient method, Quasi-Newton methods, Levenberg-Marquardt algorithm
Second order: Newton Method, Newton-Raphson Method
Stochastic: Monte Carlo Method, Simulated Annealing, Evolutionary Algorithms, Genetic Algorithms, Differential Evolution, Ant Algorithm, Particle Swarm Method

Wikipedia list, probably don't need the whole thing.

  • neural networks?

In addition to numerical method libraries:

  • charting

And in the language to build an analogue of the Java Reflection API

  • Object class definition.
  • Get information about modifiers, fields, methods, constructors.
  • Create an instance of the class, the name of which is unknown until the execution of the program (specified by string).
  • ...

And regular expressions.

And to that, it would be a good addition to be able to run the program not in a character chart window. But in a regular window. It is already obvious that there is no escape from custom "applications", so why linking to a symbol, because you can access any, for any operation. Generally, in 5, the default hovering on the symbol is completely unnecessary. This is the lot of indicators and expert applications for which it is really useful.

And, at a minimum, make a blockage of "popping" events to the chart from interface elements, now it is annoying to drag a window object together with the chart scrolling (or maybe it already is?).

Thanks for the static methods - my singletons are no longer global functions.

 
Renat:
We have done a huge amount of work to fine-tune the MQL5 compiler to make it easier to convert existing libraries written in other languages.

And the MQL5 language continues to evolve. New features are expected to appear soon, including a powerful code profiler.

We now have two tasks to accomplish:
1) to select useful third-party libraries for conversion
2) to gather volunteers to implement conversion projects (we will fund it).

We would like to start with a list of potential projects. Help with links and a short description, please.
I think it's more profitable for those willing to put libraries on the market, as it's a long term fix, and you're offering a one-off payment. Of course, if you're willing to offer $10,000 to $50,000 or more per project, then another conversation, then I'm willing to move something.
 
-Alexey-:
I think it's more profitable for those willing to put libraries on the market, as it's a long-term fix, and you're offering a one-off payment. Of course, if you're willing to offer $10,000 to $50,000 or more per project, then another conversation, then I'm willing to shift something.
Very interesting, what is it that you are prepared to offer? Just a little hint, please?
 
More work with complex numbers, with large numbers. Convert coordinates, with further creation of three-dimensional graphs.
 
TheXpert:
Move it:)
Ow! Ow! :)
 

Another question - if you are trying to make MQL5 as close to C++ as possible, why don't you reconsider the question about #ifdef or #if defined or just #if?

Next, I'll raise a question concerning debugging of libraries, maybe you haven't noticed?

Небольшой вопрос -- сейчас есть возможность нормально дебажить библиотеки? Просто не всегда все баги вылазят сразу -- некоторые могут остаться и вылезти уже во время активного пользования библиотекой.

Of course, it is partially solved by internal control, but in the light of growing library code it is very relevant.

E.M.N.I., the library's snippets don't work.

 
Renat:
It's strange to hear about "guaranteed access to dll" when it has been working perfectly well in MQL4 and MQL5 for 7 years.

It works fine when you take a C++ (or C#) dll with a header file, put it in the appropriate folder, include the original header file (or files) via #include in your code and you're done. Is it possible nowadays?

 
Is this possible in any other non-C/C++ language?

The complete lack of security of C/C++ and direct data access does not go well with languages that care at least minimally about security. The header *.h files can be used in MQL5 almost as is, renamed to MQH. But places that operate with links and direct access to the data must be corrected.

Bindings with DLL work just fine.

 
Renat:
. . . The header *.h files can be used in MQL5 virtually as is, renamed into MQH. But the places, which operate with links and direct access to data will have to be corrected.

I assume that you will have to change a lot of things.

Actually, there is nothing wrong with direct access to data. After all, MetaTrader itself is probably written in C/C++, and nothing. Furthermore, linkers usually allow even assembler inserts, and that's OK too. Remember that MetaTrader running under Windows directly or indirectly uses a lot of system dlls, and there's nothing wrong with it either.

I think one should not deprive the user of the right to choose. I'd really like the option where I could take, for example, ALGLIB-dll and its native header file(s) and use a reliable library without "getting my hands dirty", but just pointing to the MQL compiler that this is a C++ header file, not MQL.

One might ask - what if this library is malicious and dangerous? But I decided to use it myself.

In other words - MQL-programmed content may be as safe as you want, but if I dared to use something external, it is my own personal problem. As well as the security of my operating system, which, by the way, can also pose a threat to MetaTrader.

Reason: