Souhaits pour le MQL5 - page 4

 
drknn:
Entier:
drknn:
Eh bien, j'ai une modeste suggestion. Je propose d'introduire une fonction dans le langage, qui renverra le nombre de cellules du tableau dans lesquelles se trouve la valeur donnée (ou en cas d'échec - renvoie moins un). Sinon, nous devons faire une boucle à chaque fois. La fonction ArrayBsearch() ne convient pas - elle renvoie une valeur erronée.

La valeur renvoyée par cette fonction sera toujours vérifiée comme étant égale à -1. Vous pouvez donc vérifier que la valeur dont l'indice est renvoyé par ArrayBsearch est égale à la valeur que vous recherchez. Pas une grande différence

Je cite la référence.

int ArrayBsearch(...)
Renvoie l'indice du premier élément trouvé dans la première dimension du tableau.
S'il n'y a pas d'élément avec la valeur spécifiée dans le tableau, la fonction retournera l'index de l'élément le plus proche (par valeur).

Eh bien, lorsque vous recherchez l'index non pas d'un simple numéro, mais d'un ticket dans le tableau, cette fonction ne convient pas du tout - pourquoi ai-je besoin de l'index du ticket similaire le plus proche, alors que j'ai besoin exactement de ce ticket, et s'il est absent, la commande ne fait pas partie de celles du marché - elle est fermée et nous devrions la trouver dans l'historique ! Lorsque vous travaillez avec des tableaux à décalage synchrone, l'indice est une chose très importante, et il doit être soit précis, soit non disponible.



Encore une fois, lisez ce que je vous ai écrit

" La valeur retournée par cette fonction sera toujours vérifiée pour l'égalité avec -1, donc vous pouvez vérifier la valeur avec l'index retourné par ArrayBsearch pour l'égalité avec la valeur recherchée. Pas une grande différence."

Trouvez le billet le plus proche, comparez-le à celui que vous cherchiez, s'il n'est pas égal, il n'est pas dans le tableau.

 
Integer:

Relisez ce que je vous ai écrit

" La valeur renvoyée par cette fonction sera toujours vérifiée pour l'égalité avec -1, donc vous pouvez vérifier la valeur avec l'index renvoyé par ArrayBsearch pour l'égalité avec la valeur que vous recherchez. Pas une grande différence."

Trouvez le ticket le plus proche, comparez-le avec le ticket, s'il n'est pas égal, cela signifie qu'il n'est pas dans le tableau.

Pourquoi faut-il que tu tournes en rond tout le temps ? Montrez-moi un langage de programmation normal qui n'a pas une fonction qui renvoie l'index de l'élément de tableau requis. Bien, j'écrirai la fonction moi-même, mais laissez-moi au moins passer le tableau dans une sous-routine comme paramètre.

Les inconvénients de MQL4 sont nombreux. La flexibilité de ce langage est inutile, écoutons nos besoins et sauvegardons le code de l'Expert Advisor. А ? Ou bien les développeurs ne se soucient de personne d'autre qu'eux-mêmes ?

 
drknn:

Bon, tant pis, je vais écrire cette fonction moi-même, alors laissez-moi au moins passer le tableau comme paramètre au sous-programme.

Dans MQL4, il est facile de passer un tableau à un sous-programme et tout aussi facile de l'accepter.
Il y a beaucoup d'inconvénients dans MQL4. Ecoutons ce qui est nécessaire et sauvegardons le code Expert Advisor. А ? Ou bien les développeurs ne se soucient-ils pas de tout le monde sauf d'eux-mêmes ?
Oui, les inconvénients sont bien connus. Les développeurs n'ont rien dit contre, n'est-ce pas ? Nous travaillons sur le langage MQL5 depuis longtemps.
 
drknn, jetez un coup d'œil ici : https://docs.mql4.com/ru/basis/variables/formal. Il s'agit de transférer des tableaux.
 
xenon13:

Avec tout le respect que je vous dois, MQL4 reste le meilleur MTS du marché, mais les éléments suivants manquent cruellement :

1. API ou possibilité d'appeler les fonctions de l'EA à partir d'une DLL (Mister Developers - vraiment nécessaire ! !!! )

Gestionnaires d'événements - au moins un événement système (un CallBack ou quelque chose avec un numéro de message, par exemple le message - la négociation sur ce symbole est arrêtée).

3. Structures, affectations dans l'enregistrement a = b = d = e, conversions de type implicites.

Je demande aux autres de nous rejoindre et de poursuivre la liste de souhaits dans ce fil.

P.S. Encore une fois, en ce qui concerne le premier point, vous pouvez tout laisser tel quel, mais faire un appel à partir de DLL.


J'aimerais voir un langage orienté objet proche du C++.

Si nous nous rapprochons de l'échange

Je voudrais obtenir

1 appeler cette fonction avec une minuterie personnalisable (ce serait une très belle fonctionnalité)

2 LOSS TAKE ACTION ( Bien que je comprenne que cela peut être suivi de manière programmatique en utilisant différents handlers)

3 il serait bien d'avoir une sorte de débogueur visuel ( bien que je sois satisfait de l'impression de contrôle)

 
Mathemat:
drknn, jetez un coup d'œil ici : https://docs.mql4.com/ru/basis/variables/formal. Il s'agit de transférer des tableaux.

Merci. Je vais regarder.
 
Renat:
Oui, les lacunes sont connues. Les développeurs n'ont rien dit contre, n'est-ce pas ? Nous travaillons sur le langage MQL5 depuis longtemps maintenant.

Je suis désolé, j'ai peut-être réagi de façon excessive. Le problème est qu'il n'existe pas de guide approprié de la langue. Si nous avions eu une aide appropriée, les utilisateurs auraient eu moins de questions.
 
Une liste des nouvelles fonctionnalités du langage MQL5 serait publiée par MQ. Il aurait été possible de discuter de certains points à l'avance - les nouvelles propriétés de la langue. Les promoteurs auraient modifié leurs plans. Nous pourrions même procéder à un vote sur les nouvelles fonctionnalités ou celles qui sont, par exemple, supprimées.

Au fait, il serait bon d'ajouter le tri des onglets avec code dans le méta-éditeur. Souvent, on souhaite regrouper certains modules côte à côte afin de ne pas avoir à scroller constamment pour trouver celui dont on a besoin.
Il y avait un problème dans un langage lorsque je passais une variable de type chaîne de caractères qui était un paramètre d'une autre fonction.
Ça n'a pas marché comme ça :

func(Symbole()) ;

void func(string symbol) {
mql_func(symbol) ;
}

Mais cela fonctionne comme suit

void func() {
mql_func(symbole() ;
}
 
drknn писал (а):


Pourquoi faut-il que tu tournes en rond tout le temps ? Montrez-moi un langage de programmation normal qui n'a pas une fonction qui renvoie l'index de l'élément de tableau requis. Bien, j'écrirai la fonction moi-même, mais laissez-moi au moins passer le tableau dans une sous-routine comme paramètre.


Delphi ne dispose pas d'une telle fonction. :) Et peut-être existe-t-il quelque part dans un module séparé. S'il existe, je n'en sais rien, car il est plus facile de l'écrire moi-même que de le chercher ou non.

D'ailleurs, le fait d'implémenter les algorithmes soi-même n'est pas une "solution de contournement", mais bien le fait d'utiliser des composants, des procédures, des bibliothèques et des morceaux de code prêts à l'emploi de tiers. C'est le contournement. Le terme scientifique pour cela est "lamerisme". :)
Les développeurs ont déjà dit qu'ils faisaient un langage pour les programmeurs, pas pour les programmeurs boiteux. :)

Toutes les fonctions que beaucoup de gens veulent, vous pouvez les réaliser vous-même en une demi-heure, au lieu d'attendre 3 ans que les développeurs le fassent pour vous. Ensuite, elles ont été chargées dans une bibliothèque séparée et simplement insérées dans chaque nouveau conseiller expert par un inlude habituel. Est-ce si difficile d'y réfléchir ? C'est un jardin d'enfants. La langue est cool, il y a beaucoup de possibilités de créativité. Mais si une personne n'est pas créative, ce langage lui est contre-indiqué. Il est contre-indiqué dans beaucoup de choses, y compris le commerce. :) Désolé pour l'éventuelle brusquerie, je ne pouvais pas le supporter.



Je regrette seulement qu'un opérateur de transition n'ait pas été ajouté. Le reste me convient.

Si je voulais modifier le paramètre OrderLots dans une transaction réelle, je ne voudrais pas avoir à le supprimer et à en définir un nouveau. J'ai tous mes états remplis d'ordres en attente. Je pense que cela ne devrait pas être difficile à mettre en œuvre. Renat, si vous lisez ceci, répondez s'il vous plaît.
 
Bauleken:
drknn a écrit (a) :


Mec, pourquoi tu dois tourner en rond tout le temps ? Montrez-moi un langage de programmation normal, qui n'a pas une fonction qui renvoie l'index de l'élément de tableau requis. Allez, je vais écrire cette fonction moi-même, alors laissez-moi au moins passer le tableau dans une sous-routine comme paramètre.


Cette fonction n'existe pas dans Delphi. :) Si elle existe, je n'en sais rien, car il est plus facile de l'écrire soi-même que de la chercher ou non.

D'ailleurs, le fait d'implémenter les algorithmes soi-même n'est pas une "solution de contournement", mais bien le fait d'utiliser des composants, des procédures, des bibliothèques et des morceaux de code prêts à l'emploi de tiers. C'est le contournement. Le terme scientifique pour cela est "lamerisme". :)
Les développeurs ont déjà dit qu'ils font un langage pour les programmeurs, pas pour les programmeurs boiteux. :)
Ne devrions-nous pas plutôt programmer en code machine ? Pourquoi tous ces langages de haut niveau et même l'assembleur ? Avec une chose aussi unique que le code machine, vous pouvez faire ce que vous voulez :)


Toutes les fonctions que beaucoup de gens veulent, vous pouvez les faire vous-même en une demi-heure, au lieu d'attendre 3 ans que les développeurs le fassent pour vous. Ensuite, vous les entassez dans une bibliothèque séparée et vous les insérez simplement dans chaque nouveau conseiller expert avec un inlude habituel. Est-ce si difficile de penser à tout cela ? C'est un jardin d'enfants. La langue est cool, il y a beaucoup de possibilités de créativité. Mais si une personne n'est pas créative, ce langage lui est contre-indiqué. Il est contre-indiqué dans beaucoup de choses, y compris le commerce. :) Désolé pour l'éventuelle brusquerie, je ne pouvais pas le supporter.
:))))))))))) Cela m'a remonté le moral - j'ai bien ri :))))))))) merci. Non, vraiment :)))))
Je regrette seulement qu'un opérateur de transition n'ait pas été ajouté. Le reste me convient.

Si je voulais modifier le paramètre OrderLots dans une transaction réelle, je ne voudrais pas avoir à le supprimer et à en définir un nouveau. J'ai tous mes états remplis d'ordres en attente. Je pense que cela ne devrait pas être difficile à mettre en œuvre. Renat, si vous lisez ceci, répondez s'il vous plaît.
Si vous l'avez lu, veuillez me répondre, mais pourriez-vous m'en dire plus ? Vous pouvez modifier une position de vente ou je ne comprends pas quelque chose ?
Raison: