HistoryOrderGetString

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

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

string  HistoryOrderGetString(
   ulong                       ticket_number,     // 티켓
   ENUM_ORDER_PROPERTY_STRING  property_id        // 속성 식별자
   );

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

bool  HistoryOrderGetString(
   ulong                       ticket_number,     // 티켓
   ENUM_ORDER_PROPERTY_STRING  property_id,       // 속성 식별자
   string&                     string_var         // 여기서 속성 값을 수락합니다
   );

매개 변수

ticket_number

[in]  주문 티켓.

property_id

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

string_var

[out]  string 유형의 변수.

반환값

string 타입의 변수.

참고

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

예:

//+------------------------------------------------------------------+
//| 스크립트 프로그램 시작 함수                                          |
//+------------------------------------------------------------------+
void OnStart()
  {
//--- 거래와 주문 히스토리 요청
   if(!HistorySelect(0TimeCurrent()))
     {
      Print("HistorySelect() failed. Error "GetLastError());
      return;
     }
     
//--- 계정의 모든 과거 주문 목록에 의한 루프
   int total=HistoryOrdersTotal();
   for(int i=0i<totali++)
     {
      //--- 루프 인덱스를 통해 리스트에서 주문 티켓 가져오기
      ulong ticket=HistoryOrderGetTicket(i);
      if(ticket==0)
         continue;
      
      //--- 주문 유형을 가져오고 선택한 주문의 문자열 속성 목록에 대한 헤더를 표시
      string type=OrderTypeDescription((ENUM_ORDER_TYPE)HistoryOrderGetInteger(ticketORDER_TYPE));
      PrintFormat("String properties of an history order %s #%I64u:"typeticket);
      
      //--- 헤더 아래에서 선택한 주문의 모든 문자열 속성을 인쇄
      HistoryOrderPropertiesStringPrint(ticket16);
     }
   /*
   결과:
   String properties of an history order Buy #2646074112:
   Comment:        [tp 1.09137]
   Symbol:         EURUSD
   External ID:    
   String properties of an history order Buy #2646131906:
   Comment:        
   Symbol:         EURUSD
   External ID:    
   */
  }
//+------------------------------------------------------------------+
//| 저널에서 선택한 주문 히스토리의 문자열 속성을 표시                     |
//+------------------------------------------------------------------+
void HistoryOrderPropertiesStringPrint(const long ticketconst uint header_width=0)
  {
   uint   w=0;
   string header="";
   string value="";
   
//--- 헤더 텍스트와 헤더 필드의 너비를 정의합니다.
//--- 헤더 너비가 0과 같은 함수에 전달되면 너비는 헤더 줄 크기 + 1이 됩니다.
   header="Comment:";
   w=(header_width==0 ? header.Length()+1 : header_width);
//--- 저널에 지정된 헤더 너비의 코멘트를 가져오고 표시
   if(!HistoryOrderGetString(ticketORDER_COMMENTvalue))
      return;
   PrintFormat("%-*s%-s"wheadervalue);
   
//--- 주문이 접수된 심볼을 저널에 표시
   header="Symbol:";
   w=(header_width==0 ? header.Length()+1 : header_width);
   if(!HistoryOrderGetString(ticketORDER_SYMBOLvalue))
      return;
   PrintFormat("%-*s%-s"wheadervalue);
   
//--- 외부 시스템의 주문 ID를 저널에 표시
   header="External ID:";
   w=(header_width==0 ? header.Length()+1 : header_width);
   if(!HistoryOrderGetString(ticketORDER_EXTERNAL_IDvalue))
      return;
   PrintFormat("%-*s%-s"wheadervalue);
  }
//+------------------------------------------------------------------+
//| 주문 유형 설명을 반환                                               |
//+------------------------------------------------------------------+
string OrderTypeDescription(const ENUM_ORDER_TYPE type)
  {
   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");
      default                          :  return("Unknown order type: "+(string)type);
     }
  }

참고 항목

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