XTester 0.0.88: перенос торговых стратегий в XTester

XTester 0.0.88: перенос торговых стратегий в XTester

Стратегию с другой платформы редко удаётся перенести простой заменой команд. Даже когда новый код собирается без ошибок, сделки могут измениться: одна программа пересчитывает сигнал внутри свечи, другая иначе ведёт состояние позиции или не поддерживает нужный тип ордера.

В версии 0.0.88 исходный код стратегии можно загрузить прямо в XTester. Конвертер разбирает торговые правила и создаёт отдельный проект на C#. Если точный перенос невозможен, пользователь видит различие и выбирает, как с ним поступить.

Как проходит конвертация

Исходником может быть файл, папка, архив, вставленный код, HTTPS-ссылка или Git-репозиторий. XTester работает с Pine Script, MQL4 и MQL5, Python-фреймворками, EasyLanguage, PowerLanguage и C#-стратегиями из других сред. Код на других языках XTester также пытается разобрать, если его структура доступна для анализа.

Код при загрузке не запускается. Сначала XTester находит в нём условия входа и выхода, параметры, правила расчёта объёма, работу с ордерами и состояние, которое сохраняется между событиями. Каждый найденный элемент остаётся связан с конкретным файлом и строками исходника.

Затем эти правила сравниваются с тем, что умеет XTester. Если прямого аналога нет, конвертер показывает различие и возможные способы переноса. Решение остаётся за пользователем. Можно принять рекомендацию, выбрать другой способ переноса, задать свой вариант или исключить этот блок.

Это касается, например, внутрибарных расчётов, нестандартных ордеров, внешних библиотек и закрытых индикаторов. Если без отсутствующей зависимости стратегию восстановить нельзя, XTester остановит конвертацию и укажет причину.

После согласования спорных мест система генерирует C#-проект и собирает его штатным компилятором. Если сборка завершилась с ошибкой, можно запустить исправление ещё раз или открыть код во встроенном редакторе. Успешная компиляция ещё не завершает проверку: XTester повторно сверяет проект с правилами, найденными в исходнике. Эта проверка находит пропущенные выходы, ордера и изменения состояния, которые не выявляет компилятор.

Что остаётся после переноса

Новый проект создаётся отдельно и не заменяет стратегию, которая уже открыта в XTester. Вместе с кодом сохраняются исходные материалы, принятые решения и отчёт о конвертации. Прерванную работу можно продолжить после перезапуска программы.

В отчёте видно, какие части перенесены напрямую, какие изменены по выбранному варианту и что перенести не удалось. XTester не рассчитывает условный процент совпадения: он скрывал бы конкретные различия и всё равно не доказывал бы равенство результатов.

Последний этап остаётся за пользователем. Проект нужно открыть в Симуляторе и проверить на своих данных и настройках. Исторические данные, комиссии и правила исполнения на платформах различаются, поэтому могут различаться и результаты. Результат переноса — C#-проект и отчёт с различиями, которые нужно проверить.

Материал носит информационный характер и не является инвестиционной рекомендацией. Результаты бэктеста не гарантируют будущую доходность.