Testeur soutenant les scripts et les conseillers MG4 - page 5

 
Integer:
Dans cette optique, le C++ est identique au JavaScript. Et c'est vrai !

Un magnifique mensonge !

Donnez-nous un exemple d'une implémentation C++ d'une fonction similaire à la fonction eval() de Javascript :

01      var str = "if (a) { 1+1 } else { 1+2 }"
02      var a = true
03      var b = eval(str)
04      alert("b равно : " + b) // 2
05       
06      // теперь поменяем "a"
07       
08      a = false
09      b = eval(str)
10      alert("b равно : " + b) // 3

C'est-à-dire écrire un morceau de code source C++ dans une variable de type std::string, puis appeler la fonction eval(), qui exécutera ce morceau de code extrait de la variable de type std::string.

Suggérer une implémentation d'une telle fonction eval() en C++ (c'est-à-dire que je ne parle même pas de l'absence d'une telle fonction, mais de la possibilité d'une telle fonction dans le langage lui-même).

Inutile de préciser que ce n'est pas la seule différence.

Le noyau de MQL4++ ne diffère pas de celui de MQL5 : même syntaxe, mêmes types, opérations, objets, polymorphisme, surcharge...

La seule différence est la bibliothèque qui met en œuvre l'API des conseillers experts, des indicateurs et des scripts. En ce sens, dans le même Javascript, il y a un langage de base et deux modèles d'objets :

Structurellement, JavaScript peut être représenté comme une union de trois parties clairement distinctes :

  • noyau (ECMAScript),
  • Modèle d'objet du navigateur (BOM),
  • Document Object Model (Document Object Model ou DOM).

Et MQL peut être représenté comme des choses clairement distinctes : le langage de base et les bibliothèques. Si le noyau MQL4 est différent du noyau MQL4++, le noyau MQL4++ ne diffère pas du noyau MQL5.

Donc, Renat a tout à fait raison ici, et c'est étrange de le contester.

 
Integer:

Exactement. Notamment en profitant de l'autorité de sa position supérieure.

Toutes les langues sont les mêmes, sauf celles qui sont particulièrement extravagantes. Tous ces éléments peuvent être appris en 21 jours par n'importe quel crétin. Tous ont pour, pendant, si, switch, peut-être la forme d'écriture est différente, mais en principe cela ne change rien.

Naturellement, une compréhension aussi superficielle ne permet pas de voir la différence. C'est pourquoi ils semblent tous être les mêmes.

J'aimerais jouer avec la fonction eval() non seulement en C++ mais aussi en MQL4++.

Pourriez-vous écrire une telle fonction au moins dans MQL4++, puisqu'il n'y en a pas d'intégrée ?

Je ne pourrai pas l'écrire - les différences entre Javascript et MQL4++ sont trop importantes pour moi.

Vous dites que tous les langages sont les mêmes, et donc que Javascript et MQL4++ sont une seule et même chose, donc il doit être assez facile pour vous de l'écrire.

 
Renat:

Au lieu de cela, nous avons opté pour des fonctions CopyXXX très économiques, où le développeur interroge exactement le tableau local pour obtenir la quantité de données dont il a besoin, et non l'ensemble du graphique disponible. Vient ensuite le traitement le plus rapide possible des données locales (au lieu de l'ancien système plutôt coûteux Open/High/Low/Close/Time[xxx]), et l'auteur peut mettre ces données en cache et les utiliser avec parcimonie lors du prochain appel. Les économies de mémoire et de CPU sont énormes. En outre, la plate-forme elle-même est particulièrement libre de gérer de vastes bases de données - l'accès à celles-ci se fait toujours à la demande (au lieu d'un accès direct non supervisé) et cela permet une gestion souple des caches.

Il convient également de noter que la simplicité des appels Open/High/Low/Close/Time[xxx] dans MQL4 était limitée au symbole et à la période en cours, et que toutes les autres données pour les autres symboles et périodes étaient obtenues à l'aide des fonctions iClose/iLow(...), ce qui entraînait de sérieux retards. La transition dans MQL5 vers un modèle de fonction unique CopyXXX a radicalement amélioré la situation, permettant aux développeurs d'obtenir les morceaux de données requis en une seule requête, et de ne pas faire de multiples appels bloqués (pensez aux verrous dans chaque appel unique à iClose).

Ce ne sont pas nos fonctions et cet article non plus. Cet article est un ensemble de béquilles monstrueuses, mais il a été publié pour montrer la différence.

J'ai expliqué à plusieurs reprises la nécessité d'utiliser les nouvelles fonctionnalités de MQL5, et non les horribles béquilles.

S'il y avait une documentation avec un nombre suffisant d'exemples joints, basés sur l'utilisation lettrée des nouvelles fonctionnalités de MQL5, de sorte que même les débutants puissent assembler leur code comme des dés, sans entrer dans tous les détails, et le code serait toujours lettré en général, grâce au nombre suffisant d'exemples et au code des exemples écrits avec l'utilisation lettrée des nouvelles fonctionnalités de MQL5, la situation avec MT5 ne serait pas si mauvaise.

Cependant, dès qu'au lieu de cela, il y a eu des articles avec "un tas d'affreuses béquilles" utilisées comme code, nous avons à la fois le MT5 rejeté et une telle attitude envers l'API dans MQL5. Et l'écrasante majorité du public n'est pas composée de programmeurs professionnels. Bien sûr, ce n'est pas la seule raison du rejet du MT5, mais c'est l'une des principales.

 

On a demandé à quelqu'un :

- Pourquoi si, disons, les extraterrestres existent, ils ne nous parlent pas, ne nous apprennent rien ?

On lui a dit :

- Apprendriez-vous aux cafards à parler ? Pourquoi tu ne le fais pas ?


Simplet, sans vouloir vous offenser, vous n'avez rien compris à ce qu'Integer a dit.
 
simpleton:

Si seulement il y avait une documentation avec un nombre suffisant d'exemples joints, qui ont été écrits sur la base de l'utilisation compétente des nouvelles fonctionnalités de MQL5,

Ladocumentation de MQL5 compte 4000 pages en 9 langues, une énorme kodobase en code source, 360 articles traduits en 5 langues, des forums en 5 langues, où vous pouvez poser des questions, etc.

 
rustein:

Simplet, sans vouloir te vexer, tu n'as rien compris à ce qu'Integer a dit.

Il a raison.

Reshetov l'a dit de manière encore plus précise : https://www.mql5.com/ru/forum/153749/page4#998584.

En général, les attaques contre MT5 ne sont que des excuses pourries pour ceux qui ne veulent pas passer à un nouveau terminal ou des inventions de ceux qui ont seulement entendu parler de MT5 mais ne savent pas où il se trouve.

 
Renat:

Il a raison.

D'une manière générale, les attaques contre MT5 ne sont que des excuses pourries de la part de ceux qui ne veulent pas passer à un nouveau terminal, ou des fabrications de ceux qui ont seulement entendu parler de MT5 mais ne savent pas où il se trouve.


Quel est le rapport avec MT5 ?
Je veux le faire pendant longtemps. Mais le courtier ne propose pas encore MT5. Il faut donc en faire la promotion.
Quant à savoir qui a compris quoi ou pas, peut-être ne comprenez-vous pas. Est-ce si important ?
 
rustein:

Quant à savoir qui a compris quoi ou pas, peut-être que vous non plus. Est-ce si important ?

Vous n'avez pas prononcé une seule phrase significative ou avancé un seul argument. Juste de l'émotion.

 
Renat:

Vous n'avez pas prononcé une seule phrase significative ou avancé un seul argument. Seulement l'émotion.

И ?
 
simpleton:

...

Il y a eu récemment une discussion quelque part ici sur le choix du langage de programmation à apprendre. Un participant a donné une recommandation très utile : commencer par le russe (ou toute autre langue maternelle). Pour comprendre l'objet de la conversation.

Dans la phrase"Dans cette veine, C++ n'est pas différent de JavaScript. "la phrase"De cette manière" définit (ou clarifie) le critère de comparaison. Une étrange question se pose alors : "De quoi parlez-vous maintenant ?"