[Archive] Toute question de débutant, afin de ne pas encombrer le forum. Professionnels, ne passez pas à côté. Je ne peux aller nulle part sans toi - 2. - page 414

 
inoy:

Le conseiller ne clôturera pas un ordre à temps s'il existe un autre ordre sur le symbole ouvert à une heure antérieure à celle de son propre ordre.
l'ordre. Si l'ordre d'une autre personne est ouvert plus tard ou s'il n'y a pas d'autres ordres, la fonction OrderClose fonctionne correctement. Veuillez indiquer où se trouve l'erreur


L'erreur est que vous prenez juste l'ordre avec l'index 0 et ne le cherchez pas parmi les ordres ouverts.
 
Roger:

l'erreur est que vous prenez simplement un ordre avec l'index 0 au lieu de le chercher parmi les ordres ouverts.

Je vous demande pardon, mais la situation est similaire dans cette variante.
//---- закрытие позиции
if(OrdersTotal() > 0)
for(int i=OrdersTotal();i>=0;i--)
OrderSelect(i, SELECT_BY_POS, MODE_TRADES);
if (OrderSymbol()==Symbol()&& OrderMagicNumber() == MagicNumber)
if ( iTime(Symbol(),0,0) >= OrderOpenTime()+SecondsClose )
if (OrderType() == OP_BUY)
OrderClose(OrderTicket(),OrderLots(),NormalizeDouble(Bid,Digits),NormalizeDouble((Ask - Bid) * Point,Digits), DodgerBlue);
Auriez-vous l'amabilité de fournir la solution correcte à ce problème ?
 
Avelox:

Comment produire un bip dans un indicateur à partir de l'expression suivante :

si (num1 == 9) {
ObjectCreate(""+i, OBJ_TEXT, 0, Time[i+1],High[i+1]+10*Point ) ;
ObjectSetText(""+i, ""+DoubleToStr(num1,0), 16, "Arial", RoyalBlue) ;

}

Si vous pouvez être plus détaillé que "Vous pouvez utiliser OBJ_SICICOCI et regarder les détails dans la documentation de MQL4, elle a tout ! " .

J'ai réussi à résoudre ce problème moi-même :


ObjectCreate(""+i, OBJ_TEXT, 0, Time[i+1],High[i+1]+10*Point ) ;
ObjectSetText(""+i, ""+DoubleToStr(num1,0), 18, "Arial", RoyalBlue) ;
PlaySound("havecall.wav") ; }
 
inoy:

Je vous demande pardon, mais dans CE scénario, la situation est similaire. Auriez-vous l'amabilité de fournir une solution appropriée au problème ?

//---- закрытие позиции
if(OrdersTotal() > 0) 
{
  for(int i=OrdersTotal();i>=0;i--) 
  {
    OrderSelect(i, SELECT_BY_POS, MODE_TRADES);
    if (OrderSymbol()==Symbol()&& OrderMagicNumber() == MagicNumber) 
    {
      if ( iTime(Symbol(),0,0) >= OrderOpenTime()+SecondsClose ) 
      {
         if (OrderType() == OP_BUY)
         {
            OrderClose(OrderTicket(),OrderLots(),NormalizeDouble(Bid,Digits),NormalizeDouble((Ask - Bid) * Point,Digits), DodgerBlue);
         }
      }
   }
}
 

Eh bien, aussi, remplacer

for(int i=OrdersTotal();i>=0;i--) 

à

for(int i=OrdersTotal()-1;i>=0;i--) 


И еще, не понял, что за элемент в функции (подчеркнуто красным)?

OrderClose(OrderTicket(),OrderLots(),NormalizeDouble(Bid,Digits),NormalizeDouble((Ask - Bid) * Point,Digits), DodgerBlue);

 
 for ( Expression_1; ; Expression_2) // Pas de condition { // Ouverture du crochet Bloc d'opérateurs, // Le corps de la boucle peut être composé de ... constituant le corps de la boucle // ... de plusieurs opérateurs } // Fermeture du crochet

Pouvez-vous me dire quelle est la condition pour sortir d'une boucle comme celle-ci ? Ou une boucle comme celle-ci

 Pour ( ; ; ) // Absent. Expression et condition { // Crochet ouvrant Un bloc d'opérateurs, // Un corps de boucle peut être composé de // ... plusieurs opérateurs constituant le corps de la boucle } // Crochet fermant
 
VladimirR:

Pouvez-vous me dire quelle est la condition pour sortir d'un tel cycle ? Ou un de ceux-ci


rupture
 

Vinin, Roger - merci, ça m'a aidé.

NormalizeDouble((Ask - Bid) * Point,Digits) est Slippage pour les symboles avec de grands spreads, par exemple XAUUSD.

 
inoy:

Vinin, Roger - merci, ça m'a aidé.

NormalizeDouble((Ask - Bid) * Point,Digits) est Slippage pour les symboles avec de grands spreads, par exemple XAUUSD.


Alors, pouvez-vous imaginer que c'est 0 ? Premièrement, le slippage doit être un nombre entier positif, deuxièmement, la différence doit être divisée par Point, et non multipliée.
 
Messieurs, comment puis-je "entraîner" un EA à ne pas trader la nuit ? C'est-à-dire l'heure du terminal entre 23 et 02 heures (GMT)... Hour()>=2&Hour()<=23 n'a pas aidé...