Тестер стратегий MetaTrader 5: ошибки, баги, предложения по улучшению работы - страница 90

 
MrBrooklin #:

Спасибо, Алексей! Сил уже больше нет ждать, когда этот агент завершит свою работу.

По поводу ресурсов согласен. Это у меня "походный" ноутбук. Дома более мощный компьютер.

ПРЕДЛОЖЕНИЕ РАЗРАБОТЧИКАМ!!!

СДЕЛАЙТЕ, ПЖЛ, КНОПКУ ОТКЛЮЧЕНИЯ АГЕНТА ТЕСТЕРА СТРАТЕГИЙ ПРЯМО ВО ВКЛАДКЕ "НАСТРОЙКИ"!!!

Когда закончил тестирование, нажал на кнопку и агент сразу завершает свою работу.

С уважением, Владимир.

Есть утилиты, которые принудительно очищают оперативную память - можно их попробовать.

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

 
Aleksey Vyazmikin #:

Есть утилиты, которые принудительно очищают оперативную память - можно их попробовать.

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

Класс, спасибо за подсказку. Поищу такую утилиту. А не проще ли разработчикам подумать о пользователях и все-таки внести улучшения в тестер стратегий?

С уважением, Владимир.

 
MrBrooklin #:

Класс, спасибо за подсказку. Поищу такую утилиту. А не проще ли разработчикам подумать о пользователях и все-таки внести улучшения в тестер стратегий?

С уважением, Владимир.

Пожалуйста.

А относительно разработчиков - они намеренно так сделали, но я так и не понял зачем - вопрос ранее подымал. При этом, если агенты для клауда добавить, как службы, то там уже приоритет ниже среднего будет.

 
Приветствую.
Столкнулся с проблемой, советник при прогоне с визуализацией на разных скоростях иногда выдаёт разные результаты торгов при идентичных настройках на одном и том же участке истории.
В чем может быть причина?
Спасибо
 
yaroslav ivantsov #:
Приветствую.
Столкнулся с проблемой, советник при прогоне с визуализацией на разных скоростях иногда выдаёт разные результаты торгов при идентичных настройках на одном и том же участке истории.
В чем может быть причина?
Спасибо
Использование не инициализированных переменных, структур, массивов.
Например, создали массив, и сразу начали использовать, ожидая, что там все нули, хотя там может быть "мусор"
 
Подскажите пожалуйста, я ставлю советника на тест он делает по 1 прогону на каждом ядре процессоров и перестает делать прогоны.ПРобовал заного запускать агентов ,опять делает 1 прогон и останавливается.Подскажите в чем может быть проблема?как решить?
 

В режиме оптимизации по всем символам советники без входных параметров не запускаются.

double OnTester() { return(0); }
Tester  optimization cannot be started

Приходится добавлять мнимые входные параметры.

Строка для поиска: Uluchshenie 057.
 

Не работает отладка на истории. Билд 3566.


 
Является ли это ошибкой?
int OnInit()
{
  MqlTradeRequest Request = {};
  
  Request.action = TRADE_ACTION_DEAL;
  Request.symbol = _Symbol;
  Request.volume = 1;
  Request.price = SymbolInfoDouble(_Symbol, SYMBOL_ASK);
  
  MqlTradeResult Result;
  
  if (OrderSend(Request, Result))
    Print(Result.retcode); // Terminal: TRADE_RETCODE_DONE(10009), Tester: TRADE_RETCODE_DONE(10009).

  if (OrderSendAsync(Request, Result))
    Print(Result.retcode); // Terminal: TRADE_RETCODE_PLACED(10008), Tester: TRADE_RETCODE_DONE(10009).
  
  return(INIT_FAILED);
}
Асинхронная OrderSendAsync при удачном завершении в Тестере возвращает отличный от Терминала retcodeTRADE_RETCODE_DONE вместо TRADE_RETCODE_PLACED.
 

Когда оптимизировал восемь входных параметров, то оптимизация длилась 10-20 минут. Предварительное число проходов (ГА) 10 000.

Когда пять из восьми параметров зафиксировал и оставил оптимизацию только трех параметров, время оптимизации увеличилось до многих часов, при этом предварительное число проходов (ГА) 1280.

Одна из причин увеличения времени:

Интересно, что полный перебор параметров справился бы быстрее ГА из-за это особенности.


Поэтому сталкивающимся с подобными особенностями предлагаю вводить такой входной параметр.

sinput ulong inMaxPassTime = 0; // Максимальное время (мс) на расчет одного прохода

Внутри через GetTickCount контролировать время выполнения прохода. Превысил - обрывать (TesterStop).

Это очень легко сделать во всех On-функциях, кроме OnTester. Бывает, что сам критерий OnTester очень тяжелый, тогда там уже надо встраивать GetTickCount-механизм принудительного завершения внутрь циклов алгоритма.


В общем, это один из способов значительно ускориться в расчетах.


Однако, интересно, что переход от восьми оптимизируемых параметров к трем вызывает такое страшное замедление.

ЗЫ Возможно, разработчики найдут целесообразным встроить штатно подобный способ обрыва расчетов.

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