[ARCHIVE] Toute question de débutant, afin de ne pas encombrer le forum. Professionnels, ne passez pas à côté. Nulle part sans toi - 3. - page 82
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
Merci, mais ça ne marche pas pour moi. Je n'ai pas besoin d'une compensation. J'ai écrit plus haut. Supposons que pour la première bougie buffer[1]=Haut[1], pour la troisième buffer[3]=Haut[3] et pour la deuxième nous devons calculer : buffer[2]=MathAbs(Higth[1]-Hight[3])/2 et obtenir ce que je veux dans l'image.
wolf05632:
SZY : Comment faire pour qu'un indicateur fonctionne, c'est-à-dire qu'il effectue des calculs (il FONCTIONNE, il n'est pas visible) uniquement sur une certaine échelle de temps (H1) ?
Pourquoi n'avez-vous pas aimé ma version ? :)) Beaucoup plus simple et moins de calculs. Ou voulez-vous garder les valeurs dans le tampon à chaque barre ?
J'ai essayé, merci, mais ça n'a pas marché. Je n'ai pas pu le faire apparaître sur le graphique. J'ai peut-être mal compris quelque chose. La seule chose que j'ai comprise est l'essentiel : les éléments du tampon doivent aller de façon séquentielle (1,2,3...), c'est-à-dire sans vide (1,3,5...) et CHAQUE ! élément du tampon doit avoir une valeur assignée! :-)
Roman, merci pour la réponse..... Malheureusement, je ne comprends toujours pas une chose. Dans le manuel, https://book.mql4.com/ru/basics/expressions, sous "Approche par type". Option 4.1. Calcul du résultat d'un type d'entier
et la variante 4.2 . Une situation similaire se produit si nous cherchons un résultat comme valeur d'un type réel", la même formule est donnée, mais dans un cas, le type de la variable F est désigné comme int
et dans le second exemple, la variable est double
Malheureusement, je ne comprends toujours pas la logique de la conversion. Si dans la première variante il est clair pourquoi int est assigné à la variable F (c'est-à-dire, selon la règle de la conversion implicite de type), alors pourquoi double.... est assigné dans la deuxième variante m'embrouille totalement.
Veuillez clarifier ce que j'ai pu manquer dans mes explications ici ?
Merci d'avance.
J'ai essayé, merci, mais ça n'a pas marché. Il n'y avait rien sur le graphique. J'ai peut-être mal compris quelque chose ?
Avez-vous copié l'ensemble du code ou seulement ce qui se trouvait dans la fonction start() ? C'est important !
La seule chose que j'ai comprise est la plus importante : les éléments du tampon doivent aller les uns après les autres (1,2,3...), c'est-à-dire sans vide (1,3,5...) et CHAQUE ! élément du tampon doit avoir une valeur qui lui est attribuée ! :-)
Roman, merci pour la réponse..... Malheureusement, je ne comprends toujours pas une chose. Dans le manuel, https://book.mql4.com/ru/basics/expressions, sous "Adduction de type". Option 4.1. Calcul du résultat d'un type d'entier
et la variante 4.2 . Une situation similaire se produit lorsque l'on cherche un résultat en tant que valeur d'un type réel", la même formule est donnée, mais dans un cas, le type de la variable F est dénoté comme étant int.
et dans le deuxième exemple, la variable est déjà un double
Malheureusement, je ne comprends toujours pas la logique de la conversion. Si dans la première variante il est clair pourquoi int est assigné à la variable F (c'est-à-dire, selon la règle de la conversion implicite de type), alors pourquoi dans la deuxième variante ils ont assigné double.... m'a complètement désorienté.
Veuillez expliquer ce que j'ai pu manquer dans mon explication.
Merci d'avance.
n
Le type interanger est un type double, le type de variable double a une gamme plus large, il n'est donc pas possible que les variables dans une expression "aient la possibilité" d'être de types différents, et le résultat est une variable qui a une gamme plus étroite de valeurs acceptées, dans ce cas, le type interanger. C'est-à-dire que si au moins une variable dans une expression est de type duble, le résultat doit et peut également être dans la gamme duble, sinon il y aura une erreur de compilation - inadéquation de type.
Veuillez voir ici pour plus de détails.
Integer est un type double, et les variables doubles ont une portée plus large, il n'est donc pas possible que les variables d'une expression "aient la possibilité" d'être de types différents, et le résultat est une variable qui a une gamme plus étroite de valeurs acceptées, dans ce cas, le type integer. C'est-à-dire que si au moins une variable dans une expression est de type duble, le résultat doit et peut aussi être dans la gamme duble, sinon il y aura une erreur de compilation - inadéquation de type.
Pour plus de détails, voir ici.
J'utilise souvent la conversion implicite des types. Mais je dois utiliser des parenthèses inutiles.
Les gars, que signifie #INF - est-il en dehors de la plage autorisée du double ? Voir la deuxième ligne en partant du haut (elle compte le produit du double TWR, c'est-à-dire que sa valeur précédente est multipliée par la suivante). Quelle est la manière correcte de compter ces valeurs prises par la variable TWR ?
Si vous lisez attentivement cette section du manuel, vous verrez que vous devez d'abord examiner l'expression à gauche de l'affectation "=" :
Selon la règle :
A est une variable de type double à gauche, et donc la valeur de A+Y est un nombre de type double.
Ensuite, faites attention au type de variable à laquelle l'expression est affectée.
Dans le premier cas : "d'abord le type de l'expression A+Y sera converti en type int (selon la règle de calcul des entiers), et ensuite ce résultat deviendra la valeur de la variable entière F".
Dans le second cas : "le type cible de la variable F (à gauche du signe de l'opération d'affectation), dans ce cas le type double, est le même que le type double de l'expression A+Y, donc aucune conversion du type cible ne se produit".
Verstehen ? :)))
Les gars, que signifie #INF - est-il en dehors de la plage autorisée du double ? Voir la deuxième ligne en partant du haut (elle compte le produit du double TWR, c'est-à-dire que sa valeur précédente est multipliée par la suivante). Comment compter correctement LES valeurs prises par la variable TWR ?
En général, INFINITY (INF en abrégé ) est l'infini ! :)) Oui, il s'avère que le double manque de puissance (mémoire) pour stocker un nombre aussi important.
Et comment calculer correctement, je ne peux que deviner... Créer un type propre, conditionnellement : stocker dans une variable supplémentaire la capacité en chiffres, et multiplier en double par 10^n, où n est la capacité en chiffres. Mais dans ce cas, la précision est perdue, et je vois que votre précision est de plus en plus mauvaise...
Mais il est peut-être plus simple de modifier la logique des calculs ? :))) Ou peut-être qu'il y a une erreur quelque part.