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

 
Vinin:

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.

 
solnce600:

Qu'est-ce qui est illogique dans mon idée

C'est logique, sauf que ce n'est pas ton idée.
 
tara:


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.

 
tara:
C'est logique ici, sauf que ce n'est pas la vôtre (l'idée).

Je ne discute pas de cela..... - mon idée dans le sens où elle m'est venue à l'esprit.... et bien sûr M. Martingale l'a proposée à l'origine.
 
solnce600:

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.
 
tara:


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.....

 
solnce600:

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.

 
tara:

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 ;
}
}
}

 
tara:


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.

Et quels sont les critères d'ordre appliqués au code ?
 

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.