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
Plus fiable ? Pourquoi l'obtention de handles à l'initialisation n'est-elle pas fiable ? Pourquoi n'est-il pas fiable de vérifier les données nécessaires ? Et plus encore, pourquoi la présence de contrôles n'est-elle pas fiable ?
Pour les débutants, ce n'est peut-être pas si facile, mais avec le temps, tout deviendra clair...
En fait, j'essaie de le découvrir tout de suite, pas plus tard... Je ne veux pas me contenter de copier certaines actions sans en comprendre le sens. Si le code est une fonction intégrée comme dans MQL4, je vais probablement ajouter un paramètre supplémentaire avec le nombre de barres.
Pourquoi se charge-t-il ?
Les "nombres ordinaires" sont des expressions constantes, qui ont également un type. Dans ce cas, il s'agit du type int.
Une expression consistant en une multiplication de deux sous-expressions, chacune de type int, est également de type int. C'est là que le débordement se produit.
Et ce n'est qu'ensuite que la conversion implicite du type de l'expression int au type long se produit pendant l'initialisation de la variable longue.
Tout est clair ici. D'ailleurs, il n'est pas nécessaire de transformer chacun des opérandes en long dans ce cas. On peut juste en couler un et implicitement couler le second.
C'est ce que j'essayais de dire, mais en utilisant un langage moins académique. L'essentiel est d'avertir les autres chercheurs.
La question est différente. Où dans quel Talmud est-il dit que :
Les "nombres ordinaires" sont des expressions constantes qui ont également un type. Dans ce cas, il s'agit du type int.
Par exemple, si X est fixé à 10000000000 , alors il devient un type long ? Et pourquoi pas ulong ou datetime ou même string?
Quel est le type du nombre 255uchar oushort ?
Pourquoi se charge-t-il ?
Il semble y avoir une confusion entre le journal et le code. Le code ci-dessus fonctionne "proprement". Et, pour obtenir un tel journal, je devais faire en sorte que les variables A et B soient de type int ou uint, et la variable X de type uint:
Et voici le travail du code original :
Build 314 (20 août 2010).
J'ai cité un code différent
Portez une attention particulière à la première ligne, votre compte peut avoir un numéro différent. Cherche-le et mets-le dans le long C =
Résultat vérifié à nouveau
Build 314 (20 août 2010).
Veuillez me dire pourquoi la fonction SymbolInfoDouble(_Symbol,SYMBOL_POINT) de la paire USDCHF produit une taille de point à cinq chiffres après le point décimal 0,00001, alors que cette paire est acceptée pour la valeur de point 0,0001 ?
Qu'est-ce qui vous fait penser qu'il y a 4 chiffres dans cet instrument, le terminal montre clairement que les cotations sont à 5 chiffres.
Cette fonction peut renvoyer différentes valeurs de points même dans les comptes à cinq chiffres, tout dépend des paramètres qui seront acceptés par le courtier.
Par exemple, une société de courtage a le commentaire suivant
et un autre a 1 pips égal au cinquième chiffre.
C'est ce que j'essayais de dire, mais en termes moins académiques. Et surtout pour mettre en garde les autres chercheurs.
La question est différente. Où dans quel Talmud est-il dit que :
Les "nombres ordinaires" sont des expressions constantes qui ont également un type. Dans ce cas, il s'agit du type int.
Par exemple, si X est fixé à 10000000000 , alors il devient un type long ? Et pourquoi pas ulong ou datetime ou même string?
Quel est le type du nombre 255uchar oushort ?
La constante 10000000000 est déjà de type long.
Comment dois-je le mettre ? Les langages normaux possèdent des suffixes-modificateurs qui vous permettent de spécifier le type d'une constante sans utiliser une conversion de type explicite. Pour MQL5, je ne l'ai trouvé que pour le float. Il est donc impossible de définir des constantes de type uchar, ushort, uint, ulong, char, short et long (si la valeur de la constante correspond au type int) sans conversion de type explicite.
La constante 255 est de type int. Vous pouvez trouver quelque chose dans les descriptions de type, par exemple, les constantes de caractères sont déclarées comme ayant le type ushort. Il existe également des informations sur les constantes de type date, couleur, bool, double et chaîne de caractères.
Vous pouvez essayer d'imprimer la taille du type de constante, à condition que l'opération sizeof soit introduite (mais pourquoi est-elle introduite, veuillez expliquer à l'un des développeurs) :
En général, parmi les suffixes, seul f fonctionne pour les constantes doubles, les modifiant en flottant, ce qui peut être vu par la taille du type d'une telle constante.
Ici, la seule utilisation raisonnable de l'opération sizeof que j'ai pu trouver. :)
Je vous ai donné un code différent
Portez une attention particulière à la première ligne, il peut y avoir un numéro différent sur votre compte. Cherchez-le et mettez-le dans le long C =
Résultat vérifié à nouveau
Build 314 (20 août 2010).
Non, je n'ai pas le même effet que vous. Il ne me reste plus qu'à vérifier les versions bit de MT5. J'ai la version 64 bits, quelle est la vôtre ?
Au fait, le code modifié que j'ai testé vous donne-t-il les mêmes résultats que moi ?
Si oui, alors ce que je vois est très similaire à ce bogue sur "l'origine" d'une valeur - c'est-à-dire que le code peut se comporter différemment (à la fois correctement et incorrectement) selon l'origine de la valeur sur laquelle les calculs ultérieurs sont basés.