Тестер стратеги не работает или выдает ошибки MetaTrader 4
Привет коллеги! Первый раз у меня не совсем получилось, потом я понял, почему нужно было правильно и своевременно закрыть и перезапустить терминал, а также закрыть тестер стратегий, заменив советника на индикатор, чтобы корректно удалить все файлы, чтобы старая история не загружалась с файлов в тест.
Проблемы чаще всего возникают из-за отсутствия исторических данных, несовместимости советника или технических ограничений.
Если говорить простым языком: терминал пытается построить бары для теста, но видит, что на старшем таймфрейме максимальная цена (High) зафиксирована на уровне `77507.24`, а если сложить вместе все минутные свечи внутри этого часа, то там максимальная цена доходит только до `77471.17`. МТ4 не понимает, откуда взялась эта разница, теряет доверие к истории и выдает ошибку.
Из-за этого качество моделирования при тесте падает, а результаты могут быть неточными (или тест выдает ошибки вообще не работает, прерывается и т.д.).
Как исправить тестер стратегий?
Чтобы убрать ошибку, нужно полностью обновить и правильно перегенерировать историю котировок в которой появится новые временные данные и пройти по всем тайм фреймам которые вы будете тестировать; не забывайте закрыть тестер стратегии и перед удалением, убрать советники; к примеру я выставил в тестер стратегии вместо советника индикатор и закрыл тест, чтобы корректно удалить все файлы; закрывайте, проверяйте, перезагружайте терминал.
После исправления: Перед тестом проверьте советник на правильность TP и Stop для тестируемой пары.
Пошаговые действия:
1. Откройте терминал МТ4.
2. Перейдите в папку данных терминала (в МТ4: `Файл` -> `Открыть каталог данных`).
3. Зайдите в папку `history` -> далее в папку вашего брокера (например, `Alpari-Demo` или имя вашего сервера).
4. Найдите и удалите все файлы для тестируемой валютной пары (например, все файлы, начинающиеся с (XAUUSD или EURUSD с расширением hst).
Шаг 1. Очистка старой истории
1. Откройте терминал МТ4.
2. Перейдите в папку данных терминала (в МТ4: `Файл` -> `Открыть каталог данных`).
3. Зайдите в папку `history` -> далее в папку вашего брокера (например, `Alpari-Demo` или имя вашего сервера).
4. Найдите и удалите все файлы для тестируемой валютной пары (например, все файлы, начинающиеся с (XAUUSD или EURUSD с расширением hst).
Не переживайте, терминал скачает их заново.
5. Перейдите на уровень назад закройте тест или терминал, найдите папку `tester` -> `history` и тоже полностью очистите её.
1. Откройте МТ4, наведи мышкой на сервис чтоб открыть Архив котировок.
5. Перейдите на уровень назад закройте тест или терминал, найдите папку `tester` -> `history` и тоже полностью очистите её.
Шаг 2. Загрузка чистой минутной истории (M1)
1. Откройте МТ4, наведи мышкой на сервис чтоб открыть Архив котировок.
2. Нажмите F2 (откроется Архив котировок).
3. Найдите вашу валютную пару, дважды кликните на таймфрейм (M1), чтобы таблица справа заполнилась данными.
4. Нажмите кнопку «Загрузить». МТ4 скачает базовую минутную историю с серверов которые у вас есть к примеру MetaQuotes.
Поскольку ошибка возникает из-за несовпадения M1 со старшими графиками, их нужно сгенерировать заново строго из скачанного М1.
1. Откройте обычный график этой валютной пары на таймфрейме M1.
2. В окне *Навигатор* найдите раздел Скрипты -> PeriodConverter (он встроен в МТ4 по умолчанию).
3. Перетащите скрипт на график M1.
4. В настройках скрипта (вкладка «Входные параметры») укажите множитель для нужного таймфрейма.
- Например, если вы тестируете советник на H1, введите 60, если на H4, запустите скрипт еще раз и введите 240.
5. Нажмите ОК. Во вкладке «Эксперты» (снизу терминала) появится запись, что файлы успешно записаны.
Если возиться со скриптами не хочется, после полной очистки истории (Шаг 1) и загрузки M1 (Шаг 2):
1. Откройте график нужной пары.
2. Переключайтесь по очереди по всем таймфреймам: M1- M5 - M15 -> M30 -> H1 -> H4 -> D1.
3. На каждом таймфрейме зажимайте клавишу 'Home' на клавиатуре, чтобы график прокрутился максимально в левую сторону (в прошлое) терминал сам подгрузит и пересчитает бары.
После этого запустите тест заново. Ошибка должна исчезнуть, а качество моделирования станет максимально возможным для стандартного тестера МТ4 (до 90%).
3. Найдите вашу валютную пару, дважды кликните на таймфрейм (M1), чтобы таблица справа заполнилась данными.
4. Нажмите кнопку «Загрузить». МТ4 скачает базовую минутную историю с серверов которые у вас есть к примеру MetaQuotes.
Шаг 3. Генерация старших таймфреймов (скрипт PeriodConverter)
Поскольку ошибка возникает из-за несовпадения M1 со старшими графиками, их нужно сгенерировать заново строго из скачанного М1.
1. Откройте обычный график этой валютной пары на таймфрейме M1.
2. В окне *Навигатор* найдите раздел Скрипты -> PeriodConverter (он встроен в МТ4 по умолчанию).
3. Перетащите скрипт на график M1.
4. В настройках скрипта (вкладка «Входные параметры») укажите множитель для нужного таймфрейма.
- Например, если вы тестируете советник на H1, введите 60, если на H4, запустите скрипт еще раз и введите 240.
5. Нажмите ОК. Во вкладке «Эксперты» (снизу терминала) появится запись, что файлы успешно записаны.
Альтернативный (быстрый) вариант
Если возиться со скриптами не хочется, после полной очистки истории (Шаг 1) и загрузки M1 (Шаг 2):
1. Откройте график нужной пары.
2. Переключайтесь по очереди по всем таймфреймам: M1- M5 - M15 -> M30 -> H1 -> H4 -> D1.
3. На каждом таймфрейме зажимайте клавишу 'Home' на клавиатуре, чтобы график прокрутился максимально в левую сторону (в прошлое) терминал сам подгрузит и пересчитает бары.
После этого запустите тест заново. Ошибка должна исчезнуть, а качество моделирования станет максимально возможным для стандартного тестера МТ4 (до 90%).


