Tutte le domande dei nuovi arrivati su MQL4 e MQL5, aiuto e discussione su algoritmi e codici - pagina 850

 
Artyom Trishkin:

Nel ciclo, quando n==0 stampa il tempo della barra n - capirete subito da dove parte il ciclo.

Sembra mostrare tutto correttamente.


 
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
         ); 
  }
 

Inizia l'ispezione con la candela corrente e termina non appena trova un valore non vuoto.

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

Inizia l'ispezione con la candela corrente e termina non appena trova un valore non vuoto.

Cosa c'è di sbagliato allora?

 
Artyom Trishkin:

Cosa c'è di sbagliato allora?

 
Sergey Voytsekhovsky:
Che cos'è?
 

Con le scansioni tutto va bene, guarda dove deve andare e quando deve andare.

Ma c'è già una nuova freccia sul grafico, ma non è ancora visibile nei commenti, nelle stampe.


 
Artyom Trishkin:
Cosa c'è lì?

E' evidenziato in blu che si inquina sia secondo la tua opzione (n==0) che secondo la mia (subito dopo la tua) - dall'inizio di una nuova candela. È corretto, credo.

Ma c'è già una freccia verso il basso tre candele indietro, e gli indici delle candele con le frecce più esterne 12 e 57 sulle stampe e sui commenti.

 
Sergey Voytsekhovsky:

Con le scansioni tutto va bene, guarda dove deve andare e quando deve andare.

Ma c'è già una nuova freccia sul grafico, ma non è ancora visibile nei commenti, nelle stampe.


A che ora è questa nuova freccia e a che ora inizia il ciclo?

Dovete occuparvi del vostro codice. O si stampano tutti i valori e si capisce da dove vengono, o si mette un breakpoint e si va nel debugger e si vedono tutti i valori ad ogni passo. Ma non credo che tu abbia ancora bisogno del debugger...

Motivazione: