SymbolExist

Checks if a symbol with a specified name exists.

bool  SymbolExist(
   const string  name,    // symbol name
   bool&   is_custom      // custom symbol property
   );

Parameters

name

[in]  Symbol name.

is_custom

[out]  Custom symbol property set upon successful execution. If true, the detected symbol is a custom one.

Return Value

If false, the symbol is not found among standard and custom ones.

Example:

#define SYMBOL_NAME "GBPUSDn"
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
//--- declare the custom symbol flag and check the presence of a symbol having its name specified in SYMBOL_NAME
   bool custom = false;
   bool result = SymbolExist(SYMBOL_NAMEcustom);
   
//--- declare the default 'symbol not found' message text
   string text = StringFormat("The symbol '%s' was not found among either the standard or custom symbols."SYMBOL_NAME);
   
//--- if a symbol is found, create a message text depending on which list the symbol is found in
   if(result)
     {
      //--- if this is a standard symbol
      if(!custom)
         text = StringFormat("The '%s' symbol is available on the server."SYMBOL_NAME);
      //--- if this is a custom symbol
      else
         text = StringFormat("The symbol '%s' was found in the list of custom symbols."SYMBOL_NAME);
     }
     
//--- send the message about the check result to the journal
   Print(text);
   /*
   result for standard 'GBPUSD' symbol:
   The 'GBPUSDsymbol is available on the server.
   
   result for custom 'GBPUSDx' symbol:
   The symbol 'GBPUSDxwas found in the list of custom symbols.
   
   result for missing 'GBPUSDn' symbol:
   The symbol 'GBPUSDnwas not found among either the standard or custom symbols.
   */
  }

See also

SymbolsTotal, SymbolSelect, Custom symbols