[ARCHIVE !] Toute question de débutant, pour ne pas encombrer le forum. Professionnels, ne passez pas à côté. Nulle part sans toi - 4. - page 198
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
Dans un indicateur, je suis tombé sur la construction suivante :
int R ; //la variable est déclarée au niveau global
J'ai trouvé la même variable avec le symbole & dans une fonction définie par l'utilisateur comme ceci
void Function(int A, int B, int &R) {R = A*B}
Quelqu'un peut-il me dire pourquoi on fait cela et où je peux en savoir plus à ce sujet ?
Dans un indicateur, je suis tombé sur la construction suivante :
int R ; //la variable est déclarée au niveau global
J'ai trouvé la même variable avec le symbole & dans une fonction définie par l'utilisateur comme ceci
void Function(int A, int B, int &R) {R = A*B}
Quelqu'un peut-il me dire pourquoi on fait cela et où je peux en savoir plus ?
Le tutoriel est ici, et google rules !
Tutorial ici et google rules !
Je ne comprends pas ce qui changerait si c'était comme ça :
void Function(int A, int B) {R = A*B}
La variable R est déclarée globalement et sera de toute façon visible dans la fonction. Dans quels cas est-il nécessaire de passer des paramètres par référence ?
Je ne comprends pas ce qui changerait si c'était comme ça :
void Function(int A, int B) {R = A*B}
La variable R est déclarée globalement et sera de toute façon visible dans la fonction. Dans quels cas est-il nécessaire de passer des paramètres par référence ?
Lisez le manuel, la documentation, google, ici.
"Lors de l'appel de la fonction swap, de nouvelles variables a et b sont créées et se voient attribuer les valeurs 3 et 5. Ces variables ne sont en aucun cas liées aux variables p et q et le fait de les modifier ne change pas les valeurs de p et q. Cette méthode de passage de paramètres est appelée passage de valeurs.
Pour qu'une fonction puisse modifier les valeurs des variables déclarées dans d'autres fonctions, vous devez préciser que le paramètre transmis n'est pas seulement une valeur constante mais une variable, vous devez transmettre les valeurs par référence. Pour ce faire, la fonction swap aurait dû être déclarée comme suit :
void swap(int & a, int & b)
Les esperluettes devant le nom de la variable signifient que cette variable n'est pas une variable locale, mais une référence à la variable spécifiée comme paramètre lors de l'appel de la fonction. Maintenant, lorsque vous appelez swap(p,q), les variables a et b sont synonymes des variables p et q, et le changement de leurs valeurs entraîne le changement des valeurs de p et de q. Mais vous ne pouvez pas appeler une fonction comme swap(3,5) parce que 3 et 5 sont des constantes, et vous ne pouvez pas faire des variables des synonymes de constantes".
Lisez le tutoriel, la documentation, google, ici.
"Lorsque la fonction swap est appelée, de nouvelles variables a et b sont créées et les valeurs 3 et 5 leur sont attribuées. Ces variables ne sont en aucun cas liées aux variables p et q, et les modifier ne change pas les valeurs de p et q. Cette méthode de passage de paramètres est appelée passage de valeurs.
Pour qu'une fonction puisse modifier les valeurs des variables déclarées dans d'autres fonctions, vous devez préciser que le paramètre transmis n'est pas seulement une valeur constante mais une variable, vous devez transmettre les valeurs par référence. Pour ce faire, la fonction swap aurait dû être déclarée comme suit :
void swap(int & a, int & b)
Les esperluettes devant le nom de la variable signifient que cette variable n'est pas une variable locale, mais une référence à la variable spécifiée comme paramètre lors de l'appel de la fonction. Maintenant, lorsque vous appelez swap(p,q), les variables a et b sont synonymes des variables p et q, et le changement de leurs valeurs entraîne le changement des valeurs de p et de q. Mais vous ne pouvez pas appeler une fonction comme swap(3,5) puisque 3 et 5 sont des constantes et que vous ne pouvez pas faire de variables des synonymes de constantes".
Merci pour l'information
Vous pouvez, mais vous devez mettre le conseiller au courant.
Oui, je comprends :) C'est juste que vous essayez souvent une stratégie, une version d'essai, juste pour voir comment une idée fonctionne. Parfois, les erreurs qui y sont commises se révèlent sous un jour complètement différent. Et vous n'avez pas de temps à perdre, si vous devez composer et voir dans l'urgence.
Existe-t-il un moyen de le fermer carrément, afin qu'il ne copie pas ce qu'il écrit dans le fichier journal ? Question à ce sujet.
C'est compréhensible :) C'est juste que souvent, on essaie une stratégie, une version d'essai, juste pour voir comment l'idée fonctionne. Parfois, les erreurs ressortent sous un jour complètement différent. Et vous n'avez pas de temps à perdre, si vous devez composer et voir dans l'urgence.
Existe-t-il un moyen de le fermer carrément, afin qu'il ne copie pas ce qu'il écrit dans le fichier journal ? Question à ce sujet.
Comment pouvez-vous faire confiance à un EA qui fonctionne par erreur ?
Il a besoin d'autre chose - de changer la variable interne du programme, le point de référence pour dessiner l'indicateur, puis de recalculer et redessiner la ligne après avoir appuyé sur la combinaison de touches.
Pourquoi MT ne veut pas de crochets, d'ailleurs ?
Merci de votre compréhension) :