[ARCHIVE] Toute question de débutant, afin de ne pas encombrer le forum. Professionnels, ne passez pas à côté. Nulle part sans toi - 3. - page 593

 
Dimka-novitsek:
Je suis désolé, quels délimiteurs ?


un point et une virgule. Eh bien, les délimiteurs de liste sont différents, virgule et point-virgule.

Essayez d'importer avec les délimiteurs corrects. Ou refaire les paramètres régionaux avec les bons délimiteurs. Bonne chance

 
Merci !!!! Oui, il y a un point là. Et comment modifier les paramètres régionaux pour obtenir les bons délimiteurs ?
 
Dans quel ordre devez-vous installer le logiciel Ganzilla ? Ou dois-je poster dans le fil approprié ?
 
Dimka-novitsek:
Merci !!!! Oui, il y a un point là. Et comment modifier les paramètres régionaux pour obtenir les délimiteurs corrects ?
Pourquoi toucher aux paramètres régionaux ? C'est pourquoi ils sont régionaux, car ils ne sont mis en place qu'une seule fois. Les paramètres sont dans EXCEL. Vous pouvez également consulter FAC. Il y a un des derniers posts sur ces séparateurs.
 

Merci ! !!

Désolé, pouvez-vous me donner un lien vers l'un des derniers messages concernant ces délimiteurs !

Googlé, Yandexé - essayé d'appliquer le format numérique via le format Home-number-number, rien n'y fait. N'écrasez pas manuellement quatre cents points en zapatye ! Puissant et intelligent qui excelle, mais idiot !

Ugh, je l'ai miné !

 
Dimka-novitsek:

Merci ! !!

Désolé, pouvez-vous me donner un lien vers l'un des derniers posts sur ces séparateurs !

https://www.mql5.com/ru/forum/131853/page5
 
Merci ! !!
 

j'ai une question simple, mais je ne comprends toujours pas l'essence de la fermeture des commandes multiples)

Veuillez m'expliquer pourquoi la première variante du code fonctionne de la même manière que la seconde (dans la première variante, via select_by_pos, les 4 trades ouverts ont été fermés via le 0ème indice, mais dans la seconde, le 1er et le 2ème 3ème et le 4ème).

j'ai besoin d'un manuel utile ou quelque chose pour voir comment les gens ferment les ordres pour ne pas les manquer, ou un manuel sur la façon de les fermer correctement et comment select_by_pos fonctionne) parce que tous les exemples sont des exemples tronqués, et le manuel n'a aucun exemple de son utilisation du tout)

Je peux vous donner un bon tutoriel vidéo sur la programmation en MQL4).

