Перейти к основному содержимому

Проверка реальных решений через воспроизведение

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

Это диагностический инструмент: он не размещает ордера и не меняет настройки.

Воспроизведение развёртывания

Запускайте команду из проекта с tradejs.config.ts:

npx @tradejs/cli replay \
--user root \
--deployment production \
--days 7 \
--cacheOnly

Полезные параметры:

  • --startTime и --endTime задают точный период в формате Unix timestamp;
  • --tickers, --exclude и --tickersLimit временно меняют инструменты;
  • --cacheOnly запрещает обновлять историю;
  • --showTickersList печатает итоговый список без запуска;
  • --chart сохраняет компактные графики для страницы стратегий.

Без временного переопределения применяются инструменты развёртывания и ограничения selection.tickers отдельных стратегий.

Сбор журнала реальной работы

Для точного сравнения соберите записи на сервере, где выполнялся расчёт:

npx @tradejs/cli runtime-evidence \
--daily \
--user root \
--deployment production \
--publishDir output/runtime-evidence

--daily выбирает последнее полное окно 21:00–21:00 по московскому времени. Также можно задать --startTime и --endTime или интервал --hours. Набор содержит решения и сведения о версиях, а также манифест и контрольные суммы для проверки целостности.

Для runtime evidence действует один актуальный контракт:

  • embedded snapshot развёртывания использует схему v2 и фиксирует deployment, account, включённые стратегии, точные revisions, версии пакетов и неизменяемые конфигурации стратегий;
  • каждая evaluation, signal, trade и сохранённый lineage scope использует runtime lineage v3 и совпадает с embedded composition;
  • изменяемые данные strategyConfigs и не содержащие lineage агрегаты evaluationStatsBuckets не входят в журнал. Агрегированную debug-телеметрию нельзя приписывать неизменяемой composition.

Команды публикации, синхронизации, replay и scorecard отклоняют журнал, который не соответствует этому контракту. Они не преобразуют прежние runtime-форматы и не восстанавливают отсутствующую identity из Redis, текущего исходного кода или имён evaluations.

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

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

Перенос и проверка журнала

Для анализа в другом окружении:

npx @tradejs/cli runtime-evidence-sync \
--source user@runtime-host:/path/to/ready/production \
--deployment production

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

Воспроизведение записанной настройки

npx @tradejs/cli replay \
--user root \
--runtimeEvidence <bundle>/runtime-evidence.json \
--startTime <ms> \
--endTime <ms> \
--cacheOnly

Затем подготовьте данные для сравнения:

npx @tradejs/cli replay-runtime-evidence \
--runtimeEvidence <bundle>/runtime-evidence.json \
--startTime <ms> \
--endTime <ms> \
--out output/replay-runtime-evidence.json

Если период покрывают несколько результатов, укажите нужный через --replayKey.

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

Сравнение исполнения

Калибровка исполнения сравнивает время сигнала, появление на рынке и фактические исполнения с восстановленными решениями:

npx @tradejs/cli execution-calibration \
--runtimeEvidence <bundle>/runtime-evidence.json \
--replayEvidence output/replay-runtime-evidence.json \
--out output/execution-calibration.json

runtime-scorecard объединяет журнал, сравнение воспроизведения и калибровку в отчёты JSON и Markdown. Исследуйте пропуски данных, различия конфигураций и версий, решения фильтров, сдвиги времени, отклонения ордеров и качество исполнения.

Для быстрого сравнения только входов используйте Сравнение реальных и воспроизведённых входов. Процесс обработки текущих данных описан в Расчёте сигналов.