Souhaits pour MT5 - page 45

 
Chers développeurs. Que diriez-vous d'introduire un type de données du C/C++ "long double" ? Ce serait très utile. En vérité, j'ai constaté que la précision du type "double" n'est pas suffisante pour les calculs. Ou encore, créez une classe spéciale pour les opérations dont la précision est définie de manière arbitraire. Comment tu vois ça ?
Документация по MQL5: Основы языка / Типы данных
Документация по MQL5: Основы языка / Типы данных
  • www.mql5.com
Основы языка / Типы данных - Документация по MQL5
 
-Alexey-:
Chers développeurs. Que pensez-vous de l'introduction du type de données "long double" en C/C++ ? Ce serait très utile. À vrai dire, j'ai constaté que la précision du type "double" est insuffisante pour les calculs. Ou encore, créez une classe spéciale pour les opérations dont la précision est définie de manière arbitraire. Qu'en pensez-vous ?

Désolé de vous interrompre, mais lancez-vous une fusée dans l'espace ? Ne serait-il pas préférable de penser à optimiser l'algorithme ou autre ?

Pouvez-vous donner un exemple où une telle précision est nécessaire ?

 
Par exemple, il est nécessaire de calculer numériquement le quantile de la distribution normale avec une précision d'au moins 4-5 signes, car la dépendance à P>.9 se situe dans l'horizon et la machine zéro sur le changement de probabilité ne permet pas d'obtenir une précision supérieure à 2-3 signes, et à P>.99 encore pire. Et ainsi de suite. Les chiffres peuvent être un peu différents, c'est juste un exemple, car je dois travailler avec une distribution différente, mais l'idée est la même. Quelle fusée :)
 
Un autre problème est apparu avec le manque de précision. La situation est la suivante. Je construis une fonction de distribution de 10000 valeurs par prix. Sur certains intervalles, la valeur de la fonction est petite et divisée par 10000. On obtient des valeurs de l'ordre de 1*10e-6 ; il faut ensuite trouver le carré de la différence entre ces valeurs et obtenir la valeur de l'ordre de 1*10e-13 (il faut ensuite additionner plusieurs milliers de ces valeurs) ; les données sont perdues de façon catastrophique. Et 10000, ce n'est pas beaucoup, à vrai dire - pas beaucoup. C'est pourquoi je demande une fois de plus aux développeurs d'introduire le "double long". D'après ce que je sais, le travail statistique sur de grands échantillons dans le domaine financier est une tâche fréquemment demandée. Sinon, il s'avère que l'on vient de s'enthousiasmer pour MQL5 et que l'on doit maintenant passer au C++.
 
-Alexey-:
Il y a un autre problème avec le manque de précision. La situation est la suivante. Nous construisons une fonction de distribution pour 10 000 valeurs par prix. Sur certains intervalles, la valeur de la fonction est petite et divisée par 10000. On obtient des valeurs de l'ordre de 1*10e-6 ; il faut alors définir le carré de la différence entre ces valeurs et on obtient la valeur de l'ordre de 1*10e-13 (il faut alors additionner plusieurs milliers de ces valeurs) ; les données sont catastrophiquement perdues. Et 10000, ce n'est pas beaucoup, à vrai dire - pas beaucoup. C'est pourquoi je demande une fois de plus aux développeurs d'introduire le "double long". D'après ce que je sais, le travail statistique sur de grands échantillons dans le domaine financier est une tâche fréquemment demandée. Sinon, il s'avère que nous venons de nous enthousiasmer pour MQL5 et que nous devons maintenant passer au C++.

Letype double dans mql5 fonctionne avec des nombres compris entre +-10e-307 et +-10e307, avec une mantisse de 16 chiffres. Il n'y a donc pas de problèmes décrits par vous.

Si la mantisse déclarée n'est pas suffisante, développez une classe de précision supérieure, par exemple, avec une mantisse de 32 chiffres. C'est votre droit.

Mais pour la masse principale des développeurs, 16 chiffres de mantisse suffisent, pourquoi s'embêter avec un tel fouillis ?

Документация по MQL5: Основы языка / Типы данных / Вещественные типы (double, float)
Документация по MQL5: Основы языка / Типы данных / Вещественные типы (double, float)
  • www.mql5.com
Основы языка / Типы данных / Вещественные типы (double, float) - Документация по MQL5
 
Urain:

Letype double dans mql5 fonctionne avec des nombres compris entre +-10e-307 et +-10e307, avec une mantisse de 16 chiffres. Il n'y a donc pas de problèmes décrits par vous.

