Портфель торговых стратегий в XTester: общий капитал, риск и новая Studio

Портфель торговых стратегий в XTester: общий капитал, риск и новая Studio

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

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

Почему портфельный бэктест не сводится к сложению отчётов

Отдельный тест отвечает на вопрос, как стратегия работала бы при заданных условиях. Но если каждой стратегии дать весь условный счёт, а потом сложить её результат с остальными, получится модель с несколькими независимыми источниками капитала. Реальный общий баланс так не работает.

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

Поэтому в совместной симуляции важны общий доступный капитал, порядок событий, заявки и исполнения. Для каждого алгоритма нужно сохранять его вклад в результат, а для счёта в целом учитывать комиссии, ограничения и совокупную просадку. Иначе портфельный отчёт будет показывать результат, который нельзя получить при выбранных условиях.

Сначала стоит проверить устойчивость самих стратегий: для этого полезны walk-forward и out-of-sample-проверки. Затем проверять, что происходит при их совместной работе. Один этап не заменяет другой.

Что меняется с новой XTester Studio

Studio строится на Code - OSS, открытой основе Visual Studio Code. Это собственное приложение XTester, а не требование установить VS Code и найти к нему расширение. Редактор и рабочее пространство берём из готовой основы; торговый движок XTester на C#/.NET сохраняем и отделяем от Windows-интерфейса.

Во внутреннем реестре от 3 сентября зафиксирован первый рабочий сценарий Studio: от C#-проекта через компиляцию и данные до бэктеста, графика, сделок и статистики. Это не означает полного переноса возможностей текущего XTester: отдельные подсистемы ещё предстоит перенести и проверить.

Первый публичный этап планируем показать в начале октября. Его задача — дать рабочую среду для C#-стратегий и исторической проверки, а не сразу включить все будущие функции. Подробности выбранной основы есть в статье об архитектуре XTester Studio.

Текущая Windows-версия развивается отдельно. Мы выпустили 91-ю предварительную версию XTester; это не релиз мультиплатформенной Studio и не выпуск описываемого здесь портфельного слоя.

Каким мы видим программируемое управление риском

Задумка состоит в том, чтобы объединять собственные и сторонние стратегии в один портфель. В перспективе одним из источников может стать маркетплейс. Но возможность подключать стратегии не должна зависеть от наличия магазина: сначала нужен понятный общий способ работы с ними.

Над набором стратегий мы рассматриваем отдельный управляющий модуль — оркестратор. Торговая стратегия предлагает действия на своём рынке. Управляющий видит весь счёт и распределяет допустимый риск с учётом состояния рынка, истории работы алгоритмов и уже открытых позиций.

Капитал и риск здесь не одно и то же. Одинаковый выделенный капитал не означает одинаковую нагрузку на портфель. Имеют значение инструмент, волатильность, плечо, размер позиции и её связь с остальными позициями.

Уровень На какой вопрос отвечает
Отдельная стратегия Есть ли торговый сигнал по её правилам?
Управляющий модуль Какой риск можно выделить этой стратегии сейчас?
Проверка ограничений Укладывается ли действие в установленные пределы счёта?
Пользователь Какие правила и полномочия допустимы?

Рассматриваем возможность задавать правила управляющего кодом или подключать их отдельным модулем. Такой подход нужен для сравнения разных вариантов: фиксированных лимитов, распределения с учётом волатильности или более сложных алгоритмов. Более сложный управляющий не обязательно окажется лучше: его правила тоже можно подогнать под историю.

Ручное управление, ИИ и проверка всей системы

Автоматическое распределение риска не должно превращать портфель в непрозрачный механизм. В панели нужны выделенный и использованный риск, статистика стратегий и журнал решений: что изменилось, по какому правилу и с какого момента.

Пользователь должен иметь возможность изменить лимит, запретить новые входы или вернуть стратегию под автоматическое управление. Запрет новых входов и закрытие существующих позиций — разные действия. Ручное ограничение нельзя незаметно отменять при следующем пересчёте оркестратора.

Рассматриваем и участие ИИ-ассистента через MCP: анализ состояния, объяснение решений, предложения и разрешённые действия. Сам протокол не задаёт права и не обеспечивает контроль риска. Для этого нужны отдельные ограничения в системе исполнения, которые ассистент не может обойти.

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

Пока портфельный слой — концепция в подробной проработке. Следующий содержательный шаг для неё — определить общий интерфейс стратегий, правила учёта капитала и проверяемый сценарий совместного теста. Именно эти вещи должны предшествовать красивой итоговой кривой доходности.

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

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