Как применять результаты бэктестов в рантайме
В этой статье: как продвигать позитивные backtest-конфиги в runtime, как работает npx @tradejs/cli results, и как выставляется isConfigFromBacktest.
1. Что делает npx @tradejs/cli results
npx @tradejs/cli results сканирует сохраненные тесты/статистику и собирает лучших кандидатов по символам для выбранной стратегии.
Базовая команда:
npx @tradejs/cli results --strategy TrendLine --coverage --user root
Полезные режимы:
--update: полностью перезаписать сохраненные strategy results--merge: обновить только символы, где новый результат лучше сохраненного--clear: удалить сохраненные promoted results
Примеры:
npx @tradejs/cli results --strategy TrendLine --merge --user root
npx @tradejs/cli results --strategy TrendLine --update --user root
npx @tradejs/cli results --strategy TrendLine --clear --user root
2. Где хранится promoted config
Промотированные конфиги по символам хранятся в ключе:
users:<user>:strategies:<strategy>:results
Для каждого символа сохраняются:
config(конфиг стратегии для символа)stats(метрики бэктеста)
3. Приоритет конфигурации в рантайме
Конфиг в runtime собирается в таком порядке (resolveStrategyConfig):
- дефолты стратегии (
strategy/<Strategy>/config.ts) - base config, переданный в strategy creator
- user runtime config (
users:<user>:strategies:<strategy>:config) - promoted per-symbol config из
users:<user>:strategies:<strategy>:results
Когда применяется шаг 4, runtime ставит:
isConfigFromBacktest = true
4. Как используется isConfigFromBacktest
isConfigFromBacktest попадает в сигнал и может использоваться в UI/Telegram/debug-потоке.
Поведение:
- если для символа есть promoted config:
isConfigFromBacktest: true - если записи нет: используется base/user config и
isConfigFromBacktest: false
5. Рекомендуемый workflow
- Прогоните бэктесты по сетке параметров стратегии.
- Выполните
npx @tradejs/cli results --strategy <Strategy> --coverage. - Для продакшена сначала используйте
--merge(безопаснее полной перезаписи). - Запустите
npx @tradejs/cli signals/npx @tradejs/cli botи проверьте сигналы сisConfigFromBacktest=true. - Повторяйте promotion после новых бэктестов.
6. Важные замечания
--coverageсейчас считает покрытие относительно набора тикеров ByBit.--mergeсохраняет текущие promoted символы, обновляя только реально лучшие.