Докажите и объясните технически, как это достигается.
У меня нет цели очернить MT5. Только воспроизводимо сравниваю. Безусловно, MT5-тестер недостижим по некоторым параметрам, но и тюнинговый MT4 сейчас в состоянии дать вещи, которых в MT5 нет, но которые реально востребованы. Мы увидели, что точный тест по реальным кастомным тикам на MT4 - правда на 100%. Ну и регулирование всевозможных настроек (комиссия, отступы, правила активации отложек и т.д.) тестера имеется. В общем, есть вещи, которые пока принципиально не реализовываются в MT5.
Имеется или есть точные доказательства, что слиппажи и правила активации именно так и работают как заявлено?
Можете технически доказать и объяснить, как внешняя программа может изменять условия срабатывания ордеров в движке MT4 тестера? Неужели методом глубокого инжекта в этот движок?
А как-то можно реально измерять сколько процентов припадает в данном тесте МТ5 на: Шифрование параметров теста (результатов) => Отправка на loopback => Расшифровка параметров теста (результатов)
Если взять из потолка 50 мс, то получается 260 * 2 * 50 / 1000 = 26 сек. Что весьма не мало. Было бы интересно узнать реальные цифры.
Renat Fatkhullin: Докажите и объясните технически, как это достигается.
Как технически достигается - не знаю. Доказать - сразу не готов (после сна сделаю).
Имеется или есть точные доказательства, что слиппажи и правила активации именно так и работают как заявлено?
Можете технически доказать и объяснить, как внешняя программа может изменять условия срабатывания ордеров в движке MT4 тестера? Неужели методом глубокого инжекта в этот движок?
Одно то, что спред не фиксированный уже много лет, говорит о том, что инжект глубокий. Эта MT4-возможность очень популярна на многих форумах. Отталкивает только не бесплатность. Но триал полноценный, поэтому каждый может попробовать. Собственно, сам триал установил несколько часов назад, чтобы эту ветку создать.
Конструктив смогу поддержать только после небольшого отдыха. Собственно, каждый может проверить заявления уже сейчас при желании.
Видно, что дикие тормоза при Shift = 1. Для примера, вот как справляется MT4 с нулевым проходом
Дожидаться окончания оптимизации стало бессмысленным, поэтому остановил.
Запуск нулевого одиночного прохода показал (не стал дожидаться завершения), что по мере выполнения прохода производительность тестера падает очень сильно.
Ок, вот мои результаты на том же (только сервер Alpari-MT5-Demo):
Windows 10 Pro, Intel Xeon E5-2690 @ 2.60GHz
1 ядро: 27 минут 55 секунд
2017.05.0805:13:09.636 Tester optimization finished, total passes 2602017.05.0805:13:09.647 Statistics optimization done in 27 minutes 55 seconds
2017.05.0805:13:09.647 Statistics local 260 tasks (100%), remote 0 tasks (0%), cloud 0 tasks (0%)
8 ядер: 6 минут 11 секунд
2017.05.0804:38:18.663 Tester optimization finished, total passes 2602017.05.0804:38:18.674 Statistics optimization done in 6 minutes 11 seconds
2017.05.0804:38:18.674 Statistics local 260 tasks (100%), remote 0 tasks (0%), cloud 0 tasks (0%)
24 ядра: 3 минуты 33 секунды
2017.05.0805:17:40.990 Tester optimization finished, total passes 2602017.05.0805:17:41.000 Statistics optimization done in 3 minutes 33 seconds
2017.05.0805:17:41.000 Statistics local 260 tasks (100%), remote 0 tasks (0%), cloud 0 tasks (0%)
Понятно, что оптимизировать в одно ядро в МТ5 не имеет никакого смысла и даже на 8 ядрах все проходит очень быстро. Уверен, что ваши 14 минут в МТ4 сделаны на близком по мощности на одно ядро процессоре, так что время можно сравнивать. У меня даже частота на 1 ядро всего 2.6 Ghz.
Почему нет линейного снижения времени? Потому что задачи неравномерные из-за количества сделок. В каких-то проходах 100 сделок (расчет занимает секунду), а где-то 230 000 сделок (до 50 секунд). Так как скорость расчетов полностью определяется кому и как распределятся самые долгие проходы, то критический путь в пакетах сильно не уменьшается.
Ваши тормоза исключительно из-за неэффективного скана истории сделок в релизной версии. Тормозные случаи - это проходы с 200 000 и более сделок.
Весь пример эксперта написан так, что он занимается только одной вещью - страшно неэффективно сканит всю историю сделок на каждом тике. То есть по 1.8 миллиона полных рескана всей истории сделок на один проход. Причем еще код MT5 выборок не родной, а костыль в виде обертки MT4 стиля, что еще больше расходов дает.
Как уже ранее я показал, работу и выборку больших торговых историй сделок мы кардинально переписали и теперь нет никакой разницы в глубине истории.
Приложил последний билд 1598 для проверки, где все работает быстро. Достаточно заменить файлы в каталоге MetaTrader 5.
Весь пример эксперта написан так, что он занимается только одной вещью - страшно неэффективно сканит всю историю сделок на каждом тике. То есть по 1.8 миллиона полных рескана всей истории сделок на один проход. Причем еще код MT5 выборок не родной, а костыль в виде обертки MT4 стиля, что еще больше расходов дает.
Если есть сомнения, что MT5-замедление вызвано использованием сторонней библиотеки, желающие могут переписать простую MT4-логику данного советника на MQL5 на свой лад и проверить гипотезу.
Как уже ранее я показал, работу и выборку больших торговых историй сделок мы кардинально переписали и теперь нет никакой разницы в глубине истории.
Приложил последний билд 1598 для проверки, где все работает быстро. Достаточно заменить файлы в каталоге MetaTrader 5.
1598 отрабатывает значительно быстрее, чем 1596. При этом даже там, где History-функции совсем не используются. Видимо, сам терминал в своих потрохах во время прогона вызывал эти ранее тормозные функции.
Оптимизация MT4
2017.05.0802:35:33.074 Lucky: optimization started
2017.05.0802:49:51.431 Lucky: optimization finished in 0:14:182017.05.0802:49:51.436 There were 260 passes done during optimization
Оптимизация MT5
2017.05.0807:40:38.429 Tester Experts\MT4Orders\Lucky.ex5 on EURUSD,M1 from2017.04.1000:00 to 2017.04.1600:002017.05.0807:40:38.597 Tester EURUSD: preliminary downloading of history ticks started, it may take quite a long time
2017.05.0807:40:39.600 Tester EURUSD: preliminary downloading of history ticks completed, 100.38 Kb in0:01.170 (85.80 Kb/sec)
2017.05.0807:40:39.600 Tester EURUSD: ticks data begins from2016.11.0100:002017.05.0807:40:39.600 Tester complete optimization started
2017.05.0807:40:39.600 Tester size of initial task batch is2602017.05.0807:40:39.612 Core 1 agent process started
2017.05.0807:40:39.612 Core 1 connecting to 127.0.0.1:30002017.05.0807:40:41.620 Core 1 connected
2017.05.0807:40:41.622 Core 1 authorized (agent build 1598)
2017.05.0807:40:42.771 Core 1 common synchronization completed
2017.05.0807:40:42.797 Core 1 EURUSD: ticks synchronized already [43 bytes]
2017.05.0808:04:54.332 Tester optimization finished, total passes 2602017.05.0808:04:54.342 Statistics optimization done in24 minutes 16 seconds2017.05.0808:04:54.342 Statistics local 260 tasks (100%), remote 0 tasks (0%), cloud 0 tasks (0%)
2017.05.0808:04:54.342 Core 1 connection closed
Теперь MT5 медленнее MT4 в 1.7 раза.
ЗЫ Не все прогоны совпали идеально. Значит, кто-то из тройки точно врет (MT4+TDS, MT5, MT4Orders). Будем искать.
Переборы (100 000 USD на старте)
Странное у вас понятие об описании условий тестирования.
Такой подход к деталям большую тень бросает на все ваши последующие выводы.
Это не работает сейчас в MT4.
Это работает сейчас в MT4.
Имеется или есть точные доказательства, что слиппажи и правила активации именно так и работают как заявлено?
Можете технически доказать и объяснить, как внешняя программа может изменять условия срабатывания ордеров в движке MT4 тестера? Неужели методом глубокого инжекта в этот движок?
Странное у вас понятие об описании условий тестирования.
Такой подход к деталям большую тень бросает на все ваши последующие выводы.
Если что-то не досказал, то не специально. Вроде, все данные сообщил ранее. Но повторю
Шифрование параметров теста (результатов) => Отправка на loopback => Расшифровка параметров теста (результатов)
Если взять из потолка 50 мс, то получается 260 * 2 * 50 / 1000 = 26 сек.
Что весьма не мало.
Было бы интересно узнать реальные цифры.
Renat Fatkhullin:
Докажите и объясните технически, как это достигается.
Как технически достигается - не знаю. Доказать - сразу не готов (после сна сделаю).
Имеется или есть точные доказательства, что слиппажи и правила активации именно так и работают как заявлено?
Можете технически доказать и объяснить, как внешняя программа может изменять условия срабатывания ордеров в движке MT4 тестера? Неужели методом глубокого инжекта в этот движок?
Одно то, что спред не фиксированный уже много лет, говорит о том, что инжект глубокий. Эта MT4-возможность очень популярна на многих форумах. Отталкивает только не бесплатность. Но триал полноценный, поэтому каждый может попробовать. Собственно, сам триал установил несколько часов назад, чтобы эту ветку создать.
Конструктив смогу поддержать только после небольшого отдыха. Собственно, каждый может проверить заявления уже сейчас при желании.
Входные параметры
Видно, что дикие тормоза при Shift = 1. Для примера, вот как справляется MT4 с нулевым проходом
Т.е. более, чем в 60 раз быстрее.
ЗЫ
Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий
Ошибки, баги, вопросы
fxsaber, 2017.04.26 15:08
Просьба в логах оптимизатора показывать диапазон и шаг оптимизируемых параметров.
А так же в логах агентов такие строки
сопровождать информацией по соответствующему прогону - имя советника и его входные параметры.
Видно, что дикие тормоза при Shift = 1. Для примера, вот как справляется MT4 с нулевым проходом
Дожидаться окончания оптимизации стало бессмысленным, поэтому остановил.
Запуск нулевого одиночного прохода показал (не стал дожидаться завершения), что по мере выполнения прохода производительность тестера падает очень сильно.
History-функции не задействованы.
Если что-то не досказал, то не специально. Вроде, все данные сообщил ранее. Но повторю
Ок, вот мои результаты на том же (только сервер Alpari-MT5-Demo):
Понятно, что оптимизировать в одно ядро в МТ5 не имеет никакого смысла и даже на 8 ядрах все проходит очень быстро. Уверен, что ваши 14 минут в МТ4 сделаны на близком по мощности на одно ядро процессоре, так что время можно сравнивать. У меня даже частота на 1 ядро всего 2.6 Ghz.
Почему нет линейного снижения времени? Потому что задачи неравномерные из-за количества сделок. В каких-то проходах 100 сделок (расчет занимает секунду), а где-то 230 000 сделок (до 50 секунд). Так как скорость расчетов полностью определяется кому и как распределятся самые долгие проходы, то критический путь в пакетах сильно не уменьшается.
Ваши тормоза исключительно из-за неэффективного скана истории сделок в релизной версии. Тормозные случаи - это проходы с 200 000 и более сделок.
Весь пример эксперта написан так, что он занимается только одной вещью - страшно неэффективно сканит всю историю сделок на каждом тике. То есть по 1.8 миллиона полных рескана всей истории сделок на один проход. Причем еще код MT5 выборок не родной, а костыль в виде обертки MT4 стиля, что еще больше расходов дает.
Как уже ранее я показал, работу и выборку больших торговых историй сделок мы кардинально переписали и теперь нет никакой разницы в глубине истории.
Приложил последний билд 1598 для проверки, где все работает быстро. Достаточно заменить файлы в каталоге MetaTrader 5.
Вот лог проходов:
Нулевой проход с 216к сделок (параметры Shift=1, Limit=5) отработал за 7 секунд.
Весь пример эксперта написан так, что он занимается только одной вещью - страшно неэффективно сканит всю историю сделок на каждом тике. То есть по 1.8 миллиона полных рескана всей истории сделок на один проход. Причем еще код MT5 выборок не родной, а костыль в виде обертки MT4 стиля, что еще больше расходов дает.
Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий
MT4-Tester VS MT5-Tester
fxsaber, 2017.05.08 04:03
History-функции не задействованы.
Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий
MT4-Tester VS MT5-Tester
fxsaber, 2017.05.08 01:11
Если есть сомнения, что MT5-замедление вызвано использованием сторонней библиотеки, желающие могут переписать простую MT4-логику данного советника на MQL5 на свой лад и проверить гипотезу.Как уже ранее я показал, работу и выборку больших торговых историй сделок мы кардинально переписали и теперь нет никакой разницы в глубине истории.
Приложил последний билд 1598 для проверки, где все работает быстро. Достаточно заменить файлы в каталоге MetaTrader 5.
1598 отрабатывает значительно быстрее, чем 1596. При этом даже там, где History-функции совсем не используются. Видимо, сам терминал в своих потрохах во время прогона вызывал эти ранее тормозные функции.
Оптимизация MT4
Оптимизация MT5
Теперь MT5 медленнее MT4 в 1.7 раза.
ЗЫ Не все прогоны совпали идеально. Значит, кто-то из тройки точно врет (MT4+TDS, MT5, MT4Orders). Будем искать.