Прошу ткнуть носом откуда начать читать - страница 2

 
Aleksandr Ganov #:

С данными функциями ознакомился в документации, но пока непонятно как получить весь список символов - одна функция получает символ по его имени, другая отдает просто кол-во символов, как взять всю коллекцию и скажем пробежать по ней и выгрузить в файл все символы, у которых в названии есть "SI" или "BR" или любые другие символы. Задача немножко более общая - выгрузить символы и их характеристики в файл, либо все символы, либо отобранные по определенному условию.

Пока читаю дальше, хочется найти возможность просто подключаться к терминалу из c# и запрашивать список символов с их характеристиками. Возможно, это нельзя сделать, но я пока надежду не теряю и изучаю статьи, где есть взаимодействия с шарпом. Это было бы лучше, чем выгрузить файл, а потом забрать из него данных шарпом

Получить весь список символов, имеющихся у брокера:

#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;
}
 
Alexey Viktorov #:
SymbolsTotal() не просто отдаёт количество символов, а создаёт массив который в цикле можно перебрать
Интересное заявление. Про это можно где-то почитать?
 
Sergey Gridnev #:
Интересное заявление. Про это можно где-то почитать?

Бывает…

 
Alexey Viktorov #:
SymbolsTotal() не просто отдаёт количество символов, а создаёт массив который в цикле можно перебрать, получить имя и уже строковой функцией  StringFind() найти в имени "Si" или "BR". Если есть, поместить этот символ куда нужно. Ну а «на нет и суда нет» переходим к другому символу.

в документации указано, что выходной тип int, что самого по себе говорит, что это просто количество, но раз Вы говорите, что фактически выдается массив, то попробую. Спасибо

Документация по MQL5: Получение рыночной информации / SymbolsTotal
Документация по MQL5: Получение рыночной информации / SymbolsTotal
  • www.mql5.com
SymbolsTotal - Получение рыночной информации - Справочник MQL5 - Справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
Ihor Herasko #:

Получить весь список символов, имеющихся у брокера:

Предельно понятно, большое спасибо за пример 

 
Aliaksandr Hryshyn #:
В сервисах зацикливание можно использовать

нет ли под рукой ссылочки на пример или какого-нибудь простенького примера, чтобы суть понять и больше не задавать такие вопросы :-)

 
Aleksandr Ganov #:

нет ли под рукой ссылочки на пример или какого-нибудь простенького примера, чтобы суть понять и больше не задавать такие вопросы :-)

https://www.mql5.com/ru/code

MQL5 Code Base
MQL5 Code Base
  • www.mql5.com
Библиотека исходных кодов на языке MQL5 для MetaTrader 5
 
Aleksandr Ganov #:

нет ли под рукой ссылочки на пример или какого-нибудь простенького примера, чтобы суть понять и больше не задавать такие вопросы :-)

while(!IsStopped())
{
   Print(TimeCurrent());
   Sleep(1000);
}

Каждую секунду выводит время, проще некуда

 
Aliaksandr Hryshyn #:

Каждую секунду выводит время, проще некуда

Благодарю за подсказку, действительно все просто. Изучаю дальше.