Вопросы от начинающих MQL5 MT5 MetaTrader 5 - страница 370

 
Vitalii Ananev:

Вот кусочек кода где используется эта функция. В данном примере включаются в окно "Обзор рынка" символы заданные пользователем (массив Symbols), если такого символа не существует выдается соответствующее сообщение. Не поленитесь почитайте справку по этой функции, там все понятно написано.

P.S.

Для того что бы эксперт (индикатор) работал без ошибок с какими либо символами, они должны быть включены в окне "Обзор рынка", данная функция как раз для этого и предназначена. 

Ага, понял. под робота  - поправлю. Отправлю. Если будут вопросы - напишу здесь. От души Вас благодарю.
 
Roman Shiredchenko:
Ага, понял. под робота  - поправлю. Отправлю. Если будут вопросы - напишу здесь. От души Вас благодарю.

Всё зависит от требований и необходимостей в программе. Вот тоже кусочек кода в OnInit(), который подготавливает нужные символы и графики в зависимости от настроек советника.

   
   //--- подготавливаем рабочие графики
   // "EURUSD,GBPUSD,GBPCHF,CADCHF,AUDCAD,AUDUSD,AUDNZD,NZDUSD,CHFJPY,USDCAD,USDCHF,USDJPY" список
   //symbolsInMW=0,  // Все символы                 selectedSymbol=false
   //symbolsInMW=1,  // Только в обзоре рынка       selectedSymbol=true
   //symbolsInMW=2,  // Все открытые графики        selectedSymbol=true
   //symbolsInMW=3,  // Список торгуемых символов   selectedSymbol=false
   //symbolsInMW=4,  // Текущий график с советником selectedSymbol=true

   selectedSymbol=(symbolsInMW==0 || symbolsInMW==3)?false:true;
   totalSymbols=SymbolsTotal(selectedSymbol);               // Достаточное количество символов
   if(symbolsInMW!=4) {                                     // Если работаем в мультивалютном режиме
      for(int i=0; i<totalSymbols; i++) {                   // цикл по списку символов (либо в обзоре рынка, либо по всем)
         string symbol_name=SymbolName(i,selectedSymbol);   // наименование символа
         chart_id=get.GetChartID(symbol_name);              // найдём ID графика
         //--- график выбранного символа не открыт
         if(symbolsInMW==3 && StringFind(ListOfSymbols,symbol_name)<0) continue; // если работаем со списком и символа в списке нет - идём дальше
         if(chart_id<0 && symbolsInMW!=2) {                 // если графика нету и не выбрана работа только с открытыми графиками
            if(symbolsInMW==0 && !SymbolInfoInteger(symbol_name,SYMBOL_SELECT))  // если работаем со всеми символами и символ не выбран ...,
               SymbolSelect(symbol_name,true);              // ... выберем символ в обзоре рынка
            chart_id=ChartOpen(symbol_name,PERIOD_H4);      // откроем график символа
            }
         //--- график выбранного символа уже открыт
         if(chart_id>=0) {
            if(symbol_name!=symbol) {                                         // если выбранный символ не символ текущего графика
               graph.Message("Load template \"Agent.tpl\" on "+symbol_name);
               ResetLastError();
               if(ChartApplyTemplate(chart_id,"Agent.tpl")) {                 // если загрузили шаблон - закинем подложку
                  ChartSetInteger(chart_id,CHART_BRING_TO_TOP,true);          // График поверх других
                  SetCanvas(symbol_name,chart_width,0,0,0);
                  }
               //--- иначе - сообщение с ошибкой
               else graph.Message("Failed to load the template \"Agent.tpl\" on chart "+symbol_name+", error "+IntegerToString(GetLastError()));
               }
            }
         }
      }
   SetCanvas(symbol,chart_width,0,0,0);   // Подложка основного графика с советником (здесь шаблон не нужен)

Ну тут лишь принцип можно поглядеть. Может поможет ;)

 
Artyom Trishkin:

Всё зависит от требований и необходимостей в программе. Вот тоже кусочек кода в OnInit(), который подготавливает нужные символы и графики в зависимости от настроек советника.

Ну тут лишь принцип можно поглядеть. Может поможет ;)

Артём - в личку написал. Глянь. Плз.
 
Roman Shiredchenko:
Артём - в личку написал. Глянь. Плз.
Гляну, но пока нет новых сообщений в личке
 
Roman Shiredchenko:
Артём - в личку написал. Глянь. Плз.

Ещё раз глянул - пусто...

Мне уходить через 15 минут. Поторопись-ка ;)

 
Artyom Trishkin:

Ещё раз глянул - пусто...

Мне уходить через 15 минут. Поторопись-ка ;)

не могу написать - как - нет там у меня такой опции...

помоги.... 

 
Roman Shiredchenko:

не могу написать - как - нет там у меня такой опции...

помоги.... 

Щелкаешь по моему имени -- переходишь в мой профиль -- справа-вверху есть кнопочка "Написать сообщение".

Хотя ... я сам уже написал - отвечай.

 
Artyom Trishkin:

Щелкаешь по моему имени -- переходишь в мой профиль -- справа-вверху есть кнопочка "Написать сообщение".

Хотя ... я сам уже написал - отвечай.

Понял. ОК. Написал.
 
Roman Shiredchenko:

не могу написать - как - нет там у меня такой опции...

помоги.... 

 
Vitalie Postolache:

О блин ... Жуть как вовремя

Хотя да ... и я тупанул, отправив его через пень-колоду в личку писать.

Ну да ладно ... уже написали, прочитали и съели

Причина обращения: