Bonjour. J'ai pour tâche de vérifier l'exactitude du paramètre d'entrée du volume de négociation spécifié par l'utilisateur, à savoir que le lot spécifié doit être un multiple de l'étape de changement de lot. Pour ce faire, trouvez un reste réel de la division et comparez-le à un zéro ou à une valeur très proche de zéro (par exemple, 0,000000001)
/*
Вещественный остаток 0,009999999999999998
Шаг изменения лота 0,01
Результат деления 3,0
*/
J'ai également joint une capture d'écran.
Je pense que le reste devrait être zéro ou un très petit nombre, mais le résultat est presque 0.01 pour une raison quelconque ? Comment puis-je alors vérifier le paramètre d'entrée si, par exemple, l'utilisateur définit 0.001 par erreur ?
Bonjour. J'ai pour tâche de vérifier l'exactitude du paramètre d'entrée du volume de négociation spécifié par l'utilisateur, à savoir que le lot spécifié doit être un multiple de l'étape de changement de lot. Pour ce faire, j'obtiens le reste réel de la division et je le compare à un zéro ou à une valeur très proche de zéro (par exemple, 0.000000001)
Résultat :
J'ai également joint une capture d'écran.
Je pense que le reste devrait être zéro ou un très petit nombre, mais le résultat est presque 0.01 pour une raison quelconque ? Comment puis-je alors vérifier le paramètre d'entrée si, par exemple, l'utilisateur définit 0.001 par erreur ?
C'est un peu faux. La première chose à faire est de calculer la valeur correcte la plus proche (sur la base de la valeur fixée), puis de vérifier la différence entre les valeurs obtenues. S'il est égal à zéro (ou pas plus que DBL_EPSILON), alors tout est OK :
Les gars, pouvez-vous me dire le code sur la façon de lier un EA à un compte (pour la dernière mise à jour MT4).
Merci beaucoup.
On vous a déjà donné le code.
Vous avez commis l'erreur vous-même - il est écrit dans la description de l'erreur que vous avez entré le code dans la zone des variables globales et non dans OnTick() ou OnInit() :
'if' - expressions are not allowed on a global scope
Et avec une telle connaissance, vous essayez toujours de protéger votre code de quelqu'un d'autre ?
Vous avez commis l'erreur vous-même - il vous est écrit dans la description de l'erreur que vous avez entré du code dans la zone des variables globales, et non à l'intérieur de OnTick() ou OnInit() :
'if' - expressions are not allowed on a global scope
Et avec cette connaissance, vous essayez toujours de protéger votre code de quelqu'un d'autre ?
Simple :
donne une erreur
message d'erreur
Où se trouve l'erreur ? Quel genre d'erreur ?
Bonjour. J'ai pour tâche de vérifier l'exactitude du paramètre d'entrée du volume de négociation spécifié par l'utilisateur, à savoir que le lot spécifié doit être un multiple de l'étape de changement de lot. Pour ce faire, trouvez un reste réel de la division et comparez-le à un zéro ou à une valeur très proche de zéro (par exemple, 0,000000001)
Résultat :
/* Вещественный остаток 0,009999999999999998 Шаг изменения лота 0,01 Результат деления 3,0 */
J'ai également joint une capture d'écran.
Je pense que le reste devrait être zéro ou un très petit nombre, mais le résultat est presque 0.01 pour une raison quelconque ? Comment puis-je alors vérifier le paramètre d'entrée si, par exemple, l'utilisateur définit 0.001 par erreur ?
Bonjour. J'ai pour tâche de vérifier l'exactitude du paramètre d'entrée du volume de négociation spécifié par l'utilisateur, à savoir que le lot spécifié doit être un multiple de l'étape de changement de lot. Pour ce faire, j'obtiens le reste réel de la division et je le compare à un zéro ou à une valeur très proche de zéro (par exemple, 0.000000001)
Résultat :
J'ai également joint une capture d'écran.
Je pense que le reste devrait être zéro ou un très petit nombre, mais le résultat est presque 0.01 pour une raison quelconque ? Comment puis-je alors vérifier le paramètre d'entrée si, par exemple, l'utilisateur définit 0.001 par erreur ?
C'est un peu faux. La première chose à faire est de calculer la valeur correcte la plus proche (sur la base de la valeur fixée), puis de vérifier la différence entre les valeurs obtenues. S'il est égal à zéro (ou pas plus que DBL_EPSILON), alors tout est OK :
La fonction VolumeCast peut être prise ici.
Où cela se passe-t-il mal ? Quel type d'erreur donne-t-il ?
1 erreur(s), 0 avertissement(s) 2 1
si" - les expressions ne sont pas autorisées sur un global
Bonjour ! !!
Les gars, pouvez-vous me dire le code sur la façon de lier un EA à un compte (pour la dernière mise à jour MT4).
Merci beaucoup.
Bonjour !
Les gars, pouvez-vous me dire le code sur la façon de lier un EA à un compte (pour la dernière mise à jour MT4).
Merci beaucoup.
On vous a déjà donné le code.
Vous avez commis l'erreur vous-même - il est écrit dans la description de l'erreur que vous avez entré le code dans la zone des variables globales et non dans OnTick() ou OnInit() :
'if' - expressions are not allowed on a global scope
Le code vous a déjà été communiqué.
Vous avez commis l'erreur vous-même - il vous est écrit dans la description de l'erreur que vous avez entré du code dans la zone des variables globales, et non à l'intérieur de OnTick() ou OnInit() :
'if' - expressions are not allowed on a global scope
Je suis en train d'apprendre !
Ne jugez pas ! ;)
1 erreur(s), 0 avertissement(s) 2 1
si" - les expressions ne sont pas autorisées sur un global
Montre-moi comment tu as appliqué le code. Tu as copié ce que j'ai écrit ?
Montre-moi comment tu as appliqué le code. Tu as copié ce que j'ai écrit ?
Je l'ai fait :)))