[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 404
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
Je ne peux pas organiser une boucle, X et Y sont toujours égaux à 0.
D'abord, débarrassez-vous des déchets dans votre esprit.
Faites en sorte que votre code soit agréable et structuré.
Et ne soyez pas avide de commentaires.
Oui. Bien sûr.
Je sélectionne d'abord les ordres avec le numéro magique requis et sur cette paire de devises. if( OrderMagicNumber( )==2000 &&OrderSymbol()==Symbol()) {
Puis la boucle for( i=OrdersTotal();i==0;i--) dans laquelle je sélectionne les ordres comme ceci OrderSelect(i,SELECT_BY_POS ) ; et ensuite je compte combien d'ordres comme OP_SELLSTOP
S'il n'y a pas d'ordre, alors on ouvre un ordre du type d'ordre qui n'existe pas. La variable X dans la boucle supérieure et la variable Y dans la boucle inférieure sont utilisées pour compter les commandes du type nécessaire. Les deux boucles ont la même structure et le même objectif.
J'ai déjà écrit avec des explications, mais ici papa est venu, a appelé, a apporté du lait, du thé et du halva, et je n'ai pas envoyé de message, je suis allé faire pipi, et mon père a effacé le message non envoyé, a dit, mais quoi, tu pourrais écrire dans une autre fenêtre du moteur de recherche ? Je me demandais ce qu'était la pâte d'ortie. J'ai un peu flippé et je l'ai envoyée sans presque aucune explication.
Eh bien, X et Y sont toujours 0. La boucle for ne doit pas fonctionner. Je ne comprends pas ce qui peut ne pas fonctionner du tout, à cause de cela les ordres s'ouvrent 2 fois sur chaque tick.
Oui. Bien sûr.
Je sélectionne d'abord les ordres avec le numéro magique requis et sur cette paire de devises. if( OrderMagicNumber( )==2000 &&OrderSymbol()==Symbol()) {
Puis la boucle for( i=OrdersTotal();i==0;i--) dans laquelle je sélectionne les ordres comme ceci OrderSelect(i,SELECT_BY_POS ) ; et ensuite je compte combien d'ordres comme OP_SELLSTOP
S'il n'y a pas d'ordre, alors on ouvre un ordre du type d'ordre qui n'existe pas. La variable X dans la boucle supérieure et la variable Y dans la boucle inférieure sont utilisées pour compter les commandes du type nécessaire. Les deux boucles ont la même structure et le même objectif.
J'ai déjà écrit avec des explications, mais ici papa est venu, a appelé, a apporté du lait, du thé et du halva, et je n'ai pas envoyé de message, je suis allé faire pipi, et mon père a effacé le message non envoyé, a dit, mais quoi, tu pourrais écrire dans une autre fenêtre du moteur de recherche ? Je me demandais ce qu'était la pâte d'ortie. J'ai un peu flippé et je l'ai envoyée sans presque aucune explication.
Eh bien, X et Y sont toujours 0. La boucle for ne doit pas fonctionner. En bref, je ne comprends pas du tout ce qui pourrait ne pas fonctionner ici, cela provoque l'ouverture de 2 ordres sur chaque tick.
C'est exactement ça, les boucles for ne font pas ce dont vous avez besoin.
Vous avez le résultat suivant : for( i=OrdersTotal();i==0;i--)
1) S'il y a 0 ordre, la boucle sera exécutée 1 fois. Dans ce cas, il sélectionnera l'inconnu et fera l'inconnu avec lui =)
2) S'il y a plus de 0 commande, la boucle ne démarrera pas du tout, car la condition "i==0" n'est pas remplie.
L'expression2 est une vérification de la condition de fin de boucle. S'il est vrai, l'opérateur du corps de la boucle for est exécuté.
Le texte d'aide dit
L'expression2 est une vérification de la condition de fin de boucle. S'il est vrai, l'opérateur du corps de la boucle for est exécuté.
Exact, la boucle n'arrive pas à la boucle.
Vous avez écrit : "Si le symbole de l'ordre (quel ordre ? il y en a beaucoup... ou aucun) est égal à l'ordre actuel et que sa magie (quel ordre ?) est égale à 1000, alors exécutez la boucle".
et vous devez : "démarrer une boucle. Dans celui-ci : 1) sélectionnez une commande. 2) et si symbole =... et magie =1000, alors X++ ;"
Certains DCs de comptes réels attribuent toutes sortes de préfixes comme "." ou "FXF" aux noms des symboles.
Comment puis-je utiliser ces préfixes ?
Je l'ai fait de cette façon :
#define DEF_SPEC "FXF"
string SymbolsTrade[] = {"AUDCAD "DEF_SPEC ... -ne fonctionne pas
string SymbolsTrade[] = {"AUDCAD "+DEF_SPEC ... -Cela ne fonctionne pas comme ça non plus.
Le résultat est que je n'obtiens que FXF au lieu de AUDCADFXF.
Pouvez-vous me dire comment mettre cela en œuvre ?Certains DCs de comptes réels attribuent toutes sortes de préfixes comme "." ou "FXF" aux noms des symboles.
Comment puis-je utiliser ces préfixes ?
J'ai fait ça :
#define DEF_SPEC "FXF"
string SymbolsTrade[] = {"AUDCAD "DEF_SPEC ... -ne fonctionne pas
string SymbolsTrade[] = {"AUDCAD "+DEF_SPEC ... -Cela ne fonctionne pas comme ça non plus.
Le résultat est que je n'obtiens que FXF au lieu de AUDCADFXF.
Pouvez-vous me dire comment mettre cela en œuvre ?Eh bien, c'est comme ça que ça marche à la volée :
Je l'ai, je vais le faire...
De plus, la condition ne fonctionne pas.