Как программным кодом вызвать список ТИ?

 
Что-то я туплю конкретно. Как программным кодом вызвать список всех торговых инструментов, доступных у данного брокера? Мы ведь можем объявить строковый массив и загнать в каждую его ячейку доступные нам символьные имена торговых инструментов? Можем. Как получить доступ к списку этих имён?
 
Vitaly Murlenko:
Что-то я туплю конкретно. Как программным кодом вызвать список всех торговых инструментов, доступных у данного брокера? Мы ведь можем объявить строковый массив и загнать в каждую его ячейку доступные нам символьные имена торговых инструментов? Можем. Как получить доступ к списку этих имён?
СимболТотал  и цикл с получением симболнейм по номеру.
 
Vitaly Murlenko:
Что-то я туплю конкретно. Как программным кодом вызвать список всех торговых инструментов, доступных у данного брокера? Мы ведь можем объявить строковый массив и загнать в каждую его ячейку доступные нам символьные имена торговых инструментов? Можем. Как получить доступ к списку этих имён?

Вот это, что ли???

 
to_ha #:

Вот это, что ли???

Да, и другие функции с этим связанные смотреть.
 
Aliaksandr Hryshyn #:
Да, и другие функции с этим связанные смотреть.

По моему Ваш код, спасибо пользую)))

//+------------------------------------------------------------------+
//|                                                   AllSimbols.mq5 |
//|                                  Copyright 2022, MetaQuotes Ltd. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2022, MetaQuotes Ltd."
#property link      "https://www.mql5.com"
#property version   "1.00"
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+

//---
   #define ARRAY_RESERVE_SIZE 100

void OnStart()
{
   string arrsSymbols[];
   for (int i = SymbolsTotal(false) - 1; i >= 0; --i)
   {
      string sName = SymbolName(i, false);
      if (!AddElementToArray(arrsSymbols, sName))
         return;
   }
   
   ArrayPrint(arrsSymbols);
}

template<typename T>
bool AddElementToArray(T& arrT[], const T& tElement)
{
   int nTotal = ArraySize(arrT);
   if (ArrayResize(arrT, nTotal + 1, ARRAY_RESERVE_SIZE) != nTotal + 1)
   {
      Alert(MQLInfoString(MQL_PROGRAM_NAME), ": error while adding the element to array of ", typename(T), " type.");
      return false;
   }
   
   arrT[nTotal] = tElement;
   return true;
}
 
//+------------------------------------------------------------------+
 
Valeriy Yastremskiy #:

По моему Ваш код, спасибо пользую)))

Не мой
Пожалуйста :))
 
Vitaly Murlenko:
Что-то я туплю конкретно. Как программным кодом вызвать список всех торговых инструментов, доступных у данного брокера? Мы ведь можем объявить строковый массив и загнать в каждую его ячейку доступные нам символьные имена торговых инструментов? Можем. Как получить доступ к списку этих имён?

Доступ к элементам списка в файле, поиск начала, чтение с найденной позиции на нужное количество знаков) 

или 

StringSplit
Получает из указанной строки подстроки по заданному разделителю и возвращает количество полученных подстрок.
int  StringSplit( 
   const string   string_value,       // строка для поиска подстрок 
   const ushort   separator,          // разделитель, по которому в строке будут искаться подстроки 
   string         & result[]          // массив, переданный по ссылке, для получения найденных подстрок 
   );
 
//+------------------------------------------------------------------+
//|                                                  MarketWatch.mq4 |
//|                                          Copyright 2022,Qstrqstr |
//|                                                  https://qstr.ru |
//+------------------------------------------------------------------+
#property copyright "Copyright 2022,Qstrqstr"
#property link      "https://qstr.ru"
#property version   "1.00"
#property strict

// Автор Алексей Викторов)))
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
sinput  string  Symb  = "GBPUSD,GBPAUD,GBPCAD,GBPJPY,EURUSD,EURGBP,EURAUD,EURCAD,EURJPY,AUDUSD,AUDNZD,AUDCAD,AUDJPY,NZDUSD,NZDCAD,USDCAD,USDJPY";
string s_arr[];
void OnStart()
  {
//---
// Тут вставка про плечо посчитать.
double Laverage=  MarketInfo(Symbol(),MODE_TICKVALUE)*Bid/MarketInfo(Symbol(),MODE_MARGINREQUIRED)/MarketInfo(Symbol(),MODE_POINT) ;
Alert (" Laverage ",Laverage);

// это код что бы нужные символы стали видны в обзоре рынка.

  int i = 0, symbPos = 0;
  if(StringSplit(Symb, ',', s_arr) <= 0)
   {
    Print(__FUNCTION__ + " Error converting !");
    return;
   }
  while(symbPos >= 0  && !IsStopped())
   {
    if(!SymbolInfoInteger(s_arr[i], SYMBOL_SELECT) || !SymbolInfoInteger(s_arr[i], SYMBOL_VISIBLE))
      SymbolSelect(s_arr[i], true);
    double price = SymbolInfoDouble(s_arr[i], SYMBOL_ASK);
    i++;
   }
   

 return;
/*******************************************************************/
   
  }
//+------------------------------------------------------------------+
 
SymbolsTotal() - точно, это оно - SymbolS(!), а я то думаю, чего это справка по языку мне в поиске его не выдаёт? Обыскался я эту функцию. Думал уже, что метаквотесы из языка её удалили. Спасибо большущее. :) И за примеры кодов спасибо. Ща вникну.:) Не приходилось ранее на практике использовать эту рыночную информацию.
Причина обращения: