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

Сравнение реальных и воспроизведённых входов

runtime-parity сравнивает записанные реальные входы с входами, восстановленными для тех же инструментов и периода. Команда отвечает на один вопрос:

Дали ли расчёт на текущем рынке и историческое воспроизведение сопоставимые решения о входе?

Если нужно точное сравнение версий пакетов, конфигураций, сигналов, ордеров и исполнений, используйте воспроизведение с журналом работы.

Запуск сравнения

npx @tradejs/cli runtime-parity \
--user root \
--connector bybit \
--days 3

Сравнение можно ограничить стратегией и инструментами или точными временными метками:

npx @tradejs/cli runtime-parity \
--user root \
--connector bybit \
--strategy <StrategyName> \
--tickers BTCUSDT,ETHUSDT \
--details

Исходные данные и фильтры

Команда строит список проверок по записанным сделкам и расчётам, явному --tickers и локальным результатам стратегии, если они есть. По умолчанию стратегия запускается с ENV=BACKTEST, поэтому внешние AI/ML-фильтры не вызываются.

Используйте --runtimeGates, только если сравнение должно обращаться к настроенным AI- или ML-сервисам. Это может создавать расходы и делает результат зависимым от доступности внешнего сервиса.

Если важны точные рабочие версии и настройки, используйте журнал из раздела Проверка реальных решений через воспроизведение.

Правила сопоставления

Входы сопоставляются по стратегии, инструменту, направлению и допустимому отклонению времени. По умолчанию допускается одна 15-минутная свеча. Параметр --toleranceBars <count> меняет допуск. Разница цены показывается для диагностики, но не является главным ключом сопоставления.

Как читать результат

  • matched — найден сопоставимый реальный и восстановленный вход;
  • runtime-only — реальный вход есть, но воспроизведение его не получило;
  • backtest-only — воспроизведение получило вход, которого нет в журнале.

Когда возможно, входы только из воспроизведения получают причину:

  • gated_out — вход заблокировал фильтр или правило;
  • order_failed — попытка отправить ордер завершилась ошибкой;
  • core_skipped — расчёт стратегии пропустил вход;
  • not_evaluated — сопоставимый расчёт на текущем рынке не найден;
  • true_mismatch — в доступных записях нет известного объяснения.

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

Полезные параметры: --startTime, --endTime, --strategy, --tickers, --cacheOnly, --toleranceBars, --runtimeGates, --details, --notify.