PositionGetString

이 함수는 PositionGetSymbol 또는 PositionSelect를 사용하여 사전 선택된 오픈 포지션의 요청된 속성을 반환합니다. 포지션 속성은 문자열 유형이어야 합니다. 이 함수엔 2가지 변수가 있습니다

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

string  PositionGetString(
   ENUM_POSITION_PROPERTY_STRING  property_id      // 포지션 식별자
   );

2. 함수 실행의 성공 여부에 따라 true 또는 false를 반환합니다. 성공하면 속성 값이 마지막 매개 변수에서 참조로 전달되는 수신 변수에 배치됩니다.

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

매개 변수

property_id

[in]  포지션 속성 식별자. 이 값은 ENUM_POSITION_PROPERTY_STRING 열거값 중 하나일 수 있습니다.

string_var

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

반환값

string 유형의 값. 함수가 실패하면 빈 문자열이 반환됩니다.

참고

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

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

포지션에 대한 새로운 데이터를 받으려면 PositionSelect()을 바로 호출한 뒤 참조하는 것이 좋습니다.

예:

//+------------------------------------------------------------------+
//| 스크립트 프로그램 시작 함수                                          |
//+------------------------------------------------------------------+
void OnStart()
  {
//--- 모든 계정 포지션에 의한 루프
   int total=PositionsTotal();
   for(int i=0i<totali++)
     {
      //--- 해당 속성에 액세스할 포지션을 자동으로 선택하여 다음 포지션의 티켓을 가져옵니다.
      ulong ticket=PositionGetTicket(i);
      if(ticket==0)
         continue;
      
      //--- 포지션 유형을 가져오고 포지션 문자열 속성 목록의 헤더를 표시합니다.
      string type=(PositionGetInteger(POSITION_TYPE)==POSITION_TYPE ? "Buy" : "Sell");
      PrintFormat("String properties of an open position %s #%I64u:"typeticket);
      
      //--- 헤더 아래에서 선택한 포지션의 모든 문자열 속성을 인쇄
      PositionPropertiesStringPrint(15);
     }
   /*
   결과:
   String properties of an open position Buy #2810798881:
   Symbol:        EURUSD
   Comment:       Test PositionGetString
   External ID:   
   */
  }
//+------------------------------------------------------------------+
//| 저널에서 선택한 포지션의 문자열 속성 표시|                            |
//+------------------------------------------------------------------+
void PositionPropertiesStringPrint(const uint header_width=0)
  {
   uint   w=0;
   string header="";
   string value="";
   
//--- 헤더 텍스트와 헤더 필드의 너비를 정의합니다.
//--- 헤더 너비가 0과 같은 함수에 전달되면 너비는 헤더 줄 크기 + 1이 됩니다.
   header="Symbol:";
   w=(header_width==0 ? header.Length()+1 : header_width);
//--- 저널에 지정된 헤더 너비를 가진 포지션 심볼을 가져오고 표시합니다.
   if(!PositionGetString(POSITION_SYMBOLvalue))
      return;
   PrintFormat("%-*s%-s"wheadervalue);
   
//--- 포지션 코멘트를 저널에 표시합니다.
   header="Comment:";
   w=(header_width==0 ? header.Length()+1 : header_width);
   if(!PositionGetString(POSITION_COMMENTvalue))
      return;
   PrintFormat("%-*s%-s"wheadervalue);
   
//--- 외부 시스템의 포지션 ID를 저널에 표시
   header="External ID:";
   w=(header_width==0 ? header.Length()+1 : header_width);
   if(!PositionGetString(POSITION_EXTERNAL_IDvalue))
      return;
   PrintFormat("%-*s%-s"wheadervalue);
  }

참고 항목

PositionGetSymbol(), PositionSelect(), Position Properties

해당 웹사이트는 쿠키를 사요합니다. 당사의 쿠키 정책에 대해 더 알아보십시오.