Toute question de débutant, afin de ne pas encombrer le forum. Professionnels, ne passez pas à côté. Nulle part sans toi - 6. - page 77

 
Sepulca:

Vous troller)))) Vous avez une personnalité charismatique))))
Merci pour le compliment, j'aimerais bien savoir d'où ça vient.
 
bistreevseh:
Je pense que c'est la partie du code qui peut causer le problème, merci beaucoup par avance.


Juste en haut de ma tête

si Work=FALSE, l'EA ne fonctionnera pas.

L'EA ne fonctionnera pas s'il y a au moins un ordre en attente, il n'y a pas de vérification sur MAGIC.

Vous recevez des réponses ?

 
MisterD:

Cela ne fonctionne pas, car les variables, que vous voulez fixer à un niveau global, c'est-à-dire avant la fonction Start... Par exemple, ceux-ci et ainsi de suite.... " FiksiruemUp = True ; // fixer " et "iksiruemUp = False ; // réinitialiser "
Si vous ne passez pas d'une période à l'autre, cela devrait fonctionner...


Je l'ai fait avec les variables, je les ai mises au niveau global.

si vous prenez en compte le point suivant :

lorsque le prix est au-dessus de la ligne supérieure, il attribue Vrai à FiksiruemUp, après que le prix devient inférieur à la ligne supérieure et toujours au-dessus de la ligne médiane, qu'est-ce qui sera attribué à FiksiruemUp : Vrai ou Faux ?

Il me semble que dans cette situation, il affecte automatiquement False, car False lui a été attribué dans les variables globales, alors que True n'est attribué que lorsque le prix est au-dessus de la ligne supérieure.

 
Lesvariables globales sont de type double et uniquement double. Vous devez garder cela à l'esprit lorsque vous placez un bool dans des variables globales.
 
Sepulca:


Dès le départ

si Work=FALSE, l'EA ne fonctionnera pas.

L'EA ne fonctionnera pas s'il y a au moins un ordre en attente, il n'y a pas de vérification pour MAGIC.

Est-ce qu'il vous donne des signaux ?


Le conseiller fonctionne, c'est-à-dire qu'il ouvre des ordres, donne des alertes sur l'ouverture et le déclenchement de tp ou de sl, il ne met pas non plus de pendentifs.
 
Sepulca:
Les variables globales sont de type double et uniquement double. Vous devez garder cela à l'esprit lorsque vous placez un bool dans des variables globales.

et pourtant, comment cela devrait-il être ?
 
Sepulca:
Les variables globales sont de type double et uniquement double. Vous devez garder cela à l'esprit lorsque vous placez un bool dans des variables globales.

nous ne parlons pas de GlobalVariables ici, nous parlons de variables au niveau global..... relisez ce point, il y a une différence....
 
belck:


Je l'ai fait avec les variables, je les ai mises au niveau global.

si vous prenez en compte le point suivant :

lorsque le prix est au-dessus de la ligne supérieure, il attribue Vrai à FiksiruemUp, après que le prix devient inférieur à la ligne supérieure et toujours au-dessus de la ligne médiane, qu'est-ce qui sera attribué à FiksiruemUp : Vrai ou Faux ?

Il me semble que dans cette situation, il affecte automatiquement Faux, car il a été affecté Faux dans les variables globales, alors que Vrai n'est affecté que lorsque le prix est au-dessus de la ligne supérieure.


Initialement, si rien n'est spécifié au niveau global, la valeur sera False..... Une fois que la variable est définie à True, elle aura cette valeur jusqu'à la condition suivante if (Ask < LineS) FiksiruemUp = False ; // reset.... Si la condition est remplie, la variable se verra attribuer la nouvelle valeur False et le restera jusqu'au moment - "lorsque le prix est au-dessus de la ligne supérieure, il attribue True à FiksiruemUp" et ainsi de suite... J'espère l'avoir expliqué clairement... :)
 
MisterD:

Initialement, si rien n'est spécifié au niveau global, la valeur sera False..... Une fois que la variable est définie à True, elle aura cette valeur jusqu'à la condition suivante if (Ask < LineS) FiksiruemUp = False ; // reset.... Si la condition est remplie, la variable se verra attribuer la nouvelle valeur Faux et le restera jusqu'au moment - "lorsque le prix est au-dessus de la ligne supérieure, il attribue Vrai à FiksiruemUp" et ainsi de suite... J'espère l'avoir expliqué clairement... :)

Je comprends maintenant. Merci beaucoup.
 

Mes amis, aidez-moi. J'ai besoin de fermer tous les ordres sur une paire de devises sélectionnée. Voici ce que j'ai écrit (une partie du code d'EA) :

int Zakrit_vse()

{

Total=OrdersTotal() ;

int Vsego ;

for(int i=1 ; i<=OrdersTotal() ; i++) // Boucle à travers les ordres, ferme tout.

{

si (OrderSelect(i-1,SELECT_BY_POS)==true)

{

si (OrderSymbol()!=Symb)continuer ;

Ticket=OrderTicket() ;

Lot=OrderLots() ;

Prix=OrderOpenPrice() ;

Vsego++ ;

Tip=OrderType() ;

Alerte(Tip) ;

if(Tip>1)

{

CommanderSupprimer(Ticket) ;

Prov_oshibok() ;

continuer ;

}

if(Tip==0)

{

OrderClose( Ticket,Lot, Bid,100) ;

Prov_oshibok() ;

continuer ;

}

if(Tip==1)

{

OrderClose( Ticket,Lot, Ask,100) ;

Prov_oshibok() ;

continuer ;

} //

}

}

Alerte(Total," ",Vsego) ;

int ret=MessageBox("Opération terminée avec succès",

",MB_OK|MB_ICONQUESTION|MB_TOPMOST) ;

if(ret==IDOK) // si la réponse est "oui".

{

Print("Tous les ordres d'un montant de ",Vsego," ont été clôturés avec succès ;)

}

}

Mais pour une raison quelconque, seule une commande sur deux est fermée. S'il y a 6 commandes, 3 sont fermées, s'il y en a 8-4, etc.

Qu'est-ce que ça peut être ? Quelle est l'erreur, veuillez me conseiller ?

Raison: