Автоматическая проверка продуктов в Маркете (вопросы и предложения) - страница 5

 
Rashid Umarov:

Это уже исправлено.

Спасибо.

 
Еще раз обращу внимание представителей MetaQuotes, что было бы желательно сделать автоматическую валидацию более интеллектуальной и гибкой. Грести все продукты под одну гребенку - не имеет смысла или обоснования. В частности, это касается ошибки "tester takes too long time". Не имея ни четких озвученных критериев, ни описания процесса проверки и инфраструктуры (что было сделано хотя бы в рамках прошлых Чемпионатов по алготорговле), ни более или менее полной диагностической информации, прикладные разработчики должны телепатическим образом или методом тыка выяснять, как впихнуть продукт в прокрустово ложе автовалидатора. 

Например, вполне очевидно, что в случае индикаторов количество обсчитываемых буферов и их прямое назначение объективно влияют на ограничение скорости выполнения. Если индикатор предназначен для расчета статистики объемов из тиков на десятке буферов/уровней (причем всех тиков без пропусков, т.е. с чтением через CopyTicksRange всего, что было получено с момента предыдущего события OnCalculate), к нему не могут предъявляться такие же требования, как к МАшке по ценам закрытия

Разумеется, профайлер и экономные способы расчетов уже пущены в дело, рефакторинг занимает дни, но "tester takes too long time" остается на месте. Используя минимальную доступную информацию о тестируемых парах и таймфреймах (EURUSD H1, XAUUSD D1, GBPUSD M30, EURUSD M1), запустил на средненьком железе 4 указанных теста на интервале в год и получил времена прогонов в потиковом режиме в диапазоне 1.5-2 минуты на пару. Почему автовалидатору не хватает часа, я не знаю и не имею возможности узнать. Отсутствие обратной связи (присутствовавших ранее человеческих модераторов) не позволяет решить проблему. До введения автовалидатора, продукт успешно проходил модерацию.

Чтобы Маркет удобно (в том числе, для разработчика) обновлялся и предоставлял пользователям качественные продукты разного функционала, поддержка должна присутствовать, имхо. Сейчас складывается ситуация, что продукты выталкиваются в серую зону - за пределы Маркета. Если автовалидация не может быть пройдена без урезания продукта, то единственных выход - предлагать новую версию продукта клиентам напрямую.

PS. И маленькое дополнение. Согласно профилировщику, из полутора минут годового теста вся обработка OnCalculate занимает 11 секунд. Итого, фактор прохождения проверки по скорости конкретным индикатором зависит лишь на 12% от него самого, и в гораздо большей степени - от тестера. Т.е. фразу "tester takes too long time" следует понимать буквально - " тестер тормозит". И чья это проблема? Как MQL-разработчик может быть ответственен за ускорение тестера MQ?
 
Stanislav Korotky:
PS. И маленькое дополнение. Согласно профилировщику, из полутора минут годового теста вся обработка OnCalculate занимает 11 секунд. Итого, фактор прохождения проверки по скорости конкретным индикатором зависит лишь на 12% от него самого, и в гораздо большей степени - от тестера. Т.е. фразу "tester takes too long time" следует понимать буквально - " тестер тормозит". И чья это проблема? Как MQL-разработчик может быть ответственен за ускорение тестера MQ?

Что-то тут не чисто. Даже реальные тики готовятся быстрее. Нечему там полторы минуты делаться.

Объектов на гл. уровне не создается ни каких?

 
Stanislav Korotky:
PS. И маленькое дополнение. Согласно профилировщику, из полутора минут годового теста вся обработка OnCalculate занимает 11 секунд. Итого, фактор прохождения проверки по скорости конкретным индикатором зависит лишь на 12% от него самого, и в гораздо большей степени - от тестера. Т.е. фразу "tester takes too long time" следует понимать буквально - " тестер тормозит". И чья это проблема? Как MQL-разработчик может быть ответственен за ускорение тестера MQ?

Логи с автовалидатора показали, что тестирование на M1 не может пройти месячный интервал за час.

test on EURUSD:M1, from 01.5.2018 to 01.6.2018, deposit 1, model 1, execution delay 1 ms 

В то время как на H1 тот же индикатор проходит тест за пару минут.

test on EURUSD:H1, from 01.5.2017 to 01.6.2017, deposit 10000, model 1, execution delay 1 ms 

Ищите причину в своем коде.

 
MetaQuotes Software Corp.:

Логи с автовалидатора показали, что тестирование на M1 не может пройти месячный интервал за час.

В то время как на H1 тот же индикатор проходит тест за пару минут.

Ищите причину в своем коде.

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

Нет ли каких ошибок в логах (которые в отчете на сайте не показываются)?

 
Andrey Khatimlianskii:

Что-то тут не чисто. Даже реальные тики готовятся быстрее. Нечему там полторы минуты делаться.

Объектов на гл. уровне не создается ни каких?

Объекты, конечно, есть, но профилировщик должен был бы их подсветить тоже - разве не так? Все конструкторы/деструкторы есть. При сортировке по времени исполнения вверху стоит OnCalculate, как и ожидалось. Индикаторы ж тестируются в визуальном режиме - там есть отрисовка.

Вот из теста по EURUSD M1 за 2018 год:

2019.10.10 18:43:30.736 EURUSD,M1: 26463085 ticks, 371934 bars generated. Environment synchronized in 0:00:00.331. Test passed in 0:04:36.710 (including ticks preprocessing 0:00:03.479).

А вот что в профилировщике (54 секунды):


OnCalculate 449 26463086 54 302 661 99.99%
 
Здравствуйте у меня в терминале исчез маркет не могу установить советников и индикаторы из маркета переустановка терминала не помогла так же не обновляются ранее купленые продукты на маркете  кто знает как решить проблему 
Файлы:
 
Prostocar:
Здравствуйте у меня в терминале исчез маркет не могу установить советников и индикаторы из маркета переустановка терминала не помогла так же не обновляются ранее купленые продукты на маркете  кто знает как решить проблему 

Проверьте версию internet explorer. Есть подозрение , что он слетает. 
 
Stanislav Korotky:

Объекты, конечно, есть, но профилировщик должен был бы их подсветить тоже - разве не так? Все конструкторы/деструкторы есть. При сортировке по времени исполнения вверху стоит OnCalculate, как и ожидалось. Индикаторы ж тестируются в визуальном режиме - там есть отрисовка.

Да, действительно, забыл про "@global_initializations".

Получается, само рисование баров и индикаторных буферов занимает столько времени?

А если скомпилировать в релиз и запустить визуализатор за тот же промежуток, промотав сразу в конец ("пропустить до.."), сколько займет времени?

 
Andrey Khatimlianskii:

Получается, само рисование баров и индикаторных буферов занимает столько времени?

А если скомпилировать в релиз и запустить визуализатор за тот же промежуток, промотав сразу в конец ("пропустить до.."), сколько займет времени?

Ускорилось. 2018 год с 4 минут до 1.5 минуты, 2019 год - с 1.5 минут до 35 секунд. А фейковый индикатор с одним буфером, который ничего не считает, тестируется с визуализатором 53 секунды, а с промоткой - за 12 секунд.

Но раз говорят, что там зависание (таймаут часовой), то дело скорее всего не в скорости обработки, а в каких-то обстоятельствах среды, о которых мы не в курсе (все таки, автовалидатор, это не терминальный тестер). Вот почему хотя бы логи пригодились.

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