Commentaires sur MQL5

 

J'utilise MQL4 depuis longtemps et j'ai été très heureux d'apprendre que MQL5 introduira enfin la POO, car je pourrai écrire plus rapidement des systèmes d'analyse automatisés plus flexibles. Mais je n'arrive pas à trouver les mots pour dire à quel point j'ai été déçue. J'étais horrifié de ne pas être capable de fonctionner pleinement avec les pointeurs et de travailler avec des objets facilement et rapidement, ce qui est particulièrement vrai pour le développement de systèmes, qui sont inutiles 95% du temps. Nous écrivons tous des programmes en MQL pour tester une théorie, effectuer une analyse automatique des données afin de vérifier une idée plus tard et l'optimiser, et cela doit être fait très rapidement, car l'idée doit être optimisée de très nombreuses fois. Même si l'on fait abstraction de la langue, le développement de systèmes de négociation ou d'analyse dans ce contexte est un travail ingrat, car on se met au travail en sachant qu'il sera très probablement sous-optimal, voire inutile. Que dire, si les développeurs de MQL5 nous ont donné, selon leurs termes, un outil super sûr, dans lequel il est impossible de se tuer, mais pour la mise en œuvre d'une idée simple ou en d'autres termes d'un algorithme élémentaire, il faut travailler pendant des dizaines d'heures.

Eh bien, développeurs MQL5, j'ai lu un paragraphe intéressant dans le livre de Straustrup, et je me suis instantanément souvenu de votre "produit" dans MQL5 :

"La relation entre le langage dans lequel nous pensons (écrivons des programmes) et les tâches (solutions) que nous pouvons imaginer est très étroite. C'est pourquoi il est dangereux, au mieux, de restreindre les capacités d'un langage pour éviter les erreurs de programmation. Tout comme dans le cas des langues naturelles, il est très utile de connaître au moins deux langues. Un langage fournit au programmeur un ensemble d'outils conceptuels. Si ces outils ne sont pas adaptés à la tâche à accomplir, ils sont tout simplement ignorés. La qualité de la conception et l'absence d'erreurs ne peuvent être garanties par la simple présence ou l'absence de caractéristiques spécifiques dans un langage."

Ainsi, sur la base de mes commentaires ci-dessus, ce que vous avez programmé pour le plaisir de programmer est totalement inadapté aux objectifs que MQL est censé servir. Merci de m'avoir forcé à simplement ignorer un outil tel que la POO dans MQL5.

 

Vous devriez au moins donner quelques exemples.

Comment ça, vous ne pouvez pas utiliser pleinement les pointeurs et travailler avec des objets rapidement et facilement ? Je n'ai jamais eu le moindre problème à ce sujet lors de l'élaboration de projets à grande échelle.

 

Peu de langages modernes, gérables et sûrs permettent d'utiliser les pointeurs de manière "complète" (c'est-à-dire dangereuse). Surtout dans MQL4/MQL5, où la sécurité et la contrôlabilité doivent être primordiales.

Tout le reste est présent et disponible. Et il existe aussi des pointeurs de sécurité.

Il est fort probable que vous n'ayez pas encore trouvé la solution, mais que vous ayez fait le tour de vos idées. Il n'y a pas d'autre façon d'appeler ce flux non fondé.

 
Renat Fatkhullin:

Peu de langages modernes, gérables et sûrs permettent d'utiliser les pointeurs de manière "complète" (c'est-à-dire dangereuse). Surtout dans MQL4/MQL5, où la sécurité et la facilité de gestion doivent occuper la première place.

Tout le reste est présent et disponible. Et des conseils de sécurité sont également disponibles.

Il est fort probable que vous n'ayez pas encore trouvé la solution, mais que vous vous soyez lancé dans une réflexion personnelle. Il n'y a pas d'autre façon d'appeler ce flux non fondé.

S'il vous plaît :

https://www.mql5.com/ru/forum/35326

https://www.mql5.com/ru/forum/1111/

Nommez un langage largement utilisé dans lequel je ne peux pas attribuer une adresse différente à un pointeur ? Nommez un langage couramment utilisé dans lequel je ne peux pas assigner une référence d'un type à un objet différent du même type ? Où d'autre serais-je obligé de décrire un constructeur ou une fonction de copie en raison de ces limitations de votre langage ?

Et si la contrôlabilité est primordiale pour vous, pourquoi les autres langues contrôlées n'imposent-elles pas des restrictions similaires ?

Personnellement, pour moi, le plus important n'est pas la sécurité et la contrôlabilité, mais la vitesse à laquelle je peux mettre en œuvre l'idée, ceci est extrêmement juste dans le contexte des idées de trading, ceux qui ne sont pas d'accord avec cela, soit surestiment la valeur de leurs systèmes, soit programment pour le plaisir de programmer, pas pour un résultat spécifique.

 

Renat, tu reconnais toi-même ce que j'ai écrit dans le premier post et tu voiles la perte de flexibilité de la sécurité en en faisant un avantage indéniable, alors que ce n'est pas du tout vrai.

Битый указатель (именно указатель как сущность и рабочая единица языка) контролируется системой и безопасно обрабатывается, выдавая при необходимости рантайм ошибку, указывая на ошибку автора. А вот "физическая" ссылка не может быть проконтролирована, да ее и нет в языке (не путайте с передачей параметра по ссылке, где это лишь контролируемый системой метод связи).