OPTION 1 (dans cette variante, les 4 ordres ouverts ont été fermés pendant le test, bien que les 4 ordres aient été sélectionnés avec l'indice 0 lors de la fermeture) :

OrderSend(Symbol(),OP_BUY,1,Bid,5,NULL,NULL) ;
OrderSend(Symbol(),OP_BUY,1,Bid,5,NULL,NULL) ;
OrderSend(Symbol(),OP_BUY,1,Bid,5,NULL,NULL) ;

OrderSend(Symbol(),OP_BUY,1,Bid,5,NULL,NULL) ;

if(OrderSelect(0,SELECT_BY_POS,MODE_TRADES))
{
OrderClose(OrderTicket(),OrderLots(),Bid,5) ;
}
if(OrderSelect(0,SELECT_BY_POS,MODE_TRADES))
{
OrderClose(OrderTicket(),OrderLots(),Bid,5) ;
}
if(OrderSelect(0,SELECT_BY_POS,MODE_TRADES))
{
OrderClose(OrderTicket(),OrderLots(),Bid,5) ;
}
if(OrderSelect(0,SELECT_BY_POS,MODE_TRADES))
{
OrderClose(OrderTicket(),OrderLots(),Bid,5) ;

}

2ème OPTION (les 4 transactions ont été fermées ici aussi, mais les indices 1,2,3 et 4) :

OrderSend(Symbol(),OP_BUY,1,Bid,5,NULL,NULL) ;
OrderSend(Symbol(),OP_BUY,1,Bid,5,NULL,NULL) ;
OrderSend(Symbol(),OP_BUY,1,Bid,5,NULL,NULL) ;

OrderSend(Symbol(),OP_BUY,1,Bid,5,NULL,NULL) ;

if(OrderSelect(0,SELECT_BY_POS,MODE_TRADES))
{
OrderClose(OrderTicket(),OrderLots(),Bid,5) ;
}
if(OrderSelect(0,SELECT_BY_POS,MODE_TRADES))
{
OrderClose(OrderTicket(),OrderLots(),Bid,5) ;
}
if(OrderSelect(0,SELECT_BY_POS,MODE_TRADES))
{
OrderClose(OrderTicket(),OrderLots(),Bid,5) ;
}
if(OrderSelect(0,SELECT_BY_POS,MODE_TRADES))
{
OrderClose(OrderTicket(),OrderLots(),Bid,5) ;

}


 

Bonsoir, je demande de l'aide pour un Expert Advisor MACD multidevises. L'EA suit correctement les critères d'ouverture de position, mais la fermeture "sur condition" ne fonctionne pas. J'ai certes commencé à utiliser un stop suiveur, mais la clôture correcte ne me permet pas de faire une pause.

//+------------------------------------------------------------------+
string lSymbol;
int init ()
{ 
 lSymbol = Symbol();
 return (0);
}
int deinit()
{return(0);}
int start()
  {
   double MacdCurrent, MacdPrevious, SignalCurrent;
   double SignalPrevious, MaCurrent, MaPrevious;
   double bid, ask, point, digits;
   int cnt, ticket, total;
   
  total = SymbolOrdersTotal (lSymbol);
  
  if (total<1);
  {
    bid   = MarketInfo(lSymbol,MODE_BID);
    ask   = MarketInfo(lSymbol,MODE_ASK);
    point = MarketInfo(lSymbol,MODE_POINT);
    digits= MarketInfo(lSymbol,MODE_DIGITS);

Voici à quoi ressemble la partie principale

 for(cnt=0;cnt<total;cnt++)
     {
      OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);
      if(OrderType()<=OP_SELL &&   // check for opened position 
         OrderSymbol()==lSymbol())  // check for symbol
        {
         if(OrderType()==OP_BUY)   // long position is opened
           {
            // should it be closed?
            if(MacdCurrent>0 && MacdCurrent<SignalCurrent && MacdPrevious>SignalPrevious &&
               MacdCurrent>(MACDCloseLevel*point))
                {
                 OrderClose(OrderTicket(),OrderLots(),bid,3,Violet); // close position
                 return(0); // exit
                }
            // check for trailing stop
            if(TrailingStop>0)  
              {                 
               if(bid-OrderOpenPrice()>point*TrailingStop)
                 {
                  if(OrderStopLoss()<bid-point*TrailingStop)
                    {
                     OrderModify(OrderTicket(),OrderOpenPrice(),bid-point*TrailingStop,OrderTakeProfit(),0,Green);
                     return(0);
                    }
                 }
              }
           }
         else // go to short position
           {
            // should it be closed?
            if(MacdCurrent<0 && MacdCurrent>SignalCurrent &&
               MacdPrevious<SignalPrevious && MathAbs(MacdCurrent)>(MACDCloseLevel*point))
              {
               OrderClose(OrderTicket(),OrderLots(),ask,3,Violet); // close position
               return(0); // exit
              }
            // check for trailing stop
            if(TrailingStop>0)  
              {                 
               if((OrderOpenPrice()-ask)>(point*TrailingStop))
                 {
                  if((OrderStopLoss()>(ask+point*TrailingStop)) || (OrderStopLoss()==0))
                    {
                     OrderModify(OrderTicket(),OrderOpenPrice(),ask+point*TrailingStop,OrderTakeProfit(),0,Red);
                     return(0);
                    }
                }
              }
           }
        }
     }
   return(0);
  }
  
   
  int SymbolOrdersTotal(string lSymbol)
{
   int Res=0;
   int total=OrdersTotal();
   for (int i=0;i<total;i++) 
   {
      if (OrderSelect(i, SELECT_BY_POS))
      {
         if (OrderSymbol()==lSymbol)
         {
            Res++;
         }
      }
   }
   return(Res);
}
// the end.

Et c'est un bloc proche. Veuillez m'aider à trouver l'erreur !

 
Vinin:

Le répertoire existe-t-il ?


Oui, tous deux dans le dossier Expert... et dans le dossier du testeur.

mais la capture d'écran ne fonctionne toujours pas.