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
Je veux pouvoir contrôler les données historiques que j'utilise afin de pouvoir répéter les tests (Strategy Tester) dans des conditions contrôlées.
Quelles conditions contrôlées?
Je vous remercie.
Quelles sont les conditions contrôlées ?
Merci.
Les conditions que je choisis ne sont pas celles que mon courtier choisit. Comment proposez-vous de tester autrement ? un ensemble de conditions aléatoires pour chaque test ? mais ne nous éloignons pas du sujet.
Je comprends.
Je vous remercie.
Non. Si tu lisais mon lien et/ou celui de RaptorUK, ce serait plus clair pour toi. Sinon, relisez :-D
1,000000000006551e-005 est simplement une autre notation pour 0,00001000000000006551.
Bonjour angevoyageur,
1.000000000006551e-005
0.00001000000000006551
La décimale du second double est déplacée cinq fois vers la gauche MAIS ;) ne peut pas être retourné dans le testeur dans ce format car les doubles retournent une valeur maximale de seize chiffres (chiffres significatifs) à droite d'une décimale.
Modérateur
1651
Bonjour la communauté MQL5,
https://www.mql5.com/en/docs/common/comment
" Lesdonnées de type double sont sorties avec la précision de 16 chiffres maximum après une décimale, et peuvent être sorties soit au format traditionnel, soit au format scientifique, selon la notation qui sera la plus compacte. Les données de type float sont affichées avec 5 chiffres après la virgule. Pour sortir des nombres réels avec une autre précision ou dans un format prédéfini, utilisez la fonction DoubleToString()."
Lareprésentation du prix de l'USDJPY en 98.370 est une donnée de type float (sortie à 5 chiffres après la décimale).
La représentation du prix de l'USDJPY en -0,001999999999995339 est une donnée de type double, format traditionnel (sortie à 16 chiffres maximum après la virgule).
Pourquoi le double -0.001999999999533[9] renvoie-t-il un 18e chiffre après la décimale si une sortie double ne comporte que jusqu'à 16 chiffres après la décimale ?
Merci de votre compréhension.
Les prix sont toujours doubles, 98,370 est un double. Il y a 16 chiffres significatifs. Les zéros ne sont pas significatifs.
Si les zéros ne sont pas significatifs, pourquoi le testeurne pourrait-il pas renvoyerla valeur 0,00001000000000006551 au lieu de 1,000000000006551e-005 ? Je préfère faire des calculs en format 0,00001000000000006551 !
Merci à vous
Si les zéros ne sont pas significatifs, pourquoi le testeurne pourrait-il pas renvoyerla valeur 0,00001000000000006551 au lieu de 1,000000000006551e-005 ? Je préfère faire des calculs en format 0.00001000000000006551 !
Un nombre à virgule flottante (double) est toujours stocké en interne dans ce format ... 1.000000000006551e-005, avez-vous lu et compris les informations sur les liens donnés ?
D'ici :nombres à virgule flottante
"Un flottant IEEE-754 (4 octets) ou un double (8 octets) a trois composants (il existe également un format analogue de 96 bits à précision étendue sous IEEE-854) : un bit de signe indiquant si le nombre est positif ou négatif, un exposant donnant son ordre de grandeur et une mantisse spécifiant les chiffres réels du nombre. En utilisant des flottants de simple précision comme exemple, voici la disposition des bits :"
3 parties
Si vous voulez voir 0.00001000000000xyz, utilisez DoubleToStr() pour formater la sortie à votre convenance.
Un nombre à virgule flottante (double) est toujours stocké en interne dans ce format... 1.000000000006551e-005, avez-vous lu et compris les informations contenues dans les liens indiqués ?
D'ici :nombres à virgule flottante
"Un flottant IEEE-754 (4 octets) ou un double (8 octets) a trois composants (il existe également un format analogue de 96 bits à précision étendue sous IEEE-854) : un bit de signe indiquant si le nombre est positif ou négatif, un exposant donnant son ordre de grandeur et une mantisse spécifiant les chiffres réels du nombre. En utilisant des flottants de simple précision comme exemple, voici la disposition des bits :"
3 parties
Si vous voulez voir 0.00001000000000xyz, utilisez DoubleToStr() pour formater la sortie à votre convenance.
Oui, j'ai lu tous vos liens et les ai trouvés utiles, merci encore de les avoir fournis. Je préférerais intégrer DoubleToString et choisir l'avant-dernière valeur du double (exemple : CADJPY 95.9[5]9) comme deuxième paramètre de DoubleToString. Je ne pense pas que ce problème "can price!=price" soit trop difficile à résoudre ! Qu'en pensez-vous ?
Je vous remercie
Oui, j'ai lu tous vos liens et je les ai trouvés utiles, merci encore de les avoir fournis. J'aimerais incorporer DoubleToString et choisir l'avant-dernière valeur du double (exemple : CADJPY 95.9[5]9) comme deuxième paramètre de DoubleToString. Je ne pense pas que ce problème "can price!=price" soit trop difficile à résoudre ! Que dites-vous de cela ?
Vous voulez dire quelque chose comme ceci ?
Can price != price est un problème différent, mais légèrement lié. Il ne peut pas vraiment être résolu, d'abord vous devez comprendre ce que le problème est ... puis vous travaillez autour de lui.
Vous voulez dire quelque chose comme ça ?
Can price != price est un problème différent, mais légèrement lié. Il ne peut pas vraiment être résolu, vous devez d'abord comprendre quel est le problème... puis vous le contournez.
Que pensez-vous de ce problème de "prix possible != prix" ?
Je vous remercie.
WhooDoo22:
...
Les prix sont toujours doubles, 98.370 est un double. Il y a 16 chiffres significatifs. Les zéros ne sont pas significatifs.
Si les zéros ne sont pas significatifs, pourquoi letesteur ne pourrait-il pasrenvoyer la valeur 0,00001000000000006551 au lieu de 1,000000000006551e-005 ? Je préfère faire des calculs en format 0.00001000000000006551 !
Merci
C'est possible, c'est seulement un choix de formatage de la valeur de sortie.
C'est justement parce que les zéros ne sont pas significatifs
Oui, j'ai lu tous vos liens et les ai trouvés utiles, merci encore de les avoir fournis. Je préférerais intégrer DoubleToString et choisir l'avant-dernière valeur du double (exemple : CADJPY 95.9[5]9) comme deuxième paramètre de DoubleToString. Je ne pense pas que ce problème "can price!=price" soit trop difficile à résoudre ! Qu'en pensez-vous ?
Merci
C'est possible, c'est seulement un choix de formatage de la valeur de sortie.
C'est justement parce que les zéros ne sont pas significatifs
Désolé mais je ne comprends pas cette phrase."Désolé, mais je ne comprends pas cette phrase."
Merci