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

Качество данных

Качество бэктеста и реального расчёта зависит от данных, которые получает стратегия. Используйте этот список при подозрительном результате, добавлении коннектора и сравнении стратегий.

Что проверять

  • Непрерывность: нет необъяснимых пропусков свечей нужного интервала.
  • Дубли: для одного инструмента, поставщика и интервала нет повторных меток времени.
  • Выравнивание времени: дополнительный контекст имеет метку не позже свечи решения.
  • Источник: данные разных бирж и поставщиков не смешиваются без явного происхождения.
  • Символы: 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 использует сохранённые данные без сетевого обновления. Второй режим удобен для воспроизводимости только после проверки полноты кэша.

При сравнении стратегий фиксируйте поставщика, таймфрейм, точный период, режим кэша и настройки дополнительного контекста.

Перед интерпретацией результата

  1. Запустите небольшой бэктест одного инструмента.
  2. Проверьте сделки на графике и их временные метки.
  3. Проверьте непрерывность и покрытие дополнительного контекста.
  4. Повторите запуск с --cacheOnly.
  5. Расширьте инструменты и периоды.
  6. Сравните воспроизведённые и реальные решения до автоматизации.

Связанные страницы: