SymbolInfoInteger

지정된 심볼에 해당하는 속성을 반환. 함수의 2가지 변수가 있습니다.

1. 속성 값을 즉시 반환.

long  SymbolInfoInteger(
   string                    name,      // 심볼
   ENUM_SYMBOL_INFO_INTEGER  prop_id    // 속성 식별자
 
   );

2. 함수가 성공적으로 수행되었는지 여부에 따라 true 또는 false를 반환. 성공하는 경우 속성 값은 마지막 매개변수에서 참조하여 수신인 변수에 저장됩니다.

bool  SymbolInfoInteger(
   string                    name,      // 심볼
   ENUM_SYMBOL_INFO_INTEGER  prop_id,   // 속성 식별자
   long&                     long_var   // 여기서 속성 값을 수락
   );

매개변수

이름

[in] 심볼 이름.

prop_id

[in] 심볼 속성 식별자. 값은 ENUM_SYMBOL_INFO_INTEGER 열거 값 중 하나일 수 있습니다.

long_var

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

값 반환

long 유형 값. 실행에 실패한 경우 오류에 대한 정보는 다음 GetLastError() 기능을 사용하여 얻을 수 있습니다:

  • 5040 – 심볼 이름을 지정하기 위한 잘못된 문자열 매개변수,
  • 4301 – 알 수 없는 심볼(금융 상품),
  • 4302 – "마켓 감시(Market Watch)"에서 심볼이 선택되지 않음(사용 가능한 심볼의 목록에서 찾을 수 없음),
  • 4303 – 유효하지 않은 심볼 속성 식별자

주의

마지막 틱에 대한 정보를 가져오는 데 함수를 사용하는 경우 SymbolInfoTick()을 사용하는 것이 좋습니다. 터미널이 트레이딩 계좌에 연결되어 있기 때문에 아직 단 한 개의 시세도 나타나지 않았을 수 있습니다. 이 경우 요청된 값은 무한합니다.

대부분의 경우, 사용자가 한 번의 호출 동안 요청, 입찰, 마지막, 볼륨 및 마지막 틱 도착 시간 값을 받을 수 있도록 하는 SymbolInfoTick() 기능을 사용해도 충분합니다.

예를 들어:

void OnTick()
  {
//--- 심볼 속성에서 스프레드 얻기
   bool spreadfloat=SymbolInfoInteger(Symbol(),SYMBOL_SPREAD_FLOAT);
   string comm=StringFormat("Spread %s = %I64d points\r\n",
                            spreadfloat?"floating":"fixed",
                            SymbolInfoInteger(Symbol(),SYMBOL_SPREAD));
//--- 이제 산포도를 스스로 계산하십시오
   double ask=SymbolInfoDouble(Symbol(),SYMBOL_ASK);
   double bid=SymbolInfoDouble(Symbol(),SYMBOL_BID);
   double spread=ask-bid;
   int spread_points=(int)MathRound(spread/SymbolInfoDouble(Symbol(),SYMBOL_POINT));
   comm=comm+"Calculated spread = "+(string)spread_points+" points";
   Comment(comm);
  }