Questions des débutants MQL5 MT5 MetaTrader 5 - page 384

 
le0nid2014:
...

si (OrdersTotal() == 0 && ********** )

OrderSend("USDCHF",OP_BUY,Lots,Ask,0,0,0, "5891",MagicNumb,0,Red) ;


si (OrdersTotal() == 0 && ***********)

OrderSend("USDCHF",OP_SELL,Lots,Bid,0,0,0, "58892",MagicNumb,0,Red) ;

...
Vous regardez dans la mauvaise direction. Tout vous a déjà été dit. J'ai même donné un exemple abstrait ci-dessus. Ou est-il trop paresseux pour faire une recherche ?
 
Artyom Trishkin:
Si vous avez deux Expert Advisors, ils doivent avoir le même assistant. Ils doivent être lancés sur des graphiques différents pour un même symbole. En général, bien sûr, il est plus facile d'améliorer le principal que d'en commencer un autre.

Je ne peux pas l'améliorer, il vient du marché.

Je ne peux pas l'utiliser sur 2 graphiques car je ne trouve pas de conditions appropriées. Il ouvre des ordres dans 2 directions alors qu'il n'y en a plus aucun.

 
Artyom Trishkin:

Eh bien, la vérification est un appel de fonction qui renvoie un drapeau :

if(!Function_check_open_position(symbol,OP_BUY,magic)) function_open_position(symbol,OP_BUY,Lots,stop_loss,take_profit,magic,comment) ;
if(!Function_check_open_position(symbol,OP_SELL,magic)) Fonction_open_position(symbole,OP_SELL,Lots,stop_loss,take_profit,magic,commentaire) ;

Ici, tout d'abord, si nous avons besoin de savoir s'il y a un ordre qui suit le code, nous devrons appeler la fonction une nouvelle fois. Et si nous mémorisons la valeur dans des variables, nous pouvons les transmettre plus loin sans appeler à nouveau la fonction. Deuxièmement, c'est une question de goût, je n'aime pas faire des constructions complexes, surtout s'il y a quelques conditions ou si beaucoup d'arguments sont passés à une fonction. Cela nuit à la compréhension du code.
 
Vitalie Postolache:
Oui, j'ai fait une erreur en parlant de "pas d'inludes", cette fonctionnalité est juste dans l'inludeur Trade.mqh.

Pas de problème. J'ai fermé avec l'autre.

La fin s'écrit en un clin d'œil, il faut plus de temps pour faire un signal.

sur la 4-rka il semble que ce soit pire de ce point de vue....

et cette multidevise est une beauté, je n'en crois pas mes yeux.

BRAVO aux développeurs ! //la transition pour la première fois était exactement de 1 jour.

 
Tapochun:
Tout d'abord, si vous voulez savoir s'il y a à nouveau un ordre, vous devrez appeler à nouveau la fonction. Et si vous voulez stocker la valeur dans des variables, vous pouvez les transmettre plus loin sans appeler à nouveau la fonction. Deuxièmement, c'est une question de goût, je n'aime pas faire des constructions complexes, surtout s'il y a quelques conditions ou si beaucoup d'arguments sont passés à une fonction. Cela rend la compréhension du code plus difficile.
A en juger par la question, il n'y a rien d'autre dont vous ayez besoin ici.
 
le0nid2014:

Je ne peux pas l'améliorer, il vient du marché.

Je ne peux pas l'utiliser sur 2 graphiques car je ne trouve pas de conditions appropriées. Il ouvre des ordres dans 2 directions alors qu'il n'y en a plus aucun.

Je vous ai déjà dit comment le mettre en œuvre et comment ouvrir des ordres dans 2 directions. On vous a déjà dit comment faire.
 
Artyom Trishkin:
A en juger par la question, il n'y a rien d'autre à faire à cet endroit.
Lesprojets se développent, vous devez essayer de penser à l'avenir.
 
Tapochun:
Les projets sont en pleine expansion,

Artyom Trishkin:
Il devrait fonctionner sur un graphique, et le second - un graphique simple qui ouvre deux positions - sur l'autre. On vous a déjà dit comment faire.

Vous n'êtes pas du tout inadéquate.Au revoir.

 
Tapochun:
Les projets se développent, il faut essayer de penser à l'avenir.

Oui, merci pour la science. Je vais y réfléchir...

ZS. Qu'est-ce qui empêche alors de renvoyer la vérification non pas dans une condition, mais dans une variable et de la vérifier déjà ? Probablement la complexité la plus folle de ce projet à l'avenir...

Et encore une chose : si le projet s'étend, le temps d'exécution du code peut également augmenter. Par conséquent, il y aura beaucoup de calculs à effectuer après l'écriture des données dans la variable. Ainsi, n'est-il pas possible qu'au moment où nous avons besoin d'une deuxième vérification, l'ordre aura déjà été fermé (à un stop, par exemple ... ou à une prise ...), et le programme calculera alors une valeur incorrecte stockée dans la variable ?

Exactement - nous devons penser à l'avance aux grands projets et à toutes les situations possibles qui peuvent se produire. Je reste donc fidèle à ma conviction : il faut toujours disposer des données les plus récentes juste avant de les utiliser. Dans la mesure du possible.

 

le0nid2014:

Vous êtes un peu inadéquat.Au revoir.

C'est à moi que tu parles ? Très bien, passez une bonne journée. Mais vous reviendrez à ce que j'ai suggéré à la fin, rejoignant ainsi les rangs des inadaptés.