XTester Studio на базе Code - OSS и XTester Engine

XTester Studio на базе Code - OSS и XTester Engine

Мы подготовили архитектурный план XTester Studio — новой версии XTester для macOS и Windows.

Редактор и основную оболочку возьмём из Code - OSS. Это открытая часть Visual Studio Code, которую Microsoft развивает вместе с сообществом и публикует по лицензии MIT. В ней уже есть редактор кода, файловое дерево, вкладки, поиск, Git, терминал, настройки, темы и система расширений.

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

Пользователь получит отдельное приложение XTester Studio со своим брендом, встроенными модулями, установщиками и обновлениями. Устанавливать Visual Studio Code отдельно не потребуется.

Статус проекта: мы выбрали общее направление и согласовали архитектурную концепцию, но разработка ещё не началась. Сначала проведём отдельный architecture spike. Он должен подтвердить, что Code - OSS можно собрать как продукт XTester, а существующий движок — отделить от WinForms и запустить на macOS и Windows. После этого уточним объём первого этапа и план работ. Целевая дата первого публичного этапа — 1 октября 2026 года.

Берём то, что уже работает

Code - OSS уже включает основные части среды разработки:

  • Monaco Editor Core отвечает за редактирование кода;
  • workbench даёт Explorer, вкладки, меню, панели и строку состояния;
  • Electron используется для настольных сборок;
  • есть поиск, команды, горячие клавиши, Settings, Problems и Output;
  • доступны терминал, Git/Source Control и инфраструктура отладки;
  • модули расширения запускаются через extension host в отдельном процессе;
  • есть темы, локализация и готовые UI-компоненты.

К редактору и оболочке Code - OSS добавятся модули XTester. Торговую логику перенесём из текущей версии: данные, модельное время, заявки, исполнения, комиссии, позиции, портфель и статистику.

XTester Studio будет собственной сборкой Code - OSS. Мы хотим как можно меньше менять исходное ядро, чтобы не усложнять будущие обновления. Во время architecture spike проверим, насколько этот подход работает на практике.

Что откуда берём

Часть продукта Что уже есть Что предстоит сделать для Studio
Редактор и оболочка Code - OSS: окна, вкладки, Explorer, поиск, команды, настройки, темы Бренд XTester, конфигурация продукта, установщики и обновления
Работа с кодом Monaco Editor Core, модель документов, навигация и интерфейсы диагностики Strategy Project, манифест, команды XTester и связь с движком
Рабочее пространство Git, терминал, Problems, Output и сохранение состояния Профили бэктеста, данные, Evidence и артефакты запусков
Торговый движок Текущий XTester: данные, симуляция, исполнение и статистика Отделить код от WinForms и запустить его как EngineHost
Графики и панели Webviews, custom editors и готовые поверхности Code - OSS Графики XTester, сделки, позиции, статистика и настройки симуляции
Расширения Extension host и extension API Встроенные модули XTester, проверенный каталог и правила безопасности

Code - OSS даст Studio редактор и рабочее пространство. Торговый движок возьмём из текущего XTester, предварительно отделив его от Windows-зависимого интерфейса.

Торговый движок переносим, а не переписываем

XTester Engine написан на C#/.NET. В нём уже есть значительный объём кода для данных, симуляции, исполнения и статистики. Переписывание этого кода на TypeScript, C++, Rust или Python заставило бы заново проверять порядок событий, модельное время, заявки, исполнения, комиссии, позиции и результаты стратегий.

Поэтому мы планируем сохранить C#/.NET-движок и постепенно отделить его от WinForms. В XTester Studio он должен запускаться отдельным процессом:

XTester Studio — Code - OSS / TypeScript
                    ↓ versioned local protocol
XTester EngineHost — C# / .NET
                    ↓
Data · Simulation · Execution · Research · Statistics

Такой запуск нужен, чтобы тяжёлый backtest не блокировал редактор. EngineHost должен перезапускаться независимо от интерфейса. Позже проверим, можно ли использовать EngineHost в Launcher, для задач без интерфейса и удалённых вычислений.

Пока это только требования к новой архитектуре. Их ещё предстоит проверить на прототипе и во время первого сквозного бэктеста.

Стратегия будет храниться как проект

