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

 
#include <Trade/Trade.mqh>

void DeletePendingOrders(const string sSymbol, const ulong nMagic)
{
   CTrade oTrade;

   for(int i = OrdersTotal() - 1; i >= 0; i--)
   {
      ulong nOrderTicket = OrderGetTicket(i);
      
      if(nOrderTicket > 0)
      {
         if(OrderGetString(ORDER_SYMBOL) == sSymbol && OrderGetInteger(ORDER_MAGIC) == nMagic)
         {
            // удаляем только отложенники
            ENUM_ORDER_TYPE eType = (ENUM_ORDER_TYPE)OrderGetInteger(ORDER_TYPE);
            
            if(eType == ORDER_TYPE_BUY_STOP  || eType == ORDER_TYPE_SELL_STOP ||
               eType == ORDER_TYPE_BUY_LIMIT || eType == ORDER_TYPE_SELL_LIMIT ||
               eType == ORDER_TYPE_BUY_STOP_LIMIT || eType == ORDER_TYPE_SELL_STOP_LIMIT)
            {
               oTrade.OrderDelete(nOrderTicket);
            }
         }
      }
   }
}

Le script pour MT4 ne fonctionnera pas sur Five, ses fonctions de trading sont très différentes.

 
Sergei Vladimirov:

Le script pour MT4 ne fonctionnera pas sur Five, dont les fonctions de trading sont très différentes.

Merci, j'étais sur le point de m'occuper de trade.mqh.
 
Vous pouvez me dire quelque chose ? Comment puis-je savoir par programme, et non logiquement, comment un ordre au marché a été clôturé - par TP, SL ou par marché ?
 
-Aleks-:
Vous pouvez me dire quelque chose ? Comment puis-je savoir par programme, et non logiquement, comment un ordre au marché a été fermé - par TP, SL ou par marché ?
Comparez le prix de clôture avec le TP, SL. Si elles coïncident presque - la réponse est là. S'ils ne coïncident pas, la réponse est également là.
 
Victor Nikolaev:
Comparez le prix de clôture avec le TP, SL. Si elles correspondent presque - la réponse est là. Si elles ne coïncident pas, alors la réponse est aussi là.

C'est ce que j'ai demandé, pourquoi pas par comparaison ? Dans le terminal, les ordres sont teintés, cela signifie qu'ils ont un indicateur sur la façon dont ils ont été fermés.

Je ne vois pas très bien comment on peut dire "presque" - les dérapages peuvent être trop importants pour être comparés.

 
-Aleks-:

C'est ce que j'ai demandé, pourquoi pas par comparaison ? Dans le terminal, les ordres sont teintés, de sorte qu'ils comportent un indicateur sur la façon dont ils ont été fermés.

Je ne vois pas très bien comment organiser le "presque" - les dérapages peuvent être trop importants pour être comparés.

Avec "presque", la décision est prise individuellement, au cas par cas. Dans un marché lent, c'est une chose, dans un marché rapide, c'en est une autre.
 
-Aleks-:
Tu peux me dire quelque chose ? Comment puis-je savoir par programme, et non logiquement, comment un ordre au marché a été fermé - par TP, SL ou par marché ?
Le commentaire de l'ordre fermé par stoploss est attribué [sl], fermé par takeprofit est attribué [tp].
 
Artyom Trishkin:
Dans le commentaire d'un fermé sur stoploss, attribué à [sl], fermé sur takeprofit, attribué à [tp].
Tu es réveillé ?
 
Victor Nikolaev:
Tu es réveillé ?
J'écrivais sur mon téléphone portable... dans mon sommeil... le ronflement... reniflant... ronronner...
 
Victor Nikolaev:
Avec "presque" est résolu individuellement dans chaque cas à sa manière. C'est une chose dans un marché lent et une autre dans un marché rapide.

Oui, c'est pourquoi je cherche une solution universelle - si l'information est nécessaire sur la prochaine barre après la fermeture de l'ordre, alors il n'est pas si difficile d'évaluer la volatilité, mais si c'est après un jour, alors je dois compter le nombre de barres qui sont passées et la volatilité qui était là.

Artyom Trishkin:
Dans le commentaire d'une fermeture par stoploss nous attribuons [sl], d'une fermeture par takeprofit nous attribuons [tp].

Merci - je vais essayer de le lire maintenant !

Et il n'y a pas de tel commentaire dans le testeur, n'est-ce pas ?

Raison: