Fragen von Neueinsteigern zu MQL4 und MQL5, Hilfe und Diskussion über Algorithmen und Codes - Seite 850

 
Artyom Trishkin:

Drucken Sie in der Schleife bei n==0 die Uhrzeit von Takt n aus - Sie werden sofort verstehen, wo die Schleife beginnt.

Es scheint alles korrekt angezeigt zu werden.


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

Beginnt die Prüfung mit der aktuellen Kerze und beendet sie, sobald sie einen nicht leeren Wert findet.

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

Beginnt die Prüfung mit der aktuellen Kerze und beendet sie, sobald sie einen nicht leeren Wert findet.

Was ist dann los?

 
Artyom Trishkin:

Was ist dann los?

 
Sergey Voytsekhovsky:
Was ist das?
 

Mit den Scans ist alles in Ordnung, es sieht so aus, wie es sein soll und wann es sein soll.

Aber es gibt bereits einen neuen Pfeil auf dem Diagramm, aber er ist noch nicht in den Kommentaren, in den Ausdrucken sichtbar.


 
Artyom Trishkin:
Was ist da?

Es ist blau hervorgehoben, dass es sowohl nach Ihrer Option (n==0) als auch nach meiner (direkt nach Ihrer) - ab Beginn einer neuen Kerze - abfragt. Das ist richtig, denke ich.

Aber es gibt bereits einen Abwärtspfeil drei Candlesticks zurück, und die Indizes der Candlesticks mit den äußersten Pfeilen 12 und 57 auf den Ausdrucken und den Kommentaren.

 
Sergey Voytsekhovsky:

Mit den Scans ist alles in Ordnung, es sieht so aus, wie es sein soll und wann es sein soll.

Aber es gibt bereits einen neuen Pfeil auf dem Diagramm, aber er ist noch nicht in den Kommentaren, in den Ausdrucken sichtbar.


Wann ist dieser neue Pfeil und wann beginnt der Zyklus?

Sie müssen sich mit Ihrem eigenen Code befassen. Entweder Sie drucken alle Werte aus und verstehen, woher sie kommen, oder Sie setzen einen Haltepunkt und gehen zum Debugger und sehen alle Werte bei jedem Schritt. Aber ich glaube, Sie brauchen den Debugger noch nicht...