Проводя какие-то тесты роботов, каждый из нас предполагает, что результаты будут достоверны. Однако достоверность результатов зависит от многих факторов. И тесты могут и будут генерировать ошибки. Погрешности тестирования неизбежны.
Вы должны понимать, что любое тестирование имеет погрешность. Более того, погрешности эти в разных торговых платформах разные. Написав торгового робота в OsEngine, MT4, TsLab, мы рискуем получить совершенно разные итоговые результаты.
Что может рождать эту погрешность в тестах:
Давайте об этом поговорим.
Торговая логика робота, генерирующая логические нонсенсы.
Рассмотрим сразу пример. Вводные:
Очень простая логика. Но, не осознавая логики работы тестера и как подаются в него данные, можно себе просто рисовать прибыльную эквити таким образом.
Что в примере будет происходить на самом деле:
ВАЖНО!
В данном примере, подписываясь на событие открытия позиции и выставляя в нём профит/стоп-приказы, для отсутствия погрешностей и логических ошибок тесты должны проводиться НА ТИКОВЫХ ДАННЫХ. Либо следует изменить Вашу логику, чтобы робот совершал какие-то действия с профитами и стопами по завершению свечи. Одновременно с этим выставлял ТОЛЬКО СТОП или ТОЛЬКО ПРОФИТ.
Логические нонсенсы – самое частое и опасное применение тестера/оптимизатора, которое только может быть. В рамках него, не разбираясь во внутреннем устройстве тестера, пользователь может себе прибыль НАРИСОВАТЬ.
Условности в исполнении ордеров.
Рис. 1. Настройки исполнения ордеров.
Лимитные ордеры в целом могут быть исполнены следующим образом:
Маркет ордеры могут быть исполнены следующим образом:
Данные для тестирования.
Свечи имеют в себе всего четыре значения. И если тесты идут на них, некоторые типы заявок на свечном тестировании вносят существенную долю ошибки:
Тиковые данные в целом дают результат лучше, если использовать вышеописанные ситуации, но также не являются 100% гарантией того, что Ваши ордеры исполняются именно там, где это было бы в реальной торговле. Проблемы тиковых данных:
Архитектура работы модуля для тестирования (векторный/событийный).
Векторная архитектура тестирования – способ проведения тестов, при котором данные берутся сразу за весь период, а торговый алгоритм бежит по этим данным в цикле, совершая какие-то торговые действия.
Особенности:
Событийная архитектура тестирования – способ проведения тестов, когда создаётся, так называемый, эмулятор биржи. Он старается на основе имеющихся данных, выдавая их последовательно, сделать так, чтобы робот не понимал, торгует он в тестере или в реале.
Особенности:
Так что же делать?
Принять эту данность как есть. Понимать, что погрешность в любом случае будет. И для массовых тестов всё равно придётся применять свечи, допуская, что результаты тестирования могут отличаться от того, что будет в реальности на какую-то погрешность.
Комментарии