Question aux maîtres du MQL4. Encore une fois à propos de Double Comparaison. - page 10
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
Mes sincères condoléances aux développeurs, qui doiventexpliquer 1000 fois la même chose à chaque nouvel utilisateur...
C'est déjà une attaque flagrante...
C'est écrit dans les manuels sur le stockage des nombres réels en mémoire et ça ne dit rien sur les variables qui changent d'elles-mêmes. Bien que je l'ai entendu non seulement de la part de SK sur ce forum.
Donc, si vous avez trompé chaque nouvel utilisateur 1000 fois, vous devriez maintenant les trouver et vous excuser pour vos paroles !
Je suis d'accord avec Simca. Lors de l'exécution d'opérations arithmétiques, des erreurs sont possibles, mais lors du stockage, de l'écriture ou de la lecture, elles sont exclues !
C'est pourquoi j'ai demandé l'algorithme de la fonction NormalizeDouble(), peut-être qu'elle a aussi des opérations arithmétiques qui provoquent une erreur ?
Qu'en penses-tu Simca?
OK. Tu dis ça avec tellement d'assurance que je commence à douter de ce que tu dis.
Il y a quelque temps encore, je travaillais sur un vieux PC avec 256 Mo de RAM. Lorsque vous googlez quelques programmes, le système d'exploitation vide une partie des données sur le disque, puis les recharge à nouveau. Depuis que j'ai modifié le code (en spécifiant la normalisation dans l'opérateur de comparaison) l'erreur a cessé d'apparaître. Mais j'ai commencé à douter après avoir entendu vos paroles - et si je n'avais pas remarqué l'erreur ?
Maintenant, je ne sais pas si je dois m'excuser ou non. Si je me trompe, que les 1000 utilisateurs me pardonnent.
(mais il est toujours préférable d'effectuer la normalisation directement lors du calcul de l'opération de comparaison :)
Dans les manuels, il est question de stocker des nombres réels en mémoire et il n'est pas question que les variables changent d'elles-mêmes. Ce n'est pas seulementSK qui m'a dit ça sur ce forum.
Mais, tout ceci concerne des calculs alors que les valeurs stockées en mémoire ne changeront pas, qu'elles soient normalisées ou non.
C'est pourquoi je demandais l'algorithme de la fonction NormalizeDouble(), peut-être a-t-elle aussi des opérations arithmétiques qui provoquent une erreur ?
Qu'en penses-tu Simca?
(mais il est toujours préférable d'effectuer la normalisation directement lors du calcul de l'opération de comparaison :)
Et pour ma part (pour ceux qui ne comprennent pas bien l'essence de la question) je peux aussi recommander :
(mais il est tout de même préférable d'effectuer la normalisation directement lors du calcul de l'opération de comparaison (c) SK.
(mais il est toujours préférable de faire la normalisation directement lors du calcul de la
l'opération de comparaison est calculée :)
Désolé, mais en termes d'efficacité, il existe de bien meilleures implémentations pour comparer des données nécessitant une normalisation. En général, il s'agit de la norme (algorithme de comparaison). Vous devez comparer la différence avec la moitié de la dimension de l'échelle. Ce que je veux dire : pour comparer les prix (qu'ils soient différents ou non), vous devez prendre la différence et la comparer à 0.5*Roynt ( elle ne peut être calculée qu'une seule fois lors de l'initialisation de l'Expert Advisor/Scriptoryindicator. C'est beaucoup plus efficace que d'appeler une seule fonction, et encore plus si elle est aussi dans une boucle) ..... Et peu importe comment ces données sont stockées et à quel signe insignifiant elles sont arrondies.
Bonne chance.
Tout d'abord, travailler avec des dubles est purement une question de compilateur, donc exiger la commodité de mql4, qui est essentiellement un compilateur intrinsèque caché, est déraisonnable. La chose principale, les développeurs ont donné un moyen de GARANTIR le résultat correct de la comparaison, nous l'avons vérifié avec nos mains, c'est, bien sûr, graphique, mais FONCTIONNEL !!! Bien que la documentation dit que normaliser seulement en cas de " !=" ou "==", nos tests indépendants et experts ont montré que (a>b) NE GARANTIT PAS ( !) un résultat correct si a s'avère être égal à b ! Même si vous normalisez PRÉDVORABLEMENT a et b, le résultat est imprévisible. Et voici une construction des développeurs: : NormalizeDouble(a-b, Digits)>0 fonctionne de manière fiable ! Je ne sais pas pourquoi les gens ici n'aiment pas la fonction normalize... Peut-être qu'elle (en interne) est tout à fait semptotique et faite comme ceci : deux tableaux sont divisés en double précision, et arrondis vers le bas (ou vers le haut). Et ensuite, les entiers sont comparés sans aucun problème.
Veuillez écrire en russe correct.
Donnez-moi un lien vers votre site et je vous promets que je n'utiliserai QUE les DÉFINITIONS DE L'AUTEUR. :) Votre idée, je pense, n'est pas plus correcte que la mienne, mais si VOUS voulez personnellement comprendre, je vais faire un "porte-parole de Rosh", si vous ne pouvez pas faire la distinction entre le bla-bla et l'expertise. Parce que je n'écrivais pas à toi, mais au 1001e nouveau venu. :)
Par exemple www.gramota.ru
Nous n'avons pas de section albanaise sur le forum. Néanmoins, après le prochain poste non-russe, vous serez envoyé là-bas. S'il te plaît, ne donne pas l'impression que tu utilises la langue.