Качество данных
Качество бэктеста и реального расчёта зависит от данных, которые получает стратегия. Используйте этот список при подозрительном результате, добавлении коннектора и сравнении стратегий.
Что проверять
- Непрерывность: нет необъяснимых пропусков свечей нужного интервала.
- Дубли: для одного инструмента, поставщика и интервала нет повторных меток времени.
- Выравнивание времени: дополнительный контекст имеет метку не позже свечи решения.
- Источник: данные разных бирж и поставщиков не смешиваются без явного происхождения.
- Символы:
BTCUSDT,BTC-USDи внутренние идентификаторы поставщика не считаются автоматически одним инструментом. - Объём: базовый объём, оборот в котируемой валюте и объём тейкеров могут иметь разный смысл у разных поставщиков.
- Дополнительный контекст: данные глобального рынка, деривативов, спредов и блокчейнов могут отсутствовать или запаздывать.
Путь данных
биржа или поставщик
|
v
коннектор
|
v
кэш или Timescale
|
v
окно закрытых свечей
|
v
индикаторы и рыночный контекст
|
v
решение стратегии
Стратегия должна получать только данные, доступные к моменту решения.
Полезные команды
Обновить историю без запуска тестов:
npx @tradejs/cli backtest --updateOnly --connector bybit --timeframe 15
Использовать уже подготовленную историю:
npx @tradejs/cli backtest \
--cacheOnly \
--config TrendLine:base \
--tickers BTCUSDT \
--timeframe 15
Проверить непрерывность:
npx @tradejs/cli continuity --user root --timeframe 15 --provider bybit
Рассчитать текущие сигналы без обновления данных:
npx @tradejs/cli signals --cacheOnly --tickers BTCUSDT --timeframe 15
Дополнительные данные
TradeJS может добавлять эталонные свечи BTC, спреды Binance/Coinbase, глобальный контекст CoinMarketCap, данные деривативов Coinalyze и блокчейн-контекст. Их покрытие может отличаться от истории свечей. Если от такого поля зависит вход, сначала измерьте долю пропусков и задержку.
Причинность
Нужно:
- использовать закрытые свечи;
- выбирать последнюю запись контекста не позже оцениваемой свечи;
- отделять признаки момента сигнала от итогов сделки;
- исключать будущие метки из признаков AI/ML.
Нельзя:
- принимать решение по формирующейся свече;
- привязывать контекст к будущей записи;
- использовать итоговую цену выхода, PnL или статус сделки как вход того же сигнала;
- сравнивать бэктест и реальное исполнение без учёта времени и модели исполнения.
Режимы истории
--updateOnly обновляет данные и завершает работу без тестов. --cacheOnly
использует сохранённые данные без сетевого обновления. Второй режим удобен для
воспроизводимости только после проверки полноты кэша.
При сравнении стратегий фиксируйте поставщика, таймфрейм, точный период, режим кэша и настройки дополнительного контекста.
Перед интерпретацией результата
- Запустите небольшой бэктест одного инструмента.
- Проверьте сделки на графике и их временные метки.
- Проверьте непрерывность и покрытие дополнительного контекста.
- Повторите запуск с
--cacheOnly. - Расширьте инструменты и периоды.
- Сравните воспроизведённые и реальные решения до автоматизации.
Связанные страницы: