Domande dai principianti MQL5 MT5 MetaTrader 5 - pagina 370

 
Vitalii Ananev:

Ecco un pezzo di codice in cui viene usata questa funzione. In questo esempio, i simboli definiti dall'utente sono inclusi nella finestra "Market Watch" (array Symbols), se tale simbolo non esiste, viene visualizzato il messaggio corrispondente. Non siate pigri a leggere l'aiuto per questa funzione, è scritto chiaramente lì.

P.S.

Affinché l'Expert Advisor (indicatore) funzioni correttamente con tutti i simboli, questi devono essere abilitati nella finestra "Market Watch", questa funzione serve proprio a questo scopo.

Sì, ho capito, lo correggerò per il mio robot. Lo farò. Se avete delle domande, le scriverò qui. Grazie dal profondo del mio cuore.
 
Roman Shiredchenko:
Aha, capito. per il robot - lo correggo. Lo farò. Se ho qualche domanda, la scriverò qui. Grazie dal profondo del mio cuore.

Tutto dipende dai requisiti e dalle necessità del programma. Qui c'è anche un pezzo di codice in OnInit(), che prepara i simboli e i grafici richiesti a seconda delle impostazioni 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);   // Подложка основного графика с советником (здесь шаблон не нужен)

Beh, qui si può solo guardare il principio. Forse ti aiuterà ;)

 
Artyom Trishkin:

Tutto dipende dai requisiti e dalle necessità del programma. Qui c'è anche un pezzo di codice in OnInit(), che prepara i simboli e i grafici richiesti a seconda delle impostazioni EA.

Beh, qui si può solo guardare il principio. Forse ti aiuterà ;)

Artem - in un messaggio privato. Guarda. Plz.
 
Roman Shiredchenko:
Artem - Ti ho scritto di persona. Guarda qui. Plz.
Lo farò, ma ancora nessun nuovo messaggio nella mia casella di posta
 
Roman Shiredchenko:
Artem - Ti ho scritto di persona. Guarda qui. Plz.

Guardato di nuovo - niente...

Devo partire tra 15 minuti. Sbrigati ;)

 
Artyom Trishkin:

Guardato di nuovo - niente...

Devo partire tra 15 minuti. Sbrigati ;)

non può scrivere - come - non ho quell'opzione lì...

aiuto....

 
Roman Shiredchenko:

Non posso scrivere come - non ho quell'opzione lì...

aiuto....

Clicca sul mio nome, vai al mio profilo, c'è un pulsante "Scrivi un messaggio" in alto a destra.

Anche se ... L'ho già scritto io stesso, rispondi.

 
Artyom Trishkin:

Clicca sul mio nome, vai al mio profilo, c'è un pulsante in alto a destra che dice "Scrivi un messaggio".

Anche se... L'ho già scritto io stesso, rispondi.

Ci siamo capiti. OKAY. Ci siamo capiti.
 
Roman Shiredchenko:

Non posso scrivere come - non ho quell'opzione lì...

aiuto....

 
Vitalie Postolache:

Oh, cavolo... Era ora, dannazione.

Sì, beh... e sono stato abbastanza stupido da mandargli un messaggio in un messaggio privato.

Oh, bene... È stato scritto, letto e mangiato.