[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