SymbolInfoString

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

1. 속성 값을 즉시 반환.

string  SymbolInfoString(
   string                   name,        // 심볼
   ENUM_SYMBOL_INFO_STRING  prop_id      // 속성 식별자
   );

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

bool  SymbolInfoString(
   string                   name,        // 심볼
   ENUM_SYMBOL_INFO_STRING  prop_id,     // 속성 식별자
   string&                  string_var   // 여기서 속성 값을 수락
   );

매개변수

이름

[in] 심볼 이름.

prop_id

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

string_var

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

값 반환

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

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

주의

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

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

예:

#define SYMBOL_NAME "USDJPY"
 
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
//--- SYMBOL_NAME 심볼에 대한 문자열 데이터를 가져옵니다.
   string currency_base   = SymbolInfoString(SYMBOL_NAMESYMBOL_CURRENCY_BASE);    // Base currency of the symbol
   string currency_profit = SymbolInfoString(SYMBOL_NAMESYMBOL_CURRENCY_PROFIT);  // Profit currency
   string currency_margin = SymbolInfoString(SYMBOL_NAMESYMBOL_CURRENCY_MARGIN);  // Margin currency
   string symbol_descript = SymbolInfoString(SYMBOL_NAMESYMBOL_DESCRIPTION);      // String description of the symbol
 
//--- 획득한 데이터로 메시지 텍스트를 생성합니다.
   string text=StringFormat("Symbol %s:\n"+
                            "- Currency Base: %s\n"+
                            "- Currensy Profit: %s\n"+
                            "- Currency Margin: %s\n"+
                            "- Symbol Description: %s",
                            SYMBOL_NAMEcurrency_base,
                            currency_profitcurrency_margin,
                            symbol_descript);
 
//--- 얻은 데이터를 저널로 보냅니다.
   Print(text);
   /*
   Symbol USDJPY:
   - Currency BaseUSD
   - Currensy ProfitJPY
   - Currency MarginUSD
   - Symbol DescriptionUS Dollar vs Yen
   */
  }