[ARCHIVE] 포럼을 어지럽히 지 않도록 초보자 질문. 프로, 놓치지 마세요. 너 없이는 아무데도 - 3. - 페이지 52

 
first_may :
날짜 작업, 즉 두 날짜의 차이를 결정하는 함수의 예가 0보다 크거나 작습니까?

MQL을 이해하고 이해한 날짜는 언제입니까?
 

여러분, 코드를 도와주세요. 주요 작업은 특정 수준에 도달하면 보류 중인 주문을 제거하는 것입니다.

 if ( OrdersTotal ()!= 0 && Bid == Delete_Level)
   {
   for ( int i= 1 ; i<= OrdersTotal (); i++) //Cycle for all orders..
      { 
         if ( OrderSelect (i- 1 ,SELECT_BY_POS)==true) //If there is the next one
            { 
               if ( OrderType ()> 1 ) 
                  {
                  if ( OrderDelete ( OrderTicket ())==true)
                  {
                  Alert ( "Ордера удалены" );
                  }
                  }
            } 
      }
   }

Delete_Level 레벨은 현재 순간까지 3번째 마디에서 MA 30의 위치에 의해 결정됩니다.

 double MA3 = iMA ( NULL , 0 , MA_Period_2, 0 , MODE_SMA , PRICE_CLOSE , 2 ); //определение уровня MA

double Delete_Level = MA3; // Определение значения переменной

그러나 이 Delete_Level에서는 주문이 삭제되지 않습니다. 내 실수가 무엇인지 이해하도록 도와주세요.

 
알고리즘은 어디로 가나요? 코드로 인쇄 하고 확인하십시오.
 
"알고리즘은 어디로 가는가"는 무엇을 의미합니까?
 
vovan-gogan :
"알고리즘은 어디로 가는가"는 무엇을 의미합니까?

글쎄, 당신은 그것이 삭제되지 않았다고 쓴다. 그것은 그것이 OrderDelete에 도달하지 않는다는 것을 의미한다.

음, 각각의 질문은 그것이 어디에서 오는가입니다. 어떤 조건이 차단됩니까?

 
sergeev :

글쎄, 당신은 그것이 삭제되지 않았다고 쓴다. 그것은 그것이 OrderDelete에 도달하지 않는다는 것을 의미한다.

음, 각각의 질문은 그것이 어디에서 오는가입니다. 어떤 조건이 차단됩니까?


논리를 이해했습니다. 지금 바로 수정하도록 하겠습니다.
 

뭔가 정리되었습니다. 그러나 나는 여전히 그것을 해결하는 방법을 알 수 없습니다. Alert를 사용하여 조건이

 if ( OrdersTotal ()!= 0 && Bid == Delete_Level)

수행되지 않습니다. 그냥 " if ( OrdersTotal ()!= 0 " 개별적으로 예, 하지만 "Bid == Delete_Level"과 함께 - 아니요. 이유는 무엇입니까? Delete_Level 수준에 도달했을 때 보류 중인 주문 이 삭제되지 않는 이유는 무엇입니까? 대체 솔루션을 제안하십시오. Delete_Level에 도달하면 지연기를 제거합니다.

 
vovan-gogan :

뭔가 정리되었습니다. 그러나 나는 여전히 그것을 해결하는 방법을 알 수 없습니다. Alert를 사용하여 조건이

수행되지 않습니다. " if ( OrdersTotal ()!= 0 " 개별적으로 예, 그러나 "Bid == Delete_Level"과 함께 - 아니요. 그 이유는 무엇입니까? Delete_Level에 도달할 때 지연기를 제거하는 대체 솔루션을 제안하십시오.


이러한 변수를 정규화하여 "공통 분모로 가져오세요" - 예를 들어, 현재 Bid == Delete_Level이 설정되어 있으므로 절대적으로 정확한 평등이 없기 때문에 Delete_Level 변수의 값에 대해 특정 허용 오차(+/-)를 사용합니다. .
 
vovan-gogan :

뭔가 정리되었습니다. 그러나 나는 여전히 그것을 해결하는 방법을 알 수 없습니다. Alert를 사용하여 조건이

수행되지 않습니다. 그냥 " if ( OrdersTotal ()!= 0 " 개별적으로 예, 하지만 "Bid == Delete_Level"과 함께 - 아니요. 이유는 무엇입니까? Delete_Level 수준에 도달했을 때 보류 중인 주문이 삭제되지 않는 이유는 무엇입니까? 대체 솔루션을 제안하십시오. Delete_Level에 도달하면 지연기를 제거합니다.


예를 들어,
 if (Bid- MarketInfo ( Symbol (),MODE_SPREAD)* Point < Delete_Level && Bid+ MarketInfo ( Symbol (),MODE_SPREAD)* Point > Delete_Level) - считать за 
if ( Bid == Delete_Level )  
 

미안하지만 어떤 식 으로든 더 쉽습니까?) 오류가 무엇인지 이해하도록 도와주세요.

Bid == Delete_Level