Preguntas de los principiantes MQL5 MT5 MetaTrader 5 - página 370

 
Vitalii Ananev:

Aquí hay un trozo de código en el que se utiliza esta función. En este ejemplo, los símbolos definidos por el usuario se incluyen en la ventana "Market Watch" (matriz de símbolos), si dicho símbolo no existe, se muestra el mensaje correspondiente. No tengas pereza de leer la ayuda de esta función, está claramente escrito allí.

P.D.

Para que el Asesor Experto (indicador) funcione correctamente con cualquier símbolo, deben estar habilitados en la ventana "Market Watch", esta función es sólo para este propósito.

Sí, lo tengo. Lo corregiré para mi robot. Lo haré. Si tiene alguna pregunta, la escribiré aquí. Gracias de todo corazón.
 
Roman Shiredchenko:
Aha, lo tengo. para el robot - lo corregiré. Lo haré. Si tengo alguna duda, la escribiré aquí. Gracias de todo corazón.

Todo depende de los requisitos y necesidades del programa. Aquí también hay un trozo de código en OnInit(), que prepara los símbolos y gráficos necesarios dependiendo de la configuración del 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);   // Подложка основного графика с советником (здесь шаблон не нужен)

Bueno, aquí sólo se puede mirar el principio. Tal vez sirva de algo ;)

 
Artyom Trishkin:

Todo depende de los requisitos y necesidades del programa. Aquí también hay un trozo de código en OnInit(), que prepara los símbolos y gráficos necesarios dependiendo de la configuración del EA.

Bueno, aquí sólo se puede mirar el principio. Tal vez sirva de algo ;)

Artem - en un mensaje privado. Mira. Por favor.
 
Roman Shiredchenko:
Artem - Te he escrito en persona. Compruébalo. Por favor.
Lo haré, pero todavía no hay mensajes nuevos en mi bandeja de entrada
 
Roman Shiredchenko:
Artem - Te he escrito en persona. Compruébalo. Por favor.

Busqué de nuevo - nada...

Tengo que salir en 15 minutos. Date prisa ;)

 
Artyom Trishkin:

Busqué de nuevo - nada...

Tengo que salir en 15 minutos. Date prisa ;)

no puedo escribir - como - no tengo esa opción allí...

ayuda....

 
Roman Shiredchenko:

No puedo escribir cómo - no tengo esa opción allí...

ayuda....

Si haces clic en mi nombre, vas a mi perfil y hay un botón de "Escribir un mensaje" en la parte superior derecha.

Aunque... Ya lo he escrito yo... contesta.

 
Artyom Trishkin:

Si haces clic en mi nombre, vas a mi perfil y hay un botón arriba a la derecha que dice "Escribir un mensaje".

Aunque... Ya lo he escrito yo... contesta.

Lo tienes. DE ACUERDO. Lo tienes.
 
Roman Shiredchenko:

No puedo escribir cómo - no tengo esa opción allí...

ayuda....

 
Vitalie Postolache:

Oh, hombre... Ya era hora.

Sí, bueno... y fui lo suficientemente tonto como para enviarle un mensaje en un mensaje privado.

Oh, bueno... Ya ha sido escrito, leído y devorado.