Questions des débutants MQL5 MT5 MetaTrader 5 - page 370

 
Vitalii Ananev:

Voici un morceau de code où cette fonction est utilisée. Dans cet exemple, les symboles définis par l'utilisateur sont inclus dans la fenêtre "Market Watch" (tableau des symboles), si un tel symbole n'existe pas, le message correspondant est affiché. Ne soyez pas paresseux et lisez l'aide pour cette fonction, c'est clairement écrit là.

P.S.

Pour que l'Expert Advisor (indicateur) fonctionne correctement avec tous les symboles, ceux-ci doivent être activés dans la fenêtre "Market Watch", cette fonction est juste à cet effet.

Oui, j'ai compris. Je vais le corriger pour mon robot. Je vais le faire. Si vous avez des questions, je les écrirai ici. Merci du fond du cœur.
 
Roman Shiredchenko:
Aha, compris. Pour le robot - je vais le corriger. Je vais le faire. Si j'ai des questions, je les écrirai ici. Merci du fond du cœur.

Tout dépend des exigences et des besoins du programme. Voici également un morceau de code dans OnInit(), qui prépare les symboles et les graphiques requis en fonction des paramètres de l'EA.

   
   //--- подготавливаем рабочие графики
   // "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);   // Подложка основного графика с советником (здесь шаблон не нужен)

Eh bien, ici, on ne peut que regarder le principe. Peut-être que cela aidera ;)

 
Artyom Trishkin:

Tout dépend des exigences et des besoins du programme. Voici également un morceau de code dans OnInit(), qui prépare les symboles et les graphiques requis en fonction des paramètres de l'EA.

Eh bien, ici, on ne peut que regarder le principe. Peut-être que cela aidera ;)

Artem - dans un message privé. Regardez. Plz.
 
Roman Shiredchenko:
Artem - Je vous ai écrit en personne. Regardez ça. Plz.
Je le ferai, mais aucun nouveau message dans ma boîte de réception pour le moment.
 
Roman Shiredchenko:
Artem - Je vous ai écrit en personne. Regardez ça. Plz.

J'ai regardé à nouveau - rien...

Je dois partir dans 15 minutes. Dépêchez-vous ;)

 
Artyom Trishkin:

J'ai regardé à nouveau - rien...

Je dois partir dans 15 minutes. Dépêchez-vous ;)

ne peut pas écrire - comment - je n'ai pas cette option là...

aide....

 
Roman Shiredchenko:

Je ne peux pas écrire comment - je n'ai pas cette option là...

aide....

Vous cliquez sur mon nom - allez sur mon profil - il y a un bouton "Écrire un message" en haut à droite.

Bien que... Je l'ai déjà écrit moi-même - réponds-y.

 
Artyom Trishkin:

Vous cliquez sur mon nom - allez sur mon profil - il y a un bouton en haut à droite qui dit "Écrire un message".

Bien que... Je l'ai déjà écrit moi-même - réponds-y.

Tu l'as. OK. Tu l'as.
 
Roman Shiredchenko:

Je ne peux pas écrire comment - je n'ai pas cette option là...

aide....

 
Vitalie Postolache:

Oh mec... Il est grand temps.

Ouais, eh bien... et j'ai été assez stupide pour lui envoyer un message en privé.

Oh, eh bien... Il a été écrit, lu, et mangé.