La suppression des liens dangereux est le premier pas vers la création d'un langage sûr à partir du monstre qu'est le C++ aujourd'hui. Nous avons volontairement et délibérément supprimé les références,perdant délibérémentde la flexibilité en nous débarrassant de l'autodafé.

Donnez-moi la possibilité de me tirer une balle dans le pied, car sans cette possibilité, je suis obligé de contrôler la programmation, et je veux contrôler l'idée que je veux mettre en œuvre.
 
urusov:

S'il vous plaît :

https://www.mql5.com/ru/forum/35326

https://www.mql5.com/ru/forum/1111/

Nommez un langage couramment utilisé où je ne peux pas assigner une adresse différente à un pointeur ? Citez un autre langage largement utilisé dans lequel je ne peux pas affecter une référence du même type à un objet différent ? Où d'autre serais-je obligé de décrire un constructeur ou une fonction de copie en raison de ces limitations de votre langage ?

Et si la contrôlabilité est primordiale pour vous, pourquoi les autres langues contrôlées n'imposent-elles pas des restrictions similaires ?

Personnellement, pour moi, le plus important n'est pas la sécurité et la contrôlabilité, mais la vitesse à laquelle je peux mettre en œuvre l'idée, c'est extrêmement juste dans le contexte des idées de commerce, ceux qui ne sont pas d'accord avec cela, soit surestiment la valeur de leurs systèmes, soit programment pour le plaisir de programmer, plutôt que pour un résultat spécifique.

Camarade ! Ne transférez pas votre ignorance de la langue dans le domaine de responsabilité des développeurs. Dans MQL5, vous pouvez librement assigner divers objets aux pointeurs et passer ces objets comme pointeurs. Comme dans tous les autres langages modernes, comme C# et Java, MQL5 dispose d'une vérification explicite des types, et leur conversion ne peut être effectuée qu'au sein de la même hiérarchie de classes (héritage). Là encore, le même comportement est mis en œuvre dans d'autres langages largement utilisés comme C# et Java.

 
urusov:

Renate, tu reconnais toi-même tout ce que j'ai écrit dans le premier post et tu voiles la perte de flexibilité dans la sécurité en en faisant un avantage indéniable, alors que ce n'est pas du tout le cas.

Donnez-moi la possibilité de me tirer une balle dans le pied, car sans cette possibilité, je suis obligé de contrôler la programmation, et je veux contrôler l'idée que je veux mettre en œuvre.
A en juger par vos précédents messages, vous avez appris à vous tirer dans le pied de façon magistrale. Il ne reste plus qu'à apprendre à programmer.
 
J'aime le 5-Rka. Il est probable que l'initiateur n'ait pas eu le temps de comprendre et qu'il ait tiré une conclusion hâtive. C'est un peu compliqué au début, bien sûr, mais ça en vaut la peine.
 
urusov:

Renate, tu reconnais toi-même tout ce que j'ai écrit dans le premier post et tu voiles la perte de flexibilité dans la sécurité en en faisant un avantage indéniable, alors que ce n'est pas du tout le cas.

Donnez-moi la possibilité de me tirer une balle dans le pied, car sans cette possibilité, je dois contrôler la programmation, et je veux contrôler l'idée que je veux mettre en œuvre.

Vous devriez vous éduquer et penser davantage à la sécurité.

Je n'admets rien, mais j'ai justifié dans les liens ci-dessus (qui sont lancés même sans référence claire à un endroit précis), ce qui, comment et pourquoi a été fait dans MQL4/MQL5. L'expérience pratique acquise depuis 2001 (date de sortie de MQL) dans le développement de langages d'application pour les plates-formes de négociation nous permet de bien comprendre ce qui est nécessaire pour obtenir un résultat global.


Voulez-vous une vitesse débridée ? Ecrivez en C++ et incluez la DLL. Mais même dans MQL5, nous avons rattrapé les compilateurs C++ natifs : Test du nouveau compilateur MQL5 pour les plateformes x64 - accélération de 2 à 10 fois !

 
urusov:

Nommez un langage largement utilisé où je ne peux pas attribuer une adresse différente à un pointeur ? Nommez un autre langage largement utilisé où je ne peux pas assigner une référence du même type à un autre objet ? Où d'autre serais-je obligé de décrire un constructeur ou une fonction de copie en raison de ces limitations de votre langage ?

Eh bien, regardez au moins dans la bibliothèque standard https://www.mql5.com/ru/docs/standardlibrary et voyez le code (dans MQL5\Include\*) qui fonctionne pleinement avec les références.

De toute évidence, vous ne connaissez pas du tout la langue.

Документация по MQL5: Стандартная библиотека
Документация по MQL5: Стандартная библиотека
  • www.mql5.com
Стандартная библиотека - справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 

Renat, veuillez consulter ce fil de discussion

https://www.mql5.com/ru/forum/60581/page2

Куда пропала история сигнала?
Куда пропала история сигнала?
  • www.mql5.com
Помогите разобраться, пропала история торговли сигнала (доходность, сделки и прочее). - Страница 2 - Категория: общее обсуждение
Raison: