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

 
ivann85:

de manière programmatique ;))
Que devez-vous trouver exactement ? Le numéro de la liste ? Un ticket ? Et s'il y en a plus d'un sur l'UE, ce pendule ?
S'il y en a deux ou trois-cinq millions et qu'ils sont tous du même type et accrochés à la même paire, lequel est nécessaire ?
 
alexey1979621:

paladin80


artmedia70



Alors aidez-moi avec le conseiller expert- je vais le tester à partir de votre programmation (comme le thème de travail), sinon je viens de me pendre ou dans deux mois, lorsque tous les forums vont violer quelque chose va fonctionner.








Oh... Et le nombre dans votre pseudo ne serait pas par hasard le nombre prévu de forums violés ?

Écrire pour vous, c'est du vent. Cinquante dollars et il est à vous. Note - un prix très démocratique, presque pour rien :))

 
alexey1979621:

paladin80


artmedia70



Alors aidez-moi avec le conseiller expert- je vais le tester à partir de votre programmation (comme le thème de travail), sinon je viens de me pendre ou dans deux mois, lorsque tous les forums vont violer quelque chose va fonctionner.








Nous avons un peu digéré votre conseiller, nous vous avons dit les points faibles, ce qu'il faut faire et comment le faire, mais je ne pourrai pas faire les corrections. J'ai beaucoup de code à faire moi-même.

... tranquillement dans le nuage pour optimiser...

 
ivann85:

de manière programmatique ;))

Puisqu'il n'y a pas de réponse à la question, voici une fonction qui renverra le ticket du dernier ensemble de commandes :

// Возвращает тикет последнего установленного/открытого ордера
int TicketLastOrder(string sy, int op, int mn) {
   datetime t;
   int      i, j=-1, tic=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;
            }
         }
      }
   if (OrderSelect(j,SELECT_BY_POS)) tic=OrderTicket();
   return(tic);
}
// -------------------------------------------------------------
/*
Ордера фильтруются по символу (sy), типу (op) и магику (mn)
Чтобы найти тикет последнего установленного ордера BuyLimit 
с магиком Magic на текущем графике,
нужно вызвать функцию с такими параметрами:
int Ticket=TicketLastOrder(Symbol(), OP_BUYLIMIT, Magic);
Если есть такой ордер, функция вернёт номер его тикета.
В противном случае, ф-ция вернёт ноль
*/
 

Je reçois occasionnellement, mais pas constamment, une erreur 4200 lorsque je place un ordre en attente. Selon la documentation, cette erreur signifie que l'objet existe déjà :

ERR_OBJECT_ALREADY_EXISTS4200Объект уже существует


Il s'avère qu'un ordre de ce type est déjà sur le marché lorsque l'ordre en attente est envoyé ?

 
hoz:

Je reçois occasionnellement, mais pas constamment, l'erreur 4200 lorsque je place un ordre en attente. Selon la documentation, cette erreur signifie que l'objet existe déjà :

ERR_OBJECT_ALREADY_EXISTS4200Объект уже существует


Il s'avère que l'ordre de ce type est déjà sur le marché lorsque l'ordre en attente est envoyé ?

Cette erreur s'applique aux objets graphiques, pas aux commandes.
 
Bonsoir, Victor ! Bizarre, l'ordre en attente n'est pas un objet ! Peut-être avez-vous un objet qui aurait déjà dû être supprimé, mais qui ne l'a pas été !
 

Pouvez-vous me conseiller, mes amis ? C'est la première fois que j'écris un EA qui fonctionne avec plusieurs ordres en suspens en même temps, alors je me demande... quel genre d'erreurs il peut y avoir lors de l'ouverture des ordres en suspens ? Sur quoi devons-nous nous concentrer dans la fonction de traitement des erreurs ? Pourrait-il y avoir des erreurs telles que 4(trade server is busy) ou 146(trading subsystem is busy) ? Partagez si vous le savez.

 
Dozol:

Pouvez-vous me conseiller, mes amis ? C'est la première fois que j'écris un EA qui fonctionne avec plusieurs ordres en attente en même temps, donc je me demande... quel genre d'erreurs il peut y avoir lors de l'ouverture des ordres en attente ? Sur quoi devons-nous nous concentrer dans la fonction de traitement des erreurs ? Pourrait-il y avoir des erreurs telles que 4(trade server is busy) ou 146(trading subsystem is busy) ? Partagez si vous le savez.

Tout peut arriver dans le monde réel. Traitez, si possible, les erreurs de négociation qui peuvent survenir.
 

Veuillez me conseiller ! !!

J'écris des ordres en attente à un moment donné

{

Définir le temps d'ouverture

}

if ((condition)==true)//
{
OrderSend ( OP_BUYSTOPP, parameters);// ouvrir un ordre BuyStop en attente
OrderSend ( OP_SELLSTOP, parameters);// ouvrir un ordre SellStop en attente
}

Je pense que j'ai écrit l'heure correctement ; il la détecte mais pour une raison quelconque, il ouvre soit le Sell Stop soit le Buy Stop et n'ouvre pas les deux à la fois. J'essaie d'ouvrir deux ordres en suspens de types différents (Bistop et Sellstop) en même temps et un par un. (La question semble être primitive, merci d'aider les nuls) Merci !)

Raison: