PositionGetSymbol

오픈 포지션에 해당하는 심볼을 반환하고 PositionGetDouble, PositionGetInteger, PositionGetString 함수를 사용하여 추가로 작업할 포지션을 자동으로 선택합니다.

string  PositionGetSymbol(
   int  index      // 포지션 목록에서의 번호
   );

매개 변수

index

[in]  오픈 포지션 목록에서의 포지션 번호.

반환값

string 유형의 값. 포지션을 찾을 수 없으면 빈 문자열이 반환됩니다. To get an error code, call the GetLastError() function.

참고

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

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

예:

//+------------------------------------------------------------------+
//| 스크립트 프로그램 시작 함수                                          |
//+------------------------------------------------------------------+
void OnStart()
  {
//--- 계좌의 오픈 포지션 수를 가져옵니다.
   int total=PositionsTotal();
   for(int i=0i<totali++)
     {
      //--- i 루프 인덱스로 포지션 심볼 가져오기
      ResetLastError();
      string symbol=PositionGetSymbol(i);
      
      //--- 포지션 심볼이 성공적으로 수신되면 i 인덱스의 포지션이 자동으로 선택됩니다.
      //--- 그리고 PositionGetDouble, PositionGetInteger 및 PositionGetString을 사용하여 해당 속성을 얻을 수 있습니다
      if(symbol!="")
        {
         ENUM_POSITION_TYPE type=(ENUM_POSITION_TYPE)PositionGetInteger(POSITION_TYPE);
         PrintFormat("Position symbol at index %d: %s, position type: %s"isymbolStringSubstr(EnumToString(type), 14));
        }
      else
        {
         PrintFormat("PositionGetSymbol(%d) failed. Error %d"iGetLastError());
         continue;
        }
     }
   /*
   결과:
   Position symbol at index 0GBPUSDposition typeSELL
   Position symbol at index 1EURUSDposition typeBUY
   */
  }

참고 항목

PositionsTotal(), PositionSelect(), Position Properties