Новая версия платформы MetaTrader 5 build 2690: Улучшения в MetaEditor - страница 3

 
Igor_Gagarin:
Это будет исправлено?

Обновился до 2690.

Баг на месте.

% перестали зашкаливать, просто на месте стоят.

 

MetaQuotes:

MQL5: Исправлено зависание функций Copy* при отсутствии истории по торговому инструменту.

РебятаУважаемые разработчики, зависание по прежнему воспроизводится с легкостью.

Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий

Новая версия платформы MetaTrader 5 build 2650: Фоновая загрузка графиков и улучшения в профилировщике MQL5-кода

fxsaber, 2020.11.06 11:36

Спасибо! Когда грохнул папку Bases\MetaQuotes-Demo скрипт сработал. Однако, следующий скрипт все равно вызывает зависание на том же MQ-Demo.

void OnStart()
{
  for (int i = SymbolsTotal(false) - 1; !IsStopped() && (i >= 0); i--)
  {
    const string Symb = SymbolName(i, false);
    
    if (!SymbolInfoInteger(Symb, SYMBOL_CUSTOM))
    {
      SymbolSelect(Symb, true);
      Alert(Symb);
      
      MqlTick Ticks[];
        
      Print(CopyTicksRange(Symb, Ticks, COPY_TICKS_ALL, (long)D'2020.06.01' * 1000));
    }
  }
}

Воспроизводится?


Далеко не первый месяц утомляет эта ситуация с неожиданными зависаниями MQL-программ на ровном месте. Возможно ли взять эту ситуацию под личный контроль и победить, наконец?


ЗЫ Иногда, чтобы просто закачать тики по символу без зависания, приходится специально удалять "Bases\ServerName\ticks\SymbolName\ticks.dat". Но это не помогает, если нужно пакетно качать тики, как в скрипте выше.

 
В ME при наборе строки не появляется _LastError.
string Str = (string)_LastErr
 
Просьба добавить.
TerminalInfoInteger(TERMINAL_DOWNLOADED) // Сколько Кб закачано (см. правый-нижний угол).
TerminalInfoInteger(TERMINAL_UPLOADED)   // Сколько Кб передано (см. правый-нижний угол).


TerminalInfoInteger(TERMINAL_LASTBUILD_BETA)    // Номер билда последней доступной беты Терминала.
TerminalInfoInteger(TERMINAL_LASTBUILD_RELEASE) // Номер билда последнего доступного релиза Терминала.
 

Уважаемые разработчики. Вопрос. В режиме "Debugging on history data" (Ctrl+F5) если остановить отладку, кликнув по кнопе "Stop debugging" в окне Редактора, то в журнале визуализатора появляется строка:

2020.11.15 17:19:24.960 2020.11.10 16:28:54   Unknown runtime error in 'ExpertMACD.mq5' (1,1)

Может можно сделать так, чтобы это была не "unknown runtime error", а к примеру "debugging stopped by user"? 

Если кликнуть аналогичную кнопку в окне Визуализатора, то строчка такая:

2020.11.15 17:25:26.544 stopped by user
 

ArrayPrint не печатает массив.

struct A
{
  int i;
};

struct B : public A {};

void OnStart()
{  
  A a[1];
  B b[1];
  
  ArrayPrint(a); // OK
  ArrayPrint(b); // Ничего
}
 

Обнаружил вот такой глюк

Релиз 2690

 

У меня после обновления до версии 2690 перестала самоочищаться занятая оперативная память. Т.е. терминалы стартуют, работают как и раньше, но объем выделенной памяти непрерывно растет, достигаю отрыва в 10х и более от рабочего объема.

В результате сегодня к 15 часам дня терминалы выжрали все 32Gb. В системе появилось событие 2004 "Нехватка виртуальной памяти в системе успешно обнаружена. Наибольший объем виртуальной памяти был выделен следующим программам: для terminal64.exe (12584) выделено 6260449280 байти для terminal64.exe (11852) выделено 2992869376 байт.", все после чего все зачисло.

После удаленного перезапуска explorer.exe удалсоь получить доступ к Винде, просмотреть жирнаолы системных событий и снять принит-скрин.

Сами терминалы вроде живые, но ононный интерфейс убит полностью, т.е. они не разворачиваются при клике на иконке таскбара.

Загрязнение

 
Sergey Lebedev:

У меня после обновления до версии 2690 перестала самоочищаться занятая оперативная память. Т.е. терминалы стартуют, работают как и раньше, но объем выделенной памяти непрерывно растет, достигаю отрыва в 10х и более от рабочего объема.

В результате сегодня к 15 часам дня терминалы выжрали все 32Gb. В системе появилось событие 2004 "Нехватка виртуальной памяти в системе успешно обнаружена. Наибольший объем виртуальной памяти был выделен следующим программам: для terminal64.exe (12584) выделено 6260449280 байти для terminal64.exe (11852) выделено 2992869376 байт.", все после чего все зачисло.

После удаленного перезапуска explorer.exe удалсоь получить доступ к Винде, просмотреть жирнаолы системных событий и снять принит-скрин.

Сами терминалы вроде живые, но ононный интерфейс убит полностью, т.е. они не разворачиваются при клике на иконке таскбара.


А почему нет детальной информации о запущенных программах в терминалах и логах самих терминалов?
 

Разместил на Яндекс.Диске, так как объем достаточно большой, выкладываю ссылки:

1) системный лог одного из терминалов: Сслыка, пор сути все забитио одной запись "VirtualAlloc failed in large allocator",

2) дамп памяти этого же терминала, после перезапуска снова большой разрыв между рабочей и выделенной памятью, Ссылка.

Работает набор собственным программ, проводящих мониторинг рынка, в основном 3х типов: поиск ценовых рывков, анализ ленты сделок(бид/аск и т.д.) и формирвания фьючерсных склеек на основании каст.симовлов.

Windows 10 Pro, build 2004, без swap-файла, режим быстродействия "Оптимизация для программ". До обновления подобных проблем не наблюдалось.

20201116.log
20201116.log
  • yadi.sk
View and download from Yandex.Disk