[Toute question de débutant, afin de ne pas encombrer le forum. Professionnels, ne passez pas votre chemin. Je ne peux aller nulle part sans toi. - page 517

 
Non, pourquoi ?
 
StrToDouble
 
Il y a 2 ordres en attente, l'un d'eux s'est déclenché, comment puis-je supprimer le second ?
 
Vous posez la même question plus d'une fois. Écrivez exactement ce dont vous avez besoin et je vous le prescrirai.
 
zhuki >>:
Вы не однократно задаёте один и тот же вопрос. Пишите точно, что надо я вам пропишу.

Il y a 2 ordres en attente, l'un d'eux s'est déclenché, comment puis-je supprimer le second ?

 
                  for(int i=OrdersTotal()-1;i>=0;i--)
                   {
                  if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==false) continue;
                  if (OrderSymbol()==Symbol())
                  if (OrderType()>1)   OrderDelete(OrderTicket());
                  }
Il y en a donc deux ou il y en a déjà un. Cette pièce supprimera tous les ordres en attente. N'est-ce pas ?
 
j'écrivais un système. j'ai rencontré un problème.
il y a un expert
#include <H1.mqh>

void init(){}
void deinit(){}
void start(){Print(f1());}
il y a mqh
#import "B1.ex4"
#import "B2.ex4"

string f1();
string f2();
et deux bibliothèques, la première B1
#property library
#property stacksize  8192

#include <H1.mqh>
/*
#import "B2.ex4"
   string f2();
#import*/

string f1(){return(StringConcatenate("Апчхи! ", f2()));}
maintenant et B2
#property library
#property stacksize  8192

string f2(){return(" Будь здоров!");}

J'ai besoin d'un Expert Advisor qui puisse appeler la fonction de la première bibliothèque sans problème, et la fonction de B1 utilise la fonction de B2,
mais le terminal écrit que
2010.04.13 20:25:03 B2 EURUSD,M30 : function 'f1' is not found.
Comment le corriger ? Est-il possible de faire en sorte que des fonctions d'une bibliothèque appellent des fonctions d'une autre bibliothèque ?
 
Je fais cela au début de l'EA en déterminant ce qui est sur l'arrivée du tic. Par exemple.
int BL=0,SL=0,B=0,S=0,BS=0,SS=0;
//-------------- Определим что имеем --------------------------------------------      
          for(int r=0;r<OrdersTotal();r++) //  
      {
      if(OrderSelect(r,SELECT_BY_POS,MODE_TRADES)==false)    continue;
      if(OrderSymbol()==Symbol())
      {
      if (OrderType()==OP_BUY )         B++;
      if (OrderType()==OP_SELL )        S++;
      if (OrderType()==OP_BUYLIMIT )   BL++;
      if (OrderType()==OP_SELLLIMIT)   SL++;
      if (OrderType()==OP_BUYSTOP )    BS++;
      if (OrderType()==OP_SELLSTOP)    SS++;
      }}
En outre, vous devez définir le nombre d'ordres avec lesquels vous pouvez opérer. Par exemple, combien d'ordres en attente BL+SL+BS+SS et ainsi de suite.
En avez-vous besoin ?
 
Je ne peux pas le comprendre de cette façon, mettez-le dans mon message personnel, je vais le corriger.
 
vlandex >>:

Есть 2 отложенных ордера, один из них сработал, как удалить второй?

Supprime tous les ordres restants en attente.

Et si vous voulez une réponse substantielle, alors une partie de l'algorithme dans le studio.

//В конец кода отдельной функцией
//жжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжж
int OrdersDelete(int MagicNumber) //magic 
{
   for(int i = 0; i < OrdersTotal(); i++)
   {
      // already closed
      if(OrderSelect(i, SELECT_BY_POS,MODE_TRADES ) == false) continue;
      // not current symbol
      if(OrderSymbol() != Symbol()) continue;
      // order was opened in another way
      if(OrderMagicNumber() != MagicNumber) continue;
        if(OrderType() >1)
        OrderDelete(OrderTicket());
   }
  return(0); 
}
//жжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжж

int start()
{
 OrdersDelete(STUPID);//STUPID это мажик номер Вашего советчика
 трали вали ...
Raison: