Caractéristiques du langage mql5, subtilités et techniques - page 232
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
Explication de la définition de DBL_EPSILON:
Il s'agit d'une mauvaise explication, car
Une autre façon d'expliquer la signification de DBL_EPSILON:
DBL_EPSILON est simplement la taille de l'écart entre les doubles consécutifs dans [1,2).
https://www.exploringbinary.com/the-spacing-of-binary-floating-point-numbers/
https://en.wikipedia.org/wiki/Machine_epsilon
Pour mieux comprendre DBL_EPSILON, considérons l'incrémentation d'un compteur à virgule flottante:
Si la valeur initiale du compteur est de 1,0, la taille du pas (epsilon) du compteur sera de 2,220446049250250313e-16 (DBL_EPSILON) ≈ 2 à la 16e décimale.
/* 1.0000000000000002 1.0000000000000004 1.0000000000000007 1.0000000000000009 1.000000000000001 1.0000000000000013 1.0000000000000016 1.0000000000000018 1.000000000000002 1.0000000000000022 */
Si la valeur initiale du compteur est 1024, la taille de pas (epsilon) du compteur sera 2.273736754432321e-13 (1024 * DBL_EPSILON) ≈ 2 à la 13ème décimale.
/* 1024.0000000000002 1024.0000000000005 1024.0000000000007 1024.000000000001 1024.0000000000011 1024.0000000000014 1024.0000000000016 1024.0000000000018 1024.000000000002 1024.0000000000023 */
Si la valeur initiale du compteur est 4503599627370496 (2^52), la taille du pas du compteur sera de 1,0 (2^52 * DBL_EPSILON)= 1. Dans cette plage, un double se comporte comme un compteur d'entiers, aucune fraction ne pouvant être représentée.
/* 4503599627370497.0 4503599627370498.0 4503599627370499.0 4503599627370500.0 4503599627370501.0 4503599627370502.0 4503599627370503.0 4503599627370504.0 4503599627370505.0 4503599627370506.0 */
Vous pouvez constater que les petits nombres sont séparés par des intervalles plus petits et que les grands nombres sont séparés par des intervalles plus grands.
Par conséquent, DBL_EPSILON est le taux d'erreur relatif. Relatif signifie relatif à l'ampleur du nombre.
à 1,0, l'erreur absolue = 1 * 2,2204460492503131e-016 (DBL_EPSILON).
à d, l'erreur absolue ≈ d * DBL_EPSILON.
(DBL_EPSILON est un taux de référence à 1,0, quelque chose comme le taux d'intérêt annuel de la banque, et il est égal à 2^-52).
Remarque : si vous essayez d'imprimer 1024.0000000000003, vous obtiendrez 1024.0000000000002 à la place (en arrondissant au nombre représentable le plus proche), car 1024.0000000000003 n'est pas un nombre représentable (nombre fp inexistant).
C'est ce qu'on appelle une erreur de représentation :
Les nombres représentables précédents/suivants sont obtenus par manipulation de bits (enum comme précédemment : DoubleAdvance(value, -1)) ou en utilisant DBL_EPSILON :
DBL_EPSILON est principalement utilisé pour estimer (ou corriger) les erreurs d'arrondi fp après des opérations mathématiques sur des doubles (analyse numérique) :
|résultat vrai - résultat fp| / résultat vrai <= DBL_EPSILON
L'appel OnTester() est-il désactivé dans le testeur MT5 lorsqu'il y a un algorithme d'optimisation génétique et NON un critère d'optimisation personnalisé?
Je pense que non. Mais j'aimerais bien... De préférence sans analyse de la configuration.
PS. CARAUL !!! Tout est parti ! A chaque passage de l'optimisation (devrait/ne devrait pas) - OnTester() est appelé, ce qui peut augmenter considérablement le temps total de l'optimisation !
Aidez qui peut... )))))
Au cours de mes recherches, je suis tombé sur une fonction non documentée intéressante
vous pouvez cacher les commentaires d'entrée pour une boîte de dialogue
l'article original est ici
https://www.mql5.com/ru/forum/1271#comment_9019
Au cours de mes recherches, je suis tombé sur une fonction non documentée intéressante
vous pouvez cacher les commentaires d'entrée d'une boîte de dialogue
post original ici
https://www.mql5.com/ru/forum/1271#comment_9019
Dans Tester, la table Historique n'est écrasée que dans deux cas.