CheckClose

클로즈 포지션을 확인할 조건을 확인합니다.

virtual bool  CheckClose()

반환 값

거래 작업이 수행되었으면 true, 그게 아니면 false.

참고

  1. 이것은 Expert Advisor Stop Out 조건(자금 관리 객체의 CheckClose() 메서드)을 확인합니다. 조건이 충족되면 포지션을 클로즈 하고 모든 주문 (CloseAll())을 삭제하고 종료합니다.
  2. 롱 또는 숏 포지션(CheckCloseLong() 또는 CheckCloseShort() 메서드) 를 닫기 위한 조건을 확인하고, 포지션이 클로즈된 경우 모든 주문(DeleteOrders() 메서드)을 삭제합니다.

Implementation

//+------------------------------------------------------------------+
//| 포지션 클로즈 또는 리밋/스탑 주문 삭제 여부를 확인하십시오              |
//| INPUT:  no.                                                      |
//| OUTPUT: 거래 작업이 진행된다면 true, 그렇지 않으면 false.      |
//| 비고: no.                                                      |
//+------------------------------------------------------------------+
bool CExpert::CheckClose()
  {
   double lot;
//--- 호출 전에 포지션을 선택해야 합니다
   if((lot=m_money.CheckClose(GetPointer(m_position)))!=0.0)
      return(CloseAll(lot));
//--- 포지션 유형을 확인합니다
   if(m_position.PositionType()==POSITION_TYPE_BUY)
     {
      //--- 롱 포지션의 클로징 / 지정가 매수 주문 삭제 가능성을 확인합니다
      if(CheckCloseLong())
        {
         DeleteOrders();
         return(true);
        }
     }
   else
     {
      //--- 숏 포지션의 클로징 / 지정가 매도 주문 삭제 가능성을 확인합니다
      if(CheckCloseShort())
        {
         DeleteOrders();
         return(true);
        }
     }
//--- 작업 없이 반환합니다
   return(false);
  }