Toute question de débutant, afin de ne pas encombrer le forum. Professionnels, ne passez pas à côté. Nulle part sans toi - 6. - page 204
![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
Nous devrions réparer la logique complètement.
Je suis désolé, mais je ne suis pas sûr de ce que vous entendez par ma logique quand vous dites qu'il faut la corriger.
Ce qui est illogique dans mon idée
- si l'ordre est fermé au stop
-Le prochain après cet ordre pour ouvrir un ordre avec un volume égal au volume du dernier ordre qui a clôturé au stop multiplié par 2(3,4...)
- si l'ordre est fermé pour une raison autre qu'un stop.
l'ordre suivant pour ouvrir un volume régulier, par exemple 0,1 lot.
Qu'est-ce qui est illogique dans mon idée
Certainement avec une mauvaise logique. Tout d'abord, traduisez le fragment surligné de votre message en russe.
Après cela, supprimez les séquences d'opérateurs conditionnels de votre code. Et puis tu arriveras au magicien et la vie deviendra meilleure.
Je suis d'accord que le fragment alloué n'est pas tout à fait clair, même pour moi. Je comprends seulement que les boursiers seniors veulent dire que mon erreur en quelque sorte...
lié aux nombres magiques d'ordres..... comment exactement je n'ai pas encore compris.
Q. La logique incorrecte est-elle liée aux numéros magiques des commandes ?
QUESTION : supprimez les séquences d'opérateurs conditionnels dans quelle partie du code ? Depuis starta, ou depuis le corps de la fonction personnalisée isCloseLastPosByStop
Q.Si je les supprime, quelles informations recevrai-je ensuite ?
Merci.
C'est logique ici, sauf que ce n'est pas la vôtre (l'idée).
Je suis d'accord que le fragment mis en évidence n'est pas tout à fait clair, même pour moi. Je comprends seulement que les camarades plus âgés veulent dire que mon erreur en quelque sorte
est en quelque sorte lié aux nombres magiques d'ordres..... comment exactement je n'ai pas encore compris.
Q. La logique incorrecte est-elle liée au nombre magique de commandes ?
QUESTION Retirez les séquences de l'instruction conditionnelle de quelle partie du code ? Depuis starta, ou depuis le corps de la fonction personnalisée isCloseLastPosByStop
QUESTION : Si je les supprime, quelles informations vais-je obtenir par la suite ?
Merci.
Andrey, le terme "logique" signifie ici ce qui est décrit dans le code. Personnellement, je ne veux pas comprendre tous les détails de votre code, mais en voyant la séquence if(A) if(B) if(C) D ; je comprends que vous n'êtes pas très bon en algèbre logique. D'ailleurs, l'interpréteur peut très bien se heurter à de telles constructions.
Certainement avec une logique défectueuse. Pour commencer, traduisez le fragment surligné de votre message en russe.
Après cela, supprimez les séquences d'opérateurs conditionnels de votre code. Et puis tu arriveras au magicien et la vie deviendra meilleure.
Dans ce post, vous dites que ma logique est erronée, et dans plusieurs posts ci-dessous, vous êtes d'accord avec cette logique.....
Dans ce post, vous dites que ma logique est erronée, et quelques posts plus tard, vous êtes d'accord avec cette logique.....
Un homme bon a dit un jour : l'ordre libère l'esprit.
Votre code est un désordre, donc votre esprit n'est pas libre.
Andrew, par "logique", nous entendons ici ce qui est décrit dans le code. Personnellement, je ne veux pas entrer dans les détails de tout votre code, mais en voyant la séquence if(A) if(B) if(C) D ; je comprends que vous n'êtes pas très bon en algèbre logique. D'ailleurs, l'interpréteur peut très bien se heurter à de telles constructions.
Donc, ce n'est pas bon quand il y a autant d'instructions if à la suite ?
if (ot==0)
if (Bid==Price)
//===============================================================
if(((Open[1]-Close[1])>100*Point)&&((Open[1]-Close[1])<120*Point))
if(((High[1]-Open[1])>40*Point)&&((High[1]-Open[1])<60*Point))
if(((Close[1]-Low[1])>40*Point)&&((Close[1]-Low[1])<60*Point))
ou
for (i=k ; i>=0 ; i--) {
if(OrderSelect(i, SELECT_BY_POS, MODE_HISTORY) {
if (OrderMagicNumber()!=mn) continue ; // si le magicien se trompe, passez au suivant
if (OrderSymbol()!=sy) continue ; // si le symbole est incorrect, passez à l'adresse suivante
if (OrderType()!=op) continue ; // si le type est incorrect, passez à l'adresse suivante
if (t<OrderCloseTime()) {
t=OrderCloseTime() ;
j=i ;
}
}
}
Un homme bon a dit un jour : l'ordre libère l'esprit.
Votre code est un désordre, c'est pourquoi l'esprit n'est pas libre.
solnce600:
Bien sûr, la première construction est imparfaite et peut perturber l'interprète.
Aussi - magik est un entier, pas un double.
De même, une comparaison stricte des dubs est un râteau.
... ... ...
Mettez les choses en ordre, ne soyez pas paresseux pour écrire des commentaires, d'autant plus que vous n'avez pas encore d'expérience.
Testez enfin le code en le lisant et en l'exécutant vous-même, à la place de l'interpréteur.