Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
А в чем проблема подумать и кардинально все улучшить?
Тут уже есть типа библиотека MQL4-MQL5 в режиме «работает и замечательно», что волосы рвать приходится. Народ на полном серьезе ее использует для сравнения скорости обоих платформ.
Вот и счас вы предлагаете не думать, а сделать очередную поделку, с которой будут носиться, заявляя «в МТ5 медленнее».
Ничего не понял. Я предлагаю, еще раз, если у fxsaber будет время и желание:
1. Сделать библиотеку для МТ5 (опционально для МТ4), которая в режиме тестера/оптимизатора отключала бы ненужные функции (пока графику)
2. Для этого обернуть эти затратные функции в дефайны и в зависимости от режима работа включать их или не включать
Не нужно так эмоционально подходить к вопросу, никто на МТ5 не наезжает.
Есть универсальный инструмент, который одной строкой позволяет измерять быстродействие кода в тестере. Там удалось многое увидеть. В частности, что одиночный прогон медленнее оптимизационного.
По теме комментария, разработчики дали ответ. Пока же сам ускоряю оптимизацию в 1.5-2 раза одной строкой.
И в СД рассказали про важный для быстродействия нюанс.
Переживать по поводу микросекунд выполнения функций разумно только в режимах Оптимизации. В реал-тайме же без разницы. И Comment никакой роли на быстродействие советника в реал-тайме не играет, даже если будет еще на порядок медленнее.
А вот то, что почти никто не пишет советники так, чтобы они в тестере выполнялись максимально быстро - факт.
Составьте пожалуйста FAQ, как этого добиться. Пусть все мысли будут в одном месте.
Есть замечательная ветка как раз для этого. Возможно, кто-нибудь потратит свои огромные силы и время на составление FAQ по разделам на основе многих постов этой ветки.
А для быстродействия рецепт использую всегда один - TesterBenchmark + профайлер. И, конечно, находить разумную середину между особенностями тестера и реала. MT4Orders так и написан. Там ставка была сделана на быструю работу в тестере и идеальную работу на реале. Для этого нужно понимать, что некоторые (иногда дорогостоящие) проверки в том же тестере делать не нужно, что необходимы на реале. За счет этого получается сильно экономить. Ну и кеширование той же истории и т.д. Т.е. нужно писать библиотеки, которые в своих потрохах иногда имеют разные логики для тестера и реала. Trade.mqh, к сожалению, не такая библиотека.
Есть замечательная ветка как раз для этого. Возможно, кто-нибудь потратит свои огромные силы и время на составление FAQ по разделам на основе многих постов этой ветки.
А для быстродействия рецепт использую всегда один - TesterBenchmark + профайлер. И, конечно, находить разумную середину между особенностями тестера и реала. MT4Orders так и написан. Там ставка была сделана на быструю работу в тестере и идеальную работу на реале. Для этого нужно понимать, что некоторые (иногда дорогостоящие) проверки в том же тестере делать не нужно, что необходимы на реале. За счет этого получается сильно экономить. Ну и кеширование той же истории и т.д. Т.е. нужно писать библиотеки, которые в своих потрохах иногда имеют разные логики для тестера и реала. Trade.mqh, к сожалению, не такая библиотека.
Давайте возьмем скромную задачу - сделать FAQ по ускорению оптимизации.
Альтруизм - это иногда хорошо. Но время принадлежит не мне, а Семье.
Скромными кодами и рецептами делюсь. Это видится достаточным.
Никакими секретами не владею.
И правильно делает. Это так же логично, как не делать ChartRedraw после изменения свойств объекта. Используя терминологию
ChartRedraw должен вызываться после массовых write, а не после каждой.
Да, но если у меня маленький канвас, скажем, 130х80 пикселей, что составляет менее 1% от общего окна, и мне нужно выводить в него текущую информацию. Получается, что в МТ4 я могу это сделать без перерисовки всего экрана с помощью Update(false), а в МТ5 мне придется каждый раз перерисовывать весь экран. А это уже на пару порядков более ресурсоёмко. И это уже не тест, а рабочая тема.
Уверен, что никогда экран не перерисовывается частично при канвасе и любом другом действии.
Альтруизм - это иногда хорошо. Но время принадлежит не мне, а Семье.
Скромными кодами и рецептами делюсь. Это видится достаточным.
Никакими секретами не владею.
Скромность - это здорово! Я тоже скромный чел. Альтруизм - это к усопшей матери Терезе в большинстве случаев. Хотя, иногда и у меня прорастают корни этой нехорошей болезни - альтруизма )))
Уверен, что никогда экран не перерисовывается частично при канвасе и любом другом действии.
Да, был не прав. Ошибся я с утверждением, что ResourceCreate без ChartRedraw в MT4 перерисовывает каждый раз канвас. Он это делает от случая к случаю, тогда как МТ5 этого вообще не делает.
Да, конечно, я туплю. Ведь на уровне железа контекст экрана не способен менять лишь часть экрана, а только весь полностью.
Это я понял когда ввел небольшую задержку Sleep(10):