[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 166

 

//+------------------------------------------------------------------+
//| nax.mq4 |
//| Evgenio |
//| http://www.metaquotes.net |
//+------------------------------------------------------------------+
#property copyright "Evgenio"
#property link "http://www.metaquotes.net"

//---- input parameters
extern int Fast_MACD=12;
extern int Slow_MACD=24;
extern int Signal_MACD=6;
double a,mas_1[];
int i=1;
//+------------------------------------------------------------------+
//| expert initialization function |
//+------------------------------------------------------------------+
int init()
{
//----

//----
return(0);
}
//+------------------------------------------------------------------+
//| expert deinitialization function |
//+------------------------------------------------------------------+
int deinit()
{
//----

//----
return(0);
}
//+------------------------------------------------------------------+
//| expert start function |
//+------------------------------------------------------------------+
int start()
{
a=NormalizeDouble(iMACD(Symbol(),NULL,Fast_MACD,Slow_MACD,Signal_MACD,PRICE_CLOSE,MODE_MAIN,0),5);
if (a>0)
{
Print ("MACD выше 0 начинаю считывать бары");
while (NormalizeDouble(iMACD(Symbol(),NULL,Fast_MACD,Slow_MACD,Signal_MACD,PRICE_CLOSE,MODE_MAIN,i),5)>0)
{
mas_1[i]=NormalizeDouble(iMACD(Symbol(),NULL,Fast_MACD,Slow_MACD,Signal_MACD,PRICE_CLOSE,MODE_MAIN,i),5);
Print (GetLastError());
i++;
}
Print ("В массив добавлено "+ArrayRange(mas_1,0)+" баров");
}
return(0);
}
//+------------------------------------------------------------------+

Qu'est-ce qui ne va pas, pourquoi rien n'est ajouté au tableau ?
 
evgenio писал(а) >>
Qu'est-ce qui ne va pas, pourquoi rien n'est ajouté au tableau ?

Où se trouve la définition de la taille d'un tableau ?

 
Vinin >> :

Où se trouve la définition de la taille d'un tableau ?

et si la taille du tableau n'est pas connue avant, comment ?

 
evgenio писал(а) >>

Si la taille du tableau n'est pas connue à l'avance, comment ?

Il faut ensuite le dynamiser et si nécessaire augmenter sa taille.

 
Vinin >> :

Ensuite, rendez-le dynamique et augmentez sa taille si nécessaire.

pouvez-vous me dire où le trouver ?

 
trouvé
 
Rebonjour ! Pouvez-vous me dire comment identifier le ticket ou le numéro d'article ?
 
ArtY0m >> :
Rebonjour ! Pouvez-vous me dire comment déterminer le numéro du ticket ou de l'article ?

int OrderTicket( )

Renvoie le numéro de ticket pour la commande actuellement sélectionnée.
La commande doit être présélectionnée à l'aide de la fonction OrderSelect().

 
Alex5757000 >> :

int OrderTicket( )

Renvoie le numéro de ticket pour la commande actuellement sélectionnée.
La commande doit être présélectionnée à l'aide de OrderSelect().

Et si le numéro n'est pas connu. Il n'y a que le type, le lot, le nombre magique, la monnaie de position... Nous savons également que cette commande a été ouverte en premier par ce numéro magique...

 
int init()
  {
   return(0);
  }
int deinit()
  {
   return(0);
  }
int start()
if (OrdersTotal()==0)
   {
      if (iRSI(NULL,0,14,PRICE_CLOSE,1)>71 && iDeMarker(NULL,0,13,1)>0.71)
      OrderSend(Symbol(),OP_SELL,lot,Bid,3,Bid+0.001,Bid-0.01,"",666,0,Green);
      if (iRSI(NULL,0,14,PRICE_CLOSE,1)<29 && iDeMarker(NULL,0,13,1)<0.29)
      OrderSend(Symbol(),OP_BUY,lot,Ask,3,Bid-0.001,Bid+0.01,"",666,0,Blue);
   }
else
  
      for (int i=1; i<= OrdersTotal(); i++)
      {
        if (OrderSelect(i-1,SELECT_BY_POS)==true)
         {
            if(OrderType()==OP_SELL)
               {
               if ((OrderStopLoss()- 0.001) < Bid)
                  {
                   if (OrderStopLoss()>OrderOpenPrice()) {
                   OrderModify(OrderTicket(),OrderOpenPrice(),OrderOpenPrice(),OrderTakeProfit(),Green);}
                   else
                   OrderModify(OrderTicket(),OrderOpenPrice(),(OrderStopLoss()-0.001),OrderTakeProfit(),Green);
                  }
               }
         }
         else
         {
             if(OrderType()==OP_BUY)
                {
                if ((OrderStopLoss()+0.001) < Bid)
                   {
                    if (OrderStopLoss()<OrderOpenPrice()){
                    OrderModify(OrderTicket(),OrderOpenPrice(),OrderOpenPrice(),OrderTakeProfit(),Blue);}
                    else
                    OrderModify(OrderTicket(),OrderOpenPrice(),(OrderStopLoss()+0.001),OrderTakeProfit(),Blue);
                   }
                }  
         }        
   } 
return(0);
} 

Code pour mon premier EA, fonctionne sur RCAI et Dem. Le problème est qu'il ne déplace pas les ordres, c'est-à-dire les arrêts... il jure toujours par les mauvais arrêts... J'ai même trouvé d'autres codes pour déplacer les arrêts... toujours la même erreur.

Merci d'avance.