Зачем ломать старый хороший алгоритм и заменять его новым который работает в 3 раза медленнее?
Алгоритм генетического тестера не менялся. И заявления про 3 раза абсолютно голословны.
Менялся метод работы кеша предыдущих результатов. Причем стал кардинально лучше и полнее предыдущего.
Если нужно внедрить новый подход к генетическому методу, добавте новый пункт во вкладку "оптимизация",
создайте описание и приемы работы с ним.
Посмотрите ссылки, что я привел выше - все это статьи с нашего сайта. Генетический оптимизатор мгногогранно обсудили за много лет.
Поищите по "тестер стратегий", "генетический оптимизатор" в поиске, пожалуйста.
И послушайте мой повторный совет - оптимизация по одиночному recovery factor в генетике противопоказана. Вы просто вводите в заблуждение алгоритм с помощью абсолютно нестабильного и обманного(для автоматики) соотношения "прибыль / максимальной просадке", что легко генерирует огромные значения. Подумайте сами, как и почему.
Отрисовку графика оптимизации в понедельник поправим.
Разве в истории вы видели объемы в стакане? Такое реализовать без слепка стакана нереально.
О таком я да же не мечтаю. Мне бы хотелось, чтобы Buy Limit c ценой 90 и лотом 10, срабатывал бы частично если, скажем был SELL тик с ценой 89 и объемом 1. Сейчас же вообще печаль. Ордер сработает если будет тик BUY c ценой 90 и лотом 1... да ещё и полностью.
настройки из 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 билд 1809
33 сек, 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.3010:50:58.997 Tester Best result 3391.17 produced at generation 22. Next generation 332018.04.3010:50:59.485 Tester genetic calculation is over
2018.04.3010:50:59.485 Tester result cache used 3411 times
2018.04.3010:50:59.485 Tester genetic optimization finished on pass 8960 (of 49644595)
2018.04.3010:50:59.495 Statistics optimization done in 0 minutes 33 seconds
2018.04.3010:50:59.495 Statistics local 5549 tasks (100%), remote 0 tasks (0%), cloud 0 tasks (0%)
билд 1809 с остановкой на 1348 проходе. из них 222 взяты из кеша (222 / 1348 = 16% кеш попадание, мало из-за стартового рандома и малой выборки)
2018.04.3011:00:59.532 Tester Best result 3263.17 produced at generation 0. Next generation 42018.04.3011:00:59.742 Tester result cache used 222 times
2018.04.3011:00:59.742 Tester genetic optimization finished on pass 1348 (of 49644595)
2018.04.3011:00:59.742 Statistics optimization done in 0 minutes 09 seconds
2018.04.3011: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.3011:04:28.046 Tester Best result 3391.17 produced at generation 27. Next generation 382018.04.3011:04:28.477 Tester genetic calculation is over
2018.04.3011:04:28.477 Tester result cache used 4377 times
2018.04.3011:04:28.477 Tester genetic optimization finished on pass 10240 (of 49644595)
2018.04.3011:04:28.488 Statistics optimization done in 0 minutes 36 seconds
2018.04.3011:04:28.488 Statistics local 5863 tasks (100%), remote 0 tasks (0%), cloud 0 tasks (0%)
Теперь выводы:
Ваше утверждение про "в 3 раза медленнее" оказалось ложным
В реальности тестер 1809 билда стал работать быстрее за счет оптимизации и переписывания внутренних процессов.
Это видно по времени полного прохода, стало 33 секунды вместо 38 секунд. Причем 33 секунды при бОльшем количестве проходов.
Если пересчитать количество проходов в секунду, то получается: - build 1755 дает 4780 проходов / 38 сек = 125 проходов в секунду - build 1809 дает 5549 проходов / 33 сек = 168 проходов в секунду
Новая схема "продолжения после стопа" генетического оптимизатора с генерацией нового плана популяций правильная.
Мы проводим переоценку концепции тестера и исправляем старые плохие решения.
Так как генетические тесты нужно запускать многократно, чтобы более полно покрыть область поиска, то наша новая модель с визуализацией предыдущих запусков из кеша позволяет лучше понимать механику работы с генетикой.
Новая модель показа результатов оптимизации с добавлением в таблицу всех данных ранее посчитанных кешей позволяет видеть картину более полно. Можно досчитывать кусками свою стратегию и каждый раз видеть полные результаты, включая предыдущие запуски.
Именно по причине реально больших объединенных таблиц результатов мы отключили рилтаймовый показ списка результатов, а показываем совокупный результат после объединения всех предыдущих результатов.
Однако, вкладку "Оптимизация" пожалуйста, верните - без оперативной аналитики невозможно работать же! Тормозят большие таблицы - давайте сделаем фильтр - показывать 20 лучших по каждому критерию - это же не так ресурсоёмко(?), но очень поможет видеть картину. И, эти миллиарды проходов - это кто ж их делает то? Это же единицы с огромными мощностями - сами же говорите о разумности применять генетику, а там таких портянок нет. Т.е. больше 10к проходов - это редкость.
печально.
По предварительным данным хотя бы можно было строить картинку, пока оптимизация проходит.
Мы заняты большим апгрейдом производительности тестера и переделываем режимы работы под большой нагрузкой. Добились серьезных улучшений и скоро будут реализованы новые методы ускорения.
Окно списка проходов решили показывать в конце просчета, чтобы не тратить реально большие ресурсы на поддержание, пересортировку и отображение постоянно меняющегося списка проходов.
Там реально были огромные расходы ресурсов и тормоза. Особенно когда говорим об сотнях тысяч строк, миллионах и десятков миллионов проходов. Нет никакого разумного смысла смотреть глазами на портянку предварительных данных.
Мы у себя ведем тесты на оптимизации и работе со 100 млн полных проходов.
Понятно, что при таких числах не может быть и речи об рилтаймовой пересортировке и показе таблички в 2-5-10-50 млн значений. Вариант только один - быстро и экономно все собрать, финально отсортировать и обеспечить просмотр на любую глубину.
Зачем ломать старый хороший алгоритм и заменять его новым который работает в 3 раза медленнее?
Алгоритм генетического тестера не менялся. И заявления про 3 раза абсолютно голословны.
Менялся метод работы кеша предыдущих результатов. Причем стал кардинально лучше и полнее предыдущего.
Если нужно внедрить новый подход к генетическому методу, добавте новый пункт во вкладку "оптимизация",
создайте описание и приемы работы с ним.
Посмотрите ссылки, что я привел выше - все это статьи с нашего сайта. Генетический оптимизатор мгногогранно обсудили за много лет.
Поищите по "тестер стратегий", "генетический оптимизатор" в поиске, пожалуйста.
И послушайте мой повторный совет - оптимизация по одиночному recovery factor в генетике противопоказана. Вы просто вводите в заблуждение алгоритм с помощью абсолютно нестабильного и обманного(для автоматики) соотношения "прибыль / максимальной просадке", что легко генерирует огромные значения. Подумайте сами, как и почему.
Отрисовку графика оптимизации в понедельник поправим.
Будет ли реализовано частичное исполнение лимитных ордеров, в зависимости от объемов проходящих по рынку ?
Разве в истории вы видели объемы в стакане? Такое реализовать без слепка стакана нереально.
Разве в истории вы видели объемы в стакане? Такое реализовать без слепка стакана нереально.
О таком я да же не мечтаю. Мне бы хотелось, чтобы Buy Limit c ценой 90 и лотом 10, срабатывал бы частично если, скажем был SELL тик с ценой 89 и объемом 1. Сейчас же вообще печаль. Ордер сработает если будет тик BUY c ценой 90 и лотом 1... да ещё и полностью.
Алгоритм генетического тестера не менялся. И заявления про 3 раза абсолютно голословны.
Менялся метод работы кеша предыдущих результатов. Причем стал кардинально лучше и полнее предыдущего.
Проводил сравнительное тестирование на новом и старом билдах тестера.
Вот результаты. Логи и описание в посте № 34.
Вот мой тест с предложенными условиями:
Метатрейдер 5 билд 1755:
после чего делается рестарт терминала, чтобы избежать прямого влияния горячих кешей в памяти
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%)тест продолжается с остановленного места, а не с начала как в 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:
после чего делается рестарт терминала, чтобы избежать прямого влияния горячих кешей в памяти
так как запускается тест с начала, то из предложенных 10240 проходов было сделано чистых 5863 и 4377 взято из кеша (4377 / 10240 = 42% кеш попадание)
Теперь выводы:
Это видно по времени полного прохода, стало 33 секунды вместо 38 секунд. Причем 33 секунды при бОльшем количестве проходов.
Если пересчитать количество проходов в секунду, то получается:
- build 1755 дает 4780 проходов / 38 сек = 125 проходов в секунду
- build 1809 дает 5549 проходов / 33 сек = 168 проходов в секунду
Мы проводим переоценку концепции тестера и исправляем старые плохие решения.
Так как генетические тесты нужно запускать многократно, чтобы более полно покрыть область поиска, то наша новая модель с визуализацией предыдущих запусков из кеша позволяет лучше понимать механику работы с генетикой.
Новая модель показа результатов оптимизации с добавлением в таблицу всех данных ранее посчитанных кешей позволяет видеть картину более полно. Можно досчитывать кусками свою стратегию и каждый раз видеть полные результаты, включая предыдущие запуски.
Именно по причине реально больших объединенных таблиц результатов мы отключили рилтаймовый показ списка результатов, а показываем совокупный результат после объединения всех предыдущих результатов.
У меня вылетает робот при инициализации, причём как в рантайме, так и в Отладке. Компиляция нормально проводится.
В коде есть класс со статическими членами, видимо из-за них. Раньше всё нормально работало. А теперь пишет, что ошибка при глобальной инициализации.
Убрал статические элементы в классе, запустился нормально.
У меня вылетает робот при инициализации, причём как в рантайме, так и в Отладке. Компиляция нормально проводится.
В коде есть класс со статическими членами, видимо из-за них. Раньше всё нормально работало. А теперь пишет, что ошибка при глобальной инициализации.
Убрал статические элементы в классе, запустился нормально.
Напишите заявку в сервисдеск и приложите эксперта (можно ex5 файл), пожалуйста.
Всё это замечательно!
Однако, вкладку "Оптимизация" пожалуйста, верните - без оперативной аналитики невозможно работать же! Тормозят большие таблицы - давайте сделаем фильтр - показывать 20 лучших по каждому критерию - это же не так ресурсоёмко(?), но очень поможет видеть картину. И, эти миллиарды проходов - это кто ж их делает то? Это же единицы с огромными мощностями - сами же говорите о разумности применять генетику, а там таких портянок нет. Т.е. больше 10к проходов - это редкость.
печально.
По предварительным данным хотя бы можно было строить картинку, пока оптимизация проходит.
Мы заняты большим апгрейдом производительности тестера и переделываем режимы работы под большой нагрузкой. Добились серьезных улучшений и скоро будут реализованы новые методы ускорения.
Окно списка проходов решили показывать в конце просчета, чтобы не тратить реально большие ресурсы на поддержание, пересортировку и отображение постоянно меняющегося списка проходов.
Там реально были огромные расходы ресурсов и тормоза. Особенно когда говорим об сотнях тысяч строк, миллионах и десятков миллионов проходов. Нет никакого разумного смысла смотреть глазами на портянку предварительных данных.
Мы у себя ведем тесты на оптимизации и работе со 100 млн полных проходов.
Понятно, что при таких числах не может быть и речи об рилтаймовой пересортировке и показе таблички в 2-5-10-50 млн значений. Вариант только один - быстро и экономно все собрать, финально отсортировать и обеспечить просмотр на любую глубину.
Нам об этом расскажите, и все