Toute question des nouveaux arrivants sur MQL4 et MQL5, aide et discussion sur les algorithmes et les codes. - page 534

 
PolarSeaman:

Peut-être bien :

Où est l'état de la veille ici ? Il s'avère qu'après le premier ordre dans la période 0-8, le pas sera déjà de 10. Et nous avons besoin que ce soit 5. Et ce n'est qu'après 8 heures qu'il deviendra 10. Ensuite, nous retournons le pas =5 à 0 s'il n'y a pas d'ordres ouverts du jour précédent. Si la série se poursuit, alors le pas =10 avant sa clôture.
 
PolarSeaman:

Le fait est que si vous définissez l'intervalle de temps comme dans l'Expert Advisor

J'ai besoin d'exclure des calculs les chandeliers qui se trouvent dans l'intervalle.

Dans l'indicateur, vous travaillez en boucle. Alors pourquoi faut-il sortir de la boucle ?

Tu ne sais pas comment sauter une itération dans la boucle ?

continuer

 
Tigerfreerun:
Où se trouve la condition du jour précédent ? Il s'avère qu'après le premier ordre dans la période 0-8, le pas sera déjà de 10. Et nous avons besoin que ce soit 5. Et ce n'est qu'après 8 heures qu'il deviendra 10. Ensuite, nous retournons le pas =5 à 0 s'il n'y a pas d'ordres ouverts du jour précédent. Si la série se poursuit, alors le pas =10 avant sa clôture.

La fonction doit retourner тру, s'il y a une commande ouverte hier.

   OP_TO(int mn)
     {
     int i, k=OrdersTotal();
      for(i=0; i<k; i++) 
        {
         if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)) 
           {
            if(OrderSymbol()==Symbol()) 
              {
               if(OrderType()==OP_BUY || OrderType()==OP_SELL) 
                 {
                  if(OrderMagicNumber()==mn) 
                    {
                     if(TimeDay(OrderOpenTime())==(Day()-1)
                      &&  TimeMonth(OrderOpenTime())==Month()
                      &&  TimeYear (OrderOpenTime())==Year()) return(True);
                    }
                 }
              }
           }
        }

      return(False);
     }
if(Hour()>=0&&Hour()<=8&&!OP_TO(mag_n))step = 5; else step =10;
 
Artyom Trishkin:

Dans l'indicateur, vous travaillez dans une boucle. Alors pourquoi faut-il sortir de la boucle avec return ?

Savez-vous comment sauter une itération dans une boucle ?

continuer

Merci. Je ne comprends pas, j'ai limité l'heure mais l'impression montre l'heure à 19h30 et 23h00 et 5h50, qu'est-ce qui ne va pas ?

   for(int i=limit-2; i>0; i--) 
     {
     if(Hour()>=17&&Hour()<=11)continue;
      if(i%2==0) 
        {
         if(open[i]<close[i] && open[i+1]>close[i+1]) 
           {
            k1++;
           // if(k1>max) {max=k1; dat_max=time[i];}
            if(k1>=4)Print("Num: ",k1,"dat_max ",time[i]);
            SetText("Obj_"+(string)time[i],(string)k1,time[i],high[i],Arr);
           }
         else k1=0;
         
           } else {
         if(open[i]<close[i] && open[i+1]>close[i+1]) 
           {
            k2++;
            //if(k2>max){ max=k2; dat_max=time[i];}
            if(k2>=4)Print("Num: ",k2,"dat_max ",time[i]);
            SetText("Obj_"+(string)time[i],(string)k2,time[i],high[i],Arr);
           }
         else k2=0;
         
        }
      
     }
 
PolarSeaman:

Merci. Je ne comprends pas, l'impression montre l'heure de 19h30, 23h00 et 5h50, qu'est-ce qui ne va pas ?

Que renvoie la fonction Hour() ?
 
PolarSeaman:

La fonction doit retourner тру, s'il y a une commande ouverte hier.

C'est un peu compliqué pour moi. Pourriez-vous expliquer dans quelle partie du code il faut ajouter et ce que signifient mn et mag_n ? Où dois-je mettre mon EA medjic ici ?




 
Messieurs les programmeurs, aidez-moi à comprendre l'erreur. minPrice = NormalizeDouble (GetMinPrice(),Digits) ; Erreur : 'minPrice' - point-virgule attendu.
 
KRIKS:
Messieurs, veuillez m'aider à comprendre l'erreur. minPrice = NormalizeDouble (GetMinPrice(),Digits) ; Erreur : 'minPrice' - point-virgule attendu.

Regardez le code avant minPrice. Il n'y a pas de ; (point-virgule) à cet endroit.

 
Ihor Herasko:

Regardez le code avant minPrice. Il n'y a pas de ; (point-virgule) à cet endroit.

int start()

{

minPrice = NormalizeDouble (GetMinPrice()Digits) ;

maxPrice = NormalizeDouble(GetMaxPrice()Digits) ; Le début du nombre de chiffres peut être suivi de ( ;) ?

 
KRIKS:

int start()

{

minPrice = NormalizeDouble(GetMinPrice()Digits) ;

maxPrice = NormalizeDouble(GetMaxPrice()Digits) ; Le début du nombre de chiffres peut être suivi de ( ;) ?

{

minPrice = NormalizeDouble (GetMinPrice(),Digits) ;

maxPrice = NormalizeDouble(GetMaxPrice(),Digits) ;