Особенности и ограничения тестирования торговых стратегий в MetaTrader 4 [ en | cn ]
Введение
Эта статья поможет больше узнать об особенностях и ограничениях тестера торговых стратегий в MetaTrader 4.
Особенности работы тестера стратегий на истории
Некоторые функции отрабатываются/пропускаются без вывода
Это Sleep(), Alert(), SendMail(), SpeechText(), PlaySound(), MessageBox(), WindowFind(),
WindowHandle(), WindowIsVisible()
Торговля разрешена только на тестируемом символе, портфельного тестирования нет
Попытки совершить сделку на чужом символе вернут ошибку
Размерность и кратность лотов, комиссии и свопы берутся из настроек текущего активного аккаунта
Перед тестированием необходимо убедиться, что терминал имеет хотя бы один активизированный аккаунт
в списке окна "Навигатор".
Моделируются все свопы, маржевые требования, expirations, GTC-ордера
Тестирование ведется максимально близко к условиям торгового сервера. Но на кросскурсах могут
быть некоторые погрешности в оценке маржевых требований из-за отсутствия точной информации
о курсах конвертации в каждый момент времени.
Нулевой бар другого периода по тому же самому тестируемому символу моделируется приблизительно
Open = корректный Open, Close = корректный Close, Low = min (Open,Close), High = max (Open,Close),
Volume = итоговый Volume (неверный)
Для сделок используется режим Instant Execution с отработкой по текущим ценам
Отработка ордеров, открытие/закрытие без проскальзываний
Тестирование останавливается после StopOut
Недельные, месячные и нестандартные периоды не тестируются
Валюту депозита можно менять, но курсы конвертации фиксируются, а используются текущие доступные
Пока нет задержек в исполнении торговых операций
Планируется внести настраиваемую задержку в отработку сделок
Account History доступен на всю глубину, а в реале это зависит от настроек
Если активно используются другие символы и периоды, то желательно их предварительно закачать на всю доступную глубину
При потиковом моделировании тестер самостоятельно докачивает все необходимые таймфреймы тестируемого символа
Использование функции MarketInfo формирует ошибку ERR_FUNCTION_NOT_ALLOWED_IN_TESTING_MODE(4059), однако выдается корректная информация о текущих ценах тестируемого символа, о размере уровней стопов, размере пункта, размере спреда любого символа, присутствующего в окне котировок.
Особенности работы оптимизатора торговых стратегий
В журнал логов ничего не выводится ( включая функцию Print() )
Это сделано ради ускорения тестов и экономии пространства на диске. Если выводить полные
логи, то файлы журналов нередко занимают сотни мегабайт.
Графические объекты реально не выставляются
Объекты отключаются ради ускорения тестирования.
Используется функция "Пропустить бесполезные результаты"
Чтобы не засорять таблицу и график результатов тестирования, используется возможность пропуска
очень плохих результатов. Отключается в контекстном меню вкладки "Результаты оптимизации" -> "Пропустить бесполезные результаты".
Отчеты позволяют быстро сравнивать между собой как различные эксперты, так и результаты работы одного и того же эксперта с различными параметрами. Данная статья позволяет научиться читать такие отчеты и грамотно интерпретировать полученные результаты.