Что-то вообще хр***во работают функции по работе с сигналами.

 
ввожу такой код

#property strict

void OnStart()
{  

//--- запрашиваем общее количество сигналов в базе
   int total=SignalBaseTotal();
//--- цикл по всем сигналам
   for(int i=0;i<total;i++)
     {
      //--- выбираем сигнал для дальнейшей работы
      if(SignalBaseSelect(i))
        {
         //--- получение свойств сигнала
         
         long   id    =SignalBaseGetInteger(SIGNAL_BASE_ID);          // id сигнала   
         string name  =SignalBaseGetString(SIGNAL_BASE_NAME);         // имя сигнала
         
         double prosadka =SignalBaseGetDouble(SIGNAL_BASE_MAX_DRAWDOWN); 
         double prirost =SignalBaseGetDouble(SIGNAL_BASE_GAIN); 

         if(id==691689)
            Print(id," ",name," ",prosadka," ",prirost);
            
        }
      else PrintFormat("Ошибка выбора сигнала. Код ошибки=%d",GetLastError());
     }     
   
}
И мне показывает данные:
Просадка: 14.46 Прирост: 398.92

Захожу на страницу сигнала.
А там просадка 100 и прирост -100.

Также при переборе всей базы сигналов SignalBaseTotal() - много сигналов выдает, которые уже давно удалены и недоступны.

Оно что застарелые данные показывает?
 
Сегодня попробовал - опять ложную информацию выдает.

Когда починят функции по работе с сигналами?
 
igrok333:
ввожу такой код

И мне показывает данные:
Просадка: 14.46 Прирост: 398.92

Захожу на страницу сигнала.
А там просадка 100 и прирост -100.

Также при переборе всей базы сигналов SignalBaseTotal() - много сигналов выдает, которые уже давно удалены и недоступны.

Оно что застарелые данные показывает?

Я проверил на MQL5 сигнале с огромной просадкой. При этом главное условие: сигнал всё ещё доступен для подписки. Скрипт отработал на отлично - все данные верные.


Рекомендация: перед использованием скрипта в старом терминале обязательно кликните на вкладку "Сигналы" - таким образом обновится база по сигналам. Также вероятная причина (кроме не обновленной базы сигналов) - сигнал не доступен для подписки и поэтому по нему не обновляется информация.

 
Vladimir Karputov:
Также вероятная причина (кроме не обновленной базы сигналов) - сигнал не доступен для подписки и поэтому по нему не обновляется информация.

ну если он не доступен для подписки, тогда его вообще не должны были бы в базу  SignalBaseTotal() добавлять, чтобы он был доступен для перебора? верно?

Vladimir Karputov:

перед использованием скрипта в старом терминале обязательно кликните на вкладку "Сигналы" - таким образом обновится база по сигналам.

да, это сработало.

ну как старый терминал... билд 1260
 
igrok333:

ну если он не доступен для подписки, тогда его вообще не должны были бы в базу  SignalBaseTotal() добавлять, чтобы он был доступен для перебора? верно?

да, это сработало.

ну как старый терминал... билд 1260

Да, это старый терминал. Развитие которого прекращено. Давно пора работать в MetaTrader 5.