Предлагаю собрать статистику по производительности разных процессоров с целью оценки их эффективности для работы тестера стратегий в режиме оптимизации.
Хорошая инициатива, поддерживаю.
При компиляции выдаёт предупреждение:
implicit conversion from 'number' to 'string' Tree_Brut_TestPL.mq5 2567 16
Так и должно быть?
Строка:
if(FrameAdd(Test_P,1,0,stat_values)==false)
Предлагаю собрать статистику по производительности разных процессоров с целью оценки их эффективности для работы тестера стратегий в режиме оптимизации.
Что бы быть более объективным предлагаю использовать советник, работающий в режиме "Математические вычисления", это позволит минимум задействовать жесткий диск и память компьютера. По возможности указывайте название процессора, материнскую плату и частоту ОЗУ.
У советника только один параметр, который и подлежит оптимизации (на самом деле это пустышка и данные идентичны для всех агентов - для объективности), число проходов укажите равным числу потоков, а агентов выберите по числу ядер процессора (без гипертрейдинга!).
Я надеюсь, что собранные данные помогут людям в выборе железа для оптимизации, которое разумно брать не первой свежести, во всяком случае так было последнее время, но может что и изменилось.
Сам же советник - это вырезка из реального советника, который я использую в подобной задаче для отбора листьев с дерева решений, т.е. реальная задача МО, и если есть идеи по ускорению кода, то с интересом выслушаю. В коде только 1000 листьев, в реальности их уже более 70 000, поэтому они вынесены в функцию для приемлемого времени ожидание исхода компиляции.
Хорошая инициатива, поддерживаю.
При компиляции выдаёт предупреждение:
Так и должно быть?
Строка:
Поправил и перезалил!
Тестируйте.
За какой период проводить оптимизацию и на каком тайм фрейме? Инструмент важен?
В режиме "Математические вычисления" это не важно, тики там не генерируются!
А что там? Пенёк конца двухтысячных уже не взлетает? :D
Пробуйте свой процессор и скидывайте результаты - посмотрим, взлетает или только катится!
Старый конь борозды не портит?
Результаты:
2019.08.09 23:22:07.472 Tester set "Custom max" as optimization criterion for mathematical calculations 2019.08.09 23:22:07.540 Experts optimization frame expert Tree_Brut_TestPL (EURUSD.m,H1) processing started 2019.08.09 23:22:07.592 Tester cache file 'tester\cache\Tree_Brut_TestPL.30.DFF2DB61B8A3751199D61AD0A0F226D3.opt' deleted 2019.08.09 23:22:07.623 Tester Experts\Tree_Brut_TestPL.ex5 math calculations test means no history and no symbol info for EURUSD.m 2019.08.09 23:22:07.623 Tester complete optimization started 2019.08.09 23:22:07.648 Core 1 agent process started on 127.0.0.1:3008 2019.08.09 23:22:07.650 Core 2 agent process started on 127.0.0.1:3009 2019.08.09 23:22:07.652 Core 3 agent process started on 127.0.0.1:3010 2019.08.09 23:22:07.654 Core 4 agent process started on 127.0.0.1:3011 2019.08.09 23:22:07.657 Core 5 agent process started on 127.0.0.1:3012 2019.08.09 23:22:07.659 Core 6 agent process started on 127.0.0.1:3013 2019.08.09 23:22:07.662 Core 7 agent process started on 127.0.0.1:3014 2019.08.09 23:22:07.664 Core 8 agent process started on 127.0.0.1:3015 2019.08.09 23:22:07.972 Core 1 connecting to 127.0.0.1:3008 2019.08.09 23:22:07.973 Core 1 connected 2019.08.09 23:22:07.983 Core 1 authorized (agent build 2097) 2019.08.09 23:22:07.997 Core 1 common synchronization completed 2019.08.09 23:22:08.035 Core 3 connecting to 127.0.0.1:3010 2019.08.09 23:22:08.036 Core 3 connected 2019.08.09 23:22:08.046 Core 3 authorized (agent build 2097) 2019.08.09 23:22:08.056 Core 2 connecting to 127.0.0.1:3009 2019.08.09 23:22:08.057 Core 2 connected 2019.08.09 23:22:08.059 Core 3 common synchronization completed 2019.08.09 23:22:08.067 Core 5 connecting to 127.0.0.1:3012 2019.08.09 23:22:08.068 Core 5 connected 2019.08.09 23:22:08.068 Core 2 authorized (agent build 2097) 2019.08.09 23:22:08.082 Core 2 common synchronization completed 2019.08.09 23:22:08.083 Core 5 authorized (agent build 2097) 2019.08.09 23:22:08.103 Core 7 connecting to 127.0.0.1:3014 2019.08.09 23:22:08.104 Core 7 connected 2019.08.09 23:22:08.119 Core 7 authorized (agent build 2097) 2019.08.09 23:22:08.125 Core 5 common synchronization completed 2019.08.09 23:22:08.140 Core 7 common synchronization completed 2019.08.09 23:22:08.150 Core 4 connecting to 127.0.0.1:3011 2019.08.09 23:22:08.151 Core 4 connected 2019.08.09 23:22:08.151 Core 8 connecting to 127.0.0.1:3015 2019.08.09 23:22:08.151 Core 8 connected 2019.08.09 23:22:08.162 Core 8 authorized (agent build 2097) 2019.08.09 23:22:08.164 Core 4 authorized (agent build 2097) 2019.08.09 23:22:08.184 Core 6 connecting to 127.0.0.1:3013 2019.08.09 23:22:08.185 Core 6 connected 2019.08.09 23:22:08.208 Core 6 authorized (agent build 2097) 2019.08.09 23:22:08.228 Core 4 common synchronization completed 2019.08.09 23:22:08.240 Core 6 common synchronization completed 2019.08.09 23:22:08.250 Core 8 common synchronization completed 2019.08.09 23:24:45.931 Tester optimization finished, total passes 8 2019.08.09 23:24:45.941 Statistics optimization done in 2 minutes 38 seconds 2019.08.09 23:24:45.941 Statistics shortest pass 0:02:35.945, longest pass 0:02:37.669, average pass 0:02:37.006 2019.08.09 23:24:45.941 Statistics 8000 frames (3.14 Mb total, 412 bytes per frame) received 2019.08.09 23:24:45.941 Statistics local 8 tasks (100%), remote 0 tasks (0%), cloud 0 tasks (0%) 2019.08.09 23:24:45.988 Tester 8 new records saved to cache file 'tester\cache\Tree_Brut_TestPL.30.DFF2DB61B8A3751199D61AD0A0F226D3.opt'
Версия терминала:
2019.08.09 23:20:35.776 Terminal MetaTrader 5 x64 build 2085 started (MetaQuotes Software Corp.) 2019.08.09 23:20:35.778 Terminal Windows 10 (build 17763) x64, IE 11, UAC, AMD FX-8300 Eight-Core Processor , Memory: 17102 / 24574 Mb, Disk: 2407 / 2441 Gb, GMT+2
Старый конь борозды не портит?
Результаты:
Версия терминала:
Кажется, у Вас участвовало 8 агентов, а надо 4, так как FPU у FX только 4 и 8 ALU, а именно FPU грузятся при оптимизации. Почему так - не ясно - вопрос к разработчикам, ведь код в большей степени на сравнении построен, но видимо потребление вычислений с плавающей запятой превалирует или в разы медленней, поэтому и получается, что надо ставить именно число сопроцессоров, тогда 1 проход будет быстрей а среднее время примерно останется тем же.
Кажется, у Вас участвовало 8 агентов, а надо 4, так как FPU у FX только 4 и 8 APU, а именно FPU грузятся при оптимизации. Почему так - не ясно - вопрос к разработчикам, ведь код в большей степени на сравнении построен, но видимо потребление вычислений с плавающей запятой превалирует или в разы медленней, поэтому и получается, что надо ставить именно число сопроцессоров, тогда 1 проход будет быстрей а среднее время примерно останется тем же.
Уточните, пожалуйста. Я отключаю 4 агента и оптимизируемый параметр устанавливаю так, чтобы получилось 4 прохода оптимизации? или 8 проходов?
8 проходов 4 агента, типа аналог гипертрейдинга - по числу потоков.
Включите "Полный журнал оптимизации", что б видеть время каждого прохода.- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Предлагаю собрать статистику по производительности разных процессоров с целью оценки их эффективности для работы тестера стратегий в режиме оптимизации.
Что бы быть более объективным предлагаю использовать советник, работающий в режиме "Математические вычисления", это позволит минимум задействовать жесткий диск и память компьютера. По возможности указывайте название процессора, материнскую плату и частоту ОЗУ.
У советника только один параметр, который и подлежит оптимизации (на самом деле это пустышка и данные идентичны для всех агентов - для объективности), число проходов укажите равным числу потоков, а агентов выберите по числу ядер процессора (без гипертрейдинга!).
Я надеюсь, что собранные данные помогут людям в выборе железа для оптимизации, которое разумно брать не первой свежести, во всяком случае так было последнее время, но может что и изменилось.
Сам же советник - это вырезка из реального советника, который я использую в подобной задаче для отбора листьев с дерева решений, т.е. реальная задача МО, и если есть идеи по ускорению кода, то с интересом выслушаю. В коде только 1000 листьев, в реальности их уже более 70 000, поэтому они вынесены в функцию для приемлемого времени ожидание исхода компиляции.
В журнале тестера стратегий через контекстное меню поставьте галку в пункте "Полный журнал оптимизации".Добавлено: В данной ветке выяснилось, что размер файла в некоторых (это и надо выяснить) процессорах влияет на производительность системы в целом, хотя код структурно значительно не меняется. Поэтому прошу всех тестировать два советниика.
Пример настройки тестера - символ, период и тайм фрейм не важны - остальные настройки актуальны, на скрине другой советник, но настройки нужные
Пока вырисовывается такой рейтинг, где использовалось среднее время прохода в секундах - два предпредпоследних столбца, а последний столбец показывает число проходов процессора за 1 час.
Таблица отфильтрована по последнему столбцу, как наиболее тяжелому варианту советника по затрату вычислительных ресурсов.