Особенности и ограничения тестирования торговых стратегий в MetaTrader 4

MetaQuotes | 14 сентября, 2005

Введение

Эта статья поможет больше узнать об особенностях и ограничениях тестера торговых стратегий в 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() )

    Это сделано ради ускорения тестов и экономии пространства на диске. Если выводить полные логи, то файлы журналов нередко занимают сотни мегабайт.

  • Графические объекты реально не выставляются

    Объекты отключаются ради ускорения тестирования.

  • Используется функция "Пропустить бесполезные результаты"

    Чтобы не засорять таблицу и график результатов тестирования, используется возможность пропуска очень плохих результатов. Отключается в контекстном меню вкладки "Результаты оптимизации" -> "Пропустить бесполезные результаты".