[Archive] Toute question de débutant, afin de ne pas encombrer le forum. Professionnels, ne passez pas à côté. Je ne peux aller nulle part sans toi - 2. - page 424
![MQL5 - Langage des stratégies de trading intégré au terminal client MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
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
J'ai bricolé le code pendant des jours, mais sans succès ! La condition ne fonctionne pas. La variable Z est toujours affectée à la dernière valeur, dans ce cas, elle équivaut à Z=1. Que dois-je réparer pour que les conditions fonctionnent ? Qui peut aider ?
X = MathFloor(PriceTarget) ;
Y = (PriceTarget - X) ;
{
si (0 < Y <= 0.03125)
{Z = 0.03125;}
si (0.03126 < Y <= 0.0625)
{Z = 0.0625;}
si (0.0625 < Y <= 0.09375)
{Z = 0.09375;}
si (0.09375 < Y <= 0.125)
{Z = 0.125;}
si (0.125 < Y <= 0.15625)
{Z = 0.15625;}
si (0.15625 < Y <= 0.1875)
{Z = 0.1875;}
si (0.1875 < Y <= 0.21875)
{Z = 0.21875;}
si (0.21875 < Y <= 0.25)
{Z = 0.25;}
si (0.25 < Y <= 0.28125)
{Z = 0.28125;}
si (0.28125 < Y <= 0.3125)
{Z = 0.3125;}
si (0.3125 < Y <= 0.34375)
{Z = 0.34375;}
si (0.34375 < Y <= 0.375)
{Z = 0.375;}
si (0.375 < Y <= 0.40625)
{Z = 0.40625;}
si (0.40625 < Y <= 0.4375)
{Z = 0.4375;}
si (0.4375 < Y <= 0.46875)
{Z = 0.46875;}
si (0.46875 < Y <= 0.5)
{Z = 0.5;}
si (0.5 < Y <= 0.53125)
{Z = 0.53125;}
si (0.53125 < Y <= 0.5625)
{Z = 0.5625;}
si (0.5625 < Y <= 0.59375)
{Z = 0.59375;}
si (0.59375 < Y <= 0.625)
{Z = 0.625;}
si (0.625 < Y <= 0.65625)
{Z = 0.65625;}
si (0.65625 < Y <= 0.6875)
{Z = 0.6875;}
si (0.6875 < Y <= 0.71875)
{Z = 0.71875;}
si (0.71875 < Y <= 0.75)
{Z = 0.75;}
si (0.75 < Y <= 0.78125)
{Z = 0.78125;}
si (0.78125 < Y <= 0.8125)
{Z = 0.8125;}
si (0.8125 < Y <= 0.84375)
{Z = 0.84375;}
si (0.84375 < Y <= 0.875)
{Z = 0.875;}
si (0.875 < Y <= 0.90625)
{Z = 0.90625;}
si (0.90625 < Y <= 0.9375)
{Z = 0.9375;}
si (0.9375 < Y <= 0.96875)
{Z = 0.96875;}
si (0.96875 < Y <= 1)
{Z = 1;}
}
W = X + Z ;
Bonjour à tous, cela fait des jours que je bricole le code, mais sans succès ! La condition ne fonctionne pas. La variable Z se voit toujours attribuer la dernière valeur, dans ce cas, elle est égale à Z=1. Que dois-je réparer pour que les conditions fonctionnent ? Quelqu'un peut-il m'aider ?
Essayez ceci
transféré de
Essayez comme ceci.
works !!!! vraiment merci !!! surtout pour la rapidité !
works !!!! vraiment merci !!! surtout pour la rapidité !
Quelque chose comme ça :
J'ai deux questions sur les variables globales.
Question 1 : il est écrit qu'ils sont stockés sur le disque dur. Le temps d'accès à celles-ci est-il aussi long que lors de la lecture de données dans un fichier ou aussi rapide que lors de la lecture d'une variable ordinaire ?
Question 2 : Il est dit que les variables globales ne peuvent être que de type double, mais que faire si je veux stocker des données d'autres types, par exemple int ou string ?
1. Je ne peux pas me plaindre de la vitesse.
2. où est-ce écrit ? tous les types peuvent être globaux.
"Ne pas se plaindre" n'est pas vraiment un concept mathématique.
C'est écrit ici :
"Ne pas se plaindre" n'est pas vraiment un concept mathématique.
C'est écrit ici :
Il indique que la variable globale est stockée sur le disque dur et qu'elle est conservée pendant une certaine période. Pendant le déroulement du programme (terminal, indicateur, conseiller), toutes les variables sont stockées en RAM, c'est-à-dire que la valeur du G.P. ne sera lue sur le disque que lors du premier lancement du programme.
Merci pour ces informations. Et la deuxième question ?
Merci pour ces informations. Et la deuxième question ?
Je ne comprends pas vraiment la deuxième question.
Vous pourriez vouloir lire celui-ci .
Je ne comprends pas vraiment la deuxième question.
Vous pouvez le lire ici
Toutes les variables sont perdues lorsque vous quittez le programme (redémarrez votre ordinateur, etc.). Sauf pour les variables globales, car elles sont stockées sur le disque dur. Mais ils ne peuvent être que de type double. Que faire, s'il est nécessaire de stocker des variables d'autres types (int ou string par exemple) ? Qu'est-ce qui n'est pas clair ici ?
Toute variable sera perdue lors de la sortie du programme (redémarrage de l'ordinateur, etc.). Sauf pour les variables globales, car elles sont stockées sur le disque dur. Mais ils ne peuvent être que de type double. Que faire, s'il est nécessaire de stocker des variables d'autres types (int ou string par exemple) ? Qu'est-ce qui n'est pas clair ici ?
Il existe des variables globales du niveau courant du programme et des variables globales du niveau terminal. Les premiers sont remis à zéro lors de la désinitialisation, les seconds ne le sont pas. Vous parlez clairement de cette dernière.
Bien sûr, il serait difficile, par exemple, de cacher un tableau comme double de 100 éléments dans de telles variables. Il est préférable de ne pas les utiliser du tout à de telles fins.
Utilisez un fichier pour stocker des données de tout type. Il n'y a aucune limite. Et cette méthode est utilisée par tout le monde à tout moment.