Souhaits pour MT5 - page 70

 
MetaDriver:

Aux compilateurs, une suggestion.

S'il vous plaît, faites le transfert de petites structures par valeur, pas seulement par référence, car toute arithmétique complexe/rationnelle est terriblement lente.

Veuillez expliquer comment le passage par référence au lieu de la transmission de valeur de structure peut ralentir ? Et surtout avec un exemple.


Dès que nous autorisons le passage des structures par la valeur, le véritable freinage commence. Les développeurs utiliseront partout, sans le savoir, le passage d'énormes structures par la pile et leurs programmes seront ralentis.

 
MetaDriver:

L'héritage multiple est définitivement un mal.

Ы ? Comment hériter de deux interfaces ?

Je suis tout à fait favorable à la fusion avec les dièses plutôt qu'avec les plus. Cela a beaucoup plus de sens, étant donné les générations d'expérience.

Au moins avec des éléments de base. De telles expressions sont des trolls flagrants.
 
MetaDriver:

Une demande aux compilateurs.

S'il vous plaît, faites le transfert de petites structures par valeur, et pas seulement par référence. Sinon, toute arithmétique complexe/rationnelle est terriblement lente.

Il suffit de fixer une limite (à votre discrétion - 32 ou 64 octets) au-delà de laquelle le compilateur ne prend pas en compte les structures passées par valeur et exige strictement le passage par référence.

Il serait également très agréable de pouvoir renvoyer de petites structures comme résultat d'une fonction.

--

Je vote même pour la surcharge de l'opérateur. J'espère que j'y arriverai un jour. Il semble que le cours "to merge with C++" soit suivi et généralement soutenu.

La syntaxe fonctionnelle pour les opérations arithmétiques avec des objets mathématiques non standard est très peu pratique, et ralentit également beaucoup,

car elle ne peut pas être remplacée par des substitutions en ligne et nécessite la dépense d'appels de fonction.

Non. Structures par référence seulement. Aucune exception. Donnez-nous quelques chiffres pour les freins afin que nous puissions estimer l'ampleur de la catastrophe.

Auparavant, nous avions la possibilité de retourner des structures en tant que résultat de fonction, mais nous avons fini par annuler cette option en raison de l'ambiguïté de l'implémentation (notre débogage interne). Nous avons décidé que puisque les structures sont passées par référence, il faut passer la structure résultante comme paramètre.

La surcharge des opérateurs est possible. Mais pas maintenant.

 
Développeurs : veuillez faire fonctionner OnTimer() dans les indicateurs qui ne sont pas attachés à un graphique.
 
Lizar:
Développeurs : veuillez faire fonctionner OnTimer() dans les indicateurs qui ne sont pas attachés au graphique.
+1000
 
stringo:

1. non. structures uniquement par référence. Aucune exception. Pour les freins, donnez des chiffres, afin que nous puissions estimer l'ampleur de la catastrophe.

Nous avions l'option de retourner des structures en tant que résultat de la fonction. Finalement, nous avons annulé cette option en raison de l'ambiguïté de la mise en œuvre (nos querelles internes). Nous avons décidé que puisque les structures sont passées par référence, il faut passer la structure résultante comme paramètre.

3. la surcharge des opérateurs est possible. Mais pas maintenant.

1. :) Catastrophe est annulé. Je l'ai mesuré et j'ai été très surpris, les freins ne sont pas dedans (le script est dans la bande annonce). Je vais chercher moi-même et optimiser. Mais dans de nombreux cas, la syntaxe est plus pratique, lorsque vous pouvez substituer des expressions dans les paramètres. Ouais. Eh bien, je peux vivre avec ça. C'est supportable. L'essentiel est qu'il ne ralentisse pas.

Mais pouvons-nous réassigner les structures ? L'assignation des structures est parfaitement légale, alors autorisons-la aussi. Le programme est beaucoup plus lisible lorsque l'assignation du résultat de l'exécution de la fonction est syntaxiquement unifiée :

Y = Func(X) ; - cela semble beaucoup plus clair en lisant brièvement le code que Func(X, Y) ; // vous devriez deviner que Y est un paramètre de sortie.

Non, Straustrup n'aimerait pas votre solution... ce n'est pas juste d'une certaine manière... :)

3. Oh ! C'est bien. Merci pour cela.

Dossiers :
 
MetaDriver:

Pouvons-nous aussi réassigner des structures légalement, alors autorisons aussi la réassignation. Le programme est beaucoup plus lisible lorsque l'assignation du résultat d'une fonction est syntaxiquement unifiée :

Je vais vous dire un secret. Fais-le.

Il s'avère qu'ils ne l'ont pas coupé. Vous pouvez renvoyer des structures simples. Mais n'oubliez pas que dans ce cas, vous devrez ajouter deux copies supplémentaires - la copie dans la structure de tempo sur la pile et la copie de la structure de tempo dans la structure de résultat.

Документация по MQL5: Основы языка / Типы данных / Структуры и классы
Документация по MQL5: Основы языка / Типы данных / Структуры и классы
  • www.mql5.com
Основы языка / Типы данных / Структуры и классы - Документация по MQL5
 

Pourquoi la classe CExpert de la bibliothèque standard est-elle déclarée comme ceci dans la documentation,

class CExpert : public CObject

et dans le fichier Expert.mqh on voit cette déclaration ?

class CExpert : public CExpertBase
Документация по MQL5: Стандартная библиотека
Документация по MQL5: Стандартная библиотека
  • www.mql5.com
Стандартная библиотека - Документация по MQL5
 
Il est nécessaire d'avoir un article sur les classes pour créer et tester les stratégies de trading...
 
Lizar:
Développeurs : faites en sorte que OnTimer() fonctionne dans les indicateurs qui ne sont pas attachés au graphique.
Pour l'instant, c'est peu probable. La fonction permettant de régler le minuteur devrait s'appeler ChartSetTimer(), ce nom reflète mieux son comportement.
Документация по MQL5: Работа с событиями / EventSetTimer
Документация по MQL5: Работа с событиями / EventSetTimer
  • www.mql5.com
Работа с событиями / EventSetTimer - Документация по MQL5