Чудеса с тестером. - страница 5

 
Yurich:

Хочется спросить - разобрались? А то непонятно, как тестировать советник. И самое неприятное, что оптимизация проходит в облаке, деньги снимаются, а результатом воспользоваться невозможно.


Ещё тогда разобрались.

Пишите в сервис-деск. Будем разбираться с Вашей проблемой.

 

Приветствую!

У меня вот такая проблема при оптимизации в метатестере.

Использую для тестирования локальные (2 шт.) и уделенные агенты (4-8 шт., несколько компов по 2 или четыре ядра), но не клауд. Начинается тестирование. Тестер делает несколько десятков проходов и потом просто начинают подвисать (останавливется прогресс выполнения = останавливается процент выполнения текущего прохода) агенты. Сначала по одному на одну уделенную машину. Потом и мои локальные тоже подвисают таким же образом. При этом нагрузка на процессор остается (видно через вкладку процессов Диспетчера задач виндовс). В итоге практически все агенты зависают в таком виде, и может быть один нормально выполняет проходы. 

Это появилось буквально день назад. Раньше работало все на ура. Ни одного подвисания. А сейчас на тебе, как раз перед началом чемпионата. А я как раз интенсивно тестил совтника для участия. Вот невезуха!!!  (((

Пробовал переустанавливать терминал, но не помогло. Параметры моей машины: Windows 7 x64, Celeron G530 2.4GHz, 4 Gb ОЗУ. Мне сказали что это может быть из-за добавления используемых агентов (галочки возле Локальные агенты и Удаленные агенты) уже после начала оптимизации. Но это тоже не повлияло на результат. В Антивирусе все разрешил для тестера. В логах никаких ошибок не видел, просто новые записи об удачных проходах не появлялись очень длительное время. 

Что это может быть?! Помогите разобраться с проблемой. Что мне делать?

 
Diesel:

Помогите разобраться с проблемой. Что мне делать?
Смотреть логи и проверять время исполнения. Может зависает кто-то.
Документация по MQL5: Стандартные константы, перечисления и структуры / Торговые константы / Свойства ордеров
Документация по MQL5: Стандартные константы, перечисления и структуры / Торговые константы / Свойства ордеров
  • www.mql5.com
Стандартные константы, перечисления и структуры / Торговые константы / Свойства ордеров - Документация по MQL5
 
Renat:
Смотреть логи и проверять время исполнения. Может зависает кто-то.

Renat, спасибо за быстрое реагирование на проблемные ситуации.

Методом проб и ошибок причина данной проблемы постепенно проясняется. После длительного панического поиска причины сего странного поведения тестера я обнаружил что:

1) тестер начал работать уже без подвисаний только после того, как я полностью отключил все службы антивируса (AVG Internet Security Business Edition 2012), хотя сначала я: а) разрешил все для тестера в правилах службы файрвола в этом антивирусе - не помогло; б) вообще вырубил службу файрвола - не помогло. Теперь тестирую советника с полностью отключенным антивирусом. Замечаний пока нету.

2) На некоторых конкретных валютных парах (eurchf, gbpchf) тестер все равно регулярно продолжал подвисать описанным выше образом, несмотря на полностью отключенный антивирус. Я пробовал запускать оптимизацию с одинаковыми условиями на разных машинах, но ситуация с подвисанием повторялась практически зеркальным образом. Поочередно подвисали агенты. И в итоге оптимизация просто стояла на месте, при этом нагружая по полной процессор. Подкреплю описание проблемы скриншотами и фрагментами из логов.

1. Вкладка тестера "Агенты" на которой видно подвисший агент. На рисунке этого плохо заметно, поскольку не видно как постоянно изменяються прогресс выполнения прохода у других агентов, а у подвисшего стоит на месте.


2. Диспетчер задач в котором видно что подвисший агент использует процессор, но потребляемая память не изменяется.

 

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

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

 

Выводы, пожелания, рекомендации:

1)  Хотелось бы, чтобы тестер стратегий мог работать с включенным антивирусом. Хотя скорее тут надо обращаться к разработчикам конкретного антивируса, а не к вам. В таком случае было бы прекрасно, чтобы при возникновении таких ситуаций (подвисание агента по вине проверки трафика или его работы антивирусом) в состоянии подвисшего агента появлялось предупреждение, например "crash by antivirus" или "check firewall".

2) Учитывая возникновение подобных ситуаций с подвисанием агента во время прохода из-за "некачественного" кода советника, тоже полезно предупреждать пользователя об этом в строке состояния данного агента. Это могут быть сообщения наподобие "infinite cycle", "bad execution" или что-то похожее;

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

Ну это, наверное, все. Спасибо за внимание и понимание. Надеюсь мои комментарии будут полезными.

 
Diesel:

Renat, спасибо за быстрое реагирование на проблемные ситуации.

