OrderGetString

OrderGetTicket 또는 OrderSelect를 사용하여 미리 선택된 요청된 주문 속성을 반환합니다.. 주문 속성은 string 유형이어야 합니다. 이 함수엔 2가지 변수가 있습니다

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

string  OrderGetString(
   ENUM_ORDER_PROPERTY_STRING  property_id        // 속성 식별자
   );

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

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

매개 변수

property_id

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

string_var

[out]  요청된 속성의 값을 수락하는 string 유형의 변수.

반환값

string 타입의 변수.

참고

현재 보류 주문을 클라이언트 터미널의 "도구 상자"의 "거래" 탭에도 표시되는 포지션과 혼동하지 마십시오.

포지션 (ACCOUNT_MARGIN_MODE_RETAIL_NETTINGACCOUNT_MARGIN_MODE_EXCHANGE)의 "netting" 해석의 경우, 언제든지 하나의 포지션이 하나의 심볼에 대해 존재할 수 있습니다. 이 포지션은 하나 이상의 거래의 결과입니다. Toolbox 창의 Trading 탭에도 표시되는 유효한 보류 주문과 포지션을 혼동하지 마십시오

개별 포지션이 허용되는 경우 (ACCOUNT_MARGIN_MODE_RETAIL_HEDGING), 하나의 심볼로 여러 포지션을 오픈할 수 있습니다.

주문에 대한 새로운 데이터를 수신하려면, 해당 데이터를 참조하기 전에 OrderSelect()를 요청하는 것이 좋습니다.

예:

//+------------------------------------------------------------------+
//| 스크립트 프로그램 시작 함수                                          |
//+------------------------------------------------------------------+
void OnStart()
  {
//--- 모든 계정 주문 목록에 의한 루프
   int total=OrdersTotal();
   for(int i=0i<totali++)
     {
      //--- 루프 인덱스를 통해 리스트에서 주문 티켓 가져오기
      ulong ticket=OrderGetTicket(i);
      if(ticket==0)
         continue;
      
      //--- 주문 유형을 가져오고 선택한 주문의 문자열 속성 목록에 대한 헤더를 표시
      string type=OrderTypeDescription((ENUM_ORDER_TYPE)OrderGetInteger(ORDER_TYPE));
      PrintFormat("String properties of an active pending order %s #%I64u:"typeticket);
      
      //--- 헤더 아래에서 선택한 주문의 모든 문자열 속성을 인쇄
      OrderPropertiesStringPrint(13);
     }
   /*
   결과:
   String properties of an active pending order Sell Limit #2813781342:
   Comment:     Test OrderGetString
   Symbol:      EURUSD
   External ID
   */
  }
//+------------------------------------------------------------------+
//| 선택한 주문의 문자열 속성을 저널에 표시                               |
//+------------------------------------------------------------------+
void OrderPropertiesStringPrint(const uint header_width=0)
  {
//--- 코멘트를 저널에 표시
   OrderPropertyPrint("Comment:"header_widthORDER_COMMENT);
   
//--- 주문이 접수된 심볼을 저널에 표시
   OrderPropertyPrint("Symbol:"header_widthORDER_SYMBOL);
   
//--- 외부 시스템의 주문 ID를 저널에 표시
   OrderPropertyPrint("External ID:"header_widthORDER_EXTERNAL_ID);
  }
//+------------------------------------------------------------------+
//| 저널에 주문 문자열 속성 값 표시                                      |
//+------------------------------------------------------------------+
void OrderPropertyPrint(const string headeruint header_widthENUM_ORDER_PROPERTY_STRING property)
  {
   string value="";
   if(!OrderGetString(propertyvalue))
      PrintFormat("Cannot get property %s, error=%d"EnumToString(property), GetLastError());
   else
     {
      //--- 헤더 너비가 0과 같은 함수에 전달되면 너비는 헤더 줄 크기 + 1
      uint w=(header_width==0 ? header.Length()+1 : header_width);
      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);
     }
  }

참고 항목

OrdersTotal(), OrderGetTicket(), Order Properties