MQL4 및 MQL5에 대한 초보자 질문, 알고리즘 및 코드에 대한 도움말 및 토론 - 페이지 850

 
Artyom Trishkin :

루프에서 n==0이 막대 시간 n을 인쇄하면 루프가 시작되는 위치를 즉시 이해할 수 있습니다.

예, 모든 것이 맞는 것 같습니다.


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

현재 캔들에서 검사를 시작하고 비어 있지 않은 값을 찾는 즉시 종료됩니다.

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

현재 캔들에서 검사를 시작하고 비어 있지 않은 값을 찾는 즉시 종료됩니다.

그러면 무엇이 잘못되었습니까?

 
Artyom Trishkin :

그러면 무엇이 잘못되었습니까?

 
Sergey Voytsekhovsky :
거기 뭐가 있어?
 

보기에 좋고 필요할 때 필요한 위치를 찾습니다.

그러나 차트에는 이미 새로운 화살표가 있지만 주석, 인쇄물에는 아직 보이지 않습니다.


 
Artyom Trishkin :
거기 뭐가 있어?

파란색으로 강조 표시된 것은 새 양초의 시작 부분에서 귀하의 옵션(n==0)과 내 옵션(귀하의 바로 뒤)에 따라 투표하는 것입니다. 이게 맞다고 생각합니다.

그러나 뒤에 있는 3개의 양초에는 이미 아래쪽 화살표 가 있으며 지문 및 주석에는 극단적인 화살표 12 및 57이 있는 양초 지수가 있습니다.

 
Sergey Voytsekhovsky :

보기에 좋고 필요할 때 필요한 위치를 찾습니다.

그러나 차트에는 이미 새로운 화살표가 있지만 주석, 인쇄물에는 아직 보이지 않습니다.


이 새 바늘은 몇 시에 시작되며 몇 시에 주기가 시작됩니까?

스스로 자신의 코드를 처리해야 합니다. 간단합니다. 모든 값을 인쇄하고 다리가 어디에서 자라는지 이해하거나 중단점 을 설정하고 디버거로 이동하여 각 단계에서 모든 값을 관찰합니다. 하지만 아직 디버거가 필요하지 않다고 생각합니다 ...