Si la mantisse déclarée n'est pas suffisante, développez une classe de précision supérieure, par exemple, avec une mantisse de 32 chiffres. C'est votre droit.

Pour la plupart des développeurs, une mantisse de 16 caractères est suffisante, alors pourquoi s'en soucier ?

Je ne suis pas d'accord. Voici un exemple (grille 10000x10000)

double x1=0.0011 ;

double y1=x1/10000 ;

double x2=0.0012 ;
double y2=x2/10000 ;

double c=y1-y2 ;
double d=MathPow(c,2) ;


printf(string(d)) ;

результат: 9.999999999999968e-017

Alors, que dois-je faire avec ce résultat ? Comment puis-je le comparer à d'autres résultats ? DBL_EPSILON=2.2204460492503131e-016. A part les deux derniers chiffres - tu vois ? Et ce, pour seulement deux opérations. Et j'ai d'autres de ces opérations. Et ces informations doivent être utilisées pour restaurer les données plus tard avec d'autres opérations. Plus de pertes. Je suis en train d'apprendre à programmer dans un langage de type C et une telle classe est difficile à construire pour moi (ou plutôt, je n'ai aucune idée de comment). C'est un travail sérieux. D'ailleurs, par hasard, avez-vous un tel cours ? Et les développeurs peuvent améliorer les choses pour tout le monde à la fois. Il serait possible de réaliser des grilles de 100 000x100 000. Des échantillons plus ou moins représentatifs seraient déjà disponibles, bien que cela ne suffise pas toujours. Et s'ils faisaient une classe pour la précision arbitraire, ce serait encore mieux :) C'est juste un type de données. Si elle existe, c'est qu'elle est là pour une raison, parce qu'elle répond à un besoin. Le fait est que je ne sais pas si c'est difficile ou non pour les développeurs. Si c'est difficile et coûteux - je suis d'accord avec vous - pourquoi leur refiler mon problème. Mais si ce n'est pas difficile, pourquoi ne pas le faire ? Encore une fois, un environnement de développement puissant pour des calculs commerciaux de haute précision - un avantage concurrentiel ici :). C'est pourquoi je demande ce qu'ils en pensent.
 
-Alexey-:
Encore une fois, un environnement de développement puissant pour des calculs commerciaux de haute précision - un avantage concurrentiel ici :).

C'est seulement de votre point de vue... 99,9999% n'en ont pas besoin

Utilisez un logiciel spécialisé à cette fin....

 
AlexSTAL:

C'est seulement de votre point de vue... 99,9999% n'en ont pas besoin

Utilisez un logiciel spécialisé à cette fin....

C'est le problème, MT est un produit spécialisé pour les calculs financiers. Les calculs financiers sont étroitement liés à l'utilisation de méthodes statistiques. Et il n'est pas nécessaire de maîtriser de nouveaux produits - je veux développer l'AT dans un seul environnement commercial, plutôt que de m'occuper de cela et de me battre avec des types. De plus, il semble que le MQL5 compte très vite.
 
-Alexey-:
Justement, MT est un produit spécialisé pour les calculs financiers. Et les calculs financiers sont étroitement liés à l'utilisation de méthodes statistiques. Et il n'y a pas besoin de maîtriser de nouveaux produits - je veux développer l'AT dans un seul environnement commercial, plutôt que de m'occuper de cela et de me battre avec des types. De plus, il semble que MQL5 soit vraiment rapide.

Vous comprenez que tout développeur manque toujours quelque chose....

Si 500 programmeurs écrivent 10 souhaits chacun, il faudrait un bureau comme celui de Bill.....

pour réaliser des fantasmes....

 
AlexSTAL:

Vous comprenez que tout développeur manque toujours quelque chose....

Si 500 programmeurs écrivaient 10 souhaits chacun, il faudrait un bureau comme celui de Bill.....

pour que les fantasmes deviennent réalité....

Les fantasmes n'ont absolument rien à voir avec cela. Ma question portait sur la possibilité de mettre en œuvre la méthode d'analyse la plus courante. En fait, il s'agit de travailler avec la ligne qui reste après avoir retiré la tendance et le cycle. Cette méthode est décrite dans tous les manuels de statistiques financières et dans le matériel pédagogique des universités sans exception. Il ne s'agit pas d'une fantaisie, mais de l'une des approches canoniques de l'analyse. Et un environnement spécialisé devrait avoir les moyens de mettre en œuvre cette approche - qu'en pensez-vous ?