Навыки Codex для работы со стратегиями
npx create-tradejs устанавливает в .codex/skills проекта полный набор навыков
TradeJS с контрольными суммами. Каждым процессом управляет один основной навык,
поэтому отдельный эксперимент с логикой стратегии не смешивается с полным
исследованием, анализом фильтра, отчётностью и изменениями в рабочей среде.
Выбор основного навыка
$strategy-improvement-researchвыбирает семейства гипотез, ведёт ограниченный журнал тестов, выбирает лучшего кандидата и фиксирует логику стратегии вместе с детерминированным фильтром.$strategy-backtest-researchреализует или запускает один заранее зарегистрированный эксперимент с логикой стратегии. Он возвращает проверенные результаты и не выбирает следующего кандидата.$ai-train-local-researchиспользуется после фиксации логики стратегии и экспорта данных. Он анализирует детерминированный фильтр и не возвращается к выбору логики.
Полное исследование улучшений последовательно использует оба этапа. Прямой вызов специализированного навыка не запускает весь процесс.
Вспомогательные навыки
| Навык | Назначение |
|---|---|
$strategy-backtest-research | Выполнить одну ограниченную реализацию или заранее зарегистрированный бэктест логики стратегии |
$ai-train-local-research | Исследовать детерминированный фильтр для зафиксированной логики и экспорта данных |
$backtest-config-redis | Прочитать именованную сетку параметров из локального Redis без переноса в рабочую конфигурацию |
$save-strategy-config-from-backtest | Явно перенести исследовательскую сетку параметров в хранящуюся в Git декларацию Project |
$runtime-parity-mismatch-analysis | Разобрать готовый артефакт с расхождениями до решения о новом воспроизведении |
Навыки по этапам работы
| Навык | Назначение | Может изменить рабочую среду? |
|---|---|---|
$strategy-candidate-report | Показать последнего явно выбранного кандидата, точный конфиг, свежесть, график и метрики | Нет |
$strategy-candidate-compare | Сравнить кандидата с точной запущенной композицией на общем периоде | Нет |
$strategy-improvement-plan | Проанализировать исходный код и результаты, затем расставить причинные гипотезы по приоритету | Нет |
$strategy-improvement-research | Начать ограниченное исследование логики и детерминированного фильтра, затем зафиксировать лучшего воспроизводимого кандидата | Нет |
$strategy-period-revalidate | Перепроверить рабочую версию и сильных старых кандидатов на расширенном общем периоде без подстройки | Нет |
$strategy-forward-start | Опубликовать и запустить последнего допустимого кандидата — либо явно названного воспроизводимого исторического кандидата — с MAX_LOSS_VALUE=1 | Да |
$strategy-forward-status | Проверить идентичность, совпадение решений, ордера, исполнение и нормализованные результаты работы | Нет |
$strategy-risk-scale | Изменить только MAX_LOSS_VALUE у той же запущенной композиции | Да |
$strategy-release оставлен как устаревший маршрутизатор для совместимости. Он выбирает ровно один
узкий навык и не объединяет исследование, публикацию, развёртывание и изменение риска.
Промпты остаются короткими:
$strategy-candidate-report MarketFlushReversal
$strategy-improvement-research MarketFlushReversal
$strategy-forward-start MarketFlushReversal
Установка и обновление
Исходники навыков хранятся в репозитории фреймворка TradeJS. Все официальные навыки
входят в один манифест с SHA-256. Созданные проекты не ведут независимые копии. Весь набор
обновляется только через явно выбранную версию create-tradejs:
npx create-tradejs@<approved-version> --update-skills .
Команда обновления сохраняет несвязанные пользовательские навыки и отклоняет изменения уже управляемого файла. Если новая версия впервые включает уже существующий официальный навык, явное обновление заменяет одноимённый файл версией из набора.
Корни исследования
Исследования исходного кода разделяют три каталога:
PROJECT_CWDхранит.env, конфигурацию, наборы данных, заметки и отчёты.TRADEJS_SOURCE_REPOSITORY_ROOTуказывает точную рабочую копию Git фреймворка или отдельной стратегии, чью сборку и историю изменений исследует навык.TRADEJS_FRAMEWORK_REPOSITORY_ROOTуказывает собранную копию среды исполнения фреймворка. Она обязательна для абляционного теста фильтра, когда исходный код живёт в отдельном репозитории стратегии. Если исследуется сам фреймворк, обе переменные могут указывать на одну рабочую копию.
Инструмент абляции импортирует strategyEntries из сборки отдельной стратегии. Так принятый
путь к стратегии не будет незаметно заменён опубликованным пакетом из Project.
Как выбирается кандидат
Навык не оптимизирует только общую прибыль, долю прибыльных сделок или прибыль за последние 7 дней. Сначала он проверяет причинность и качество данных, сверяет трассировку и требует положительное ожидание на единицу риска после издержек на данных вне обучающей выборки. Затем он оценивает вероятностный и скорректированный коэффициент Sharpe, просадку, хвостовые убытки, время восстановления, серии убытков и убыточных месяцев. Также учитываются стабильность по скользящим окнам и рыночным режимам, концентрация, устойчивость к издержкам и исполнимая частота сделок.
Прибыль за весь период и доля прибыльных сделок остаются важными экономическими диагностиками, но не являются достаточными сами по себе. Окна 7d/30d/180d описывают текущий режим. Их вес зависит от числа независимых событий: меньше 20 — недостаточная мощность, 20–49 — диагностический уровень, 50 и больше — уровень отбора. Разреженный хвост не требует ждать 7, 30 или 180 календарных дней перед перспективным тестом с риском 1.
Каждый вызов $strategy-improvement-research создаёт новую линию исследования. До новых гипотез навык
перепроверяет сильнейших старых кандидатов на новом общем периоде. Он не
останавливается после аудита или первого неудачного раунда: работа завершается,
когда зафиксирован воспроизводимый лучший кандидат, исчерпан ограниченный
бюджет новых вариантов либо для всех оставшихся семейств записана неустранимая
причина отказа.
Что делает $strategy-forward-start
$strategy-forward-start <Strategy> — явная граница полномочий для
ограниченного перспективного теста в рабочей среде. По умолчанию навык берёт последнего
кандидата с проверенной контрольной суммой и допуском к такому тесту, а затем устанавливает
MAX_LOSS_VALUE=1.
- Если стратегии нет в целевом развёртывании, навык добавляет и включает её полную проверенную декларацию.
- Если запущен другой пакет, конфигурация логики, детерминированный фильтр, контекст или правило направления, навык делает одну контролируемую замену.
- Если точная композиция с риском 1 уже запущена, навык не меняет конфигурацию и повторно проверяет развёртывание без побочных изменений.
Явно названный исторический кандидат
Оператор может вместо этого явно назвать другого исторически перспективного кандидата для обучения в перспективном тесте. Это не переписывает прежний выбор и не превращает противоречащие свежие данные в положительный исторический вердикт. Точные выражение, правило направления, итоговая конфигурация, история исходников и данных, хеши результатов, метрики полного периода и график должны оставаться воспроизводимыми. На максимально покрытом периоде чистая прибыль должна быть положительной, а профит-фактор — выше 1.
До развёртывания Codex создаёт новый неизменяемый артефакт с разрешением оператора, который ссылается на исходный выбор и противоречащие либо статистически слабые данные. Отсутствующие хеши, неположительная экономика максимального периода или необходимость новой подстройки блокируют запуск. Этот режим меняет только полномочие на перспективный тест с риском 1 и не создаёт историческую валидность задним числом.
Если кандидат содержит ещё не опубликованный исходный код стратегии, навык запускает настроенный
процесс выпуска. Он коммитит и отправляет весь диапазон релиза, публикует неизменяемый пакет,
устанавливает его точную версию и lock-файл в Project, а затем коммитит и отправляет целиком хранящийся
в Git файл tradejs.config.ts. После развёртывания точной версии Project навык проверяет strategyRevision и
deploymentCompositionId.
Навык не выдумывает целевую рабочую среду. Заранее должны существовать точные пользователь, схема
развёртывания, торговый счёт, коннектор и процессы публикации и развёртывания. create-tradejs добавляет
навыки и локальный проект, но не создаёт учётные данные реестра, ключи биржи, рабочий хостинг или
фоновый процесс без внешнего управления. Если не хватает авторизации или точной привязки, Codex останавливается
на этой границе и показывает точное действие для пользователя.
Увеличение риска — отдельное решение
Используйте $strategy-risk-scale <Strategy> только после анализа данных перспективного теста.
Навык сохраняет точные пакет, логику стратегии, фильтр, контекст, набор символов и правило
направления. Он меняет только MAX_LOSS_VALUE и не более чем на один разрешённый шаг. Решение зависит
от событий, а не от календаря. Совпадение решений и исполнения, ожидаемая доходность после издержек,
нормализованные просадка и хвостовый убыток, проскальзывание, концентрация и число независимых сделок
важнее факта «прошло 30 дней».
Требования к счёту, неизменяемой сборке и среде исполнения описаны в разделе Запуск стратегии в рабочем окружении.