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

 
Artyom Trishkin:

Dans la boucle, lorsque n==0, imprimez le temps de la barre n - vous comprendrez immédiatement d'où part la boucle.

Il semble tout montrer correctement.


 
void OnTick()
  {
   if (CopyBuffer(CrossAD, 1, 0, period_find, Buf_Arrow_Buy) != period_find)
      {  
         Print("НЕ удалось правильно скопировать данные из 1-го буфера индикатора iCrossAD, error code %d",GetLastError());
         return;
      }
         for(int n=0; n<(int)period_find; n++)
            {
               if(Buf_Arrow_Buy[n]==EMPTY_VALUE)
                  Print("Last_Arrow_Buy_index n==",n," Last_Arrow_Buy_time = ",iTime(_Symbol,0,n));
               if(Buf_Arrow_Buy[n]!=EMPTY_VALUE)
               {
                  Last_Arrow_Buy_volume = iOpen(_Symbol,_Period,n);
                  Last_Arrow_Buy_time   = iTime(_Symbol,0,n);
                  Last_Arrow_Buy_index  = n;
                  Print("Last_Arrow_Buy_volume = ",Last_Arrow_Buy_volume,", Last_Arrow_Buy_index = ",Last_Arrow_Buy_index,", Last_Arrow_Buy_time = ",Last_Arrow_Buy_time);
                  break;
               }   
            }
         
   if (CopyBuffer(CrossAD, 2, 0, period_find, Buf_Arrow_Sell) != period_find)
      {  
         Print("НЕ удалось правильно скопировать данные из 2-го буфера индикатора iCrossAD, error code %d",GetLastError());
         return;
      }
         for(int n=0; n<(int)period_find; n++)
            {
               if(Buf_Arrow_Sell[n]==EMPTY_VALUE)
                  Print("Last_Arrow_Sell_index n==",n," Last_Arrow_Sell_time = ",iTime(_Symbol,0,n));
               if(Buf_Arrow_Sell[n]!=EMPTY_VALUE)
               {
                  Last_Arrow_Sell_volume = iOpen(_Symbol,_Period,n);
                  Last_Arrow_Sell_time   = iTime(_Symbol,0,n);
                  Last_Arrow_Sell_index  = n;
                  Print("Last_Arrow_Sell_volume = ",Last_Arrow_Sell_volume,", Last_Arrow_Sell_index = ",Last_Arrow_Sell_index,", Last_Arrow_Sell_time = ",Last_Arrow_Sell_time);
                  break;
               }
            }
      
Comment("-------------------------", 
         "\n Last_Arrow_Buy_volume     = ",Last_Arrow_Buy_volume,
         "\n Last_Arrow_Buy_index        = ",Last_Arrow_Buy_index,
         "\n Last_Arrow_Buy_time         = ",Last_Arrow_Buy_time,
         "\n ---------------------- ",
         "\n Last_Arrow_Sell_volume     = ",Last_Arrow_Sell_volume,
         "\n Last_Arrow_Sell_index        = ",Last_Arrow_Sell_index,
         "\n Last_Arrow_Sell_time         = ",Last_Arrow_Sell_time
         ); 
  }
 

Commence l'inspection avec la bougie actuelle et la termine dès qu'elle trouve une valeur non vide.

 
Sergey Voytsekhovsky:
if(n==0)
   Print("Last_Arrow_Sell_index n==",n," Last_Arrow_Sell_time = ",iTime(_Symbol,0,n));
 
Sergey Voytsekhovsky:

Commence l'inspection avec la bougie actuelle et la termine dès qu'elle trouve une valeur non vide.

Qu'est-ce qui ne va pas alors ?

 
Artyom Trishkin:

Qu'est-ce qui ne va pas alors ?

 
Sergey Voytsekhovsky:
Qu'est-ce que c'est ?
 

Avec les scans, tout va bien, il regarde où il doit aller et quand il doit aller.

Mais il y a déjà une nouvelle flèche sur le graphique, mais elle n'est pas encore visible dans les commentaires, dans les impressions.


 
Artyom Trishkin:
Qu'est-ce qu'il y a là ?

Il est souligné en bleu qu'il pollue à la fois selon votre option (n==0) et selon la mienne (juste après la vôtre) - à partir du début d'une nouvelle bougie. C'est correct, je pense.

Mais il y a déjà une flèche descendante trois chandeliers en arrière, et les indices des chandeliers avec les flèches les plus extérieures 12 et 57 sur les impressions et les commentaires.

 
Sergey Voytsekhovsky:

Avec les scans, tout va bien, il regarde où il doit aller et quand il doit aller.

Mais il y a déjà une nouvelle flèche sur le graphique, mais elle n'est pas encore visible dans les commentaires, dans les impressions.


A quel moment cette nouvelle flèche est-elle utilisée et à quel moment le cycle commence-t-il ?

Vous devez vous occuper de votre propre code. Soit vous imprimez toutes les valeurs et comprenez d'où elles viennent, soit vous placez un point d'arrêt et passez au débogueur pour voir toutes les valeurs à chaque étape. Mais je ne pense pas que vous ayez encore besoin du débogueur...

Raison: