Сегодня обновился терминал МТ5 и не показывается окно "Оптимизация" во время теста - страница 5

 
Texnolog:

Зачем ломать старый хороший алгоритм и заменять его новым который работает в 3 раза медленнее?

Алгоритм генетического тестера не менялся. И заявления про 3 раза абсолютно голословны.

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

Если нужно внедрить новый подход к генетическому методу, добавте новый пункт во вкладку "оптимизация",

создайте описание и приемы работы с ним.

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

Поищите по "тестер стратегий", "генетический оптимизатор" в поиске, пожалуйста.

И послушайте мой повторный совет - оптимизация по одиночному recovery factor в генетике противопоказана. Вы просто вводите в заблуждение алгоритм с помощью абсолютно нестабильного и обманного(для автоматики) соотношения "прибыль / максимальной просадке", что легко генерирует огромные значения. Подумайте сами, как и почему.


Отрисовку графика оптимизации в понедельник поправим.

 
Будет ли реализовано частичное исполнение лимитных ордеров, в зависимости от объемов проходящих по рынку ?
 
pivomoe:
Будет ли реализовано частичное исполнение лимитных ордеров, в зависимости от объемов проходящих по рынку ?

Разве в истории вы видели объемы в стакане? Такое реализовать без слепка стакана нереально.

 
Aleksey Vyazmikin:

Разве в истории вы видели объемы в стакане? Такое реализовать без слепка стакана нереально.

О таком я да же не мечтаю. Мне бы хотелось, чтобы Buy Limit c ценой 90 и лотом 10, срабатывал бы частично если, скажем   был SELL тик с ценой 89 и объемом 1. Сейчас же вообще печаль. Ордер сработает если будет тик BUY c ценой 90 и лотом 1... да ещё и полностью.

 
Renat Fatkhullin:

Алгоритм генетического тестера не менялся. И заявления про 3 раза абсолютно голословны.

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


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

Вот результаты. Логи и описание в посте № 34.

11

 

Вот мой тест с предложенными условиями:

  • настройки из https://www.mql5.com/ru/forum/241285/page4#comment_7271206
  • все файловые кеши тестера однократно удалены с диска перед началом тестов
  • Windows 10, Intel Xeon  E5-2630 v4 @ 2.20GHz, используются 8 ядер для агентов

 Полный проход до конца, потом рестарт терминала
с остановкой на 1000 (примерно) проходе
 с продолжением после остановки
Метатрейдер 5 билд 1755
38 сек, 4780 проходов
15 сек, 1105 проходов
25 сек, 3487 проходов
Метатрейдер 5 билд 180933 сек, 5549 проходов
9 сек, 1126 проходов
36 сек, 5863 прохода


Метатрейдер 5 билд 1755:

  • билд 1755 полный проход, всего пройдено 8960 вариантов, из которых реально просчитано было 4780 и 4180 взяты из накопленного в этой же сессии кеша

    после чего делается рестарт терминала, чтобы избежать прямого влияния горячих кешей в памяти
    2018.04.30 11:20:46.867	Tester	Best result 3391.17 produced at generation 22. Next generation 33
    2018.04.30 11:20:47.118	Tester	genetic calculation is over
    2018.04.30 11:20:47.126	Tester	4697 records written to file cache C:\Users\sys\AppData\Roaming\MetaQuotes\Terminal\D0E8209F77C8CF37AD8BF550E51FF075\tester\cache\Moving Average.EURUSD.M5.1.xml
    2018.04.30 11:20:47.338	Tester	result cache used 4180 times
    2018.04.30 11:20:47.338	Tester	genetic optimization finished on pass 8960 (of 49644595)
    2018.04.30 11:20:47.349	Statistics	optimization done in 0 minutes 38 seconds
    2018.04.30 11:20:47.349	Statistics	local 4780 tasks (100%), remote 0 tasks (0%), cloud 0 tasks (0%)
    

  • билд 1755 с остановкой на 1337 проходе. из них 216 взяты из кеша (216 / 1337 = 16% кеш попадание, мало из-за стартового рандома и малой выборки)
    2018.04.30 11:24:15.913	Tester	Best result 3254.53 produced at generation 0. Next generation 4
    2018.04.30 11:24:16.775	Tester	file cache used 19 times
    2018.04.30 11:24:16.775	Tester	result cache used 216 times
    2018.04.30 11:24:16.775	Tester	genetic optimization finished on pass 1337 (of 49644595)
    2018.04.30 11:24:16.775	Statistics	optimization done in 0 minutes 15 seconds
    2018.04.30 11:24:16.775	Statistics	local 1105 tasks (100%), remote 0 tasks (0%), cloud 0 tasks (0%)
    
  • билд 1755 с продолжением после остановки по Стоп, терминал не рестартовал, продолжение.

    тест продолжается с остановленного места, а не с начала как в 1809 билде, то из предложенных 10496 проходов было досчитано 3487 и 66+3814 взято из кеша (66+3814 / 10496 = 36% кеш попадание)
    2018.04.30 11:26:27.931	Tester	Best result 3363.35 produced at generation 15. Next generation 32
    2018.04.30 11:26:28.104	Tester	genetic calculation is over
    2018.04.30 11:26:28.111	Tester	3422 records written to file cache C:\Users\sys\AppData\Roaming\MetaQuotes\Terminal\D0E8209F77C8CF37AD8BF550E51FF075\tester\cache\Moving Average.EURUSD.M5.1.xml
    2018.04.30 11:26:28.539	Tester	file cache used 66 times
    2018.04.30 11:26:28.539	Tester	result cache used 3814 times
    2018.04.30 11:26:28.539	Tester	genetic optimization finished on pass 8704 (of 49644595)
    2018.04.30 11:26:28.550	Statistics	optimization done in 0 minutes 25 seconds
    2018.04.30 11:26:28.550	Statistics	local 3487 tasks (100%), remote 0 tasks (0%), cloud 0 tasks (0%)
    





Метатрейдер 5 билд 1809:

  • билд 1809 полный проход, всего пройдено 8960 вариантов, из которых реально просчитано было 5549 и 3411 взяты из накопленного в этой же сессии кеша

    после чего делается рестарт терминала, чтобы избежать прямого влияния горячих кешей в памяти
    2018.04.30 10:50:58.997 Tester  Best result 3391.17 produced at generation 22. Next generation 33
    2018.04.30 10:50:59.485 Tester  genetic calculation is over
    2018.04.30 10:50:59.485 Tester  result cache used 3411 times
    2018.04.30 10:50:59.485 Tester  genetic optimization finished on pass 8960 (of 49644595)
    2018.04.30 10:50:59.495 Statistics      optimization done in 0 minutes 33 seconds
    2018.04.30 10:50:59.495 Statistics      local 5549 tasks (100%), remote 0 tasks (0%), cloud 0 tasks (0%)
    

  • билд 1809 с остановкой на 1348 проходе. из них 222 взяты из кеша (222 / 1348 = 16% кеш попадание, мало из-за стартового рандома и малой выборки)
    2018.04.30 11:00:59.532 Tester  Best result 3263.17 produced at generation 0. Next generation 4
    2018.04.30 11:00:59.742 Tester  result cache used 222 times
    2018.04.30 11:00:59.742 Tester  genetic optimization finished on pass 1348 (of 49644595)
    2018.04.30 11:00:59.742 Statistics      optimization done in 0 minutes 09 seconds
    2018.04.30 11:00:59.742 Statistics      local 1126 tasks (100%), remote 0 tasks (0%), cloud 0 tasks (0%)
    
  • билд 1809 с продолжением после остановки по Стоп, терминал не рестартовал, продолжение.

    так как запускается тест с начала, то из предложенных 10240 проходов было сделано чистых 5863 и 4377 взято из кеша (4377 / 10240 = 42% кеш попадание)
    2018.04.30 11:04:28.046 Tester  Best result 3391.17 produced at generation 27. Next generation 38
    2018.04.30 11:04:28.477 Tester  genetic calculation is over
    2018.04.30 11:04:28.477 Tester  result cache used 4377 times
    2018.04.30 11:04:28.477 Tester  genetic optimization finished on pass 10240 (of 49644595)
    2018.04.30 11:04:28.488 Statistics      optimization done in 0 minutes 36 seconds
    2018.04.30 11:04:28.488 Statistics      local 5863 tasks (100%), remote 0 tasks (0%), cloud 0 tasks (0%)
    



Теперь выводы:

  1. Ваше утверждение про "в 3 раза медленнее" оказалось ложным

  2. В реальности тестер 1809 билда стал работать быстрее за счет оптимизации и переписывания внутренних процессов.

    Это видно по времени полного прохода, стало 33 секунды вместо 38 секунд. Причем 33 секунды при бОльшем количестве проходов.

    Если пересчитать количество проходов в секунду, то получается:
     - build 1755 дает 4780 проходов / 38 сек = 125 проходов в секунду
     - build 1809 дает 5549 проходов / 33 сек = 168 проходов в секунду

  3. Новая схема "продолжения после стопа" генетического оптимизатора с генерацией нового плана популяций правильная.

    Мы проводим переоценку концепции тестера и исправляем старые плохие решения.

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

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

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

У меня вылетает робот при инициализации, причём как в рантайме, так и в Отладке. Компиляция нормально проводится.

В коде есть класс со статическими членами, видимо из-за них. Раньше всё нормально работало. А теперь пишет, что ошибка при глобальной инициализации.

Убрал статические элементы в классе, запустился нормально.

 
Dennis Kirichenko:

У меня вылетает робот при инициализации, причём как в рантайме, так и в Отладке. Компиляция нормально проводится.

В коде есть класс со статическими членами, видимо из-за них. Раньше всё нормально работало. А теперь пишет, что ошибка при глобальной инициализации.

Убрал статические элементы в классе, запустился нормально.

Напишите заявку в сервисдеск и приложите эксперта (можно ex5 файл), пожалуйста.

 
Aleksey Vyazmikin:

Всё это замечательно!

Однако, вкладку "Оптимизация" пожалуйста, верните - без оперативной аналитики невозможно работать же! Тормозят большие таблицы - давайте сделаем фильтр - показывать 20 лучших по каждому критерию - это же не так ресурсоёмко(?), но очень поможет видеть картину. И, эти миллиарды проходов - это кто ж их делает то? Это же единицы с огромными мощностями - сами же говорите о разумности применять генетику, а там таких портянок нет. Т.е. больше 10к проходов - это редкость.


печально. 

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

 
Renat Fatkhullin:

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

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

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


Мы у себя ведем тесты на оптимизации и работе со 100 млн полных проходов.

Понятно, что при таких числах не может быть и речи об рилтаймовой пересортировке и показе таблички в 2-5-10-50 млн значений. Вариант только один - быстро и экономно все собрать, финально отсортировать и обеспечить просмотр на любую глубину.

Нам об этом расскажите, и все

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