Проведение тестов на роботах зачастую вызывает у нас ожидание достоверных результатов. Однако, их достоверность зависит от различных факторов, и ошибки в тестах неизбежны.
Вы должны понимать, что любое тестирование имеет погрешность. На итоговые результаты тестов может влиять торговая платформа, в которой написан робот, например, одна и та же торговая стратегия, реализованная в разных платформах, может дать разные результаты.
От чего может возникать погрешность в тестах:
Сразу рассмотрим пример. Вводные:
Непонимание работы тестера может привести к иллюзии успеха, если не учитывать особенности тестирования.
Что в примере будет происходить на самом деле:
Внимание!
В данном примере, подписываясь на событие открытия позиции и выставляя в нём профит/стоп-приказы, для отсутствия погрешностей и логических ошибок тесты должны проводиться НА ТИКОВЫХ ДАННЫХ. Либо следует изменить Вашу логику, чтобы робот совершал какие-то действия с профитами и стопами по завершению свечи. Одновременно с этим выставлял ТОЛЬКО СТОП или ТОЛЬКО ПРОФИТ.
Логические нонсенсы – самое частое и опасное применение тестера/оптимизатора, которое только может быть. В рамках него, не разбираясь во внутреннем устройстве тестера, пользователь может НАРИСОВАТЬ себе прибыль.
Рис. 1. Настройки исполнения ордеров.
В целом, лимитные ордеры могут быть исполнены следующим образом:
Маркет ордеры могут быть исполнены следующим образом:
Свечи имеют в себе всего четыре значения. Если тесты идут на них, некоторые типы заявок на свечном тестировании вносят существенную долю ошибки:
Тиковые данные в целом дают результат лучше, если использовать вышеописанные ситуации, но также не являются 100% гарантией того, что Ваши ордеры исполняются именно там, где это было бы в реальной торговле.
Проблемы тиковых данных:
Векторная архитектура тестирования – способ проведения тестов, при котором данные берутся сразу за весь период, а торговый алгоритм бежит по этим данным в цикле, совершая какие-то торговые действия.
Особенности:
Событийная архитектура тестирования – способ проведения тестов, когда создаётся, так называемый, эмулятор биржи. Он старается на основе имеющихся данных, выдавая их последовательно, сделать так, чтобы робот не понимал, торгует он в тестере или в реале.
Особенности:
Так что же делать?
Принять эту данность, как она есть. Понимать, что погрешность в любом случае будет. И для массовых тестов всё равно придётся применять свечи, допуская, что результаты тестирования могут отличаться от того, что будет в реальности на какую-то погрешность.
Удачных алгоритмов!
Комментарии открыты для друзей!
OsEngine: https://github.com/AlexWan/OsEngine
Поддержка OsEngine: https://t.me/osengine_official_support
Регистрируйся в АЛОР и получай бонусы: https://www.alorbroker.ru/open
Сайт АЛОР БРОКЕР: https://www.alorbroker.ru
Раздел «Для клиентов»: https://www.alorbroker.ru/openinfo/for-clients
Программа лояльности от АЛОР БРОКЕР и OsEngine: https://smart-lab.ru/company/os_engine/blog/972745.php