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

 
Leo59:
Es extraño, creo que los desarrolladores han metido la pata en algo. ¿En qué se diferencian las funciones además del nombre?


Permite obtener la hora de inicio y fin de una sesión de cotización determinada para el símbolo y el día de la semana especificados.

и

Permite obtener la hora de inicio y la hora de finalización de la sesión de negociación especificada para el símbolo y el día de la semana especificados.

Es posible exagerar si no se entiende)

Hay instrumentos que cotizan en un momento dado, pero sólo pueden negociarse en determinados momentos, por eso hay dos funciones.

 

Chicos, me atrevo a preguntar de nuevo, ya que mi pregunta se pierde entre los mensajes

Hay una construcción como esta, pasa por todos los gráficos abiertos en el terminal:

for(long currChart = ChartFirst(); currChart != -1; currChart=ChartNext(currChart)) {
 if(currChart == график тестера) continue; // Что сюда написать?
  ObjectSetInteger(currChart,"Sync",OBJPROP_BGCOLOR,clrGreen);
}

¿Cómo puedo saber que el gráfico no es el principal, sino que está abierto en modo probador y saltarlo?

Gracias.

 

Hola compañeros, ¿podrían sugerir un manejador para un error como este?

Gracias.

 
Por favor, publique sus preguntas sobre MQL4 MT4 MetaTrader 4 en el hilo depreguntas para principiantes de MQL4 MT4 MetaTrader 4. Especialmente si se trata de operaciones comerciales.
 
Señores, ¿cómo se puede averiguar rápidamente la posición de la señal en la clasificación?
 
Renat Akhtyamov:
Señores, ¿cómo puedo saber rápidamente en qué posición se encuentra la señal en la clasificación?
Esto sólo se puede averiguar para su señal - "Señales" -> "Mis señales" y al principio del nombre de la señal habrá números - este es el número de posición en el ranking de la vitrina de señales.
 
Vladimir Karputov:
Esto sólo lo puede averiguar para su señal - "Señales" -> "Mis señales" y al principio del nombre de la señal habrá números - este es el número de posición en el ranking de la vitrina de señales.
¡Lo tengo, senks!
 
Renat Akhtyamov:
Señores, ¿cómo puedo saber rápidamente en qué lugar de la clasificación se encuentra la señal?

¿Programáticamente? Así.

void OnStart()
  {
//--- запрашиваем общее количество сигналов в базе
   int total=SignalBaseTotal();
//--- цикл по всем сигналам
   for(int i=0;i<total;i++)
     {
      //--- выбираем сигнал для дальнейшей работы
      if(SignalBaseSelect(i))
        {
         //--- получение свойств сигнала
         long   id    =SignalBaseGetInteger(SIGNAL_BASE_ID);          // id сигнала
         long   pips  =SignalBaseGetInteger(SIGNAL_BASE_PIPS);        // результат торговли в пипсах
         long   subscr=SignalBaseGetInteger(SIGNAL_BASE_SUBSCRIBERS); // количество подписчиков
         string name  =SignalBaseGetString(SIGNAL_BASE_NAME);         // имя сигнала
         double price =SignalBaseGetDouble(SIGNAL_BASE_PRICE);        // цена подписки на сигнал
         string curr  =SignalBaseGetString(SIGNAL_BASE_CURRENCY);     // валюта сигнала
         long   rating=SignalBaseGetInteger(SIGNAL_BASE_RATING);      // рейтинг и есть
         //--- выводим все прибыльные бесплатные сигналы с ненулевым количеством подписчиков
         if(price==0.0 && pips>0 && subscr>0)
            PrintFormat("id=%d, name=\"%s\", currency=%s, pips=%d, subscribers=%d",id,name,curr,pips,subscr);
        }
      else PrintFormat("Ошибка выбора сигнала. Код ошибки=%d",GetLastError());
     }
  }
 
Alexey Volchanskiy:

¿Programáticamente? Así.

void OnStart()
  {
//--- запрашиваем общее количество сигналов в базе
   int total=SignalBaseTotal();
//--- цикл по всем сигналам
   for(int i=0;i<total;i++)
     {
      //--- выбираем сигнал для дальнейшей работы
      if(SignalBaseSelect(i))
        {
         //--- получение свойств сигнала
         long   id    =SignalBaseGetInteger(SIGNAL_BASE_ID);          // id сигнала
         long   pips  =SignalBaseGetInteger(SIGNAL_BASE_PIPS);        // результат торговли в пипсах
         long   subscr=SignalBaseGetInteger(SIGNAL_BASE_SUBSCRIBERS); // количество подписчиков
         string name  =SignalBaseGetString(SIGNAL_BASE_NAME);         // имя сигнала
         double price =SignalBaseGetDouble(SIGNAL_BASE_PRICE);        // цена подписки на сигнал
         string curr  =SignalBaseGetString(SIGNAL_BASE_CURRENCY);     // валюта сигнала
         long   rating=SignalBaseGetInteger(SIGNAL_BASE_RATING);      // рейтинг и есть
         //--- выводим все прибыльные бесплатные сигналы с ненулевым количеством подписчиков
         if(price==0.0 && pips>0 && subscr>0)
            PrintFormat("id=%d, name=\"%s\", currency=%s, pips=%d, subscribers=%d",id,name,curr,pips,subscr);
        }
      else PrintFormat("Ошибка выбора сигнала. Код ошибки=%d",GetLastError());
     }
  }
¡Genial! Gracias.
 
Vitaly Muzichenko:

Chicos, me atrevo a preguntar de nuevo, ya que mi pregunta se pierde entre los mensajes

Hay una construcción como esta, pasa por todos los gráficos abiertos en el terminal:

for(long currChart = ChartFirst(); currChart != -1; currChart=ChartNext(currChart)) {
 if(currChart == график тестера) continue; // Что сюда написать?
  ObjectSetInteger(currChart,"Sync",OBJPROP_BGCOLOR,clrGreen);
}

¿Cómo puedo saber que el gráfico no es el principal, sino que está abierto en modo probador y saltarlo?

Gracias.

Está claro que algo no está en las propiedades. ¿Y si en el modo probador se crea algo en el gráfico, por ejemplo un botón con un nombre complicado y luego se comprueba su presencia?

Razón de la queja: