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

 
PolarSeaman :

아마도 다음과 같이:

그리고 전날의 조건은 어디에 있습니까? 0-8 기간의 첫 번째 주문 후 단계가 이미 10이 될 것입니다. 그리고 5가 필요합니다. 그리고 8 시간 후에 만 10이되었습니다. 그런 다음 열린 단계가 없으면 단계 = 5에서 0으로 돌아갑니다. 전날 주문. 그리고 시리즈가 계속되면 단계가 10이 되도록 종료될 때까지
 
PolarSeaman :

사실은 어드바이저에서와 같이 시간 간격을 설정하면

, 그러면 표시기가 현재 작동하지 않으며 계산에서 간격에있는 양초를 역사에서 제외해야합니다.

표시기에서 루프에서 작업합니다. 그렇다면 왜 루프를 종료하기 위해 return'을 사용합니까?

루프에서 반복을 건너뛰는 방법을 알고 있습니까?

계속하다

 
Tigerfreerun :
그리고 전날의 조건은 어디에 있습니까? 0-8 기간의 첫 번째 주문 후 단계가 이미 10이 될 것입니다. 그리고 5가 필요합니다. 그리고 8 시간 후에 만 10이되었습니다. 그런 다음 열린 단계가 없으면 단계 = 5에서 0으로 돌아갑니다. 전날 주문. 그리고 시리즈가 계속되면 단계가 10이 되도록 종료될 때까지

어제 열린 주문이 있는 경우 함수는 true를 반환해야 합니다.

   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 :

표시기에서 루프에서 작업합니다. 그렇다면 왜 루프를 종료하기 위해 return'을 사용합니까?

루프에서 반복을 건너뛰는 방법을 알고 있습니까?

계속하다

고맙습니다. 이해가 안가서 시간을 제한했는데 인쇄물에 시간이 표시되고 19:30, 23:00, 5:50 뭔일 있어?

   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 :

고맙습니다. 이해가 되지 않습니다. 인쇄물에 시간이 표시되고 19:30 및 23:00 및 5:50 무엇이 잘못되었나요?

Hour() 함수는 무엇을 반환합니까?
 
PolarSeaman :

어제 열린 주문이 있는 경우 함수는 true를 반환해야 합니다.

나에게는 어렵다. 추가할 코드 부분과 mn 및 mag_n이 무엇을 의미하는지 설명해 주시겠습니까? 여기에서 마법 고문을 입력할 수 있습니까?




 
Misters 프로그래머는 오류가 무엇인지 이해하는 데 도움이됩니다. minPrice = NormalizeDouble (GetMinPrice(), 숫자); 오류: 'minPrice' - 세미콜론이 필요합니다.
 
KRIKS :
Misters 프로그래머는 오류가 무엇인지 이해하는 데 도움이됩니다. minPrice = NormalizeDouble(GetMinPrice(), 숫자); 오류: 'minPrice' - 세미콜론이 필요합니다.

minPrice 앞의 코드를 보십시오. 표시가 없습니다. (세미콜론)

 
Ihor Herasko :

minPrice 앞의 코드를 보십시오. 표시가 없습니다. (세미콜론)

정수 시작()

{

minPrice = NormalizeDouble (GetMinPrice() 숫자);

maxPrice = NormalizeDouble(GetMaxPrice() 숫자); int 시작 뒤에 (;)를 넣을 수 있습니까?

 
KRIKS :

정수 시작()

{

minPrice = NormalizeDouble(GetMinPrice() 숫자);

maxPrice = NormalizeDouble(GetMaxPrice() 숫자); int 시작 뒤에 (;)를 넣을 수 있습니까?

{

minPrice = NormalizeDouble (GetMinPrice(), 숫자);

maxPrice = NormalizeDouble(GetMaxPrice(), 숫자);