PositionGetInteger

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

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

long  PositionGetInteger(
   ENUM_POSITION_PROPERTY_INTEGER  property_id      // 속성 식별자
   );

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

bool  PositionGetInteger(
   ENUM_POSITION_PROPERTY_INTEGER  property_id,     // 속성 식별자
   long&                           long_var         // 여기서 속성 값을 수락합니다
   );

Parameter

property_id

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

long_var

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

반환값

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

참고

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

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

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

예:

//+------------------------------------------------------------------+
//| 거래 함수                                                   |
//+------------------------------------------------------------------+
void OnTrade()
  {
//--- 포지션이 있는지 확인하고 변경 시간을 표시합니다
   if(PositionSelect(_Symbol))
     {     
//--- 추가 작업을 위해 포지션 ID를 받습니다
      ulong position_ID=PositionGetInteger(POSITION_IDENTIFIER);
      Print(_Symbol," position #",position_ID);
//--- 1970년 1월 1일 이후 밀리세컨드 형태의 포지션 시간 수령
      long create_time_msc=PositionGetInteger(POSITION_TIME_MSC);
      PrintFormat("Position #%d  POSITION_TIME_MSC = %i64 milliseconds => %s",position_ID,
                  create_time_msc,TimeToString(create_time_msc/1000));
//--- 1970년 1월 1일 이후 초 단위의 포지션의 최근 변화 시간 수령
      long update_time_sec=PositionGetInteger(POSITION_TIME_UPDATE);
      PrintFormat("Position #%d  POSITION_TIME_UPDATE = %i64 seconds => %s",
                  position_ID,update_time_sec,TimeToString(update_time_sec));
//--- 1970년 1월 1일 이후 밀리세컨드 단위의 포지션의 최근 변경 시간 수령
      long update_time_msc=PositionGetInteger(POSITION_TIME_UPDATE_MSC);
      PrintFormat("Position #%d  POSITION_TIME_UPDATE_MSC = %i64 milliseconds => %s",
                  position_ID,update_time_msc,TimeToString(update_time_msc/1000));
     }
//---
  }

참고 항목

PositionGetSymbol(), PositionSelect(), Position Properties