[ARCHIVE !] Toute question de débutant, pour ne pas encombrer le forum. Professionnels, ne passez pas à côté. Nulle part sans toi - 4. - page 579
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
eh...pourquoi la condition pour vérifier les ordres ouverts ne pourrait-elle pas être écrite comme ceci :
si OrdersTotal() > 0
tout est clair et compréhensible... ce serait...
Cela fait une heure que j'essaie de trouver comment écrire cette condition...
eh...pourquoi la condition pour vérifier les ordres ouverts ne pourrait-elle pas être écrite comme ceci :
si OrdersTotal() > 0
tout est clair et compréhensible... ce serait...
Cela fait une heure que j'essaie de trouver comment écrire cette condition...
Pourquoi pas ? Vous pouvez le faire, mais il sera déclenché s'il y a des ordres ouverts ou en attente sur un symbole.
Pourquoi pas ? Vous pouvez le faire, mais il sera déclenché s'il y a des ordres ouverts ou en attente sur un instrument.
J'aimerais que cela fonctionne - j'ai un poste et un outil.
Mais ça ne marche pas !
Ça dit qu'il y a une erreur dans le code.
à ce
---------------------------
int start()
{
//----
si OrdersTotal()>0
PlaySound ("alert.wav") ;
//----
retour(0) ;
}
-----------------------------
donne 8 erreurs !!!
Que pensez-vous de ça ?
Que pensez-vous de ça ?
:)))))))))))))))))))
Magnifique ! Merci.
Ainsi, deinit est appelé lorsque je supprime un robot d'un graphique - je ne peux pas suivre cette condition d'une autre manière..... il est probablement plus facile d'écrire un script séparé qui supprime tous les robots restants en attente, il n'y a pas d'autre moyen.
Au fait, une autre réflexion sur le sujet :
Je pense avoir résolu le problème de la suppression des commandes en attente. Je détermine la quantité d'ordres "nécessaires" (à retirer) dans une fonction séparée, appelée cette fonction et ensuite while avec la condition (Total>0), puis le cycle de retrait for(int i=Total-1;i<=0l ; i--), calculant à nouveau le"nécessaire" et le compteur de tentatives de retrait avec sortie dewhile lorsque le niveau donné est atteint. De cette façon, tout est supprimé.
Une boucle infinie peut se produire ici si l'un des ordres disparaît après le moment du comptage pour une raison quelconque.
Pourquoi cela ne peut pas être fait ? Par exemple, créez une variable globale au niveau du terminal, attribuez-lui une valeur et vérifiez le démarrage et la modification de la valeur de cette variable via le service -->variables globales avant qu'elle ne soit désactivée.
Et alors ?
Et puis-je demander, qu'est-ce qu'ils essaient de faire avec ça ?
for(int i=0 ; i<OrdersTotal() ; i++)
on dirait qu'ils essaient de compter les positions ouvertes en utilisant la méthode de force brute...
Bonne journée ! !! Je n'arrive pas à trouver une bonne solution à cette situation. Voici un cadre de commande typique. Mais si je donne zéro à mon robot dans les paramètres, c'est-à-dire pas de stops et de takeprofits, rien ne fonctionnera.
Nous pouvons également définir un if et saisir un ordre avec des zéros pour la deuxième fois, mais c'est un peu lourd.
Et puis-je demander ce qu'ils essaient de faire ici ?
for(int i=0 ; i<OrdersTotal() ; i++)
on dirait qu'il essaie de compter les positions ouvertes...
Eh bien, il sélectionne les commandes selon les paramètres spécifiés.
Par exemple, https://www.mql5.com/ru/forum/131859/page3#434221
Fonction NumberOfPositions().
Cette fonction renvoie le nombre de positions ouvertes à ce moment. Une sélection plus précise des positions comptées est spécifiée par des paramètres externes :
Et puis-je demander ce qu'ils essaient de faire avec ça ?
for(int i=0 ; i<OrdersTotal() ; i++)
on dirait qu'ils essaient de compter les postes ouverts...