Vous manquez des opportunités de trading :
- Applications de trading gratuites
- Plus de 8 000 signaux à copier
- Actualités économiques pour explorer les marchés financiers
Inscription
Se connecter
Vous acceptez la politique du site Web et les conditions d'utilisation
Si vous n'avez pas de compte, veuillez vous inscrire
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.
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 ?
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.
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)
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.
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() ;
}
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.
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.
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.
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. :)
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.
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.