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

 
Leo59:
Странно, по-моему разработчики что-то перемудрили. Чем отличаются функции, кроме Имени?


Позволяет получить время начала и время окончания  указанной котировочной сессии для указанных символа и дня недели.

и

Позволяет получить время начала и время окончания  указанной торговой        сессии для указанных символа и дня недели.

Возможно и перемудрили если не разобраться) 

Есть инструменты, которые котируются в одно время, а вот торговать по ним можно только в определённое время, поэтому и есть две функции.

 

 

Ребята, осмелюсь спросить повторно, так как мой вопрос потерян среди сообщений

Есть вот такая конструкция, проходит по всем открытым графикам в терминале:

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

Как выяснить, что график не основной, а открытый в режиме тестера и его пропустить?

Спасибо! 

 

Здравствуйте коллеги! Подскажите пожалуйста вариант обработчика вот такой ошибки:

Спасибо. 

 
Пожалуйста, вопросы по MQL4 MT4 MetaTrader 4 пишите в ветке Вопросы от начинающих MQL4 MT4 MetaTrader 4. Особенно, если это касается торговых операций.
 
Господа, как по быстрому узнать - на каком месте находится сигнал в рейтинге?
 
Renat Akhtyamov:
Господа, как по быстрому узнать - на каком месте находится сигнал в рейтинге?
Это можно узнать только для своего сигнала - "Сигналы" -> "Мои сигналы" и в начале названия сигнала будут цифры - это и есть номер позиции в рейтинге витрины сигналов.
 
Vladimir Karputov:
Это можно узнать только для своего сигнала - "Сигналы" -> "Мои сигналы" и в начале названия сигнала будут цифры - это и есть номер позиции в рейтинге витрины сигналов.
Ясно, сенкс!
 
Renat Akhtyamov:
Господа, как по быстрому узнать - на каком месте находится сигнал в рейтинге?

Программно? Вот так

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:

Программно? Вот так

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());
     }
  }
Супер! Спасибо!
 
Vitaly Muzichenko:

Ребята, осмелюсь спросить повторно, так как мой вопрос потерян среди сообщений

Есть вот такая конструкция, проходит по всем открытым графикам в терминале:

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

Как выяснить, что график не основной, а открытый в режиме тестера и его пропустить?

Спасибо! 

Что-то явно в свойствах нет. А если в режиме тестера что-то создавать на графике, например кнопку с хитрым именем и потом проверять ее наличие?

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