Очень сильно тормозят конструкции сравнения с логическим оператором
"И"
Например если поменять конструкцию типа
if( оператор1>0 && оператор2<0 ) {.......}
На конструкцию типа
if( оператор1>0 ) {
if( оператор2<0 ) {....... }}
Скорость вырастет в 2-3 раза (визуально видно).
Это значит, в MQL4 идёт полная проверка всего выражения, т.е. даже
при ложном значении (оператор1>0) проверка пойдёт дальше и на
(оператор2<0).
Можно для ускорения и вложенными if-ами проверять.
Можно для ускорения и вложенными if-ами проверять.
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Вот отформатированный оригинальный код (файл TestOriginal.mq4): Как видно по коду, эксперт использует обычные мувинги по четырем таймфреймам (M1, M5, M15, M30) для подтверждения точки входа. Я провел тест на EURUSD M1, использовав 201 билд и данные из History Center с 1999 года (2 838 299 баров М1). Эксперт настолько тормозит, что его практически невозможно использовать. Пришлось тестировать всего 2 дня с 2006.05.01 по 2006.05.03:
Тест прошел за 24 минуты 9 секунд на Athlon 64 X2 Dual Core 4800+, RAM 4Gb. Логи находятся в приложенном файле Original.txt :
К сожалению, этот код глубоко ошибочен и абсолютно неоптимизированный.
Рассмотрим его в детялях:
В файле TestOptimized.mq4 находится оптимизированный эксперт, который проходит тест за 2 минуты 4 секунды, что в 12 раз быстрее оригинального. Логи в файле optimized.txt
Эту версию эксперта можно еще более ускорить. Если кто хочет, то опубликуйте свои варианты, пожалуйста.