[ARCHIVE !] Toute question de débutant, pour ne pas encombrer le forum. Professionnels, ne passez pas à côté. Nulle part sans toi - 4. - page 366

 
paladin80:
Veuillez clarifier. Voulez-vous dire une position de marché ouverte ou un ordre en attente ? Dans les deux cas, nous devons vérifier s'il existe une position/un ordre sur le marché, et si c'est le cas, avant de passer un ordre, nous devons retourner(0).

Par exemple, j'ai ouvert une position d'achat en utilisant la condition suivante OPEN[0]> OPEN[3] et j'ai fermé TakeProfit. Après la fermeture de l'ordre, la position d'achat est toujours active, et le conseiller expert va donc ouvrir une autre position d'achat. Je dois éviter d'ouvrir d'autres ordres lorsque TakeProfit est atteint. Je veux dire un ordre de marché, pas un ordre en attente !

 
lowech:

Par exemple, j'ai ouvert une position d'achat en utilisant la condition suivante OPEN[0]> OPEN[3] et j'ai fermé TakeProfit. Après la fermeture de l'ordre, la position d'achat est toujours active, et le conseiller expert va donc ouvrir une autre position d'achat. Je dois éviter d'ouvrir d'autres ordres lorsque TakeProfit est atteint. Je veux dire un ordre au marché, pas un ordre en attente !

Placez un tel morceau de code avant la condition d'ouverture de la position:

if (OrdersTotal()>0) //находит общее кол-во позиций/ордеров
{  for (int i=OrdersTotal()-1; i>=0; i--) // их перебор
   {  if (OrderSelect(i,SELECT_BY_POS,MODE_TRADES)) // перебирает только среди позиций
      {  if (OrderSymbol()!=Symbol()) continue; // перебирает только позиции по тому символу
                                                // на чей график кинули советник
         if (OrderTicket()>0) return(0); // если обнаружена позиция - конец действия программы
}  }  }
 
paladin80:

Mettez ce morceau de code avant la condition d'ouverture de la position :


Merci beaucoup ! Essayons-le !

J'ai essayé ! Il ouvre toujours un tas d'ordres ! Y a-t-il un moyen de désactiver l'expert TakeProfit lorsque l'ordre est fermé ?

 
lowech:

Merci beaucoup ! Essayons-le !

J'ai essayé ! Il ouvre toujours un tas d'ordres ! Y a-t-il un moyen de désactiver TakeProfit Expert Advisor lorsqu'un ordre est fermé ?

Si vous avez raison de placer ce morceau de code avant la condition d'ouverture de position, votre EA ne devrait pas ouvrir plus d'une position pour cette devise. Quant à la désactivation de l'EA après TakeProfit - il n'est pas nécessaire de la désactiver. Il est préférable de faire le bon code tout de suite.
 
paladin80:
Si vous avez raison de placer ce morceau de code exactement avant la condition d'ouverture de position, alors votre conseiller expert ne devrait pas ouvrir plus d'une position pour une devise donnée. Quant à la désactivation de l'EA après TakeProfit - il n'est pas nécessaire de la désactiver. C'est mieux de faire le bon code tout de suite.

if(OrdersTotal()>0) //trouve le nombre total de positions/commandes

{  for (int i=OrdersTotal()-1; i>=0; i--) // их перебор
   {  if (OrderSelect(i,SELECT_BY_POS,MODE_TRADES)) // перебирает только среди позиций
      {  if (OrderSymbol()!=Symbol()) continue; // перебирает только позиции по тому символу
                                                // на чей график кинули советник
         if (OrderTicket()>0) return(0); // если обнаружена позиция - конец действия программы 
}  }  }

Ce code, tel que je le comprends, recherche les positions ouvertes! Mon problème est que l'EA ouvre un ordre après l'autre, pas dans une rangée, et après que l'ordre précédent ferme TakeProfit ou StopLoss, la position s'ouvre à nouveau et seulement un ordre !

 
lowech:

if(OrdersTotal()>0) //trouve le nombre total de positions/commandes

Mon problème est que l'EA ouvre un ordre après l'autre, pas en ligne, et après que l'ordre précédent ferme le TakeProfit ou le StopLoss, la position sera ouverte à nouveau et seulement un ordre !

Ai-je bien compris l'algorithme ?
Après le déclenchement d'une condition d'entrée, une seule position est ouverte. S'il clôture sur un bénéfice ou une perte, n'effectuez pas d'opérations le jour de la clôture. Au fait, vous négociez sur un seul symbole ou sur plusieurs ?
Je ne connais pas la désactivation de l'EA car je ne l'utilise pas, peut-être que quelqu'un qui s'y connaît ici écrira si c'est possible.
 
La fonction SendFTP envoie un fichier texte au serveur. Mais sur le serveur, le fichier est vide - 0 KB. Quel pourrait être le problème ?
 
serler2:
La fonction SendFTP envoie un fichier texte au serveur. Mais sur le serveur, le fichier est vide - 0 KB. Quel pourrait être le problème ?
Et sur le client ?
 
Reshetov:
Et sur le client ?

J'ai essayé de nombreuses options. Tant l'image que le texte et les statistiques. Tous sont livrés avec un volume nul. Sur l'ordinateur local, bien sûr, les fichiers ne sont pas vides.

 
serler2:

J'ai essayé de nombreuses options. Tant l'image que le texte et les statistiques. Tout vient avec un volume nul. Sur l'ordinateur local, bien sûr, les fichiers ne sont pas vides.

Ensuite XZ, c'est-à-dire soit demander aux télépathes, soit le code dans le studio.

Cependant, le serveur ne réussit pas toujours à effectuer des transactions MT4. Dans certains cas, le passage d'un mode passif à un mode actif a aidé, et dans d'autres cas, rien n'a aidé. Tous les serveurs et tous les clients ne prennent pas en charge l'intégralité du protocole RFC 959, d'où les problèmes.