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

 
ALXIMIKS:

+ J'ai lu quelque part qu'il est utile de vérifier également le OrderClosetime des tickets ouverts lors de la sélection (ils l'ont = 0).
Il s'agit d'une sélection par billet. Voici la sélection par index.
 

Bonjour !

Comme d'habitude, j'ai besoin d'aide, je n'arrive pas à trouver comment sélectionner correctement les ordres en attente par numéro magique. Quelqu'un peut-il m'envoyer le code pour voir comment faire par exemple. Merci d'avance).

 
zaqwsx123:

Bonjour !

Comme d'habitude, j'ai besoin d'aide, je n'arrive pas à trouver comment sélectionner correctement les ordres en attente par numéro magique. Quelqu'un peut-il m'envoyer le code pour voir comment faire par exemple. Merci d'avance).


ALXIMIKS 11.09.2013 21:36 #

void DeletePendingOrders()
{
    int NumberOfTry,
        err,
        ticket;

   for (int i=OrdersTotal()-1; i>=0; i--)
   {
      if (!OrderSelect(i, SELECT_BY_POS,MODE_TRADES)) continue;
      if (OrderMagicNumber() != i_magic) continue;
      if (OrderSymbol() != Symbol()) continue;
      if (OrderType() > 1)
      {
         ticket = OrderTicket();
         NumberOfTry=0;

         while (NumberOfTry < 5)
         {
            while (!IsTradeAllowed()) Sleep(5000);
      
            if (OrderDelete(ticket, Red))
                breake;
            else
                err = GetLastError();
      
            if (err > 0)
            { 
              Print(NumberOfTry," #",ticket," Error modifing order: (", err , ") ");
              Sleep(5000);  NumberOfTry++;
            }
         }
      }
   }
}

quelqu'un a demandé de l'aide pour ce code, c'est un exemple de la façon de supprimer tous les ordres en attente.

Je ne sais pas si le code sera toujours adéquat dans le testeur, je ne dirai rien sur le réel

 
ALXIMIKS:

quelqu'un a demandé de l'aide avec ce code, voici un exemple de comment supprimer tous les ordres en attente

Je ne sais pas si le code sera toujours adéquat dans le testeur.

Je ne comprends pas, si vous n'êtes pas sûr du code, pourquoi le montrer à un questionneur ? La réponse doit toujours être correcte, et non pas "peut-être que ça va marcher - j'ai fait quelques erreurs là"...
 
zaqwsx123:

Bonjour !

Comme d'habitude, j'ai besoin d'aide, je n'arrive pas à trouver comment sélectionner correctement les ordres en attente par numéro magique. Quelqu'un peut-il m'envoyer le code pour voir comment faire par exemple. Merci d'avance)

Il sélectionne tout ordre donné ouvert en dernier et renvoie son ticket. Si un tel ordre n'existe pas, il renvoie -1 :

//-----------------------------------------------------------------------------+
int GetTicketLastOpenOrder(string sy, int op, int mn) {
   int   i, j=-1, t=0, k=OrdersTotal()-1;
   for (i=k; i>=0; i--) {                       // цикл от конца к началу
      if (OrderSelect(i,SELECT_BY_POS)) {
         if (OrderMagicNumber()!=mn)   continue;// если магик не тот - переходим к следующему
         if (OrderSymbol()!=sy)        continue;// если символ не тот - переходим к следующему
         if (OrderType()!=op)          continue;// если тип не тот - переходим к следующему
         if (t<OrderOpenTime()) {   // выбран нужный, ...
            t=OrderOpenTime();      // ... ищем последний ...
            j=i;                    // ... открытый ордер
            }
         }
      else Print("FUNC GetTicketLastOpenOrder() ошибка выбора ордера "+GetLastError());
      }
   if (OrderSelect(j,SELECT_BY_POS)) return(OrderTicket()); // если найден ордер, вернём его тикет
   return(-1);                                              // иначе - возвращаем -1
}
//-----------------------------------------------------------------------------+
 
artmedia70:
Mec, je ne comprends pas, si tu n'es pas sûr du code, pourquoi le montrer à la personne qui pose la question ? La réponse doit toujours être correcte, et non pas "peut-être que ça va marcher - j'ai fait quelques erreurs là"...

Eh bien, c'est la façon dont l'homme s'affirme.

Il a déjà démontré son arrogance ici.

 
PapaYozh:

Eh bien, c'est la façon dont l'homme s'affirme.

Il a déjà montré son arrogance ici.

Eh bien... certaines personnes battent leur femme, d'autres jacassent sur des forums, d'autres encore font des révolutions... Les gens sont différents. Chacun son truc.
 
artmedia70:
Eh bien ... quelqu'un bat sa femme, quelqu'un jacasse sur des forums, quelqu'un fait des révolutions ..... Les gens sont différents. Chacun son truc.

Si une personne pose une question la nuit, dont la réponse n'est pas si compliquée, mais en raison de mon inexpérience, par principe, je ne peux pas me porter garant de l'exactitude du code à 100 %,

il vaut mieux qu'il attende 8 heures pour obtenir une réponse d'un professionnel ?

Ou bien ils pourraient m'aider rapidement à corriger mon code (si un développeur n'est pas désespéré...).

J'ai choisi la deuxième option, et je pense qu'elle est justifiée, pensez ce que vous voulez et soyez heureux.

 
ALXIMIKS:
artmedia70:
Eh bien... certaines personnes battent leur femme, d'autres jacassent sur des forums, d'autres encore font des révolutions... Les gens sont différents. Chacun son truc.

Si une personne pose une question la nuit, dont la réponse n'est pas si compliquée, mais en raison de mon inexpérience, par principe, je ne peux pas me porter garant de l'exactitude du code à 100 %,

il vaut mieux qu'il attende huit heures pour obtenir une réponse d'un professionnel ?

Bien sûr, un novice préfère attendre le matin pour chercher des erreurs dans le code de quelqu'un d'autre plutôt que de bien dormir et d'obtenir une réponse compétente.

Ce que je veux dire, c'est que lorsque vous répondez à un débutant, pensez au fait qu'il n'a peut-être pas beaucoup d'expérience.

 

Il existe une bibliothèque hoz_LoggingToAnywhere@Library.mq4, qui est appelée à partir du fichier d'en-tête hoz_Base@Include.mqh.

Lorsque je compile la bibliothèque hoz_LoggingToAnywhere@Library.mq4, je vois ce message dans le journal :

'StringConcatenate' - incompatible types        D:\Insall'd soft's\Forex\MetaTraderForProgramming\experts\include\hoz_Base@Include.mqh (75, 12)

J'y vais... Et là, je vois :

   //---- Контролируем возможные ошибки
   fPrint (StringConcatenate ("fInitBase() => ", fErrorToString (bi_Err)));

L'appel de cette fonction fPrint à partir d'autres bibliothèques n'est blâmé nulle part, mais à partir du fichier d'en-tête... il l'est. Pourquoi en est-il ainsi ? C'est déjà copié de caractère en caractère...