HistoryOrderGetTicket

내역에서 해당 주문의 티켓을 반환합니다. HistoryOrderGetTicket() 호출 이전에, 먼저 HistorySelect() 또는 HistorySelectByPosition() 함수를 사용하여 거래 및 주문 내역을 수신해야 합니다.

ulong  HistoryOrderGetTicket(
   int  index      // 주문 리스트의 번호
   );

Parameter

index

[in]  주문 목록의 주문 번호.

반환값

ulong 타입의 값. 이 함수가 실패하면 0이 반환됩니다.

참고

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

예:

void OnStart()
  {
   datetime from=0;
   datetime to=TimeCurrent();
//--- 전체 내역 요청
   HistorySelect(from,to);
//--- 주문 속성에서 값을 반환하기 위한 변수
   ulong    ticket;
   double   open_price;
   double   initial_volume;
   datetime time_setup;
   datetime time_done;
   string   symbol;
   string   type;
   long     order_magic;
   long     positionID;
//--- 현재 보류 주문 번호
   uint     total=HistoryOrdersTotal();
//--- 루프에서 주문 조사
   for(uint i=0;i<total;i++)
     {
      //--- 목록에서 포지션에 대한 주문 티켓을 반환
      if((ticket=HistoryOrderGetTicket(i))>0)
        {
         //--- 주문 속성 반환
         open_price    =HistoryOrderGetDouble(ticket,ORDER_PRICE_OPEN);
         time_setup    =(datetime)HistoryOrderGetInteger(ticket,ORDER_TIME_SETUP);
         time_done     =(datetime)HistoryOrderGetInteger(ticket,ORDER_TIME_DONE);
         symbol        =HistoryOrderGetString(ticket,ORDER_SYMBOL);
         order_magic   =HistoryOrderGetInteger(ticket,ORDER_MAGIC);
         positionID    =HistoryOrderGetInteger(ticket,ORDER_POSITION_ID);
         initial_volume=HistoryOrderGetDouble(ticket,ORDER_VOLUME_INITIAL);
         type          =GetOrderType(HistoryOrderGetInteger(ticket,ORDER_TYPE));
         //--- 주문에 대한 정보를 준비하고 보여줌
         printf("#ticket %d %s %G %s at %G was set up at %s => done at %s, pos ID=%d",
                ticket,                  // 주문 티켓
                type,                    // 유형
                initial_volume,          // 주문량
                symbol,                  // 심볼
                open_price,              // 명시된 시가
                TimeToString(time_setup),// 주문 시점
                TimeToString(time_done), // 주문 실행 또는 삭제 시간
                positionID               // 주문 거래가 포함된 포지션의 ID
                );
        }
     }
//---
  }
//+------------------------------------------------------------------+
//| 주문 유형의 문자열 이름을 반환                        |
//+------------------------------------------------------------------+
string GetOrderType(long type)
  {
   string str_type="unknown operation";
   switch(type)
     {
      case (ORDER_TYPE_BUY):            return("buy");
      case (ORDER_TYPE_SELL):           return("sell");
      case (ORDER_TYPE_BUY_LIMIT):      return("buy limit");
      case (ORDER_TYPE_SELL_LIMIT):     return("sell limit");
      case (ORDER_TYPE_BUY_STOP):       return("buy stop");
      case (ORDER_TYPE_SELL_STOP):      return("sell stop");
      case (ORDER_TYPE_BUY_STOP_LIMIT): return("buy stop limit");
      case (ORDER_TYPE_SELL_STOP_LIMIT):return("sell stop limit");
     }
   return(str_type);
  }

참고 항목

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