В последних сборках MT4 добавлены ОЧЕНЬ ограничительные условия для индикаторов.
В первые годы существования MT4 это было не так жестоко, как в наши дни.
ФАКТ №1: fileIO в 10 000–100 000 раз медленнее, чем memIO:
Это означает, что от «предварительного кэширования» значений на диск нет никакой пользы.
ФАКТ № 2: Производительность обработки имеет ЖЕСТКИЙ ПОТОЛОК:
Все, да ВСЕ, пользовательские индикаторы, которые используются в терминале MetaTrader4 (непосредственно в графическом интерфейсе или косвенно, через шаблон(ы), или вызываются через iCustom()
вызовы и в тестере стратегий через .tpl
+ iCustom()
) ВСЕ ЭТИ ПОДЕЛИТЬСЯ В ОДНОЙ ТЕМЕ...
ФАКТ № 3: Тестер стратегий наиболее требователен к скорости:
Таким образом, удалите все, действительно ВСЕ, неосновные индикаторы из шаблона tester.tpl
и сохраните его как «пустой», чтобы избежать какой-либо части такой неосновной обработки.
Затем перепроектируйте пользовательский индикатор, где это возможно, чтобы избежать ненужных операций ЦП и распределения памяти.
Я помню дизайн пользовательских индикаторов с действительно глубокими извилинами, которые можно было бы перепроектировать, чтобы сохранить только треугольную разреженную матрицу с необходимыми обновлениями, что увеличило скорость обработки индикатора более чем в 10 000 раз strong>, так что правильная проверка кода.
Итак, лучше запустить отдельный терминал MetaTrader4 только для обратного тестирования, чем ждать много часов только из-за несжимаемого характера числовой обработки в условиях пробок при совместном использовании CustomIndicator-solo-Thread, который никто не планирует. может улучшиться.
ФАКТ №4: ОС может повысить приоритет процесса:
Попав в дьявольскую зону, обычной практикой является раскрутка PRIO для StrategyTester MT4, вплоть до «RealTime PRIO» в инструментах O/S.
Можно даже дополнительно «заблокировать» этот MT4-процесс на определенном процессорном ядре (ядрах) и настроить все остальные процессы с соседним CPU-core-AFFINITY, чтобы эти две отдельные группы процессов не перескакивали один на процессор другой группы. -ядро(я). Сложно, но если вы хотите добиться максимальной производительности, это необходимо.
person
user3666197
schedule
23.05.2017