Ошибки, баги, вопросы - страница 3240

 
fxsaber #:

Посмотрел. Действительно, блокируется mqd-файл. Причина, видимо, в том, что по задумке разработчиков фреймы должны оставаться доступны из любой программы штатными средствами.

Однако, похоже, и с этим проблемы. FrameNext не отрабатывает, выдавая неизвестный номер ошибки. Похоже, здесь уже баг.

Гипотеза подтвердилась. Как и наличие бага. Сужу по логике в этих строках кода.

bool FrameFirst( void ) const
{
  return((this.handle != INVALID_HANDLE) ? ::FileSeek(this.handle, FRAME_OFFSET, SEEK_SET) : ::FrameFirst());
}
Frames
Frames
  • www.mql5.com
Чтение фреймов из mqd-файлов результатов Оптимизации.
 
fxsaber #:

Посмотрел. Действительно, блокируется mqd-файл. Причина, видимо, в том, что по задумке разработчиков фреймы должны оставаться доступны из любой программы штатными средствами.

Однако, похоже, и с этим проблемы. FrameNext не отрабатывает, выдавая неизвестный номер ошибки. Похоже, здесь уже баг.

По ссылке (неизвестный номер ошибки) функция ResetLastError() вызывается перед кастомной CheckRatesData(), а GetLastError() уже после CustomRatesUpdate(). Поэтому непонятно, где причина ошибки.

В вашем примере попробуйте вызвать ResetLastError() перед циклом. Будет такая же "неизвестная" ошибка в _LastError?

Документация по MQL5: Общие функции / ResetLastError
Документация по MQL5: Общие функции / ResetLastError
  • www.mql5.com
ResetLastError - Общие функции - Справочник MQL5 - Справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 

Я правильно понимаю, что агенты логов перезаписываются целиком?

Когда проходит много циклов оптимизации, очередь на запись информации на HDD сильно возрастает. На виртуальном диске в памяти проблем нет.

Скрин при работе на диске в памяти, но видны размеры записываемой информации, которые растут. При начале работы очередь в килобайтах, а спустя 12 часов уже до 80 мегабайт (24 агента), что для нелинейной записи много.


 
Anatoli Kazharski #:

По ссылке (неизвестный номер ошибки) функция ResetLastError() вызывается перед кастомной CheckRatesData(), а GetLastError() уже после CustomRatesUpdate(). Поэтому непонятно, где причина ошибки.

Привел ссылку, как единственное упоминание ошибки 4000.

В вашем примере попробуйте вызвать ResetLastError() перед циклом. Будет такая же "неизвестная" ошибка в _LastError?

Да, ошибку вызывает первый FrameNext.

 
Aleksey Vyazmikin #:

Когда проходит много циклов оптимизации, очередь на запись информации на HDD сильно возрастает. На виртуальном диске в памяти проблем нет.

Запретить логи еще можно таким способом.

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

Как выключить автообновление?

fxsaber, 2022.08.20 17:54

Заменить этот каталог (каждому Терминалу на компе соответствует свой) одноименным файлом (нулевой длины).

Т.е. зайти в папку Tester\Agent-127.0.0.1-3000\ и вместо каталога logs создать файл logs.


Автоматизировать вкл/выкл. логов Тестера (+ Агенты) можно скриптом.

 
fxsaber #:

Запретить логи еще можно таким способом.

Т.е. зайти в папку Tester\Agent-127.0.0.1-3000\ и вместо каталога logs создать файл logs.


Автоматизировать вкл/выкл. логов Тестера (+ Агенты) можно скриптом.

Спасибо, попробую - сейчас работает всё - не хочется тормошить.

 
fxsaber #:

Запретить логи еще можно таким способом.

Т.е. зайти в папку Tester\Agent-127.0.0.1-3000\ и вместо каталога logs создать файл logs.


Автоматизировать вкл/выкл. логов Тестера (+ Агенты) можно скриптом.

Создавал текстовый документ с названием  logs., но терминал просто все стер и создал папки.

 
Aleksey Vyazmikin #:

Создавал текстовый документ с названием  logs., но терминал просто все стер и создал папки.

Автоматизировал.

Библиотеки: MultiTester
Библиотеки: MultiTester
  • 2022.04.22
  • www.mql5.com
Статьи и техническая библиотека по автоматическому трейдингу: Библиотеки: MultiTester
 

Спасибо. У меня нет доступа к коду советника - скриптом можно?

 
Aleksey Vyazmikin #:

Спасибо. У меня нет доступа к коду советника - скриптом можно?

#property script_show_inputs

#include <fxsaber\MultiTester\MTTester.mqh> // https://www.mql5.com/ru/code/26132

sinput bool inTesterLog = true; // Enable/disable tester logs

void OnStart()
{
  MessageBox("TesterLog - " + ((inTesterLog ? MTTESTER::TesterLogON(true) : !MTTESTER::TesterLogOFF(true)) ? "ON." : "OFF."));
}
Причина обращения: