HistoryOrderGetInteger

주문의 요청된 속성을 반환합니다. 주문 속성은 datetime, int 유형이어야 합니다. 이 함수의 변수는 두 가지가 있습니다.

1. 속성 값을 즉시 반환합니다.

long  HistoryOrderGetInteger(
   ulong                        ticket_number,     // 티켓
   ENUM_ORDER_PROPERTY_INTEGER  property_id        // 속성 식별자
   );

2. 함수의 성공 여부에 따라 True 또는 False를 반환합니다. 성공하면 속성 값이 마지막 매개 변수에서 레퍼런스로 전달되는 대상 변수에 배치됩니다.

bool  HistoryOrderGetInteger(
   ulong                        ticket_number,     // 티켓
   ENUM_ORDER_PROPERTY_INTEGER  property_id,       // 속성 식별자
   long&                        long_var           // 여기서 속성 값을 수락합니다
   );

Parameter

ticket_number

[in]  주문 티켓.

property_id

[in]  주문 속성 식별자. 이 값은 ENUM_ORDER_PROPERTY_INTEGER 열거값 중 하나일 수 있습니다.

long_var

[out]  요청된 속성 값을 수락하는 long 타입의 변수.

반환값

long 타입 값.

참고

거래 내역의 주문을 "도구 상자" 표시줄의 "거래" 탭에 표시되는 현재 보류 주문과 혼동하지 마십시오. 취소되었거나 거래로 이어진 주문 목록은 클라이언트 터미널의 "도구 상자"에 있는 "내역" 탭에서 볼 수 있습니다.

예:

//+------------------------------------------------------------------+
//| 거래 함수                                                   |
//+------------------------------------------------------------------+
void OnTrade()
  {
//--- 주별 거래 이력에서 지난 주문의 티켓 수령
   ulong last_order=GetLastOrderTicket();
   if(HistoryOrderSelect(last_order))
     {
      //--- 1970년 1월 1일 이후 주문 시간(밀리초)
      long time_setup_msc=HistoryOrderGetInteger(last_order,ORDER_TIME_SETUP_MSC);
      PrintFormat("Order #%d ORDER_TIME_SETUP_MSC=%i64 => %s",
                  last_order,time_setup_msc,TimeToString(time_setup_msc/1000));
      //--- 1970년 1월 1일 이후 주문 실행/취소 시간(밀리초)
      long  time_done_msc=HistoryOrderGetInteger(last_order,ORDER_TIME_DONE_MSC);
      PrintFormat("Order #%d ORDER_TIME_DONE_MSC=%i64 => %s",
                  last_order,time_done_msc,TimeToString(time_done_msc/1000));
     }
   else // 실패 통지
      PrintFormat("HistoryOrderSelect() failed for #%d. Eror code=%d",
                  last_order,GetLastError());
 
//---
  }
//+------------------------------------------------------------------+
//| 내역의 마지막 주문 티켓 또는 -1을 반환합니다.                   |
//+------------------------------------------------------------------+
ulong GetLastOrderTicket()
  {
//--- 지난 7일 동안의 내역을 요청합니다
   if(!GetTradeHistory(7))
     {
      //--- 요청 실패에 대해 알림 후 -1 반환
      Print(__FUNCTION__," HistorySelect() returned false");
      return -1;
     }
//--- 
   ulong first_order,last_order,orders=HistoryOrdersTotal();
//--- 주문이 있다면 작업 수행
   if(orders>0)
     {
      Print("Orders = ",orders);
      first_order=HistoryOrderGetTicket(0);
      PrintFormat("first_order = %d",first_order);
      if(orders>1)
        {
         last_order=HistoryOrderGetTicket((int)orders-1);
         PrintFormat("last_order = %d",last_order);
         return last_order;
        }
      return first_order;
     }
//--- 주문이 발견되지 않는다면 -1을 반환합니다
   return -1;
  }
//+--------------------------------------------------------------------------+
//| 최근 일들 동안의 내역을 요청하고 장애가 발생한 경우 False를 반환합니다  |
//+--------------------------------------------------------------------------+
bool GetTradeHistory(int days)
  {
//--- 거래 내역을 의뢰할 주간의 기간을 설정
   datetime to=TimeCurrent();
   datetime from=to-days*PeriodSeconds(PERIOD_D1);
   ResetLastError();
//--- 요청을 하고 결과 확인
   if(!HistorySelect(from,to))
     {
      Print(__FUNCTION__," HistorySelect=false. Error code=",GetLastError());
      return false;
     }
//--- 이력 수령 성공
   return true;
  }

참고 항목

HistorySelect(), HistoryOrdersTotal(), HistoryOrderSelect(), Order Properties