Сейчас работа часто строится вокруг одного выбранного файла. Для Studio мы планируем многофайловый Strategy Project. Самостоятельного однофайлового формата в Studio не будет: при импорте отдельного файла XTester создаст папку-проект, манифест и стандартную структуру:

MyStrategy/
├── xtester.strategy.json
├── src/
├── tests/
├── models/
├── resources/
└── README.md

Редактор, Language Host и EngineHost должны работать со всем проектом. Git будет хранить все исходники, настройки и дополнительные файлы. Для каждого бэктеста будем фиксировать состояние всего проекта, а не только открытого файла.

В этот же формат позже можно добавить тесты, модели, параметры, Evidence и Strategy Bundle для Launcher. Сначала проверим саму модель проекта на C#-стратегии.

Языки будем добавлять поэтапно

Сначала планируем полностью поддержать C#. Так проще сохранить совместимость с существующим движком и стратегиями.

После C# хотим добавить Python для quant research, ML, NumPy и pandas. Затем — TypeScript/JavaScript. Остальные языки будем рассматривать только после того, как проверим совместимость и одинаковое поведение стратегий.

Для каждого языка понадобится свой Language Host и SDK. Торговый движок при этом останется общим. Рыночные данные, время, заявки, исполнения, комиссии, портфель, риск и статистика должны работать одинаково независимо от языка стратегии.

Предварительный план первого этапа

На первом этапе пользователь должен суметь открыть C#-проект, собрать его, запустить бэктест и увидеть результат в Studio.

Предварительно в него входят:

  1. отдельная сборка XTester Studio;
  2. запуск на macOS Apple Silicon и Windows x64;
  3. многофайловый C# Strategy Project;
  4. компиляция и диагностика всего проекта;
  5. отдельный XTester EngineHost;
  6. настройки симуляции и загрузка нужных данных;
  7. сквозной backtest на существующем движке;
  8. прогресс, логи и ошибки внутри Studio;
  9. график, сделки, позиции и базовая статистика;
  10. сохранение и восстановление рабочего пространства;
  11. установщики и smoke tests на обеих платформах.

Точный объём станет понятен после architecture spike. Если на отдельную часть потребуется больше времени или она поставит под вопрос выбранную архитектуру, перенесём её на следующий этап.

В первый этап не входят AI Studio, Research Lab, MCP, конвертеры, Python runtime, TypeScript runtime, Paper, Controlled-Live и CopyTrader. Сначала доведём до стабильной работы C#-стратегии и бэктесты.

Текущая Windows-версия XTester продолжит работать. Studio будет заменять её постепенно, по мере переноса и проверки функций.

Почему Code - OSS, а не готовый Visual Studio Code

Code - OSS и Visual Studio Code — не один и тот же продукт.

Code - OSS — открытый репозиторий под лицензией MIT. Visual Studio Code — готовая дистрибуция Microsoft со своим брендом, лицензией и дополнительными компонентами.

XTester Studio будет собран на Code - OSS. Бренд Microsoft, Visual Studio Marketplace, проприетарные сервисы и лицензии сторонних расширений автоматически в него не переходят. Каталог расширений, обновления и безопасность придётся настраивать отдельно. Расширения будем добавлять только после отдельной проверки лицензии, условий Marketplace, зависимостей, исполняемого кода и технической совместимости с собственной сборкой.

Целевая дата первого этапа

Мы ориентируемся на 1 октября 2026 года. Это целевая дата первого публичного этапа, а не обещание полного переноса XTester.

Перед выпуском нужно:

  • собрать XTester Studio на macOS и Windows;
  • запустить EngineHost отдельно от интерфейса;
  • провести сквозной backtest многофайловой C#-стратегии;
  • получить график и статистику из результата движка;
  • восстановить рабочее пространство после перезапуска;
  • пройти build, smoke и базовые parity checks на обеих платформах;
  • подготовить установщики.

Если эти проверки покажут проблему в архитектуре, мы изменим объём первого этапа или дату. Выпускать пустую оболочку только ради 1 октября не будем.

Ближайший практический шаг — architecture spike. Он должен ответить на три вопроса: собирается ли Code - OSS как отдельный продукт XTester, запускается ли существующий движок отдельно от WinForms и можно ли провести первый сквозной backtest на macOS и Windows.

Официальные источники по Code - OSS

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