Методом проб и ошибок причина данной проблемы постепенно проясняется. После длительного панического поиска причины сего странного поведения тестера я обнаружил что:

1) тестер начал работать уже без подвисаний только после того, как я полностью отключил все службы антивируса (AVG Internet Security Business Edition 2012), хотя сначала я: а) разрешил все для тестера в правилах службы файрвола в этом антивирусе - не помогло; б) вообще вырубил службу файрвола - не помогло. Теперь тестирую советника с полностью отключенным антивирусом. Замечаний пока нету.

Не в антивирусе дело. Он или полностью блокирует или полностью разрешает коннекты. В Вашем случае он не виноват.


2) На некоторых конкретных валютных парах (eurchf, gbpchf) тестер все равно регулярно продолжал подвисать описанным выше образом, несмотря на полностью отключенный антивирус. Я пробовал запускать оптимизацию с одинаковыми условиями на разных машинах, но ситуация с подвисанием повторялась практически зеркальным образом. Поочередно подвисали агенты. И в итоге оптимизация просто стояла на месте, при этом нагружая по полной процессор. Подкреплю описание проблемы скриншотами и фрагментами из логов.

1. Вкладка тестера "Агенты" на которой видно подвисший агент. На рисунке этого плохо заметно, поскольку не видно как постоянно изменяються прогресс выполнения прохода у других агентов, а у подвисшего стоит на месте.

Смотрите локальные журналы у агентов, которые подвисают. В них же все пишется.


2. Диспетчер задач в котором видно что подвисший агент использует процессор, но потребляемая память не изменяется.

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


 

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

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

Посмотрите локальные логи агентов, а не терминала.
 

Время поджимает - работать надо быстро..

10. Давлю в тестере старт - кнопка пишет "СТОП"

11. смотрю график - результат слабоват -

12. давлю стоп.. кнопка отлипает, пишет "СТАРТ"

20. Меняю таймфрейм на след. стандартный 4-шный..

30 GOTO 10

на 4 проходе - тестер падает.. система работает..

в таск менеджере - 8(!) метатестеров(1 ядро-два потока).. нежывых.. которые, в итоге, ещё и убивают таск менеджер (!)

МТ закрывается штатно, редактор - тоже.. Всё остальное удалось убить, только вызвав тремя клавишами второй экземпляр таск менеджера..

После сноса метатестеров - разблокировалось всё..

 
Renat:
Не в антивирусе дело. Он или полностью блокирует или полностью разрешает коннекты. В Вашем случае он не виноват.


Смотрите локальные журналы у агентов, которые подвисают. В них же все пишется.


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


Посмотрите локальные логи агентов, а не терминала.

Похоже нашел проблему.

При тестировании советника на чемпионат на периоде "Последний год", советник вообще не проводил ни одной сделки, хотя это мультивалютник и работал на 10 парах. После анализа логов, выяснилось, что история на которой тестировался советник не была полной. На фрагменте логов это видно.

 

После подкачки полной истории для валютных пар с сервера MetaQuotes-Demo советник начал торговать. Сразу же я запустил на тестирование советника по валютной паре gbpchf и получил приемлемый результат - БЕЗ ПОДВИСАНИЙ! По всей видимости неполная история и была причиной всех моих бед. А я было думал совсем в другую сторону. 

Но при тестировании валютной пары eurchf, все же продолжались зависания. После визуального анализа графика этой пары видно, что в период 18.04.2012-02.09.2012 цена проявляла очень низкую активность. Скорее всего при тестировании одни параметры, которые нормально работали сначала года, полностью проваливались, а то и вызывали зависание агента на этом периоде "затишья". Нужно более внимательно выбирать периоды для оптимизации.

Прошу прощения за свою невнимательность и преждевременную панику. Отдельное спасибо за помощь в этом вопросе. 

 
Diesel:

EURCHF

в период 18.04.2012-02.09.2012 цена проявляла очень низкую активность.

Естественно, швейцарский Центоробанк привязал франк к евро, и, если мне память не изменяет, это произошло именно в начале года. Вобщем, с тех пор волатильность на паре eurchf упала.
 

 Чудеса тестера или терминала?

На чемпионате советник "заклинило", он устанавливает ордера на покупку при выходе по стопу. А по результатам тестера советник должен был совершить только две сделки и находиться в ожидании сигнала от индикаторов.


 
Crucian:

 Чудеса тестера или терминала?

На чемпионате советник "заклинило", он устанавливает ордера на покупку при выходе по стопу. А по результатам тестера советник должен был совершить только две сделки и находиться в ожидании сигнала от индикаторов.


Скорее чудеса реального исполнения. В тестере советник и торговый сервер (тестовый) - один на один. В тестере советник всего один (нет мешающих соседей) и все исполнения синхронны.

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

Вы запускали тестирование Вашего советника в режиме "произвольная задержка исполнения"?

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