Il est temps de convertir les bibliothèques en MQL5 - page 5

 

Au fait, les commandes de stockage ne pourraient-elles pas être dans un langage humain ? - Tu sais, comme :

"Envoyer au dépôt."

"Télécharger à partir du référentiel."

"Synchroniser avec le référentiel."

"Synchroniser avec ME."

Et les commandes qui sont maintenant - eh bien, ce n'est pas clair. Et en cela, je suis solidaire d'Urain. Et si une personne ne comprend pas intuitivement quelque chose, il est peu probable que cette personne veuille passer du temps à étudier les commandes pour utiliser la nouvelle fonctionnalité, surtout si elle s'en passait auparavant (fonctionnalité).

 

Ce fil de discussion se transforme en une liste de souhaits, je vais mettre le mien iciaussi .

Quant aux bibliothèques numériques, elles sont :

  • interpolation, lissage et approximation
  • traitement des matrices
  • Optimisation (recherche d'un extremum), méthodes :

Univarié : Méthode du nombre d'or, Dichotomie, Méthode des paraboles, Recherche de mailles, Méthode de Fibonacci, Recherche trinaire
Méthodes directes : Méthode de Gauss, méthode Nelder-Meade, méthode Hook-Jeeves, méthode de configuration, méthode Rosenbrock
Première commande : Descente de gradient, méthode de Zoytendijk, descente par coordonnées, méthode du gradient conjugué, méthodes de Quasi-Newton, algorithme de Levenberg-Marquardt.
Deuxième ordre : Méthode Newton, Méthode Newton-Raphson
Stochastique : méthode de Monte Carlo, recuit simulé, algorithmes évolutionnaires, algorithmes génétiques, évolution différentielle, algorithme de fourmis, méthode de l'essaimage particulaire.

Liste Wikipedia, vous n'avez probablement pas besoin de la totalité.

  • des réseaux neuronaux ?

En plus des bibliothèques de méthodes numériques :

  • graphique

Et dans le langage pour construire un analogue de l'API Reflection de Java

  • Définition de la classe d'objets.
  • Obtenir des informations sur les modificateurs, les champs, les méthodes, les constructeurs.
  • Créer une instance de la classe dont le nom est inconnu jusqu'à l'exécution du programme (spécifié par string).
  • ...

Et les expressions régulières.

Et à cela, il serait bon d'ajouter la possibilité d'exécuter le programme autrement que dans une fenêtre de tableau de caractères. Mais dans une fenêtre normale. Il est déjà évident que les "applications" de l'utilisateur ne peuvent être évitées, alors pourquoi se lier à un symbole, car vous pouvez accéder à n'importe lequel, pour n'importe quelle opération. En général, dans 5, le survol par défaut du symbole est totalement inutile. C'est le lot des indicateurs et des applications expertes pour lesquels il est vraiment utile.

Et, au minimum, faites un blocage des événements "popping" vers le graphique à partir des éléments d'interface, maintenant il est ennuyeux de faire glisser un objet de fenêtre en même temps que le défilement du graphique (ou peut-être que c'est déjà le cas ?).

Merci pour les méthodes statiques - mes singletons ne sont plus des fonctions globales.

 
Renat:
Nous avons fait un énorme travail pour affiner le compilateur MQL5 afin de faciliter la conversion des bibliothèques existantes écrites dans d'autres langages.

Et le langage MQL5 continue d'évoluer. De nouvelles fonctionnalités devraient bientôt apparaître, notamment un puissant profileur de code.

Nous avons maintenant deux tâches à accomplir :
1) sélectionner les bibliothèques tierces utiles pour la conversion
2) de rassembler des volontaires pour mettre en œuvre des projets de conversion (nous le financerons).

Nous aimerions commencer par une liste de projets potentiels. Aide avec des liens et une courte description, s'il vous plaît.
Je pense que c'est plus rentable pour ceux qui souhaitent mettre des bibliothèques sur le marché, car il s'agit d'une solution à long terme, et vous proposez un paiement unique. Bien sûr, si vous êtes prêt à offrir 10 000 à 50 000 dollars ou plus par projet, alors une autre conversation, alors je suis prêt à bouger quelque chose.
 
-Alexey-:
Je pense que c'est plus rentable pour ceux qui souhaitent mettre des bibliothèques sur le marché, car il s'agit d'une solution à long terme, et vous proposez un paiement unique. Bien sûr, si vous êtes prêt à offrir 10 000 à 50 000 dollars ou plus par projet, alors une autre conversation, alors je suis prêt à déplacer quelque chose.
Très intéressant, qu'est-ce que vous êtes prêt à offrir ? Juste un petit indice, s'il vous plaît ?
 
Plus de travail avec les nombres complexes, avec les grands nombres. Convertir des coordonnées, avec création ultérieure de graphiques tridimensionnels.
 
TheXpert:
Allez-y:)
Aïe ! Aïe ! :)
 

Une autre question - si vous essayez de rendre MQL5 aussi proche de C++ que possible, pourquoi ne pas reconsidérer la question de #ifdef ou #if defined ou juste #if ?

Ensuite, je vais soulever une question concernant le débogage des bibliothèques, peut-être n'avez-vous pas remarqué ?

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

Bien sûr, il est partiellement résolu par le contrôle interne, mais à la lumière de la croissance du code des bibliothèques, il est très pertinent.

E.M.N.I., les extraits de la bibliothèque ne fonctionnent pas.

 
Renat:
Il est étrange d'entendre parler d'"accès garanti à la dll" alors que cela fonctionne parfaitement bien dans MQL4 et MQL5 depuis 7 ans.

Cela fonctionne bien lorsque vous prenez une dll C++ (ou C#) avec un fichier d'en-tête, que vous la placez dans le dossier approprié, que vous incluez le ou les fichiers d'en-tête originaux via #include dans votre code et que vous avez terminé. Est-ce possible de nos jours ?

 
Est-ce possible dans un autre langage non-C/C++ ?

L'absence totale de sécurité du C/C++ et l'accès direct aux données ne font pas bon ménage avec les langages qui se soucient au moins un peu de la sécurité. Les fichiers d'en-tête *.h peuvent être utilisés dans MQL5 presque tels quels, renommés en MQH. Mais les lieux qui fonctionnent avec des liens et un accès direct aux données doivent être corrigés.

Les liaisons avec DLL fonctionnent très bien.

 
Renat:
. . . Les fichiers d'en-tête *.h peuvent être utilisés dans MQL5 pratiquement tels quels, renommés en MQH. Mais les lieux, qui fonctionnent avec des liens et un accès direct aux données, devront être corrigés.

Je suppose que vous allez devoir changer beaucoup de choses.

En fait, il n'y a rien de mal à accéder directement aux données. Après tout, MetaTrader lui-même est probablement écrit en C/C++, et rien. De plus, les éditeurs de liens autorisent généralement les insertions en assembleur, ce qui est également acceptable. N'oubliez pas que MetaTrader fonctionnant sous Windows utilise directement ou indirectement un grand nombre de dlls système, et il n'y a rien de mal à cela non plus.

Je pense qu'il ne faut pas priver l'utilisateur du droit de choisir. J'aimerais vraiment avoir la possibilité de prendre, par exemple, ALGLIB-dll et son ou ses fichiers d'en-tête natifs et d'utiliser une bibliothèque fiable sans "se salir les mains", mais en indiquant simplement au compilateur MQL qu'il s'agit d'un fichier d'en-tête C++, et non MQL.

On pourrait se demander ce qui se passe si cette bibliothèque est malveillante et dangereuse. Mais j'ai décidé de l'utiliser moi-même.

En d'autres termes, le contenu programmé par MQL peut être aussi sûr que vous le souhaitez, mais si j'ai osé utiliser quelque chose d'externe, c'est mon problème personnel. Ainsi que la sécurité de mon système d'exploitation, qui, soit dit en passant, peut également constituer une menace pour MetaTrader.