HistoryDealGetInteger

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

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

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

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

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

Parameter

ticket_number

[in]  거래 티켓.

property_id

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

long_var

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

반환값

long 타입 값.

참고

주문, 포지션을 혼동하지 마십시오. 각 거래는 주문 실행의 결과이고 각 포지션은 하나 이상의 거래의 요약 결과입니다.

예:

//+------------------------------------------------------------------+
//| 거래 함수                                                   |
//+------------------------------------------------------------------+
void OnTrade()
  {
//--- 지난 거래 내역에서 최근 티켓 수령
   ulong last_deal=GetLastDealTicket();
   if(HistoryDealSelect(last_deal))
     {
거래 실행 시간(밀리초)(1970.01.01 이후)      //--- 1970년 1월 1일 이후 밀리세컨드 단위의 거래 실행 시간
      long deal_time_msc=HistoryDealGetInteger(last_deal,DEAL_TIME_MSC);
      PrintFormat("Deal #%d DEAL_TIME_MSC=%i64 => %s",
                  last_deal,deal_time_msc,TimeToString(deal_time_msc/1000));
     }
   else
      PrintFormat("HistoryDealSelect() failed for #%d. Eror code=%d",
                  last_deal,GetLastError());
//---
  }
//+------------------------------------------------------------------+
//| 내역의 마지막 딜 티켓 또는 -1을 반환합니다                    |
//+------------------------------------------------------------------+
ulong GetLastDealTicket()
  {
//--- 지난 7일 동안의 내역을 요청합니다
   if(!GetTradeHistory(7))
     {
      //--- 요청 실패에 대해 알림 후 -1 반환
      Print(__FUNCTION__," HistorySelect() returned false");
      return -1;
     }
//--- 
   ulong first_deal,last_deal,deals=HistoryOrdersTotal();
//--- 주문이 있다면 작업 수행
   if(deals>0)
     {
      Print("Deals = ",deals);
      first_deal=HistoryDealGetTicket(0);
      PrintFormat("first_deal = %d",first_deal);
      if(deals>1)
        {
         last_deal=HistoryDealGetTicket((int)deals-1);
         PrintFormat("last_deal = %d",last_deal);
         return last_deal;
        }
      return first_deal;
     }
//--- 거래를 찾을 수 없음, -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;
  }

참고 항목

HistoryDealsTotal(), HistorySelect(), HistoryDealGetTicket(), Deal Properties